Implement Function module logic in BI

Hi all,
the bellow is the DataSource FM code i wanted to implement same in the BI side, instead system date user wants to enter the date according to the user entry date the calculation should happen
if t_tab-net_d < sy-datum.
              if t_bsid-shkzg = 'S'.
                if t_bsid-dmbtr > 0.
                 t_tab-due_v = t_tab-due_v + t_bsid-dmbtr.
                  t_due-due_v = t_bsid-dmbtr.
                endif.
              else.
                if t_bsid-dmbtr < 0.
                 t_tab-due_v = t_tab-due_v - t_bsid-dmbtr.
                  t_due-due_v = t_bsid-dmbtr * -1.
                endif.
              endif.
In BI i have the t_tab-net_d,shkzg,dmbtr in my cube. now how can i calculate the due_v at report level.
Regards,
Kiran

above is allready there in production and now user want to enter the date to caluculate
below is also the logic of FM user want to implement this at BI side
              if due_temp is initial or due_temp >= t_tab-net_d.
                due_temp = t_tab-net_d.
                t_tab-due_m = sy-datum - t_tab-net_d.
              endif.
            endif.
here due_temp = sy-datum.
Please let me know how can i implement this in BI side
Regards,
Kiran
Edited by: kiran kumar on Feb 9, 2010 6:05 PM

Similar Messages

  • Activate/implement function module

    Hi,
    How to activate/implement function module?
    Thx.
    Anirudh,

    hi,
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    Function Modules are Global ABAP programs created by SAP for reusable purpose. They have IMPORT, EXPORT and TABLE parameters, and EXCEPTIONS to through when error occurs.
    You can create them from TCode SE37.
    Go through the following doc:
    Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
    Function Module Interfaces
    The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
    Syntax
    ... [IMPORTING parameters]
    [EXPORTING parameters]
    [CHANGING parameters]
    [TABLES table_parameters]
    [{RAISING|EXCEPTIONS} exc1 exc2 ...]
    The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
    Interface parameters
    The interface parameters are defined on the relevant tab pages in the Function Builder.
    IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
    EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for 'pass by value' is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
    CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
    TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
    Exceptions
    The exceptions of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception is defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
    CALLING A FUNCTION MODULE:
    1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
    --> Write the Corresponding FM name --> Hit Enter
    2)The appropriate import ,export Parameters will be displayed in ur editor
    3)Pass the Values Here.
    Check this link:
    http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    regards,
    rewards point.

  • Function module logic

    Hi Gurus,
    I know the method of creating function module and basically that to extract data from many tables. Though I am not clear what sort of business logics we can incorporate into it while extracting. Can anyone pls tell me some scenarios? Is it really taking update/transfer rules to extraction level?
    Thks
    Suneth

    Hi Semage,
    Basically, you would use a FM to extract when you need data from different tables, and it's impossible to do it in a view. Suppose you need to get data from table Z and add some fields from table Y, but if in table Y you don't find the correct entry, you need to check table X. That is impossible to do it with a view, unless you take the three tables to BW and make the calculations there.
    Also, using a FM you can have a delta datasource using proper delta, not using generic delta (if the code is correct, it can be like Business Content delta).
    Hope this helps.
    Regards,
    Diego

  • Function module not working when used with 'In Background Task'

    hi,
    this is my code
    call function 'Z_IBD_FILL_ZINETACT'
                  in background task
                  destination  'SAPD220125'
                  tables
                      it_net1 = it_net1
                      it_net2 = it_net2
                      it_net3 = it_net3  .
    when this code is executed i am not getting any data in my internal tables i.e it_net1, it_net2, and it_net3
    but i changed this code see the below code
          call function 'Z_IBD_FILL_ZINETACT'
                 in background task (THIS IS COMMENTED)
                  destination  'SAPD220125'
                  tables
                      it_net1 = it_net1
                      it_net2 = it_net2
                      it_net3 = it_net3  .
    now i am getting data into my internal tables
    can any one tell me what can be the problem and how to solve it in my case
    its very urgent

    Hi,
    Pls. go through the  docu..
    CALL FUNCTION
    Variant 5
    CALL FUNCTION func IN BACKGROUND TASK.
    Additions:
    1. ... AS SEPARATE UNIT
    2. ... DESTINATION dest
    3. ... EXPORTING  p1 = f1    ... pn = fn
    4. ... TABLES     p1 = itab1 ... pn = itabn
    Effect
    Flags the function module func to be run asynchronously. It is not executed at once, but the data passed with EXPORTING or TABLES is placed in a database table and the next COMMIT WORK executes it in another work process.
    Note
    This variant applies only as of Release 3.0, so both the client system and the server system must be Release 3.0 or higher.
    Note
    qRFC with Outbound Queue
    This is an extension of tRFC. The tRFC is serialized using queues, ensuring that the sequence of LUWs required by the application is observed when the calls are sent.
    For further information about qRFC, refer to the Serialized RFC: qRFC With Outbound Queue section of the SAP Library.
    Addition 1
    ... AS SEPARATE UNIT
    Effect
    Executes the function module in a separate LUW under a new transaction ID.
    Addition 2
    ... DESTINATION dest
    Effect
    Executes the function module externally as a Remote Function Call (RFC); dest can be a literal or a variable.
    Depending on the specified destination, the function module is executed either in another R/3 System or as a C-implemented function module. Externally callable function modules must be flagged as such in the Function Builder (of the target system).
    Since each destination defines its own program context, further calls to the same or different function modules with the same destination can access the local memory (global data) of these function modules.
    Note
    Note that a database commit occurs at each Remote Function Call (RFC). Consequently, you may not use Remote Function Calls between pairs of statements that open and close a database cursor (such as SELECT ... ENDSELECT).
    Addition 3
    ... EXPORTING p1 = f1 ... pn = fn
    Effect
    EXPORTING passes values of fields and field strings from the calling program to the function module. In the function module, formal parameters are defined as import parameters. Default values must be assigned to all import parameters of the function module in the interface definition.
    Addition 4
    ... TABLES p1 = itab1 ... pn = itabn
    Effect
    TABLES passes references to internal tables. All table parameters of the function module must contain values.
    Notes
    If several function module calls with the same destination are specified before COMMIT WORK, these normally form an LUW in the target system. Calls with the addition 1 are an exception to this rule - they each have their own LUW.
    You cannot specify type 2 destinations (R/3 - R/2 connections).
    (See Technical details and Administration transaction.)
    Example
    REPORT  RS41503F.
    /* This program performs a transactional RFC.
    TABLES: SCUSTOM.
    SELECT-OPTIONS: CUSTID FOR SCUSTOM-ID DEFAULT 1 TO 2.
    PARAMETERS: DEST LIKE RFCDES-RFCDEST DEFAULT 'NONE',
                MODE DEFAULT 'N',
                TIME LIKE SY-UZEIT DEFAULT SY-UZEIT.
    DATA: CUSTITAB TYPE TABLE OF CUST415,
          TAMESS   TYPE TABLE OF T100,
          WA_CUSTITAB TYPE CUST415.
    SELECT ID NAME TELEPHONE INTO CORRESPONDING FIELDS OF TABLE CUSTITAB
                   FROM SCUSTOM WHERE ID IN CUSTID ORDER BY ID.
    PERFORM READ_CUSTITAB.
    EDITOR-CALL FOR CUSTITAB TITLE 'Editor for table CUSTITAB'.
    PERFORM READ_CUSTITAB.
    CALL FUNCTION 'TRAIN415_RFC_CALLTRANSACTION'
         IN BACKGROUND TASK
         DESTINATION DEST
         EXPORTING
              TAMODE    = MODE
         TABLES
              CUSTTAB   = CUSTITAB.
    CALL FUNCTION 'START_OF_BACKGROUNDTASK'
         EXPORTING
              STARTDATE = SY-DATUM
              STARTTIME = TIME
         EXCEPTIONS
              OTHERS    = 1.
    IF SY-SUBRC = 1.
      EXIT.
    ENDIF.
    COMMIT WORK.
    CALL TRANSACTION 'SM58'.
          FORM READ_CUSTITAB                                   *
    FORM READ_CUSTITAB.
      WRITE: / 'System ID:', SY-SYSID.
      SKIP.
      LOOP AT CUSTITAB into WA_CUSTITAB
        WRITE: / WA_CUSTITAB-ID, WA_CUSTITAB-NAME,
                 WA_CUSTITAB-TELEPHONE.
      ENDLOOP.
      ULINE.
    ENDFORM.
    Pls. reward if useful....

  • How to use Logical database in function module?

    I will create a function module in HR.
    but how to use Logical database  in function module ?  Logical database PNP always show screen.in function (RFC) code , it is a matter.

    You cannot attach the LDB to the main program of the function group.
    - So you may [SUBMIT|https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=submit&adv=false&sortby=cm_rnd_rankvalue] a report which use the LDB and get back the data (export/import), by default in the syntax of SUBMIT the selection-screen will not be displayed
    - Use [LDB_PROCESS|https://www.sdn.sap.com/irj/sdn/advancedsearch?query=ldb_process&cat=sdn_all], fill a structured table for selection, and get data back in another table
    - Use [HR function modules to read Infotypes|https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=hrfunctionmodulestoread+Infotypes&adv=false&sortby=cm_rnd_rankvalue].
    Regards

  • Use of Logical Database in function module

    Hello Experts,
    Is there a way of using logical database and Get enent inside a function module.
    I am trying to create a RFC for HR module and need this badly. Any help would be highly appriciated.
    Thanks,
    Gregory fernando

    This fm will work fine with all LDBs including PNP
    Have you checked the fm documentation ?

  • How to use a Logical Database in Function Module.

    Hi Experts,
    I want to use a logical database in a Function Module to fetch data from a standard SAP table into a Internal table for certain filter conditions.
    How can I get get this done????
    I called LDB_PROCESS FM in my FM, but I could not figure out how to store the extract in my IT table since we cant use GET in FM.
    Please provide me a sample code if possible.
    Thanks in Advance,
    Alex.

    Hi,
    i had an example program like this ,in this i want to get the data using pnp logical database with 5 fields in an interface program.
    data: begin of it_final occurs 0,
            pernr like pa0002-pernr,
            vorna like pa0002-vorna,
            nachn like pa0002-nachn,
           usrid like pa0105-usrid,
           usrid_long like pa0105-usrid_long,
           end of it_final.
    get pernr.
      clear : p0000,p0002,p0105.
      rp-provide-from-last p0000 space p_date p_date.
      if p0000-stat2 = '3'.
        v_pernr = pnppernr-low.
      else.
        reject.
      endif.
    *---Get employee pernr, First name ,Last name into final table
      rp-provide-from-last p0002 space p_date p_date.
      if pnp-sw-found = '1'.
       it_final-pernr = p0002-pernr.
       it_final-vorna = p0002-vorna.
       it_final-nachn = p0002-nachn.
      else.
    *---Error message if not infotype 0002 maintained
      T_ERROR-PERNR   = pnppernr-low.
      CONCATENATE TEXT-EMI '0002'
      INTO T_ERROR-MESSAGE SEPARATED BY SPACE.
      APPEND T_ERROR.
      CLEAR T_ERROR.
      endif.
    **--Get SYSTEM USERNAME to final table
      rp-provide-from-last p0105 0001 p_date p_date.
      if pnp-sw-found = '1'.
        it_final-usrid = p0105-usrid.
      else.
    *---Error message if not SYSTEM USERNAME maintained
        T_ERROR-PERNR   = pnppernr-low.
        CONCATENATE TEXT-003 '0105'
        INTO T_ERROR-MESSAGE SEPARATED BY SPACE.
        APPEND T_ERROR.
        CLEAR T_ERROR.
      endif.
    **--Get Email ID to final table
      rp-provide-from-last p0105 0010 p_date p_date.
      if pnp-sw-found = '1'.
        it_final-usrid_long = p0105-usrid_long.
      else.
    *---Error message if not Email ID maintained
        T_ERROR-PERNR   = pnppernr-low.
        CONCATENATE TEXT-004 '0105'
        INTO T_ERROR-MESSAGE SEPARATED BY SPACE.
        APPEND T_ERROR.
        CLEAR T_ERROR.
      endif.
       append it_final.
        clear it_final.
    reward points if useful,
    venkat.

  • Function Module-ABAP Logic

    Hi Experts,
    The following is the ABAP Code used in Function Module to extract Master Data from R/3 to BW.Could please convert that into human language (Explain logic of code)
    FUNCTION MDEX_MATERIAL_MD .
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR OPTIONAL
    *"     VALUE(I_CHABASNM) TYPE  SBIWA_S_INTERFACE-CHABASNM OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SBIWA_S_INTERFACE-INITFLAG OPTIONAL
    *"     VALUE(I_UPDMODE) TYPE  SBIWA_S_INTERFACE-UPDMODE OPTIONAL
    *"     VALUE(I_DATAPAKID) TYPE  SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
    *"     VALUE(I_S_TIMEINT) TYPE  SBIWA_S_TIMEINT OPTIONAL
    *"     VALUE(I_RLOGSYS) TYPE  SRSC_S_INTERFACE-RLOGSYS OPTIONAL
    *"     VALUE(I_PRIVATE_MODE) OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_BIW_MARA_S STRUCTURE  BIW_MARA_S OPTIONAL
    *"      E_T_BIW_MARC_S STRUCTURE  BIW_MARC_S OPTIONAL
    *"      E_T_BIW_MARD_S STRUCTURE  BIW_MARD_S OPTIONAL
    *"      E_T_BIW_MVKE_S STRUCTURE  BIW_MVKE_S OPTIONAL
    *"      E_T_BIW_MARM_S STRUCTURE  BIW_MARM_S OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    function acts as a S-API-compatible interface for the SD-extractor
    MATERIAL_DYNAM_DATA_SELECTION
      STATICS: L_FIRST_CALL TYPE SBIWA_FLAG,
               L_NO_SELECT  TYPE C.
      DATA: L_SUBRC TYPE SBIWM_SUBRC.
      DATA: L_T_CHABASCMP  LIKE RSSOSFIELD OCCURS 0 WITH HEADER LINE,
            L_S_REQUEST    TYPE RSAP_S_REQUEST,
            L_SLOGSYS      LIKE TBDLS-LOGSYS,
            L_RODCHABGEN   LIKE  RODCHABGEN,
            L_LINES        TYPE  I,
            L_TX_SELECT    TYPE  SBIWA_TX_SELECT,
            L_T_SELECT     TYPE  SBIWA_T_SELECT,
            L_S_SELECT     TYPE  SBIWA_S_SELECT.
      DATA: L_T_MARA     LIKE  MARA OCCURS 10 WITH HEADER LINE,
            L_T_MARC     LIKE  MARC OCCURS 10 WITH HEADER LINE,
            L_T_MARD     LIKE  MARD OCCURS 10 WITH HEADER LINE,
            L_T_MVKE     LIKE  MVKE OCCURS 10 WITH HEADER LINE,
            L_T_MARM     LIKE  MARM OCCURS 10 WITH HEADER LINE.
      DATA: L_S_MATNR_MATERIAL_KEYS LIKE PRE03,
            L_S_WERKS_MATERIAL_KEYS LIKE PRE01,
            L_S_LGORT_MATERIAL_KEYS LIKE PRE08,
            L_S_VTLIN_MATERIAL_KEYS LIKE PRE10.
          Variable to read compound information  "note383430 insED08052001
      DATA: i_chabasnm_cmp TYPE sbiwa_s_interface-chabasnm.
      "note383430 insED08052001
      IF I_INITFLAG = 'X'.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Invalid second initialization call -> error exit
        IF NOT G_FLAG_INTERFACE_INITIALIZED IS INITIAL.
          IF 1 = 2. MESSAGE E008(R3). ENDIF.
          LOG_WRITE 'E'                    "message type
                    'R3'                   "message class
                    '008'                  "message number
                    ' '                    "message variable 1
                    ' '.                   "message variable 2
          RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ELSE.
          G_FLAG_INTERFACE_INITIALIZED = SBIWA_C_FLAG_ON.
        ENDIF.
    Check for supported update mode
        CASE I_UPDMODE.
          WHEN SBIWA_C_UPDMODE_FULL.
          WHEN SBIWA_C_UPDMODE_DELTAINIT.
          WHEN SBIWA_C_UPDMODE_DELTA.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E011(R3). ENDIF.
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '011'                "message number
                      I_UPDMODE            "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
      Initialize variable to read compound information
        i_chabasnm_cmp = i_chabasnm.   "note383430 insED08052001
    **Check InfoObject validity and set IO-dependent parameters
        G_TAB1_FLG =  G_TAB2_FLG =  G_TAB3_FLG =  G_TAB4_FLG = ' '.
        g_tab5_flg = ' '.   "note417314 insED04072001
        G_NO_MARM = 'X'.
        CASE I_CHABASNM.
          WHEN '0MATERIAL'.
            G_TAB1_FLG = 'X'.
            G_TABLENAME = 'MARA'.
          WHEN '0ARTICLE'.                  "note383430 insED30042001
            G_TAB1_FLG = 'X'.               "note383430 insED30042001
            G_TABLENAME = 'MARA'.           "note383430 insED30042001
            i_chabasnm_cmp = '0MATERIAL'.   "note383430 insED08052001
          WHEN '0ME_MATERIAL'.              "note759687
            G_TAB1_FLG = 'X'.               "note759687
            G_TABLENAME = 'MARA'.           "note759687
            i_chabasnm_cmp = '0MATERIAL'.   "note759687
          WHEN '0MAT_PLANT'.
            G_TAB2_FLG = 'X'.
            G_TABLENAME = 'MARC'.
          WHEN '0ART_PLANT'.                "note383430 insED30042001
            G_TAB2_FLG = 'X'.               "note383430 insED30042001
            G_TABLENAME = 'MARC'.           "note383430 insED30042001
            i_chabasnm_cmp = '0MAT_PLANT'.  "note383430 insED08052001
          WHEN '0MAT_ST_LOC'.
            G_TAB3_FLG = 'X'.
            G_TABLENAME = 'MARD'.
          WHEN '0ART_ST_LOC'.               "note383430 insED30042001
            G_TAB3_FLG = 'X'.               "note383430 insED30042001
            G_TABLENAME = 'MARD'.           "note383430 insED30042001
            i_chabasnm_cmp = '0MAT_ST_LOC'. "note383430 insED08052001
          WHEN '0MAT_SALES'.
            G_TAB4_FLG = 'X'.
            G_TABLENAME = 'MVKE'.
         when '0ART_SALES'.      "note383430 insED30042001  "delED
           g_tab4_flg = 'x'.     "note383430 insED30042001  "delED
           g_tablename = 'MVKE'. "note383430 insED30042001  "delED
          WHEN '0ART_SALES'.      "insED
            G_TAB4_FLG = 'X'.     "insED
            G_TABLENAME = 'MVKE'. "insED
            i_chabasnm_cmp = '0MAT_SALES'.  "note383430 insED08052001
          WHEN '0MAT_UNIT'.
          G_TAB1_FLG = 'X'.     "note417314 delED04072001
            g_tab5_flg = 'X'.     "note417314 insED04072001
            G_TABLENAME = 'MARM'.
            G_NO_MARM = ' '.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_CHABASNM           "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
    ** fill parameter buffer for data extraction calls
        G_S_EXTR_IF-REQUNR    = I_REQUNR.
        G_S_EXTR_IF-CHABASNM  = I_CHABASNM.
        G_S_EXTR_IF-MAXSIZE   = I_MAXSIZE.
        G_S_EXTR_IF-INITFLAG  = I_INITFLAG.
        G_S_EXTR_IF-UPDMODE   = I_UPDMODE.
        G_S_EXTR_IF-DATAPAKID = I_DATAPAKID.
        g_s_interface-read_opt =.
        G_S_INTERFACE-MAX_MATNR = I_MAXSIZE.
        g_s_interface-max_lifnr =.
        g_s_interface-max_kunnr =.
        g_s_interface-max_werks =.
        CASE I_UPDMODE.
          WHEN SBIWA_C_UPDMODE_DELTA.
          ** settings for delta data transfer
          ** get additional information about current extraction
            CALL FUNCTION 'RSAN_LOGSYS_DETERMINE'
              EXPORTING
                I_CLIENT = SY-MANDT
              IMPORTING
                E_LOGSYS = L_SLOGSYS.
            L_S_REQUEST-SNDPRN   = L_SLOGSYS.
            L_S_REQUEST-RCVPRN   = I_RLOGSYS.
    *----- Fill Content release so get_rodchabgen will work ok -
            PERFORM GET_BWBCRL IN PROGRAM SAPLRSAP         "OSS 1054070/2000
                    USING    L_S_REQUEST-RCVPRN            "OSS 1054070/2000
                    CHANGING L_SUBRC.                      "OSS 1054070/2000
            PERFORM GET_RODCHABGEN IN PROGRAM SAPLRSAP
                      USING    L_RODCHABGEN
                               I_CHABASNM
                               L_S_REQUEST.
          ** get base characteristic information
            PERFORM DETERMINE_COMPOSITES IN PROGRAM SAPLRSAM
                      TABLES L_T_CHABASCMP
                    USING  I_CHABASNM.
                      USING  i_chabasnm_cmp.   "note383430 insED08052001
          ** Get information about modified data objects
            PERFORM FILL_MD_SELECT_ENTRYTABLE IN PROGRAM SAPLRSAP
                      TABLES   L_T_CHABASCMP
                      USING    L_RODCHABGEN-MSGTYP
                               I_CHABASNM
                      CHANGING L_TX_SELECT
                               L_SUBRC.
            DESCRIBE TABLE L_TX_SELECT LINES L_LINES.
            IF L_LINES = 0.
              L_NO_SELECT = 'X'.
            ENDIF.
          ** fill key-table for extractor
            REFRESH G_T_MATNR_MATERIAL_KEYS.
            REFRESH G_T_WERKS_MATERIAL_KEYS.
            REFRESH G_T_LGORT_MATERIAL_KEYS.
            REFRESH G_T_VTLIN_MATERIAL_KEYS.
            refresh g_t_marm_material_keys.   "note417314 insED04072001
            LOOP AT L_TX_SELECT INTO L_T_SELECT.
              CASE I_CHABASNM.
                WHEN '0MATERIAL' OR '0ARTICLE' "note383430 insED30042001
                     OR '0ME_MATERIAL'.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'MATNR'.
                  L_S_MATNR_MATERIAL_KEYS-MATNR = L_S_SELECT-LOW.
                  APPEND L_S_MATNR_MATERIAL_KEYS TO G_T_MATNR_MATERIAL_KEYS.
                WHEN '0MAT_PLANT' OR '0ART_PLANT'. "note383430 insED30042001
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'MATNR'.
                  L_S_WERKS_MATERIAL_KEYS-MATNR = L_S_SELECT-LOW.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'WERKS'.
                  L_S_WERKS_MATERIAL_KEYS-WERKS = L_S_SELECT-LOW.
                  APPEND L_S_WERKS_MATERIAL_KEYS TO G_T_WERKS_MATERIAL_KEYS.
                WHEN '0MAT_ST_LOC' OR '0ART_ST_LOC'.
                  "note383430 insED30042001
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'MATNR'.
                  L_S_LGORT_MATERIAL_KEYS-MATNR = L_S_SELECT-LOW.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'WERKS'.
                  L_S_LGORT_MATERIAL_KEYS-WERKS = L_S_SELECT-LOW.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'LGORT'.
                  L_S_LGORT_MATERIAL_KEYS-LGORT = L_S_SELECT-LOW.
                  APPEND L_S_LGORT_MATERIAL_KEYS TO G_T_LGORT_MATERIAL_KEYS.
                WHEN '0MAT_SALES' OR '0ART_SALES'. "note383430 insED30042001
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'MATNR'.
                  L_S_VTLIN_MATERIAL_KEYS-MATNR = L_S_SELECT-LOW.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'VKORG'.
                  L_S_VTLIN_MATERIAL_KEYS-VKORG = L_S_SELECT-LOW.
                  READ TABLE L_T_SELECT
                     INTO L_S_SELECT
                     WITH KEY FIELDNM = 'VTWEG'.
                  L_S_VTLIN_MATERIAL_KEYS-VTWEG = L_S_SELECT-LOW.
                  APPEND L_S_VTLIN_MATERIAL_KEYS TO G_T_VTLIN_MATERIAL_KEYS.
              ENDCASE.
            ENDLOOP.
            IF L_SUBRC <> 0.
              IF 1 = 2. MESSAGE E009(R3). ENDIF.
              LOG_WRITE 'E'                "message type
                        'R3'               "message class
                        '009'              "message number
                        I_CHABASNM         "message variable 1
                        ' '.               "message variable 2
              RAISE ERROR_PASSED_TO_MESS_HANDLER.
              EXIT.
            ENDIF.
        ** settings for full data transfer or delta init.
    *----- Selektionsbedingungen müssen immer übernommen werden -
        WHEN sbiwa_c_updmode_full                            "DEL"TH090800
        OR   sbiwa_c_updmode_deltainit.                      "DEL"TH090800
          REFRESH g_t_sel_table.                             "DEL"TH090800
          LOOP AT i_t_select INTO l_s_select.                "DEL"TH090800
            g_s_sel_table-table  =  g_tablename.             "DEL"TH090800
            g_s_sel_table-field  =  l_s_select-fieldnm.      "DEL"TH090800
            MOVE-CORRESPONDING l_s_select TO g_s_sel_table.  "DEL"TH090800
            APPEND g_s_sel_table TO g_t_sel_table.           "DEL"TH090800
          ENDLOOP.                                           "DEL"TH090800
          WHEN OTHERS.
        ENDCASE.
    *----- Selektionsbedingungen müssen immer übernommen werden -
        REFRESH G_T_SEL_TABLE.                                 "INS"TH090800
        LOOP AT I_T_SELECT INTO L_S_SELECT.                    "INS"TH090800
          G_S_SEL_TABLE-TABLE  =  G_TABLENAME.                 "INS"TH090800
          G_S_SEL_TABLE-FIELD  =  L_S_SELECT-FIELDNM.          "INS"TH090800
          MOVE-CORRESPONDING L_S_SELECT TO G_S_SEL_TABLE.      "INS"TH090800
          APPEND G_S_SEL_TABLE TO G_T_SEL_TABLE.               "INS"TH090800
        ENDLOOP.                                               "INS"TH090800
        REFRESH G_T_FIELDS.
        APPEND LINES OF I_T_FIELDS TO G_T_FIELDS.
      ELSE.                 "Initialization mode or data extraction ?
        IF ( G_MORE_DATA_EXISTS = ' ' ) AND ( G_COUNTER_DATAPAKID NE 0 ).
          RAISE NO_MORE_DATA.
          EXIT.
        ENDIF.
        IF G_S_EXTR_IF-UPDMODE = SBIWA_C_UPDMODE_DELTA.
          IF NOT L_NO_SELECT IS INITIAL.
            RAISE NO_MORE_DATA.
          ENDIF.
        ENDIF.
        IF ( G_MORE_DATA_EXISTS = 'X' ) OR ( G_COUNTER_DATAPAKID = 0 ).
          REFRESH L_T_MARA.
          REFRESH L_T_MARC.
          REFRESH L_T_MARD.
          REFRESH L_T_MVKE.
          REFRESH L_T_MARM.
          CALL FUNCTION 'MATERIAL_DYNAM_DATA_SELECTION'
              EXPORTING
                  NO_MARM_DATA     = G_NO_MARM
                  READ_MARA_DATA   = G_TAB1_FLG
                  READ_MARC_DATA   = G_TAB2_FLG
                  READ_MARD_DATA   = G_TAB3_FLG
                  READ_MVKE_DATA   = G_TAB4_FLG
                  read_marm_data   = g_tab5_flg   "note417314 insED04072001
                JOIN_OPTION      = 'O'
                  IN_MAX_MATNR     = G_S_INTERFACE-MAX_MATNR
              TABLES
                  IN_SELECT_FIELDS = G_T_SEL_TABLE
                  IN_MATNR_KEYS    = G_T_MATNR_MATERIAL_KEYS
                  IN_WERKS_KEYS    = G_T_WERKS_MATERIAL_KEYS
                  IN_VTLIN_KEYS    = G_T_VTLIN_MATERIAL_KEYS
                  IN_LGORT_KEYS    = G_T_LGORT_MATERIAL_KEYS "insED22032001
                  in_marm_keys     = g_t_marm_material_keys  "note417314
                                                             "insED04072001
                  OUT_MARA_TAB     = L_T_MARA
                  OUT_MARC_TAB     = L_T_MARC
                  OUT_MARD_TAB     = L_T_MARD
                  OUT_MVKE_TAB     = L_T_MVKE
                  OUT_MARM_TAB     = L_T_MARM
              CHANGING
                  MORE_DATA_EXISTS = G_MORE_DATA_EXISTS
              EXCEPTIONS
                  WRONG_INPUT_DATA = 1
                  OTHERS           = 2
          IF SY-SUBRC <> 0.
            IF 1 = 2. MESSAGE E011(R3). ENDIF.
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '011'                "message number
                      SY-SUBRC             "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
          ENDIF.
          G_COUNTER_DATAPAKID = G_COUNTER_DATAPAKID + 1.
          LOOP AT L_T_MARA.
            MOVE-CORRESPONDING L_T_MARA TO E_T_BIW_MARA_S.
            APPEND E_T_BIW_MARA_S.
          ENDLOOP.
          LOOP AT L_T_MARC.
            MOVE-CORRESPONDING L_T_MARC TO E_T_BIW_MARC_S.
          provide additional attributes not contained in MARC
            PERFORM MARC_ADD_ATTRIBUTES CHANGING E_T_BIW_MARC_S
                                                 L_SUBRC.
            IF L_SUBRC <> 0.
              IF 1 = 2. MESSAGE E501(R§). ENDIF.
              "insED03082001 begin  note216922
              log_write 'W'                "message type
                        'R§'               "message class
                        '501'              "message number
                        e_t_biw_marc_s-werks "message variable 1
                        ' '.               "message variable 2
              "insED03082001 end    note216922
              "delED03082001 begin  note216922
              LOG_WRITE 'E'                "message type
                       'R§'               "message class
                       '501'              "message number
                        E_T_BIW_MARC_S-WERKS "message variable 1
                       ' '.               "message variable 2
              RAISE ERROR_PASSED_TO_MESS_HANDLER.
              "delED03082001 end   note2169222
            ENDIF.
            APPEND E_T_BIW_MARC_S.
          ENDLOOP.
          LOOP AT L_T_MARD.
            MOVE-CORRESPONDING L_T_MARD TO E_T_BIW_MARD_S.
            APPEND E_T_BIW_MARD_S.
          ENDLOOP.
          LOOP AT L_T_MVKE.
            MOVE-CORRESPONDING L_T_MVKE TO E_T_BIW_MVKE_S.
            APPEND E_T_BIW_MVKE_S.
          ENDLOOP.
          LOOP AT L_T_MARM.
            MOVE-CORRESPONDING L_T_MARM TO E_T_BIW_MARM_S.
            APPEND E_T_BIW_MARM_S.
          ENDLOOP.
        ENDIF.
      ENDIF.
    ENDFUNCTION.
    Thanks

    Hi,
    This might not be the right forum for this. You can post your question in more relevant forum like Netweaver-Exchange Infrastructure.

  • Function module for logical file path and name

    Hello all,
    I am wondering is there any function module available to translate a logical file path to a physical file path and a logical file name to a physical file name? Thanks a lot!
    Regards,
    Anyi

    Please check the FM FILE_NAME_GET.
          CALL FUNCTION <b>'FILE_GET_NAME'</b>
             EXPORTING
               logical_filename = 'ZDELCHKREP'
               parameter_1 = it_cntry-cntry
             IMPORTING
               file_name        = l_file
             EXCEPTIONS
               file_not_found   = 08.
        CALL FUNCTION <b>'FILE_GET_NAME_USING_PATH'</b>       EXPORTING
             logical_path = 'ZDELCHKREP'
             file_name = l_file
           IMPORTING
             file_name_with_path = l_file.
    Message was edited by: Anurag Bankley
    Message was edited by: Anurag Bankley

  • How to defined which logical database to use in a function module?

    Hey,
    I am trying to do logical database in a function module. I need to know where do i go to define which logical database to use? Becuase i get syntax error on my Get statement. The logical database i am trying to use is HR PNP .
    Any useful help will be appreciated,
    Thanks

    I think we can't assign logical database to FM or FG. Because there isn't any option to put the logical database in the FM or FG's attributes.
    You must have to create a executable report to have the LDB in use.
    Regards,
    Naimesh Patel

  • Problem in Logical Databse Call via Function Module - Urgent

    Hi Experts,
    To use the Logical Database(LDB) in the function module(Custom) I am using the function module - LDB_PROCESS. But I didn't get any output. I am attaching the code. Please Help me in this.
    DATA : W_LDBNAME LIKE TRDIR-LDBNAME.
    DATA : IT_CALLBACK LIKE TABLE OF LDBCB WITH HEADER LINE,
           IT_SELECTIONS LIKE TABLE OF RSPARAMS WITH HEADER LINE,
           IT_PERNR TYPE TABLE OF PERNR WITH HEADER LINE.
    MOVE 'PNP' TO W_LDBNAME.
    IT_CALLBACK-LDBNODE = 'PERNR'.
    IT_CALLBACK-GET     = 'X'.
    IT_CALLBACK-CB_PROG = SY-CPROG.
    IT_CALLBACK-CB_FORM = 'CALLBACK_PERNR'.
    APPEND IT_CALLBACK.
    CLEAR IT_CALLBACK.
    IT_SELECTIONS-KIND    = 'S'.
    IT_SELECTIONS-SELNAME = 'PNPPERNR'.
    IT_SELECTIONS-SIGN    = 'I'.
    IT_SELECTIONS-OPTION   = 'EQ'.
    IT_SELECTIONS-LOW      = '100178'.
    APPEND IT_SELECTIONS.
    CLEAR IT_SELECTIONS.
    CALL FUNCTION 'LDB_PROCESS'
    EXPORTING
        LDBNAME                    = W_LDBNAME
      VARIANT                    =
      EXPRESSIONS                =
      FIELD_SELECTION            =
      DYN_NODE_TYPES             =
    TABLES
        CALLBACK                   = IT_CALLBACK
       SELECTIONS                 = IT_SELECTIONS
    EXCEPTIONS
       LDB_NOT_REENTRANT           = 1
       LDB_INCORRECT               = 2
       LDB_ALREADY_RUNNING         = 3
       LDB_ERROR                   = 4
       LDB_SELECTIONS_ERROR        = 5
       LDB_SELECTIONS_NOT_ACCEPTED = 6
       VARIANT_NOT_EXISTENT        = 7
       VARIANT_OBSOLETE            = 8
       VARIANT_ERROR               = 9
       FREE_SELECTIONS_ERROR       = 10
       CALLBACK_NO_EVENT           = 11
       CALLBACK_NODE_DUPLICATE     = 12
       CALLBACK_NO_PROGRAM         = 13
       CALLBACK_NO_CBFORM          = 14
       DYN_NODE_NO_TYPE            = 15
       DYN_NODE_INVALID_TYPE       = 16
       OTHERS                      = 17.
    IF SY-SUBRC <> 0.
      MESSAGE I039(ZABA) WITH  SY-SUBRC.
    ENDIF.
    LOOP AT IT_PERNR.
      message i039(zaba) with 'Inside loop'.
      WRITE : / IT_PERNR-PERNR, IT_PERNR-BUKRS.
    ENDLOOP.
    *&      Form  CALLBACK_PERNR
          text
         -->L_LDBNAME     text
         -->L_IT_PAYROLL  text
         -->TYPE          text
         -->PAY99_REULT   text
         -->L_EVT         text
         -->L_CHK         text
    FORM CALLBACK_PERNR USING  L_LDBNAME LIKE TRDIR-LDBNAME
                               L_IT_PERNR LIKE PERNR
                               L_EVT type C
                               L_CHK type C.
      message i039(zaba) with 'Inside Callback'.
      WRITE : / L_IT_PERNR-PERNR,
                L_IT_PERNR-BUKRS.
      MOVE-CORRESPONDING L_IT_PERNR TO IT_PERNR.
      APPEND IT_PERNR.
      CLEAR IT_PERNR.
    ENDFORM.                    "CALLBACK_PERNR
    Thanks in advance
    Arul Jothi.

    Hi,
    I think Arul commented the 'it_selections' while trying out.. I couldn't get the fm work for PNP.. it worked fine with the FI LDBs.. just didn't seem to like the PNP..
    Regards,
    Suresh Datti

  • Function Module Call Via CMOD Logic for Master Data Enhancement

    Hi Friends Please help me to resolve this, would really be very kind of all of you.
    Requirement. I want to Enhance the field ZFACTREG from VIBDBE table in my datasource 0busentity_attr extract structure l_s_REIS_BUSENTITY_ATTR, I want to create the logic in CMOD exit_saplrsap_002 to call my function module for enhancement of master data. Please help me Step by Step
    Thanks
    Poonam Roy
    <b>Step #1</b>
    I put this code which gives me error in CMOD like this
    ERROR : Das formale Argument 'OTHERS' muss am Schluss der Ausnahmeliste stehen.
    ABAP Code#1 IN exit_saplrsap_002     
    DATA: l_d_fmname(30) TYPE c.
    CONCATENATE 'Z_DS_' i_datasource(25) INTO l_d_fmname.
    TRY.
    CALL FUNCTION l_d_fmname
    EXPORTING
    I_DATASOURCE = I_DATASOURCE
    I_UPDMODE = I_UPDMODE
    TABLES
    I_T_SELECT = I_T_SELECT
    I_T_FIELDS = I_T_FIELDS
    I_T_DATA = I_T_DATA
    C_T_MESSAGES = C_T_MESSAGES
    EXCEPTIONS
    RSAP_CUSTOMER_EXIT_ERROR = 1
    OTHERS = 2
    IF FOUND.
    IF SY-SUBRC <> 0.
    RASIE RSAP_CUSTOMER_EXIT_ERROR.
    END IF
    CATCH CX_SY_DYN_CALL_ILLEGAL_FUNC.
    ENDTRY.
    <b>Step#2</b>
    I simple created the Function module Z_DS_BUSINESS
    and put the code in source code  which gives me error . what should i put in other tabs like"Import", Export", Tables" i kept blank
    ABAP CODE give me error : The Dictionary structure or table "FIELD-SYMBOLS" is either not active. i have to remove include in the FM. WHY SO??
    FUNCTION Z_DS_BUSINENSS
    ""Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(I_DATASOURCE) TYPE  RSAOT_OLTPSOURCE
    *"             VALUE(I_CHABASNM) TYPE  SBIWA_S_INTERFACE-CHABASNM
    *"             VALUE(I_UPDMODE) TYPE  SBIWA_S_INTERFACE-UPDMODE
    *"       TABLES
    *"              I_T_SELECT TYPE  SBIWA_T_SELECT
    *"              I_T_FIELDS TYPE  SBIWA_T_FIELDS
    *"              I_T_DATA
    *"              C_T_MESSAGES STRUCTURE  BALMI OPTIONAL
    *"       EXCEPTIONS
    *"              RSAP_CUSTOMER_EXIT_ERROR
    INCLUDE ZXRSAU02.
      WRITE: / 'INSIDE THE Z_DS_MEASUREMENTS PROGRAM'.
    TABLES: REIS_BUSENTITY_ATTR,
            VIBDBE,
    field-symbols:.<fs_REIS_BUSENTITY_ATTR> like REIS_BUSENTITY_ATTR.
    DATA: BEGIN OF i_c_t_data OCCURS 0.
              include structure REIS_BUSENTITY_ATTR.
    DATA END OF i_c_t_data.
    DATA: i_c_t_data_copy like i_c_t_data OCCURS 0 WITH HEADER LINE,
          begin of i_vibdbe occurs 0,
          INTRENO like vibdbe-INTRENO,
          ZFACTREG like vibdbe-ZFACTREG,
                  end of i_vibdbe.
    i_c_t_data_copy[] = i_c_t_data[] = c_t_data[].
    sort i_c_t_data_copy by vibdbe.
    Select  INTRENO
            into table i_VIBDBE from VIBDBE
            for all entries in i_c_t_data_copy
            where  INTRENO = i_c_t_data_copy- INTRENO.
    if sy-subrc = 0.
      sort i_VIBDBE by INTRENO.
      loop at i_c_t_data assigning <fs_REIS_BUSENTITY_ATTR>.
        clear: i_VIBDBE.
        read table i_VIBDBE with key INTRENO = <fs_REIS_BUSENTITY_ATTR>-INTRENO
        BINARY SEARCH
        transporting ZFACTREG .
        if sy-subrc = 0.
          <fs_REIS_BUSENTITY_ATTR>-ZZFACTORY = i_vibebe-ZFACTREG
        endif.
    null

    (I leave office until Monday morning, Europe time)
    in include from customer-exit ZXRSAU01, etc.
    CASE I_DATASOURCE.
    WHEN '0CUSTOMER_ATTR'.
       PERFORM 0customer_attr changing i_t_data...
    ENDCASE.
    In each perform, doing what you wrote ; select (needed fields) from complementary-database-table into an internal table with a for all entries. sort the table. LOOP and MODIFY on i_t_data.
    In some case i had to insert lines of i_t_data to an internal table of DS_structure when entering subroutine and back at exit. (on 4.6C PI 2003 if i remember)
    Some optimization done when reading small tables (T001 society and the same, these are filled once and not for each packet of data.
    Your idea of creating different FM is of interest, but the cost of passing i_t_data between two programs (two function groups) may overcome the gain of performance. In a job only one DataSource is processed so only one routine is actually called.
    Regards.

  • Counter logic  in Function module of the generic extraction

    Hi,
    I had like to add this counter field which can be used in reporting..
    As this extraction logic is bit different, i cannot include it in transformations with 1 as a constant..
    so i am wrtiting this logic in Function Module..
    in the main table loop i had assigned this counter as 1 and after appending it i am clearing the counter field...
    is it a correct way or is there any thing that needs to be taken care?

    Hi,
    it will put 1 for every record.
    Can you share your coding ? please copy past your coding
    Regards,
    G

  • How to specify  or link Logical database to a Function Module.

    Hi Experts,
                      If a logical database is used in a function module, then  I want to know how & where to specify Logical database name. Like incase of  a normal se38 program we specify this name via menupath Program----> Attributes of ABAP editor screen.

    Hi,
    There are two ways of using a logical database: Either by linking it with an executable program, or by using the function module LDB_PROCESS in any ABAP program.
    Also check this link,
    http://help.sap.com/saphelp_nw2004s/helpdata/en/60/183d78163011d2953c0000e8353423/content.htm
    Regards,
    Ruthra

  • Function module for logical database

    hi
    which function module will return the logical database for a given application component from the SAP hierarchy.
    Example:
    Input- application component- LO
    output- MSM, etc.,
    Thank you.

    RS_COMPONENT_VIEW
    TADIR and LDBT
    LDB_INFO

Maybe you are looking for

  • Internal Storage VI error

    I am acquiring multiple channels at 5KHz (continuous) and down-sampling some of them to then store using the storage VIs. There is also some online signal processing (i.e. FFT) and visualization. On the block diagram I open a file using the event str

  • CS5 12.0.4; Camera Raw 6.7.0.339; Nikon D7100.

    With the above components I'm unable to open D7100 NEF images in CS5.  CS5 tells me I have the latest version of Camera Raw but Adobe say I need at least Camera Raw 7.4 to open D7100 NEF images. How do I proceed with this issue please? NOTE:- I've ne

  • Cumulative KF

    Can someone give examples for a cumulative and non cumulative KF pls.

  • Need Help w/ error message...​..

    My blackberry curve 8350 is showing error message 561constantly...Seems the desktop software isn't reading my phone either to reload software...what else can I do?

  • Is Lightroom available as web only app as well? Or do you need a desktop version?

    Considering to throw out the laptop and move to a chromebook, want to keep using Lightroom, so is it possible to run it as a web only app? Or do you need some form of local copy somewhere? Thanks!