Skip to Content
Author's profile photo Roger Rodriguez

SLT – Transformation – How to add new fields to existing source table and populate them to Target table based on transfer behavior

This case scenario cover requirements to add new fields & populate them via SLT to target structure .In this case we will populate the new fields with time-stamp for transfer behavior I (insert) & U (update).

  1. Execute T-Code LTRS:
  2. Select your MT-ID (Mass Transfer ID)
  3. Right click on table setting and click on Add Table to include your table name:
  4. Add your new fields to your table structure:

  • Define your new fields:

  • Save your new fields:

  • Right click on Rule Assignment then add your table name:

  • Click on create icon then select Field-Related Rule:

  • Enter one of your new fields: on target field:

  • Select the line created (double click) then include your table name in import parameter 1, Status = Released & your ABAP include program name (for the transformation):

Open a new session:

Via T-Code SE38 create an include ABAP program then copy and paste the following code:
DATA: lv_name(30) TYPE c.

FIELD-SYMBOLS: <ls_record>    TYPE any,
               <lv_operation> TYPE any,
               <lv_insert>    TYPE any,
               <lv_update>    TYPE any.

* get target structure
CONCATENATE ‘<WA_R_’ i_p1 ‘>’ INTO lv_name.
ASSIGN (lv_name) TO <ls_record>.

ASSIGN COMPONENT ‘IUUC_OPERAT_FLAG’ OF STRUCTURE <ls_record> TO <lv_operation>.

IF sy-subrc = 0.
  CASE <lv_operation>.
    WHEN ‘I’.
*** set additional target fields
* set insert timestamp
      ASSIGN COMPONENT ‘INSERT_TS’ OF STRUCTURE <ls_record> TO <lv_insert>.
      IF sy-subrc = 0.
        GET TIME STAMP FIELD <lv_insert>.
      ENDIF.

    WHEN ‘U’.
* set update time stamp
      ASSIGN COMPONENT ‘UPDATE_TS’ OF STRUCTURE <ls_record> TO <lv_update>.
      IF sy-subrc = 0.
        GET TIME STAMP FIELD <lv_update>.
      ENDIF.
  ENDCASE.
ENDIF.

 

Save your configuration in LTRS then continue with your process to Load / Replicate your table via t-code LTRC or via HANA Studio.

Regards,
Roger Rodriguez
SAP – HANA CoE NA

Assigned tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

       

      Author's profile photo Jalina Vincent
      Jalina Vincent

      Thank Roger for creating the wonderful document.

      Can you please provide some inputs on how to extract data for the new field in same table. And need to extract history data for the new field.

      Thanks.

       

      Author's profile photo Roger Rodriguez
      Roger Rodriguez
      Blog Post Author

      Hi Jalina,

      Usually it will be populated automatically after you save & activate your transformations.

      The most common case is the reload the table.

      Regards,

      Roger

      Author's profile photo Abe Dong
      Abe Dong

      Hi Roger. Thanks for sharing this blog. I implement the same code in our system, but I found it not fully meet the requirement.

      First we create one record in source system, in target system, the insert timestamp is populated.

      Then we change the same record in source system, in target system, the update timestamp is populated. But at the same time, the insert timestamp is wiped out. Our requirement is keep the insert timestamp, would you please give some suggestion on this.

      Thanks in advance.

       

      Author's profile photo Former Member
      Former Member

      Hi Roger,

      could you tell what is the meaning of status = "Released".

      I can see that there are other statutes provided like "New" and "Obsolete".

      please elaborate on this.

      Author's profile photo Srinikesh (Nikee) Cheella
      Srinikesh (Nikee) Cheella

      Can we Debug this code if  yes , please pleat me know how to hold break point at this code

      Author's profile photo Sethupathii Sekar
      Sethupathii Sekar

      This is really easy to understand for the one even new to SLT

      Thanks!!

      Cheers

      Sethu

      Author's profile photo Ariel Mena
      Ariel Mena

      Hi Roger,

      create the configuration as described in the blog, but when starting the replication the field is zero, additional in the code it presents an error in the code with the i_p1 parameter as it says that it does not recognize it.

      Please can you help me.

      Author's profile photo Roger Rodriguez
      Roger Rodriguez
      Blog Post Author

      Hi Ariel,

      Make sure you copy the code as is:  you can use ` as quote in ip_1 which is used in CONCATENATE '<wa_r'(space) 'ip_1'(space) '>' into lv_name.     you can test it replacing ip_1 with your table name you want to add new fields.   ex. lv_name = '<wa_r_vbak>'

      DATA: lv_name(30) TYPE c.

      FIELD-SYMBOLS: <ls_record>    TYPE any,
                     <lv_operation> TYPE any,
                     <lv_insert>    TYPE any,
                     <lv_update>    TYPE any.

      * get target structure
      CONCATENATE ‘<WA_R_’ i_p1 ‘>’ INTO lv_name.
      ASSIGN (lv_name) TO <ls_record>.

      ASSIGN COMPONENT ‘IUUC_OPERAT_FLAG’ OF STRUCTURE <ls_record> TO <lv_operation>.

       

      Regards,

      Roger

      Author's profile photo Ariel Mena
      Ariel Mena

      Hi Roger,

      I made the change in the code as you indicate, but when starting the initial load of the table, the new field is empty, suddenly I am omitting something in the configuration

      Regards,

      Author's profile photo Roger Rodriguez
      Roger Rodriguez
      Blog Post Author

      See below: