Categories: ABAP Tutorials

SAP Remote Table Comparison: Full ABAP Program

SAP Remote Table Comparison: The following ABAP Program will remote compare table.

SAP Remote Table Comparison ABAP Code

Here the full ABAP Source to enable compare remotely the Some SAP Table.
First step is to Compare the Table Structure between two distant SAP Systems.
The Second Step is to compare local SAP Table Data and the Remote SAP Table.

Related Post

For all the detail about this?Step-step Guide how to SAP remote table comparison with ABAP Code

  
DATA: lv_str TYPE string.

DATA: lt_dfies_t     TYPE STANDARD TABLE OF dfies.
DATA: lt_dfies_s     TYPE STANDARD TABLE OF dfies.
DATA: l_i            TYPE i.
DATA: ls_field       TYPE rfc_db_fld,
      lt_field       TYPE TABLE OF rfc_db_fld.

DATA: lt_option      TYPE TABLE OF RFC_DB_OPT.
DATA: lt_keyfield    TYPE ugmd_t_fieldname,
      l_keylen       TYPE i.

DATA: lt_data        TYPE STANDARD TABLE OF tab512.

FIELD-SYMBOLS:    TYPE ANY,
                TYPE ANY TABLE,
                TYPE ANY TABLE,
                TYPE ANY TABLE,
                TYPE ANY TABLE,
                      TYPE ANY,
                 TYPE dfies,
                like LINE OF lt_option.
 
  " Get Fields List of Table ( Target )
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    DESTINATION p_target
    EXPORTING
      tabname        = p_table
    TABLES
      dfies_tab      = lt_dfies_t
    EXCEPTIONS
      not_found      = 1
      internal_error = 2
      OTHERS         = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    RETURN.
  ENDIF.

  " Get Fields List of Table ( Source )
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      tabname        = p_table
    TABLES
      dfies_tab      = lt_dfies_s
    EXCEPTIONS
      not_found      = 1
      internal_error = 2
      OTHERS         = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    RETURN.
  ENDIF.

  " Check if Tables Metadata is the same between Target & Source
  IF lt_dfies_t[] NE lt_dfies_s[].
    CALL FUNCTION 'POPUP_TO_INFORM'
      EXPORTING
        titel = 'Processing terminated'(001)
        txt1  = 'The metadata of the tables does not agree'(002)
        txt2  = space.
    EXIT.
  ENDIF.

  " Build List of Fields to be retrieved
  LOOP AT lt_dfies_s ASSIGNING <ls_dfies>.
    IF <ls_dfies>-keyflag NE space.
      INSERT <ls_dfies>-fieldname INTO TABLE lt_keyfield.
      ADD <ls_dfies>-leng TO l_keylen.
    ENDIF.
    l_i = <ls_dfies>-offset + <ls_dfies>-leng.
    IF l_i GT 512.
      EXIT.
    ENDIF.
    ls_field-fieldname = <ls_dfies>-fieldname.
    ls_field-offset    = <ls_dfies>-offset.
    ls_field-length    = <ls_dfies>-leng.
*  ls_field-TYPE      = <ls_dfies>-DATATYPE.
    ls_field-type      = <ls_dfies>-inttype.
    ls_field-fieldtext = <ls_dfies>-fieldtext.
    INSERT ls_field INTO TABLE lt_field.
  ENDLOOP.

  
  " Optionnal !
  " Build WHERE Clause 
  CLEAR: lv_str . CONCATENATE '''' <fs_file>-kunnr ''''  INTO lv_str.
  APPEND INITIAL LINE TO lt_option ASSIGNING <fs_option>.

  " Example which table KNA1 : we filter on KUNNR
  CONCATENATE 'KUNNR = ' lv_str INTO <fs_option> SEPARATED BY space.

  " Read Data from Remote Table
  CALL FUNCTION 'RFC_READ_TABLE'
    DESTINATION p_target
    EXPORTING
      query_table          = p_table
      no_data              = ' '
      rowskips             = 0
      rowcount             = 0
    TABLES
      OPTIONS              = lt_option
      fields               = lt_field
      data                 = lt_data
    EXCEPTIONS
      table_not_available  = 1
      table_without_data   = 2
      option_not_valid     = 3
      field_not_valid      = 4
      not_authorized       = 5
      data_buffer_exceeded = 6
      OTHERS               = 7.
  IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ENDIF.

Share
Published by
John

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018