Skip to Content

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

11 Comments
You must be Logged on to comment or reply to a post.
  • 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.

     

  • 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

  • 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.

     

  • 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.

  • 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.

  • 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

  • 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,