cancel
Showing results for 
Search instead for 
Did you mean: 

Regarding error in inventory flow

Former Member
0 Kudos

Hi experts,

I have installed inventory flow in SAP BW 7.4 where transformation for BX and BF data-source is giving following error:

E:"RSGN_GLOB_ID" must be a flat structure. You cannot use i

tables, strings, references, or structures as components. -

So have anyone faced such problem while installing inventory flow.

Kindly help.

Thanks

Devesh Varshney

Accepted Solutions (0)

Answers (1)

Answers (1)

anil_babu13
Participant
0 Kudos

do you have any routines in transformations? if yes paste the code here someone will throw light on the issue.

regards

anil

Former Member
0 Kudos

this is total standard flow and lot of code is written for many key-figure(due  to non-cumulative behavior).

code for 0gn_vendor

PROGRAM trans_routine.

*---------------------------------------------------------------------*

*       CLASS routine DEFINITION

*---------------------------------------------------------------------*

*

*---------------------------------------------------------------------*

CLASS lcl_transform DEFINITION.

   PUBLIC SECTION.

*  Attributs

     DATA:

       p_check_master_data_exist

             TYPE RSODSOCHECKONLY READ-ONLY,

*-    Instance for getting request runtime attributs;

*     Available information: Refer to methods of

*     interface 'if_rsbk_request_admintab_view'

       p_r_request

             TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.

   PRIVATE SECTION.

     TYPE-POOLS: rsd, rstr.

*   Rule specific types

     TYPES:

       BEGIN OF _ty_s_SC_1,

*      InfoObject: 0STOCKCAT Stock Categories.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0STOCKTYPE Stock type.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0VENDOR Vendor.

         VENDOR           TYPE /BI0/OIVENDOR,

*      InfoObject: 0GN_R3_SSY Source System for R/3 Entity.

         GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,

*      Field: RECORD.

         RECORD           TYPE RSARECORD,

       END   OF _ty_s_SC_1.

     TYPES:

       BEGIN OF _ty_s_TG_1,

*      InfoObject: 0GN_VENDOR Vendor.

         GN_VENDOR           TYPE /BI0/OIGN_VENDOR,

       END   OF _ty_s_TG_1.

*$*$ begin of global - insert your declaration only below this line  *-*

... "insert your code here

*$*$ end of global - insert your declaration only before this line   *-*

     METHODS

       compute_0GN_VENDOR

         IMPORTING

           request                  type rsrequest

           datapackid               type rsdatapid

           SOURCE_FIELDS              type _ty_s_SC_1

           segid                    type RSBK_SEGID

         EXPORTING

           RESULT                   type _ty_s_TG_1-GN_VENDOR

           monitor                  type rstr_ty_t_monitor

         RAISING

           cx_rsrout_abort

           cx_rsrout_skip_record

           cx_rsrout_skip_val

           cx_rsbk_errorcount.

     METHODS

       invert_0GN_VENDOR

         IMPORTING

           i_th_fields_outbound         TYPE rstran_t_field_inv

           i_r_selset_outbound          TYPE REF TO cl_rsmds_set

           i_is_main_selection          TYPE rs_bool

           i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set

           i_r_universe_inbound         TYPE REF TO cl_rsmds_universe

         CHANGING

           c_th_fields_inbound          TYPE rstran_t_field_inv

           c_r_selset_inbound           TYPE REF TO cl_rsmds_set

           c_exact                      TYPE rs_bool.

ENDCLASS.                    "routine DEFINITION

*$*$ begin of 2nd part global - insert your code only below this line  *

*$*$ begin of version

*-- migration tool version 19.02.2009

*$*$ end of version

*$*$ end of rule type

     TYPES:

       BEGIN OF _ty_s_TG_1_full,

*      InfoObject: 0CHNGID Änderungslauf ID.

         CHNGID           TYPE /BI0/OICHNGID,

*      InfoObject: 0RECORDTP Satztyp.

         RECORDTP           TYPE /BI0/OIRECORDTP,

*      InfoObject: 0REQUID Request ID.

         REQUID           TYPE /BI0/OIREQUID,

*      InfoObject: 0CALDAY Kalendertag.

         CALDAY           TYPE /BI0/OICALDAY,

*      InfoObject: 0CALMONTH Kalenderjahr / Monat.

         CALMONTH           TYPE /BI0/OICALMONTH,

*      InfoObject: 0CALWEEK Kalenderjahr / Woche.

         CALWEEK           TYPE /BI0/OICALWEEK,

*      InfoObject: 0CALYEAR Kalenderjahr.

         CALYEAR           TYPE /BI0/OICALYEAR,

*      InfoObject: 0MATERIAL Material.

         MATERIAL           TYPE /BI0/OIMATERIAL,

*      InfoObject: 0PLANT Werk.

         PLANT           TYPE /BI0/OIPLANT,

*      InfoObject: 0STOR_LOC Lagerort.

         STOR_LOC           TYPE /BI0/OISTOR_LOC,

*      InfoObject: 0BATCH Chargennummer.

         BATCH           TYPE /BI0/OIBATCH,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0GN_VENDOR Lieferant.

         GN_VENDOR           TYPE /BI0/OIGN_VENDOR,

*      InfoObject: 0RECVS_VAL Zugangswert Bewerteter Bestand.

         RECVS_VAL           TYPE /BI0/OIRECVS_VAL,

*      InfoObject: 0ISSVS_VAL Abgangswert Bewerteter Bestand.

         ISSVS_VAL           TYPE /BI0/OIISSVS_VAL,

*      InfoObject: 0ISSBLOSTCK Abgangsmenge Gesperrter Bestand.

         ISSBLOSTCK           TYPE /BI0/OIISSBLOSTCK,

*      InfoObject: 0ISSCNSSTCK Abgangsmenge Konsignationsbestand.

         ISSCNSSTCK           TYPE /BI0/OIISSCNSSTCK,

*      InfoObject: 0ISSQMSTCK Abgangsmenge Qualitätsbestand.

         ISSQMSTCK           TYPE /BI0/OIISSQMSTCK,

*      InfoObject: 0ISSTRANSST Abgangsmenge Transitbestand.

         ISSTRANSST           TYPE /BI0/OIISSTRANSST,

*      InfoObject: 0RECBLOSTCK Zugangsmenge Gesperrter Bestand.

         RECBLOSTCK           TYPE /BI0/OIRECBLOSTCK,

*      InfoObject: 0RECCNSSTCK Zugangsmenge Konsignationsbestand.

         RECCNSSTCK           TYPE /BI0/OIRECCNSSTCK,

*      InfoObject: 0RECQMSTCK Zugangsmenge Qualitätsbestand.

         RECQMSTCK           TYPE /BI0/OIRECQMSTCK,

*      InfoObject: 0RECTRANSST Zugangsmenge Transitbestand.

         RECTRANSST           TYPE /BI0/OIRECTRANSST,

*      InfoObject: 0ISSSCRP Abgangsmenge Ausschuss.

         ISSSCRP           TYPE /BI0/OIISSSCRP,

*      InfoObject: 0ISSVALSCRP Abgangswert Ausschuss.

         ISSVALSCRP           TYPE /BI0/OIISSVALSCRP,

*      InfoObject: 0RECTOTSTCK Zugangsmenge Gesamt Bestand.

         RECTOTSTCK           TYPE /BI0/OIRECTOTSTCK,

*      InfoObject: 0ISSTOTSTCK Abgangsmenge Gesamtbestand.

         ISSTOTSTCK           TYPE /BI0/OIISSTOTSTCK,

*      InfoObject: 0ISSVALSTCK Abgangsmenge Bewerteter Bestand.

         ISSVALSTCK           TYPE /BI0/OIISSVALSTCK,

*      InfoObject: 0RECVALSTCK Zugangsmenge Bewerteter Bestand.

         RECVALSTCK           TYPE /BI0/OIRECVALSTCK,

*      InfoObject: 0VENCONCON Verbrauchswerte Lieferantenkonsignationsbe

*stand.

         VENCONCON           TYPE /BI0/OIVENCONCON,

*      InfoObject: 0LOC_CURRCY Hauswährung.

         LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

*      Field: RECORD Nummer des Datensatzes.

         RECORD           TYPE RSARECORD,

       END   OF _ty_s_TG_1_full.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_9,

*      InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.

         CPQUABU           TYPE /BI0/OICPQUABU,

*      InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.

         INDSPECSTK           TYPE /BI0/OIINDSPECSTK,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

       END   OF _ty_s_SC_1__RULE_9.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_10,

*      InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.

         GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0VENDOR Lieferant.

         VENDOR           TYPE /BI0/OIVENDOR,

       END   OF _ty_s_SC_1__RULE_10.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_11,

*      InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.

         CPQUABU           TYPE /BI0/OICPQUABU,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

       END   OF _ty_s_SC_1__RULE_11.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_14,

*      InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.

         GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0VENDOR Lieferant.

         VENDOR           TYPE /BI0/OIVENDOR,

       END   OF _ty_s_SC_1__RULE_14.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_20,

*      InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.

         CPQUABU           TYPE /BI0/OICPQUABU,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

       END   OF _ty_s_SC_1__RULE_20.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_21,

*      InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.

         CPQUABU           TYPE /BI0/OICPQUABU,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

       END   OF _ty_s_SC_1__RULE_21.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_22,

*      InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.

         CPQUABU           TYPE /BI0/OICPQUABU,

*      InfoObject: 0STOCKTYPE Bestandsausprägung.

         STOCKTYPE           TYPE /BI0/OISTOCKTYPE,

*      InfoObject: 0BASE_UOM Basismengeneinheit.

         BASE_UOM           TYPE /BI0/OIBASE_UOM,

       END   OF _ty_s_SC_1__RULE_22.

     TYPES:

       BEGIN OF _ty_s_SC_1__RULE_30,

*      InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.

         CPPVLC           TYPE /BI0/OICPPVLC,

*      InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.

         INDSPECSTK           TYPE /BI0/OIINDSPECSTK,

*      InfoObject: 0STOCKCAT Bestandstypen.

         STOCKCAT           TYPE /BI0/OISTOCKCAT,

*      InfoObject: 0LOC_CURRCY Hauswährung.

         LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,

       END   OF _ty_s_SC_1__RULE_30.

* Additional declaration for update rule interface

   DATA:

     MONITOR       type standard table of rsmonitor  WITH HEADER LINE,

     MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,

     RECORD_NO     LIKE SY-TABIX,

     RECORD_ALL    LIKE SY-TABIX,

     SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.

* global definitions from update rules

INCLUDE rsbctgn_top.

INCLUDE rsbctgn_update_rules.

FORM routine_0011

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_9

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECVALSTCK

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* additional check if orders on hand or projekt stock

* and if they are valuated (A or M)

   IF COMM_STRUCTURE-stockcat IS INITIAL OR

      ( COMM_STRUCTURE-stockcat CA 'EQ' AND

      COMM_STRUCTURE-indspecstk CA 'AM' ).

* if the returncode is not equal zero, the result will not be updated

     RESULT = COMM_STRUCTURE-cpquabu.

     RETURNCODE = 0.

   ELSE.

     RETURNCODE = 4.

   ENDIF.

* if abort is not equal zero, the update process will be canceled

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0011

FORM routine_0013

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_10

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-GN_VENDOR

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* ... determine consolidated key

   IF COMM_STRUCTURE-stockcat CA 'KQ' OR

      COMM_STRUCTURE-stocktype CA 'QRS'.

     PERFORM  gn_get_global_key TABLES MONITOR

                           USING    COMM_STRUCTURE-gn_r3_ssy

                                    g_c_bwbeoty_r3vendor

                                    COMM_STRUCTURE-vendor

                                    RECORD_NO

                                    RECORD_ALL

                           CHANGING RESULT

                                    ABORT.

   ENDIF.

* if the returncode is not equal zero, the result will not be updated

   RETURNCODE = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0013

FORM routine_0003

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_11

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECCNSSTCK

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* only consignment stock is considered

   CASE COMM_STRUCTURE-stockcat.

     WHEN 'K'.

       RESULT = COMM_STRUCTURE-cpquabu.

       RETURNCODE = 0.

     WHEN space.

       IF COMM_STRUCTURE-stocktype CA 'KLM'.

         RESULT = COMM_STRUCTURE-cpquabu.

         RETURNCODE = 0.

       ELSE.

         RETURNCODE = 4.

       ENDIF.

     WHEN OTHERS.

       RETURNCODE = 4.

   ENDCASE.

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0003

FORM routine_0014

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_14

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-GN_VENDOR

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* ... determine consolidated key

   IF COMM_STRUCTURE-stockcat EQ 'K'.

     PERFORM  gn_get_global_key TABLES MONITOR

                           USING    COMM_STRUCTURE-gn_r3_ssy

                                    g_c_bwbeoty_r3vendor

                                    COMM_STRUCTURE-vendor

                                    RECORD_NO

                                    RECORD_ALL

                           CHANGING RESULT

                                    ABORT.

* if the returncode is not equal zero, the result will not be updated

   Endif.

   RETURNCODE = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0014

FORM routine_0002

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_20

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECBLOSTCK

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* only blocked stock is considered

   IF COMM_STRUCTURE-stocktype EQ 'D' AND

      COMM_STRUCTURE-stockcat NA 'KR'.

* result value of the routine

     RESULT = COMM_STRUCTURE-cpquabu.

* if the returncode is not equal zero, the result will not be updated

     RETURNCODE = 0.

   ELSE.

     RETURNCODE = 4.

   ENDIF.

* if abort is not equal zero, the update process will be canceled

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0002

FORM routine_0004

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_21

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECQMSTCK

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* only stock in quality inspection is considered

   IF COMM_STRUCTURE-stocktype CA 'BLOR' AND

      COMM_STRUCTURE-stockcat NA 'KR'.

     RESULT = COMM_STRUCTURE-cpquabu.

* if the returncode is not equal zero, the result will not be updated

     RETURNCODE = 0.

   ELSE.

     RETURNCODE = 4.

   ENDIF.

* if abort is not equal zero, the update process will be canceled

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0004

FORM routine_0012

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_22

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECTRANSST

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* only stock in transit is considered

   IF COMM_STRUCTURE-stocktype CA 'FH'.

     RESULT = COMM_STRUCTURE-cpquabu.

* if the returncode is not equal zero, the result will not be updated

     RETURNCODE = 0.

   ELSE.

     RETURNCODE = 4.

   ENDIF.

* if abort is not equal zero, the update process will be canceled

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0012

FORM routine_0001

   TABLES

     p_monitor      STRUCTURE rsmonitor

   USING

     COMM_STRUCTURE type _ty_s_SC_1__RULE_30

   CHANGING

     RESULT         TYPE _ty_s_TG_1_full-RECVS_VAL

     RETURNCODE     LIKE sy-subrc

     ABORT          LIKE sy-subrc

   RAISING

     cx_sy_arithmetic_error

     cx_sy_conversion_error.

* init variables

* fill the internal table "MONITOR", to make monitor entries

* only valuated stock is considered

   IF COMM_STRUCTURE-stockcat IS INITIAL OR

      ( COMM_STRUCTURE-stockcat CA 'EQ' AND

      COMM_STRUCTURE-indspecstk CA 'AM' ).

* result value of the routine

     RESULT = COMM_STRUCTURE-cppvlc.

* if the returncode is not equal zero, the result will not be updated

     RETURNCODE = 0.

   ELSE.

     RETURNCODE = 4.

   ENDIF.

* if abort is not equal zero, the update process will be canceled

   ABORT = 0.

   p_monitor[] = MONITOR[].

   CLEAR MONITOR[].

  ENDFORM.                    "routine_0001

*$*$ end of 2nd part global - insert your code only before this line   *

*---------------------------------------------------------------------*

*       CLASS routine IMPLEMENTATION

*---------------------------------------------------------------------*

*

*---------------------------------------------------------------------*

CLASS lcl_transform IMPLEMENTATION.

*----------------------------------------------------------------------*

*       Method compute_0GN_VENDOR

*----------------------------------------------------------------------*

*       This subroutine allows the mapping from source to target fields

*       of a transformation rule using ABAP for application specific

*       coding.

*----------------------------------------------------------------------*

*       Customer comment:

*----------------------------------------------------------------------*

   METHOD compute_0GN_VENDOR.

*   IMPORTING

*     request     type rsrequest

*     datapackid  type rsdatapid

*     SOURCE_FIELDS-STOCKCAT TYPE /BI0/OISTOCKCAT

*     SOURCE_FIELDS-STOCKTYPE TYPE /BI0/OISTOCKTYPE

*     SOURCE_FIELDS-VENDOR TYPE /BI0/OIVENDOR

*     SOURCE_FIELDS-GN_R3_SSY TYPE /BI0/OIGN_R3_SSY

*    EXPORTING

*      RESULT type _ty_s_TG_1-GN_VENDOR

     DATA:

       MONITOR_REC    TYPE rsmonitor.

*$*$ begin of routine - insert your code only below this line        *-*

   Data:

     l_monitor        TYPE STANDARD TABLE OF rsmonitor,

*--

     COMM_STRUCTURE   type _ty_s_SC_1__RULE_10,

     l_subrc          type sy-tabix,

     l_abort          type sy-tabix,

     Ls_monitor       type rsmonitor,

     ls_monitor_recno type rsmonitors.

   REFRESH:

     MONITOR.

* Runtime attributs

     SOURCE_SYSTEM  = p_r_request->get_logsys( ).

     MOVE-CORRESPONDING SOURCE_FIELDS to COMM_STRUCTURE.

*  Migrated update rule call

   Perform routine_0013

   TABLES

     l_monitor

   USING

     COMM_STRUCTURE

   CHANGING

     RESULT

     l_subrc

     l_abort.

*-- Convert Messages in Transformation format

     LOOP AT l_monitor INTO ls_monitor.

       move-CORRESPONDING ls_monitor to MONITOR_REC.

       append monitor_rec to MONITOR.

     ENDLOOP.

     IF l_subrc <> 0.

       RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD.

     ENDIF.

     IF l_abort <> 0.

       RAISE EXCEPTION TYPE CX_RSROUT_ABORT.

     ENDIF.

*$*$ end of routine - insert your code only before this line         *-*

   ENDMETHOD.                    "compute_0GN_VENDOR

*----------------------------------------------------------------------*

*       Inverse method invert_0GN_VENDOR

*----------------------------------------------------------------------*

*       This subroutine needs to be implemented only for direct access

*       (for better performance) and for the Report/Report Interface

*       (drill through).

*       The inverse routine should transform a projection and

*       a selection for the target to a projection and a selection

*       for the source, respectively.

*       If the implementation remains empty all fields are filled and

*       all values are selected.

*----------------------------------------------------------------------*

*       Customer comment:

*----------------------------------------------------------------------*

   METHOD invert_0GN_VENDOR.

*   IMPORTING

*     i_r_selset_outbound          TYPE REF TO cl_rsmds_set

*     i_th_fields_outbound         TYPE HASHED TABLE

*     i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set

*     i_r_universe_inbound         TYPE REF TO cl_rsmds_universe

*   CHANGING

*     c_r_selset_inbound           TYPE REF TO cl_rsmds_set

*     c_th_fields_inbound          TYPE HASHED TABLE

*     c_exact                      TYPE rs_bool

*$*$ begin of inverse routine - insert your code only below this line*-*

... "insert your code here

*$*$ end of inverse routine - insert your code only before this line *-*

   ENDMETHOD.                    "invert_0GN_VENDOR

ENDCLASS.                    "routine IMPLEMENTATION



I have pasted whole code.

Please check


Thanks

Devesh Varshney