Problem in Update PO Function module in SRM

Hi all,
I am updating the existing PO with the Function Module 'bbp_po_app_update_po' in SRM system.When i execute this in my program , I am not getting any errors.
After this function module call, I committed using 'Commit work and wait'. But my records are not updated. This function module Contains ''BBP_PD_PO_UPDATE''
function module. It returns the value e_changed = 'X'. But records not updated in table. Please Advice.

Hi
I have built a FM to update the PO with a new line item I am getting the same error "update was terminated" when I executed this FM. I am giving here the code can you suggest something.
FUNCTION Z_ADD_CR_TO_PO.
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(CR_NUMBER) TYPE  CRMT_OBJECT_ID_DB
*"  TABLES
*"      MESSAGES STRUCTURE  BBP_PDS_MESSAGES
DATA: lv_text(80)     TYPE c.
DATA: ls_header_d     LIKE bbp_pds_po_header_d,
      lt_item_d       LIKE bbp_pds_po_item_d OCCURS 0 WITH HEADER LINE,
      lt_account_d    LIKE bbp_pds_acc OCCURS 0 WITH HEADER LINE,
      lt_partner_d    LIKE bbp_pds_partner OCCURS 0 WITH HEADER LINE,
      lt_orgdata_d    LIKE bbp_pds_org OCCURS 0 WITH HEADER LINE,
      lt_status       like   bbp_pds_status occurs 0 with header line ,
      wa_status       type bbp_pds_status,
      new_item_data       LIKE bbp_pds_po_item_d  ,
      new_account_data    LIKE bbp_pds_acc ,
      new_partner_data    LIKE bbp_pds_partner ,
      new_orgdata_data    LIKE bbp_pds_org,
      new_longtext_data   LIKE bbp_pds_longtext,
      new_tax_data        LIKE bbp_pds_tax,
      ls_header_c     LIKE bbp_pds_po_header_ic,
      lt_item_c       LIKE bbp_pds_po_item_icu OCCURS 0 WITH HEADER LINE,
      lt_account_c    LIKE bbp_pds_acc OCCURS 0 WITH HEADER LINE,
      lt_partner_c    LIKE bbp_pds_partner OCCURS 0 WITH HEADER LINE,
      lt_orgdata_c    LIKE bbp_pds_org OCCURS 0 WITH HEADER LINE,
      lt_messages     LIKE bbp_pds_messages OCCURS 0,
      lv_counter      TYPE i,
      lt_longtext_d   LIKE bbp_pds_longtext OCCURS 0 WITH HEADER LINE,
      lt_longtext_c   LIKE bbp_pds_longtext  OCCURS 0 WITH HEADER LINE,
      ls_new_header   LIKE bbp_pds_po_header_d,
      lt_tax like bbp_pds_tax occurs 0 with header line,
      lt_tax_c like bbp_pds_tax occurs 0 with header line,
      changed type c,
      newpoheader type BBP_PDS_PO_HEADER_D.
DAtA :   new_item_guid type crmd_orderadm_i-guid,
          lin type i,
          new_number type i.
tables : crm_jest.
data : status_table type crm_jest occurs 0 with header line,
        original_status like   bbp_pds_status occurs 0 with header line.
data : wa_req_details like zchg_req_details.
data:   no_items(4)  .
data : lineno(4).
IF sy-batch = 'X'.
  MESSAGE i088(sf) WITH 'Beginn des Performancetests'(102).
ENDIF.
CALL FUNCTION 'BBP_PD_PO_GETDETAIL'
  EXPORTING
    i_object_id       = cr_number
    i_attach_with_doc = ' '
    i_with_itemdata   = 'X'
    i_read_be_data    = ' '
  IMPORTING
    e_header          = ls_header_d
  TABLES
    e_item            = lt_item_d
    e_account         = lt_account_d
    e_partner         = lt_partner_d
    e_longtext        = lt_longtext_d
    e_orgdata         = lt_orgdata_d
    e_status          = lt_status
    e_tax             = lt_tax.
IF sy-batch = 'X'.
  MESSAGE i088(sf) WITH 'GetDetail abgeschlossen'(105).
ENDIF.
original_status[] = lt_status[].
describe table lt_status lines  lineno.
*preapring header data....
*Header Data ...
MOVE ls_header_d TO ls_header_c.
*CLEAR ls_header_c-object_id.
*MOVE 'A' TO ls_header_c-guid.
CONCATENATE 'Kopie von PO '(099) ' mit '(101) no_items ' Positionen'(100)
            INTO ls_header_c-description  .
LOOP AT lt_partner_d WHERE p_guid = ls_header_d-guid.
  MOVE-CORRESPONDING lt_partner_d TO lt_partner_c.
  lt_partner_c-p_guid = ls_header_c-guid.
*  CLEAR lt_partner_c-partner_guid.
  APPEND lt_partner_c.
ENDLOOP.
LOOP AT lt_orgdata_d WHERE p_guid = ls_header_d-guid.
  MOVE-CORRESPONDING lt_orgdata_d TO lt_orgdata_c.
*  CLEAR lt_orgdata_c-guid.
  lt_orgdata_c-p_guid = ls_header_c-guid.
  APPEND lt_orgdata_c.
ENDLOOP.
LOOP AT lt_longtext_d WHERE guid = ls_header_d-guid.
  MOVE-CORRESPONDING lt_longtext_d TO lt_longtext_c.
*  CLEAR lt_orgdata_c-guid.
  lt_longtext_c-guid = ls_header_c-guid.
  APPEND lt_longtext_c.
ENDLOOP.
DATA: ls_header_u TYPE  bbp_pds_po_header_u .
MOVE-CORRESPONDING ls_header_c TO ls_new_header.
MOVE-CORRESPONDING ls_new_header TO ls_header_u.
ls_header_u-be_log_system = 'ESAPD12125'.
loop at lt_status.
status_table-objnr = lt_status-p_guid.
status_table-stat = lt_status-stat.
status_table-inact = lt_status-inact.
modify crm_jest from status_table.
endloop.
* Item data ...
* Fill the new item into item table
describe table lt_item_d lines lin.
new_number = lin + 1.
CALL FUNCTION 'GUID_CREATE'
IMPORTING
   EV_GUID_16       = new_item_guid.
new_item_data-guid = new_item_guid.
new_item_data-number_int = new_number.
*move ls_header_u-guid to new_item_data-parent.
new_item_data-description = 'test item'.
new_item_data-category_id = lt_item_d-category_id.
new_item_data-quantity = '2'.
new_item_data-unit = lt_item_d-unit.
new_item_data-subtype = lt_item_d-subtype.
new_item_data-price = '10'.
new_item_data-price_unit = lt_item_d-price_unit.
new_item_data-deliv_date = sy-datum.
new_item_data-product_type = lt_item_d-product_type.
new_item_data-gross_price = '10'.
*new_item_data-be_obj_item = new_number.
new_item_data-be_object_type = lt_item_d-be_object_type.
new_item_data-be_object_id = lt_item_d-be_object_id.
new_item_data-be_plant = lt_item_d-be_plant.
new_item_data-be_pur_group = lt_item_d-be_pur_group.
new_item_data-be_pur_org = lt_item_d-be_pur_org.
new_item_data-be_co_code = lt_item_d-be_co_code.
new_item_data-be_doc_type = lt_item_d-be_doc_type.
new_item_data-be_log_system = 'ESAPD12125'.
new_item_data-src_object_type = 'ZBUS9000'.
append  new_item_data to lt_item_d.
*filling partner data for the new item.
loop at lt_partner_d where p_guid = lt_item_d-guid.
move-corresponding lt_partner_d to new_partner_data.
clear new_partner_data-p_guid.
clear new_partner_data-partner_guid.
move new_item_guid to new_partner_data-p_guid.
append new_partner_data to lt_partner_d.
clear new_partner_data.
endloop.
*filling the account data for the new item.
new_account_data-p_guid = new_item_guid.
new_account_data-distr_perc = '100'.
new_account_data-acc_no = '0001'.
new_account_data-acc_cat = 'NET'.
*new_account_data-g_l_acct = wa_req_details-gl_account.
*new_account_data-network = wa_req_details-acc_number.
new_account_data-g_l_acct = '0000402611'.
new_account_data-network = '000090001903'.
new_account_data-activity = '0010'.
new_account_data-co_area = '1000'.
append new_account_data to lt_account_d.
*filling the tax data
new_tax_data-p_guid = new_item_guid.
new_tax_data-tax_code = 'U1'.
new_tax_data-tax_code_origin = 'F'.
new_tax_data-currency = 'USD'.
append new_tax_data to lt_tax.
*filling Org data for the new item.
loop at lt_orgdata_d where p_guid = lt_item_d-guid.
move-corresponding lt_orgdata_d to new_orgdata_data.
clear new_orgdata_data-p_guid.
clear new_orgdata_data-guid.
move new_item_guid to new_orgdata_data-p_guid.
append new_orgdata_data to lt_orgdata_d.
clear new_orgdata_data.
endloop.
no_items = new_number.
*updation of data to new tables.
loop at lt_item_d.
lv_counter = lv_counter + 1.
MOVE-CORRESPONDING lt_item_d TO lt_item_c.
MOVE ls_header_u-guid TO lt_item_c-parent.
append lt_item_c.
  LOOP AT lt_partner_d WHERE p_guid = lt_item_d-guid.
    MOVE-CORRESPONDING lt_partner_d TO lt_partner_c.
*    CLEAR: lt_partner_c-partner_guid.
    MOVE lt_item_c-guid TO lt_partner_c-p_guid.
    APPEND lt_partner_c.
  ENDLOOP.
  LOOP AT lt_account_d WHERE p_guid = lt_item_d-guid.
    MOVE-CORRESPONDING lt_account_d TO lt_account_c.
*    CLEAR lt_account_c-guid.
    MOVE lt_item_c-guid TO lt_account_c-p_guid.
    APPEND lt_account_c.
  ENDLOOP.
  LOOP AT lt_orgdata_d WHERE p_guid = lt_item_d-guid.
    MOVE-CORRESPONDING lt_orgdata_d TO lt_orgdata_c.
*    CLEAR lt_orgdata_c-guid.
    MOVE lt_item_c-guid TO lt_orgdata_c-p_guid.
    APPEND lt_orgdata_c.
  ENDLOOP.
  LOOP AT lt_longtext_d WHERE guid = lt_item_d-guid.
    MOVE-CORRESPONDING lt_longtext_d TO lt_longtext_c.
*    CLEAR lt_orgdata_c-guid.
    lt_longtext_c-guid = lt_item_c-guid.
    APPEND lt_longtext_c.
  ENDLOOP.
    LOOP AT lt_tax WHERE p_guid = lt_item_d-guid.
    MOVE-CORRESPONDING lt_tax TO lt_tax_c.
*    CLEAR lt_orgdata_c-guid.
   MOVE lt_item_c-guid TO lt_tax_c-p_guid.
    APPEND lt_tax_c.
  ENDLOOP.
*endif.
endloop.
*ENDDO.
CALL FUNCTION 'BBP_PD_PO_UPDATE'
  EXPORTING
    i_park     = 'X'
    i_header   = ls_header_u
  IMPORTING
    E_CHANGED  = changed
    ES_HEADER  = newpoheader
  TABLES
    i_item     = lt_item_c
    i_account  = lt_account_c
    i_partner  = lt_partner_c
    i_longtext = lt_longtext_c
    i_orgdata  = lt_orgdata_c
    e_messages = lt_messages
    i_tax      = lt_tax_c.
messages[] = lt_messages[].
*CALL FUNCTION 'BBP_PD_PO_SAVE'.
CALL FUNCTION 'BBP_PD_PO_SAVE'
EXPORTING
**   IV_WORKITEM_ID               =
**   IV_USERTYPE                  =
   IV_HEADER_GUID               = newpoheader-guid.
* IV_CREATE_HIST_VERSION       = 'X'.
CALL FUNCTION 'BBP_PROCDOC_RESET_BUFFER'.
commit work and wait.
ENDFUNCTION.

Similar Messages

  • Usage of update Task Function Modules

    During an application development using WDA I have stumbeled across this unique problem.
    As recommended by SAP I am trying to use update function module to update my SAP Database. But calling the function in WDA does not update the database.
    <b>On the other hand when I call the same function module without the key words in UPDATE task, it updates the database.</b>
    <i>So my question is
    Can I use Update task function modules in WDA?</i>
    If answer is Yes, then I would like to know How?
    If answer is No,  then what is the best practice for updating the SAP database in WDA applications.

    Try Add a commit work after the call.
    Cheers
    Phil

  • Run Time of update task function module

    Hi
    Any body please tell me how to find out the execution time for a update task function module with in a user exit.
    thanks in advance
    saravanan

    Vimal,
    if the INSERT tries to insert an existing key, check for sy-subrc = 4 in the function module, raise an error (duplicate key) and the iupdate process is aborted - you will get express message.
    It might be better to
    first lock the table
    then check the existence of key
    then call update function (update process will unlock).
    Regards,
    Clémens

  • Problem while importing RFC function module in XI. Please Help!

    Hi Experts,
               When I try to import RFC function module in XI I get the following error:
                 **Ready for import**
    Import started...
    YCOP_VALIDATE_GR:
      + com.sap.aii.ibrep.sbeans.upload.RemoteUploadException: connection closed without message (CM_NO_DATA_RECEIVED)
    Import failed with 1 error
    Any idea why is this error? How to resolve this?
    Thanks
    Gopal

    Hi
       The problem still persists.
       This is what I have done:
        1. My FM is RFC enabled. In the "Attribute" tab of the FM I have selected "Remote-enabled module" and "Start immed".
    2.Activated and tested the FM.
    3.Released the FM. In se37, Function Module -> Release ->Release. 
    4.Tried to import this FM in XI under "RFC". Get the same error.
    I have some questions:
    1. After releasing the FM do I have to activate it?
    2. In release there is "Internal Release" Do I have to use that?
    3.Do I have to do "Internal Release" first then "Release"?
    4.The FM i am trying to import makes a call to another FM. Both the FMs are in the same system. Both are remote enabled. The second FM updates data in custom table. the first FM which I am importing validates the data and then calls the second FM for update. Do I have to import both FMs?
    Please help me!
    Thanks
    Gopal

  • Problem while working with function module RFC_READ_TABLE

    Dear Experts,
                     I am facing a problem while working on the FM RFC_READ_TABLE, in which there is a tables parameter options which is of table type, to which I am passing the condition of selection.  In the debugg mode I found the select quiry in the source code of function module is not executing the condition passed in the options parameter.
    My actual requirement is to fetch all the custom programs in a remote server, the code I have written is below.
    TYPES :
             BEGIN OF ty_tadir,
               pgmid  TYPE pgmid,
               object TYPE  trobjtype,
               obj_name  TYPE  sobj_name,
             END OF ty_tadir.
    DATA : it_tadir TYPE STANDARD TABLE OF ty_tadir,
            wa_tadir TYPE ty_tadir.
      data: stmp_dokhl  like TAB512       occurs 100000 with header line.
      data: options1    like rfc_db_opt occurs     10 with header line.
    data: wa_options1 like line of options1.
      data: nametab1    like rfc_db_fld  occurs     10 with header line.
    START-OF-SELECTION.
    DATA : W_VALUE(5)  TYPE C,
           W_VALUE1(20) TYPE C.
    W_VALUE1 =  'OBJ_NAME like'.
    W_VALUE = 'z*'.
    CONCATENATE 'OBJ_NAME LIKE' ' ''' W_VALUE '''' INTO OPTIONS1-TEXT.
    CONCATENATE W_VALUE1 W_VALUE INTO wa_OPTIONS1-TEXT SEPARATED BY SPACE.
    APPEND wa_OPTIONS1 to OPTIONS1.
    CLEAR wa_OPTIONS1.
        call function 'RFC_READ_TABLE'
             destination                'zard'
             exporting
                  query_table          = 'TADIR' "'ZBANK_GUARANTEE'
             tables
                  options              = options1
                  fields               = nametab1
                  data                 = stmp_dokhl
             exceptions
                  table_not_available  = 1
                  table_without_data   = 2
                  option_not_valid     = 3
                  field_not_valid      = 4
                  not_authorized       = 5
                  data_buffer_exceeded = 6
                  others               = 7 .
    Please give me some inputs on this,
    With warm regards,
    Murthy.
    Edited by: pr murthy on Sep 18, 2008 1:49 PM
    Edited by: pr murthy on Sep 18, 2008 2:14 PM

    Hi
    I have tried this and with small change this is working fine.
    TYPES :
    BEGIN OF ty_tadir,
    pgmid TYPE pgmid,
    object TYPE trobjtype,
    obj_name TYPE sobj_name,
    END OF ty_tadir.
    DATA : it_tadir TYPE STANDARD TABLE OF ty_tadir,
    wa_tadir TYPE ty_tadir.
    data: stmp_dokhl like TAB512 occurs 100000 with header line.
    data: options1 like rfc_db_opt occurs 10 with header line.
    data: wa_options1 like line of options1.
    data: nametab1 like rfc_db_fld occurs 10 with header line.
    START-OF-SELECTION.
    DATA : W_VALUE(5) TYPE C,
    W_VALUE1(20) TYPE C.
    W_VALUE1 = 'OBJ_NAME LIKE ''Z%'''.
    wa_options1-text = w_value1.
    APPEND wa_OPTIONS1 to OPTIONS1.
    CLEAR wa_OPTIONS1.
    call function 'RFC_READ_TABLE'
    *destination 'zard'
    exporting
    query_table = 'TADIR' "'ZBANK_GUARANTEE'
    tables
    options = options1
    fields = nametab1
    data = stmp_dokhl
    exceptions
    table_not_available = 1
    table_without_data = 2
    option_not_valid = 3
    field_not_valid = 4
    not_authorized = 5
    data_buffer_exceeded = 6
    others = 7 .

  • Batch status updating using function module BAPI_BATCH_SAVE_REPLICA

    Hi,
    I want to change batch status after creating the outbound delivery through inbound idoc, i was able to create delivery , but after creation, i should update the batch status using function module BAPI_BATCH_SAVE_REPLICA, but i was unable to execute this function module correctly,
    Can any one provide details like what are minimum things that are required to update the batch status using this function module.
    In my system batches are defined at plant level.
    Please let me know the solution if any one knows this.
    With regards.
    P.Prasanth.

    Look at BAPI_INCOMINGINVOICE_POST
    Rob

  • Function module for srm document flow

    Hi Friends,
                  If there is any function module which give me the complete document flow for the document.

    Hi Nilesh,
    Are you talking about shopping cart?
    pl. go to transaction BBP_PD in EBP GUI.
    this transation can give you which all tables are updated when a SC is created.
    BR
    Dinesh

  • Problem with IDOC inbound function module

    hi
       While excecuting the inbound function module in WE19
    I am getting error (short dump) 
    Incorrect parameter with Call transaction.

    Creating a Function Module (Direct Inbound Processing)
    This step describes how to create a function module which is identified by the IDoc Interface using a new process code and called from ALE (field TBD52-FUNCNAME). Direct inbound processing using a function module (not using a workflow) always includes the ALE layer. This setting (processing with function module and ALE layer) is identified by the value 6 in the field TEDE2-EDIVRS, which is read by the function module IDOC_START_INBOUND. IDOC_START_INBOUND then calls ALE.
    Prerequisites
    You must have completed the required steps in Defining and Using a Basic Type .
    Procedure
    Choose Tools ® ABAP Workbench ® Development ® Function Builder, and create a new function module.
    Create the segments as global data in your function group. The function module should copy the application data from the segments into the corresponding application tables and modify the IDoc status accordingly. If an error occurs, the function module must set the corresponding workflow parameters for exception handling.
    Activate the function module: From the initial screen of the Function Builder select .
    In the example, create the function module IDOC_INPUT_TESTER with a global interface. The function module is called when an IDoc of type TESTER01 is received for inbound processing. You will assign an application object ("standard order") to this IDoc type and therefore maintain tables from SD. To do this, call transaction VA01 using the command CALL TRANSACTION. Please note that the intention here is not to simulate a realistic standard order, but only to illustrate how data reaches application tables from an IDoc table via segment structures (form routine READ_IDOC_TESTER) and how the function module triggers an event for exception handling (by returning suitable return variables to the ALE layer in the FORM routine RETURN_VARIABLES_FILL).
    A comprehensive example of the code for an inbound function module is provided in the ALE documentation in the SAP Library under  Example Program to Generate an IDoc. This function module, for example, also checks whether the logical message is correct and calls a (fictitious) second function module which first writes the application data and then returns the number of the generated document. In addition, status 53 is only set if the application document was posted correctly.
    Administration parameters for IDOC_INPUT_TESTER
    Application abbreviation
    V (Sales and Distribution)
    Processing type
    Normal, start immediately
    Interface for IDOC_INPUT_TESTER (global interface)
    Formal parameters
    Reference structure
    Explanation
    Import parameters
    INPUT_METHOD
    BDWFAP_PAR-INPUTMETHD
    Describes how the function module is to be processed (example: in the background)
    MASS_PROCESSING
    BDWFAP_PAR-MASS_PROC
    Mass inbound processing? (indicator)
    Export parameters
    WORKFLOW_RESULT
    BDWFAP_PAR-RESULT
    Set to 99999 if an event is to be triggered for error handling.
    APPLICATION_VARIABLE
    BDWFAP_PAR-APPL_VAR
    Variable freely available from application for workflow
    IN_UPDATE_TASK
    BDWFAP_PAR-UPDATETASK
    Asynchronous update? (indicator is not set in example)
    CALL_TRANSACTION_DONE
    BDWFAP_PAR-CALLTRANS
    Transaction called? (indicator is not set in example)
    Table
    IDOC_CONTRL
    EDIDC
    IDoc control record
    IDOC_DATA
    EDIDD
    IDoc data records
    IDOC_STATUS
    BDIDOCSTAT
    IDoc status records for ALE
    RETURN_VARIABLES
    BDWFRETVAR
    IDoc assigned to Object type method parameters.
    SERIALIZATION_INFO
    BDI_SER
    If several IDocs are to be processed in a certain sequence: this structure contains the necessary information
    Example
    FUNCTION IDOC_INPUT_TESTER.
    ""Globale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR-INPUTMETHD
    *"             VALUE(MASS_PROCESSING) LIKE  BDWFAP_PAR-MASS_PROC
    *"       EXPORTING
    *"             VALUE(WORKFLOW_RESULT) LIKE  BDWFAP_PAR-RESULT
    *"             VALUE(APPLICATION_VARIABLE) LIKE  BDWFAP_PAR-APPL_VAR
    *"             VALUE(IN_UPDATE_TASK) LIKE  BDWFAP_PAR-UPDATETASK
    *"             VALUE(CALL_TRANSACTION_DONE) LIKE  BDWFAP_PAR-CALLTRANS
    *"       TABLES
    *"              IDOC_CONTRL STRUCTURE  EDIDC OPTIONAL
    *"              IDOC_DATA STRUCTURE  EDIDD
    *"              IDOC_STATUS STRUCTURE  BDIDOCSTAT
    *"              RETURN_VARIABLES STRUCTURE  BDWFRETVAR
    *"              SERIALIZATION_INFO STRUCTURE  BDI_SER
    initialize SET/GET Parameter and internal tables
      PERFORM INITIALIZE_ORGANIZATIONAL_DATA.
    Move IDOC to internal tables of application
      PERFORM READ_IDOC_TESTER.
    call transaction Order Entry VA01
      PERFORM CALL_VA01_IDOC_ORDERS USING ERRORCODE.
    set status value
      perform write_status_record using errorcode.
    return values of function module
      PERFORM RETURN_VARIABLES_FILL USING ERRORCODE.
    ENDFUNCTION.
    FORM INITIALIZE_ORGANIZATIONAL_DATA.
    initialize SET/GET parameters
       SET PARAMETER ID 'VKO' FIELD SPACE.
       SET PARAMETER ID 'VTW' FIELD SPACE.
       SET PARAMETER ID 'SPA' FIELD SPACE.
       SET PARAMETER ID 'VKB' FIELD SPACE.
       SET PARAMETER ID 'VKG' FIELD SPACE.
    initialize internal tables
       REFRESH BDCDATA.
       CLEAR BDCDATA.
       CLEAR BELEGNUMMER.
       CLEAR ERRTAB.
       REFRESH ERRTAB.
       REFRESH XBDCMSGCOLL.
       CLEAR XBDCMSGCOLL.
    ENDFORM.                    " INITIALIZE_ORGANIZATIONAL_DATA
    FORM READ_IDOC_TESTER.
      PERFORM INITIALIZE_IDOC.
    LOOP AT IDOC_DATA
       WHERE DOCNUM = IDOC_CONTRL-DOCNUM.
        CASE IDOC_DATA-SEGNAM.
    header data
          WHEN 'E1HEAD'.
            MOVE IDOC_DATA-SDATA TO E1HEAD.
            PERFORM PROCESS_SEGMENT_E1HEAD.
    position data
          WHEN 'E1ITEM'.
            MOVE IDOC_DATA-SDATA TO E1ITEM.
            PERFORM PROCESS_SEGMENT_E1ITEM.
        ENDCASE.
    ENDLOOP.
    only when there were one or more items
      CHECK FIRST NE 'X'.
      APPEND XVBAP.                        "last one
    ENDFORM.                    " READ_IDOC_TESTER
    FORM INITIALIZE_IDOC.
      CLEAR XVBAK.
      REFRESH XVBAP.
      CLEAR XVBAP.
      POSNR = 0.
      FIRST = 'X'.
    ENDFORM.                    " INITIALIZE_IDOC
    FORM PROCESS_SEGMENT_E1HEAD.
    requested date of delivery
      WLDAT = E1HEAD-WLDAT.
    delivery date
      XVBAK-BSTDK = E1HEAD-BSTDK.
    customer number
      XVBAK-KUNNR = E1HEAD-AUGEB.
    order number
      XVBAK-BSTNK = E1HEAD-BELNR.
    division
      XVBAK-SPART = E1HEAD-SPART.
    distribution channel
      XVBAK-VTWEG = E1HEAD-VTWEG.
    sales organization
      XVBAK-VKORG = E1HEAD-VKORG.
    order type
      XVBAK-AUART = E1HEAD-AUART.
    do not fill incoterms (inco1, inco2)
    customer function
      CALL CUSTOMER-FUNCTION '001'
           EXPORTING
                PI_VBAK621           = XVBAK
           IMPORTING
                PE_VBAK621           = XVBAK
           TABLES
                PT_IDOC_DATA_RECORDS = IDOC_DATA.
    ENDFORM.                    " PROCESS_SEGMENT_E1HEAD
    FORM PROCESS_SEGMENT_E1ITEM.
    position number
      XVBAP-POSNR = XVBAP-POSNR + 1.
    amount
      XVBAP-WMENG = E1ITEM-MENGE.
    unit
      CALL FUNCTION 'ISO_TO_SAP_MEASURE_UNIT_CODE'
           EXPORTING
                ISO_CODE  = E1ITEM-BMEINH
           IMPORTING
                SAP_CODE  = XVBAP-VRKME
           EXCEPTIONS
                OTHERS    = 0.
    material number
      XVBAP-MATNR = E1ITEM-LMATNR.
    CALL CUSTOMER-FUNCTION '002'
           EXPORTING
                PI_VBAP621           = XVBAP
           IMPORTING
                PE_VBAP621           = XVBAP
           TABLES
                PT_IDOC_DATA_RECORDS = IDOC_DATA.
    APPEND XVBAP.
    ENDFORM.                    " PROCESS_SEGMENT_E1ITEM
    FORM CALL_VA01_IDOC_ORDERS USING ERRORCODE.
    call transaction first dynpro
      PERFORM DYNPRO_START.
    call transaction double-line entry
      PERFORM DYNPRO_DETAIL2.
    incoterms
      PERFORM DYNPRO_HEAD_300.
    call transaction item datas
      PERFORM DYNPRO_POSITION.
      PERFORM DYNPRO_SET USING 'BDC_OKCODE' 'SICH'.
    determine input method
      IF INPUT_METHOD IS INITIAL.
        INPUT_METHOD = 'N'.
      ENDIF.
    call transaction VA01
    CALL TRANSACTION 'VA01' USING    BDCDATA
                             MODE     INPUT_METHOD
                             UPDATE   'S'
                             MESSAGES INTO XBDCMSGCOLL.
    errorcode = SY-SUBRC.       " remember returncode for status update
    ENDFORM.                    " CALL_VA01_IDOC_ORDERS
    form write_status_record using errorcode.
    FILL IDOC_STATUS
    IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
    IF ERRORCODE = 0.
    IDOC_STATUS-STATUS = BELEG_GEBUCHT. "value 53
       GET PARAMETER ID 'AUN' FIELD BELEGNUMMER.
       IDOC_STATUS-MSGID = 'V1'.
       IDOC_STATUS-MSGNO = '311'.
       IDOC_STATUS-MSGV1 = 'Terminauftrag'.
       IDOC_STATUS-MSGV2 = BELEGNUMMER.
    ELSE.
        IDOC_STATUS-STATUS = BELEG_NICHT_GEBUCHT. "value 51
        IDOC_STATUS-MSGID = SY-MSwGID.
        IDOC_STATUS-MSGNO = SY-MSGNO.
        IDOC_STATUS-MSGV1 = SY-MSGV1.
        IDOC_STATUS-MSGV2 = SY-MSGV2.
        IDOC_STATUS-MSGV3 = SY-MSGV3.
        IDOC_STATUS-MSGV4 = SY-MSGV4.
      ENDIF.
      APPEND IDOC_STATUS.
    ENDFORM.
    FORM DYNPRO_START.
      PERFORM DYNPRO_NEW USING PROGRAMM_AUFTRAG
                               DYNPRO-EINSTIEG
                      CHANGING LAST_DYNPRO.
    ordertype
      PERFORM DYNPRO_SET USING 'VBAK-AUART' XVBAK-AUART.
    sales organization
      PERFORM DYNPRO_SET USING 'VBAK-VKORG' XVBAK-VKORG.
    Distribution channel
      PERFORM DYNPRO_SET USING 'VBAK-VTWEG' XVBAK-VTWEG.
    Division
      PERFORM DYNPRO_SET USING 'VBAK-SPART' XVBAK-SPART.
    Sales office
      PERFORM DYNPRO_SET USING 'VBAK-VKBUR' XVBAK-VKBUR.
    Sales group
      PERFORM DYNPRO_SET USING 'VBAK-VKGRP' XVBAK-VKGRP.
    ENDFORM.                    " DYNPRO_START
    FORM DYNPRO_NEW USING    PROGNAME
                             DYNPRONR
                    CHANGING LAST_DYNPRO.
    CLEAR BDCDATA.
    BDCDATA-PROGRAM = PROGNAME.
    BDCDATA-DYNPRO  = DYNPRONR.
    BDCDATA-DYNBEGIN   = 'X'.
    APPEND BDCDATA.
    LAST_DYNPRO = DYNPRONR.
    ENDFORM.                    " DYNPRO_NEW
    FORM DYNPRO_SET USING    FELDNAME
                             FELDINHALT.
      CLEAR BDCDATA.
      CHECK FELDINHALT NE SPACE.
    dynpro field name
      BDCDATA-FNAM = FELDNAME.
    contents
      BDCDATA-FVAL = FELDINHALT.
      APPEND  BDCDATA.
    ENDFORM.                    " DYNPRO_SET
    FORM DYNPRO_DETAIL2.
    okcode
    PERFORM DYNPRO_SET USING 'BDC_OKCODE' PANEL-UER2.
    fix dynpro number 4001
      PERFORM DYNPRO_NEW  USING    PROGRAMM_AUFTRAG
                                   '4001'
                          CHANGING LAST_DYNPRO.
    order party
      PERFORM DYNPRO_SET      USING 'KUAGV-KUNNR'  XVBAK-KUNNR.
    purchase order number
      PERFORM DYNPRO_SET      USING 'VBKD-BSTKD'   XVBAK-BSTNK.
    requested delivery date
      PERFORM DYNPRO_DATE_SET USING 'VBKD-BSTDK'   XVBAK-BSTDK.
    purchase order date
      PERFORM DYNPRO_DATE_SET USING 'RV45A-KETDAT' WLDAT.
    ENDFORM.                    " DYNPRO_DETAIL2
    FORM DYNPRO_DATE_SET USING    FELDNAME
                                  FELDINHALT.
      DATA: DATE TYPE D.
      CLEAR BDCDATA.
      CHECK FELDINHALT NE SPACE.
      BDCDATA-FNAM = FELDNAME.
      WRITE FELDINHALT  TO DATE.
      BDCDATA-FVAL = DATE.
      APPEND  BDCDATA.
    ENDFORM.                    " DYNPRO_DATE_SET
    FORM DYNPRO_HEAD_300.
      PERFORM DYNPRO_SET USING 'BDC_OKCODE' PANEL-KKAU.
    incoterms part 1
      IF NOT XVBAK-INCO1 IS INITIAL.
       PERFORM DYNPRO_SET USING 'VBKD-INCO1' XVBAK-INCO1.
      ENDIF.
    incoterms part 2
      IF NOT XVBAK-INCO2 IS INITIAL.
       PERFORM DYNPRO_SET USING 'VBKD-INCO2' XVBAK-INCO2.
      ENDIF.
    PERFORM DYNPRO_SET USING 'BDC_OKCODE' 'BACK'.
    ENDFORM.                    " DYNPRO_HEAD_300
    FORM DYNPRO_POSITION.
      LOOP AT XVBAP.
    dynpro item double line entry
      PERFORM DYNPRO_SET USING 'BDC_OKCODE' 'UER2'.
        IF XVBAP-POSNR = 1.
    material number
          PERFORM DYNPRO_SET      USING 'VBAP-MATNR(01)'   XVBAP-MATNR.
    order quantity
          PERFORM DYNPRO_SET      USING 'RV45A-KWMENG(01)' XVBAP-WMENG.
    desired delivery date
          PERFORM DYNPRO_DATE_SET USING 'RV45A-ETDAT(1)'  WLDAT.
    sales unit
          PERFORM DYNPRO_SET      USING 'VBAP-VRKME(1)'   XVBAP-VRKME.
        ELSE.
         PERFORM DYNPRO_SET      USING 'BDC_OKCODE'      'POAN'.
    material number
          PERFORM DYNPRO_SET      USING 'VBAP-MATNR(02)'    XVBAP-MATNR.
    order quantity
          PERFORM DYNPRO_SET      USING 'RV45A-KWMENG(02)'  XVBAP-WMENG.
    desired delivery date
          PERFORM DYNPRO_DATE_SET USING 'RV45A-ETDAT(02)'   WLDAT.
    sales unit
          PERFORM DYNPRO_SET      USING 'VBAP-VRKME(02)'    XVBAP-VRKME.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " DYNPRO_POSITION
    FORM RETURN_VARIABLES_FILL USING ERRORCODE.
    allocate IDOC numbers to Workflow output parameters
      IF MASS_PROCESSING <> SPACE.
        IF ERRORCODE = 0.
          RETURN_VARIABLES-WF_PARAM = PID.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          RETURN_VARIABLES-WF_PARAM = APO.
          RETURN_VARIABLES-DOC_NUMBER = BELEGNUMMER.
          APPEND RETURN_VARIABLES.
          WORKFLOW_RESULT = C_WF_RESULT_OK.
        ELSE.
          RETURN_VARIABLES-WF_PARAM = EID.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
        ENDIF.
      ELSE.
        IF ERRORCODE = 0.
          RETURN_VARIABLES-WF_PARAM = APE.
          RETURN_VARIABLES-DOC_NUMBER = BELEGNUMMER.
          APPEND RETURN_VARIABLES.
          WORKFLOW_RESULT = C_WF_RESULT_OK.
        ELSE.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
        ENDIF.
      ENDIF.
    ENDFORM.                    " RETURN_VARIABLES_FILL
    Globale Daten von IDOC_INPUT_TESTER
    TABLES: E1HEAD, E1ITEM.
    DATA: BEGIN OF BDCDATA OCCURS 500.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF BDCDATA.
    DATA: BEGIN OF XVBAK.                 "Kopfdaten
         INCLUDE STRUCTURE VBAK621.
    DATA: END OF XVBAK.
    DATA: BEGIN OF XVBAP OCCURS 50.        "Position
           INCLUDE STRUCTURE VBAP.
    DATA:  WMENG(18) TYPE C.
    DATA:  LFDAT LIKE VBAP-ABDAT.
    DATA:  KSCHL LIKE KOMV-KSCHL.
    DATA:  KBTRG(16) TYPE C.
    DATA:  KSCHL_NETWR LIKE KOMV-KSCHL.
    DATA:  KBTRG_NETWR(16) TYPE C.
    DATA:  INCO1 LIKE VBKD-INCO1.
    DATA:  INCO2 LIKE VBKD-INCO2.
    DATA:  YANTLF(1) TYPE C.
    DATA:  PRSDT LIKE VBKD-PRSDT.
    DATA:  HPRSFD LIKE TVAP-PRSFD.
    DATA: END OF XVBAP.
    DATA: BEGIN OF DYNPRO,
          EINSTIEG          LIKE T185V-DYNNR VALUE 101,
          KKAU              LIKE T185V-DYNNR,
          UER2              LIKE T185V-DYNNR,
          KBES              LIKE T185V-DYNNR,
          ERF1              LIKE T185V-DYNNR,
          PBES              LIKE T185V-DYNNR,
          PKAU              LIKE T185V-DYNNR,
          PEIN              LIKE T185V-DYNNR,
          EID1              LIKE T185V-DYNNR,
          POPO              LIKE T185V-DYNNR,
          EIPO              LIKE T185V-DYNNR,
          KPAR              LIKE T185V-DYNNR,
          PSDE              LIKE T185V-DYNNR,
          PPAR              LIKE T185V-DYNNR,
          KDE1              LIKE T185V-DYNNR,
          KDE2              LIKE T185V-DYNNR,
          PDE1              LIKE T185V-DYNNR,
          PDE2              LIKE T185V-DYNNR,
          PKON              LIKE T185V-DYNNR,
          END OF DYNPRO.
    DATA: BEGIN OF PANEL,
          KKAU              LIKE T185V-PANEL VALUE 'KKAU',
          UER2              LIKE T185V-PANEL VALUE 'UER2',
          KBES              LIKE T185V-PANEL VALUE 'KBES',
          ERF1              LIKE T185V-PANEL VALUE 'ERF1',
          PBES              LIKE T185V-PANEL VALUE 'PBES',
          PKAU              LIKE T185V-PANEL VALUE 'PKAU',
          PEIN              LIKE T185V-PANEL VALUE 'PEIN',
          EID1              LIKE T185V-PANEL VALUE 'EID1',
          EIAN              LIKE T185V-PANEL VALUE 'EIAN',
          POPO              LIKE T185V-PANEL VALUE 'POPO',
          EIPO              LIKE T185V-PANEL VALUE 'EIPO',
          KPAR              LIKE T185V-PANEL VALUE 'KPAR',
          PSDE              LIKE T185V-PANEL VALUE 'PSDE',
          POAN              LIKE T185V-PANEL VALUE 'POAN',
          PPAR              LIKE T185V-PANEL VALUE 'PPAR',
          KDE1              LIKE T185V-PANEL VALUE 'KDE1',
          KDE2              LIKE T185V-PANEL VALUE 'KDE2',
          PDE1              LIKE T185V-PANEL VALUE 'PDE1',
          PDE2              LIKE T185V-PANEL VALUE 'PDE2',
          PKON              LIKE T185V-PANEL VALUE 'PKON',
          KOAN              LIKE T185V-PANEL VALUE 'KOAN',
          END OF PANEL.
    DATA: BEGIN OF ERRTAB OCCURS 20,
           TRANS  LIKE TSTC-TCODE,
           ARBGB  LIKE T100-ARBGB,
           CLASS(1) TYPE C,
           MSGNR LIKE T100-MSGNR,
         TEXT LIKE T100-TEXT,
           TEXT(123) TYPE C,
           MSGV1 LIKE SY-MSGV1,
           MSGV2 LIKE SY-MSGV2,
           MSGV3 LIKE SY-MSGV3,
           MSGV4 LIKE SY-MSGV4,
          END OF ERRTAB.
    *---- Hilfsfelder     -
    DATA: PROGRAMM_AUFTRAG LIKE T185V-AGIDV VALUE 'SAPMV45A'.
    DATA: LAST_DYNPRO      LIKE T185V-DYNNR,
          WLDAT            LIKE VBAK-BSTDK,
          POSNR            LIKE VBAP-POSNR,
          FIRST(1)         TYPE C VALUE 'X'.
    DATA: BEGIN OF XBDCMSGCOLL OCCURS 10.
            INCLUDE STRUCTURE BDCMSGCOLL.
    DATA: END OF XBDCMSGCOLL.
    Terminauftrag  ( Auftragsart wird fest gesetzt !)
    DATA:   BELEGNUMMER LIKE VBAK-VBELN.
    DATA:   ERRORCODE LIKE SY-SUBRC.
    Statuswerte fuer IDOC-Status
    DATA:   BELEG_NICHT_GEBUCHT LIKE TEDS1-STATUS VALUE '51'.
    DATA:   BELEG_GEBUCHT       LIKE TEDS1-STATUS VALUE '53'.
    *- Direktwerte für Return_variables -
    data:
        eid like bdwfretvar-wf_param value 'Error_IDOCs',
        pid like bdwfretvar-wf_param value 'Processed_IDOCs',
        apo like bdwfretvar-wf_param value 'Appl_Objects',
        ape like bdwfretvar-wf_param value 'Appl_Object'.
    *- Direktwerte für Workflow_Result -
    DATA: C_WF_RESULT_ERROR LIKE BDWFAP_PAR-RESULT VALUE '99999'.
    DATA: C_WF_RESULT_OK    LIKE BDWFAP_PAR-RESULT VALUE '0'.

  • Problem with Remotely Invoked Function Module

    Hi All,
    I have a requirement to develop a Remote Enabled Function Module in SAP R/3 which will be invoked from an XI environment via an XML message.
    The purpose of this FM is to validate the incoming data(which comes as a pair of values) by comparing it with values in a corresponding SAP Table.
    If the incoming data is consistent with the values in the SAP Table, i need to return the data in the same format as it is passed. If any inconsistent record is encountered, then i just need to delete that particular record and return the rest of them.
    I used a TABLE for the Input/Output in the FM and tried it. Though it works fine stand-alone, when invoked from the XI environment, the calling system is able to receive only the name of the Table Structure that is used in the FM for I/O.
    I am unable to comprehend the format the input comes into SAP when the FM is invoked. So I'm not able to exactly pin-point the place where the problem arises.
    Please suggest a solution.
    Any pointers in this regard will be helpful.
    Thanks in Advance.

    Hi,
    You can view the incoming message in the local XI Message Monitor SXMB_MONI. There you will see if the input table parameter is correctly filled. In the same transaction, you can also see the reply that is sent to XI. If that is OK, you know that your function works correctly. When you are sure of that, and the calling system does not get the same parameters returned as you could see, that means the mapping in XI is wrong.
    good luck,
    Peter Glas

  • Problem with Remote Invoked Function Module

    Hi All,
    I have a requirement to develop a Remote Enabled Function Module in SAP R/3 which will be invoked from an XI environment via an XML message.
    The purpose of this FM is to validate the incoming data(which comes as a pair of values) by comparing it with values in a corresponding SAP Table.
    If the incoming data is consistent with the values in the SAP Table, i need to return the data in the same format as it is passed. If any inconsistent record is encountered, then i just need to delete that particular record and return the rest of them.
    I used a TABLE for the Input/Output in the FM and tried it. Though it works fine stand-alone, when invoked from the XI environment, the calling system is able to receive only the name of the Table Structure that is used in the FM for I/O.
    I am unable to comprehend the format the input comes into SAP when the FM is invoked. So I'm not able to exactly pin-point the place where the problem arises.
    Please suggest a solution.
    Any pointers in this regard will be helpful.
    Thanks in Advance.

    Hi Keerthivasan,
    My requirement also same,
    please send me the source code.Please help me urgent.
    Thanks.

  • SAP NCO 3 (Patch 3) - Problems with USE_SAPGUI and Function Module

    Hello,
    We are moving our code to use the new SAP .NET v3 connector and have run into a slight issue which works on v2 but doesn't seem to work the same way in v3.
    We are calling a function module in SAP that will invoke the SAP GUI allow the user to interact with it.  Once the user has completed their interaction and clicked the last button, the SAP GUI is meant to disappear.  With v3 this is no longer the case.
    We are forcing the USE_SAPGUI value to 2 but this has no effect on the problem.
    In V3, the last dialog box stays on the screen and control returns to our application.  The dialog box is not active anymore and cannot be clicked.  It seems the SAP GUI will stay open with this frozen dialog box until we invoke another RFC that brings up the SAP GUI.
    My questions are:
    1) Is this a bug or is there something more I need to do to achieve this functionality?
    2) Is there anyway to forcibly close the SAP GUI connection for a RFCDestination?  The connection is closed when we close our application but I can't find a way to close all connections which would hopefully close the dialog box.
    Thanks in advance for any help on this matter.
    Thanks,
    Tim

    I can't be sure but most of the dota2 output looks "normal" to me (I get the same yet it works fine).
    eurotrucks is clearly crashing. You could try to force the resolution it uses in its config files?
    Or maybe it's missing a lib (you may need to install 32bit versions):
    ldd /path/to/eurotrucks
    to see if that's the case. If not, you might have to take it up with the eurotrucks developers.
    And you could try using fluxbox/openbox just to see what happens. A lot lighter than KDE.
    Have a good look though: https://wiki.archlinux.org/index.php/Steam
    and remember to check for missing 32bit libs.

  • Problem in converting a function module in RFC

    hi All,
    when i m converting a function module in RFC it is showing a error message ,
    Generic Types are not allowed in RFC.
    How can i handel this.
    Regards,
    Susheel Joshi

    Hi Susheel,
    RFC module interface parameters (import, export , tables) can only refer to data dictionary types. Hence if you currently have one of the parameters referring to a type defined in your function group main include or in a type pool, you need to create a SE11 data dictionary structure/ table type for that and then change the data type reference.
    Cheers,
    Aditya

  • Problem with Time stamp function module for converting US to Japan

    Hi All,
    I need standard function module for converting US Timestamp to Japan, Can any one let me know is there any standard function modules.
    thanks in advance!
    Regards,
    Kalidas.T
    Edited by: Kalidas Thirumoorthy on May 5, 2009 5:29 PM
    Edited by: Kalidas Thirumoorthy on May 5, 2009 5:30 PM
    Edited by: Kalidas Thirumoorthy on May 5, 2009 5:30 PM

    Try this way:
    CONVERT TIME STAMP <tst> TIME ZONE <tz> INTO DATE <d> TIME <t>.
    CONVERT DATE <d> TIME <t> INTO TIME STAMP <tst> TIME ZONE <tz>.
    <tst> is of type P(8) or P(11) with 7 decimal places
    <tz> of type C(6)
    Refer to help.sap.com for more details.

  • Problem in copying the function module.

    Hi All,
    I have to Copy the standard function modules "FI_ITEMS_DISPLAY" and "ITEM_DERIVE_FIELDS".
    The Function group for both of above FM is "FI_ITEMS".
    What i did is I went to SE80 ,I copied down the Function Group 'FI_ITEMS' to 'ZFI_ITEMS'.
    later on i copied the standard function modules 'FI_ITEMS_DISPLAY' and 'ITEM_DERIVE_FIELDS'
    to the 'ZFI_ITEMS_DISPLAY' and 'ZITEM_DERIVE_FIELDS' resp.in the same function group 'ZFI_ITEMS'.
    Then i made some changes to these copied modules (I did change the structure of it_items from RFPOSXEXT to ZRFPOSXEXT in ZFI_ITEM_ITEM_DISPLAY,and same change in ZITEM_DERIVE_FIELDS but for the parameter s_item).
    And finally i activated these FM..and it got activated also.
    But later on when i used these FM in my report...error occured saying that -
      "The name of the function module to be called is "ZITEM_DERIVE_FIELDS".
    but "ZITEM_DERIVE_FIELDS" cannot be found in its function group. "
        hence i thought of activating the function group ZFI_ITEMS,which was inactive before to this...but when i tried activatin this FM it was giving hell lot of errors showing conflict occured at diffrent places,I think just because of the change (structure of IT_ITEM chnged from RFPOSEXT to customised ZZRFPOSXEXT).
    I am helpless in removing all this errors ...
    Can anybody suggest where did i go wrong?
    And what is the right way to copy the function module.?
    If possible reply me ASAP.
    Thanx in advance.

    Hello Sanjay,
    First, delete your new function group and
    Do like this:
    1. copy FI_ITEMS_DISPLAY to zFI_ITEMS_DISPLAY from Se37. here you find a button on the application toolbar to do it. It also asks about the Function group. GIve the FG as
    ZFI_ITEMS.
    Activate all the related objects
    2. same for the other FM. Use the same FG. and activate the related objects.
    Regards,
    Naimesh

  • Problem while creating generic function module

    Hello experts,
    The master data 0VENDOR_ATTR is extracted using function module MDEX_VENDOR_MD. I have to create a generic data source based on the function module MDEX_VENDOR_MD. My code does not identify the data source name while debugging.
    Below is the original code from MDEX_VENDOR_MD:
    Check InfoObject validity and set IO-dependent parameters
        G_TAB1_FLG =  G_TAB2_FLG =  G_TAB3_FLG =  G_TAB4_FLG = ' '.
        CASE I_CHABASNM.
          WHEN '0VENDOR'.
            G_TAB1_FLG = 'X'.
            G_TABLENAME = 'LFA1'.
          WHEN '0VEN_COMPC'.
            G_TAB2_FLG = 'X'.
            G_TABLENAME = 'LFB1'.
          WHEN '0VEN_PURORG'.
            G_TAB3_FLG = 'X'.
            G_TABLENAME = 'LFM1'.
          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.
    When I debug 0VENDOR_ATTR, In above code, it identify the data source 0VENDOR (i.e. I_CHABASNM = 0 VENDOR)
    My code :
    CASE I_CHABASNM.
          WHEN 'ZDATA_SOURCE'.
          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.
    I created above data source ZDATA_SOURCE in RSO2 by giving function module  ZMDEX_VENDOR_MD (copy of original function group to Z group with few modifications in ZMDEX_VENDOR_MD). Every thing is OK, but while debugging, the cursor leads to WHEN OTHERS clause in above CASE statement and the program terminated with log(i.e., the program does not identify I_CHABASNM = ZDATA_SOURCE).
    When I see 0VENDOR_ATTR in RSA3, there is no associated function module MDEX_VENDOR_MD is visible. What could be the reason?
    your suggestion is really helpful...
    Thanks in advance,
    Zak.

    Hi Zakir,
    try this........
    <CASE I_CHABASNM>----
    -<WHEN '0VENDOR'>---
    case I_Datasource
    when 'datasource name'.
    check here
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33?quicklink=index&overridelayout=true
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c062a3a8-f44c-2c10-ccb8-9b88fbdcb008?quicklink=index&overridelayout=true
    hope this will help you.
    Thanks,
    Vijay.
    Edited by: vijay m on Mar 31, 2010 1:10 PM

Maybe you are looking for

  • Pls help : How To select fields and data from user_table for each tablename

    Please help with the query to generate a output which selects the code,meaning,inuse for each table in the user_table that has "CODED" as a part of table name. User table has some 800 table that contains CODED in the tablename. Desc of the table: DES

  • Script to delete old folders from an archive directory

    Hi, I am new to powershell scripting, working on a script to purge older folders after the files in these folders are processed. I would want to set a limit lets say 15 days old. Any help is greatly appreciated. Thanks in advance........... Ione

  • How to override equals method

    The equals method accepts Object as the parameter. When overriding this method we need to downcast the parameter object to the specific. The downcast is not the good idea as it is not the OO. So can anyone please tell me how can we override the equal

  • How to open the incoming payload which is in .BIN format

    Dear All, I have a synchronous scenario(ABAP proxy to HTTP_AAE) where the incoming payload from third party(bank) is coming in the form of .BIN format. But bank is saying we are sending the response as zipped stream, which you can unzip, however, whe

  • Why can't it take photos?

    I have an iPod nano (5th generation, not the latest one) and I like how you can take videos with it (although the placement of the camera is horrible) Videos is great but you'd think something that could take videos will be able to take pictures as w