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.

Similar Messages

  • Process Chain Review Question: function module/ABAP program/Event

    Hi,
    1. Can you tell me a bit more about function modules such as RSPC_CHAIN_ACTIVATE_REMOTE
    2. What are function modules in general terms. i.e.  What is their role?
    3. How do I see all function module available?
    4. When is function module used instead of ABAP program?
    5. How do they help in the support and monitoring of Process Chains?
    6. I am getting confused over the following under process chains “job”, “event”, “function module” and “ABAP Program”
    Thanks

    2. What are function modules in general terms. i.e. What is their role?
    Function module return a value ( most of the time), they return some value either a single value of rane of value or even a table. Example: FM to return fiscal period gieven the fiscal vaeiant and system date.
    3. How do I see all function module available?
    Go to Se37 and this is function builder. You will find FM starting with RS* more useful. You cna also create your own in Se37.
    4. When is function module used instead of ABAP program?
    In addtion to answer I gave in 3 above, program is used to check some logic and update some tables or give screen output.
    You may note FM is also a program.
    5. How do they help in the support and monitoring of Process Chains?
    As I said, for monitoring chains, use Sm37  and logs in RSPC.
    6. I am getting confused over the following under process chains “job”, “event”, “function module” and “ABAP Program”
    I am not clear what are you looking for.
    You cna schedule a FM or a program to run in a chain. Is that what you mean?
    Ravi Thothadri

  • 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

  • Function Module ABAP

    In SAP Abap which functional module is used to retrieve data from a table based on certain conditions?
    Moderator message : Vague subject lines, question. Thread locked.
    Edited by: Vinod Kumar on Jul 13, 2011 2:20 PM

    "In SAP Abap which functional module is used to retrieve data from a table based on certain conditions?"
    which table, what conditions, what data?SAP has n no of Function modules.You need to be more specific in your requirment.
    Ask better questions for better answers.

  • 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

  • Function module or logic for Production order Classification Controlling

    Hi All,
    I am going to CO03 transaction and display Production Order . ThenI am following path: Header-->Classification Controlling. Now i can see the General Characterstic descritpton and Value.
    Can some one give me the FM or logic, to read the Controlling Classification of Production Order.
    Please provide me your valuable Logic.
    Thanks in advance!

    Hi,
    try this FM '      call function 'CLAF_CLASSIFICATION_OF_OBJECTS'
    BAPI_PRODORDCONF_GETDETAIL
    Prabhudas

  • Function module & Abap Program

    Dear friends,
    I have one value in 'RSPO_CHECK_DEVICE_PERMISSION'
    function. how to use or import to abap program?
    Regards,
    Srini

    Hi,
    To Check the access permission for an output device
    call function 'RSPO_CHECK_DEVICE_PERMISSION'
        exporting
          dest                 = itcpp-tddest
        NAME                 =
        exceptions
          no_such_device       = 1
          no_permission        = 2
          others               = 3.
      if sy-subrc <> 0.
        message e460 with dest_long_name.
      endif.
    Plzz reward points i fit helps.

  • FI related function module or logic required

    hi all,
    need to calculate ending balance for the data present in internal table .
    loop .
    end balance = all dmbtrs in s(debit)  - all dmbtrs - h (credit).
    at new month.
    end = end balance for every month .
    endloop.
    the pblm is i want monthly wise data . if it s in between 1 yr its fine but if the table has data for two r three years at tht time the above logic will not work . plz help.
    regards,
    vishnu.

    Hi Vishnu,
    Just a simple workaround can be split the data into different internal table by the fiscal year. You can write a logic based on that.
    Regards,
    Atish

  • 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

  • Call an ABAP program or a function module from command prompt/python script

    Dear All,
    I want to call a function module/ABAP program from command prompt or a python script.
    Let me explain with an example.
    There is a function module "z_add" that takes  two integers as input parameters and generates their sum.
    the sum is the output parameter.
    Now i want to call this function module from command prompt / python script and pass parameters to this function module.
    In return i must get the sum(i.e. the output of function module).
    I tried using STARTRFC ,was able to call the FM but could not get the return value(output) from FM.
    Can you please provide me the code of such a function module and the method to call it thereby passing parameters and getting the sum.
    Thanks and regards,
    Gaurav
    Edited by: gauravkec2005 on Mar 4, 2010 7:41 AM

    thank you both!  helpful answers! :o)
    anyway! 
    i have written the program which is called from the SAPScript:
        /:       PERFORM GET_VATNUMBER IN PROGRAM ZFI_F140_OPERATIONS
        /:       USING &BKPF-BUKRS&
        /:       CHANGING &VATNUMBER&
        CE       VAT Registration No : &VATNUMBER&
        REPORT zfi_f140_operations.
        FORM get_vatnumber TABLES in_par  STRUCTURE itcsy
                                  out_par STRUCTURE itcsy.
          DATA: lv_co_code TYPE bukrs,
                lv_vat_no  TYPE stceg.
          READ TABLE in_par WITH KEY name = 'BKPF-BUKRS'.
          MOVE in_par-value TO lv_co_code.
          SELECT SINGLE stceg FROM t001
            INTO lv_vat_no WHERE bukrs = lv_co_code.
          out_par-name = 'VATNUMBER'.
          WRITE lv_vat_no TO out_par-value.
          CONDENSE out_par-value.
          MODIFY out_par INDEX 1.
        ENDFORM.              
    it is not working and i cannot work out why... 
    i have not been ABAPing for very long but have had a go.... 
    any thoughts as to what i have done wrong?
    or point me where i should be looking?  thank you!

  • How to make use of SE37- Function Module & how to find out the table?

    Hi ,
    1.Could anyone help me what's this SE37-Function module is all about,How to make use of this?
    For Eg,If i want to delete a BOM permanently from the system then I have to use the Function module CM_DB_DEL_FROM_ROOT_BOM.
    But after giving the particular name what should i do?
    Please help me.
    2.How to find out the respective table for a particular field sya for T code-COGI, T code MFBF,where its values are getting populated.,Please help in this issue.
    Thanks in adavnce for spending some time
    Raj.S

    Hi Raj
    Function Modules
    Function modules are procedures that are defined in special ABAP programs only, so-called function groups, but can be called from all ABAP programs. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the SAP System. They are managed in a central function library. The SAP System contains several predefined functions modules that can be called from any ABAP program. Function modules also play an important role during updating  and in interaction between different SAP systems, or between SAP systems and remote systems through remote communications.
    Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the Function Builder. The actual ABAP interface definition remains hidden from the programmer. You can define the input parameters of a function module as optional. You can also assign default values to them. Function modules also support exception handling. This allows you to catch certain errors while the function module is running. You can test function modules without having to include them in a program using the Function Builder.
    The Function Builder  also has a release process for function modules. This ensures that incompatible changes cannot be made to any function modules that have already been released. This applies particularly to the interface. Programs that use a released function module will not cease to work if the function module is changed.
    Check this link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    You can execute function module in SE37ie you can perform the activiites defined in the function module by executing it.
    By deleting BOM you mention the FM name in se37 and execute. In some function module it will ask input parameters as developed in the program , you have to give the input parameters and execute.

  • Regarding the function modules

    Hi anybody pls tell me
    what are the scenarios for the creation of function module
    can you give me the some examples
    thanks in advance

    <b>Function Modules</b>
    Function modules are procedures that are defined in function groups (special ABAP programs with type F) and can be called from any ABAP program. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the  Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the R/3 System. They are stored in a central library. The R/3 System contains a wide range of predefined function modules that you can call from any ABAP program. Function modules also play an important role in database updates and in remote communications between R/3 Systems or between an R/3 System and a non-SAP system.
    Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the  Function Builder. The actual ABAP interface definition remains hidden from the programmer. You can define the input parameters of a function module as optional. You can also assign default values to them. Function modules also support exception handling. This allows you to catch certain errors while the function module is running. You can test function modules without having to include them in a program using the  Function Builder.
    The  Function Builder also has a release process for function modules. This ensures that incompatible changes cannot be made to any function modules that have already been released. This applies particularly to the interface. Programs that use a released function module will not cease to work if the function module is changed

  • Difference between function module and a method?

    Hi Experts
    Can anybody pls tell me the technical and functional difference between function moduel and a method?
    Thanks
    Sudhansu

    Hi,
    Function modules are procedures that are defined in function groups (special ABAP programs with type F) and can be called from any ABAP program. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the R/3 System. They are stored in a central library. The R/3 System contains a wide range of predefined function modules that you can call from any ABAP program. Function modules also play an important role in database updates and in remote communications between R/3 Systems or between an R/3 System and a non-SAP system.
    You can declare methods in the declaration part of a class or in an interface. To declare instance methods, use the following statement:
    METHODS <meth> IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
                   EXPORTING.. [VALUE(]<ei>[)] TYPE type [OPTIONAL]..
                   CHANGING.. [VALUE(]<ci>[)] TYPE type [OPTIONAL]..
                   RETURNING VALUE(<r>)
                   EXCEPTIONS.. <ei>..
    When you declare a method, you also define its parameter interface using the additions IMPORTING, EXPORTING, CHANGING, and RETURNING. The additions define the input, output, and input/output parameters, and the return code. They also define the attributes of the interface parameters, namely whether a parameter is to be passed by reference or value (VALUE), its type (TYPE), and whether it is optional (OPTIONAL, DEFAULT).
    Unlike in function modules, the default way of passing a parameter in a method is by reference.
    As in function modules, you can use exception parameters (EXCEPTIONS) to allow the user to react to error situations when the method is executed.
    As in function modules, you can use the RAISE <exception> and MESSAGE RAISING statements to handle error situations.
    Regards,
    Sruthi

  • Diff between Function Module and subroutine

    sir,
      explain the difference between Function Module and Subroutine.

    Hi Sandeep,
    Subroutines:
       Subroutines are procedures that you can define in any ABAP program and also call from any program. Subroutines are normally called internally, that is, they contain sections of code or algorithms that are used frequently locally. If you want a function to be reusable throughout the system, use a function module.
    Function Modules:
    Function modules are procedures that are defined in function groups (special ABAP programs with type F) and can be called from any ABAP program. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the R/3 System. They are stored in a central library.
    Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the Function Builder.
    Regards,
    Sunil

  • Brefely explain function module

    hi
               this is ramireddy.

    hi ram,
    Function modules are procedures that are defined in function groups (special ABAP programs with type F) and can be called from any ABAP program. Function groups act as containers for function modules that logically belong together,Function modules allow you to encapsulate and reuse global functions in the R/3 System. They are stored in a central library,Unlike subroutines, you do not define function modules in the source code of your program.
    3 types.
    1)normal function module
    2)remote function module
    Difference between FM and subroutines
    difference between function module and subroutines
    function module vs loacal subroutines
    3)update function module
    reward points if helpful.

Maybe you are looking for