ABAP proxy inbound interface

We are currently creating the ABAP proxy inbound interface program for the Update Goods Issuance (Serialized, Nonserialized), Inventory Count, and Fuel issuance.
We would like to request for your help as we are new to developing ABAP XI programs. May we request for a sample program related to ABAP proxy inbound interface.

HI Ricardo
Proxy runtime allows only one operation for an interface. Either Sync or Async
Moreover the error you have mostly occurs when you have not configured PI as IS or some other admin configurations. Check the thread given above
Check these as well
BW and XI on the same physical server
Error in IS
Thanks
Gaurav

Similar Messages

  • Web Service u0096 ABAP proxy  synchronous interface

    hi experts,
    can you suggest me how to do this scenario?
    <i><b>Web Service – ABAP proxy  synchronous interface.</b></i>

    hi,
    you can create a web service on XI
    which will call ABAP proxy (on ERP, SRM etc)
    in a synchronous way (you just need to generate the proxy class
    in TCODE SPROXY)
    then you can fill the method of your generated proxy class
    and you will have WS - ABAP proxy interface
    have a look at this to undrstand server proxy:
    /people/siva.maranani/blog/2005/04/03/abap-server-proxies
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • DYNAMIC_CALL_FAILURE - ABAP Proxy Inbound

    I have the following error when I try to test a proxy interface with the data coming into ECC 5.0 System.
    <b><?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Inbound Proxy
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIProxy</SAP:Category>
      <SAP:Code area="ABAP">DYNAMIC_CALL_FAILURE</SAP:Code>
      <SAP:P1>UNCAUGHT_EXCEPTION</SAP:P1>
      <SAP:P2>ZSMDCL_MI_FUSION_PRODUCT_MAINT</SAP:P2>
      <SAP:P3>EXECUTE_ASYNCHRONOUS</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Error during proxy processing</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error></b>
    I have a function module which sends a message out depeding on the return status of  a BAPI. The proxy is giving the above error when it calls this function module.
    reg
    reg

    Hi Naveen
    Try to catch exception in proxy itself
    Use follwing link
    <b>
    http://help.sap.com/saphelp_nw04/helpdata/en/a1/082589fc4246f09793039d5fb01a17/content.htm</b>
    For Catching Exception in Proxy
    <b>Inbound ABAP Proxy Trace and error handling
    Handling Exceptions
    ABAP Server Proxies - Fault Handling
    Exception handling in integration processes
    ABAP Proxy and fault messages
    /people/bhanu.thirumala/blog/2006/02/07/abap-proxy--xml-to-abap-transformation
    Thanks
    Abhishek
    ***Please Reward points if helpful********

  • ABAP Proxy synchronous interface - access to payload

    Hi,
    I have a scenario from ABAP Proxy -> XI -> Web Service.
    On occassion, there is an issue with calling the Web Service (unavailable for instance) and an exception is returned to the ABAP Proxy for a SystemError.
    I am able to catch this exception in the proxy and output the error - for example HTTP.Exception.HTTP.Adapter.
    However, I also want to use information in the response payload to output on the error as the payload contain infrmation on why the error was thrown in the target application - for example - Format of data xxx is incorrect.
    I can get access to the request payload using interface/class IF_WSPROTOCOL_PAYLOAD=>GET_SENT_REQUEST_PAYLOAD but there does not seem to be an equivalent for GET_RECEIVED_RESPONSE_PAYLOAD !
    Have anyone done this before - use payload information in an ABAP proxy from the response payload ?
    Kind regards
    Colin.

    Hi,
    I will need the actual payload info not the status.
    I will have to debug SXI_MONITOR in CRM to see how it is obtained.
    Thanks
    Colin

  • ABAP Proxy Inbound message does not call generated method

    Hi,
    we tried to generate a ABAP Proxy for a customer demo. It just should retrieve some data and write them to a database table.
    the generation and activation of the proxy was without errors. If we call the check function the method works fine.
    But if we receive data from XI via the regarding interface it looks as if the execute-method of the generated class is not called. We can see the message in SXMB_Moni, but nothing is written to the db table.
    Does someone have any idea?

    Hi Peter,
    There will be some error in the Proxy Side.
    Check this in Transaction Code-SXMB_MONI of Application System(R/3 etc) not in the XI system.
    There may be some communication(http etc) issues.
    Also check this -
    /people/krishna.moorthyp/blog/2005/12/23/monitoring-for-processed-xml-messages-in-abap-proxy
    Hope this helps to findout what is the error.
    Regards,
    Moorthy

  • ABAP Proxy Inbound Error

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIProtocol</SAP:Category>
      <SAP:Code area="MESSAGE">DUPLICATE_DETECTED</SAP:Code>
      <SAP:P1>DFBD3A3045C011DCACF800145ED17196</SAP:P1>
      <SAP:P2>CENTRAL</SAP:P2>
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Message-Id DFBD3A3045C011DCACF800145ED17196 ist im gerufenen System bereits vorhanden (Pipeline CENTRAL)</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error>

    Hi Jeong !
    Check this thread:
    Duplicate Message
    Regards,
    Matias.

  • Error "SLD_NO_OWN_BS" while executing ABAP Proxy Interface

    Dear All,
    I am working on ABAP PROXY (INBOUND) Interface in which data from FTP is getting inserted into a ztable in SAP ECC 6.0.
    While executing the interface, file is getting picked from source location & following error is received in SXMB_MONI:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="INTERNAL">SLD_NO_OWN_BS</SAP:Code>
      <SAP:P1>SB1</SAP:P1>
      <SAP:P2>900</SAP:P2>
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Error while reading ID of own business system from the SLD for system SB1 and client 900</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I have checked configurations & settings in both SAP PI & SAP ECC system as per previous sdn threads on same error but I am not been able to figure out the exact error.
    Please guide me in resolving this error.
    Reg,
    NJ

    Hi Nishu,
    Have a look on these threads,,,
    SLD_NO_OWN_BS error
    SLD_NO_OWN_BS
    Regds,
    Pinangshuk.

  • File to ABAP Proxy (problem with inbound queues in R3)

    Hi,
    In File-XI-ABAP proxy scenario, XI is successfully picking up file and sending it to R3.
    But in R3, an inbound queue is created in SMQ2 transaction code and I solved the same to automatically process the Queue by registering that in SMQR transaction code. But even though the inbound queue doesn't appear in SMQ2 (which means that it is processed successfully) it doesn't call the method EXECUTE_ASYNCHRONOUS. Can anyone help me whether I need to do any settings to run that method?
    Also can anyone help me, after the inbound queue is successfully processed in SMQ2 transaction, what would be the next step to watch what exactly that queue has done?

    Hi,
    Please check the program code for Server ABAP proxy.
    This will show you the trigerring of Proxy on inbound side.
    ABAP Proxy inbound program - sales order creation - Community Profiles - Wiki
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/abap%2bproxy%2binbound%2bprogram%2b-%2bsales%2border%2bcreation
    For Queues, you can go to SMQR and check for the register queue. Select and double click on it. If anything is stuck up then you can see in it. Even same with SMQ2
    Thanks
    swarup

  • Error in ABAP Proxy

    Hi ,
    I am getting an error in the proxy , it was working fine but today only it is throughing the following error :
      <SAP:Code area="ABAP">DYNAMIC_CALL_FAILURE</SAP:Code>
      <SAP:P1>CREATE_OBJECT_CLASS_NOT_FOUND</SAP:P1>
      <SAP:P2>ZZCL_MIIA_UKEUROPE_TLOG</SAP:P2>
      <SAP:P3>EXECUTE_ASYNCHRONOUS</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Error during proxy processing</SAP:Stack>
    Please let me know the reason of this .
    Thanks in anticipation
    Anita

    Hi,
    I am assuming you have a server proxy (Inbound interface).
    Your proxy objects have not been created properly.
    To check this, send a message to XI.
    Either XI itself will throw an error message, or running SXI_MONITOR in receiving SAP application will show you the error . If you do not see any entry for corresponding interface, then proxy objects have not been created properly.
    Regards,
    Puloma.

  • ABAP Proxy generation descrepencies with filed and method...

    Hello,
    I have two question regarding ABAP Proxies.
    The first one when i regenerate proxy for a interface, It is not generating the same filed as before and my ABAP program fails.
    I have Internal_organization_Descri -- Now, It is not giving same field rather It is giving Internal_organization_Descr
    It is missing 'i'
    One more problem is It is chaging method also
    Previously it was showing "Sales_order_Sync"
    Now, It is showing method as EXECUTE_SYNCHRONOUS
    Why It is these proxies behave differently, is there Service Pack dependency.. What is the best way to avoid these descripencies...Pls help
    Srinivas

    Hi,
    Please find the explantion about your doubts on ABAP Proxy.
    1. The field names might be changed based on the changes in XI in Data type for this field.
    Whenver you will be regenerating the ABAP Proxy, it considers the Message type and internally the Data types that have created in XI. So any changes in these objects may lead to change.
    Verify your field names in XI
    2. The Method to be used to call ABAP proxy is EXECUTE_SYNCHRON for Synchronous communciation and EXECUTE_ASYNCHRONOUS for async communication. These methods are used in ABAP source code. So please let me know where you had find this method "Sales_order_Sync"
    The EXECUTE_SYNCHRON is the proper method.
    Let me know if you need any more info.
    Refer
    ABAP Proxy outbound program - purchase order send
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/abap%2bproxy%2boutbound%2bprogram%2b-%2bpurchase%2border%2bsend
    ABAP Proxy inbound program - sales order creation - Community Profiles - Wiki
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/abap%2bproxy%2binbound%2bprogram%2b-%2bsales%2border%2bcreation
    Thanks
    Swarup

  • ABAP Proxy doesnu2019t Work

    Hi all,
    We have problem about ABAP Proxy (Inbound). We are using a follow scenario:
    Legacy ( JDBC )    ->   XI  ->  ABAP Proxy ( ECC Backend )
    Recently The ECC Backend was updated  ( only data ) , and since than the ABAP Proxys  doesnu2019t work.  We tested other Adapter, we used Receiver RFC Adapter, and RFC Adapter worked.
    We tried a lot of thinks, we regenerated ABAP Proxys, We activated Proxys, taken Refresh Full CPA Cache, we checked SCIF, SMICM, and we couldnu2019t solved the issueu2026..
    Could you help us????
    Thanks!!!
    Fábio Ferri
    SAP Consultant XI/ABAP/Netweaver

    Hello,
    i think for this scenario..you have used XI adapter.
    Check HTTP service number.
    It should be same as in:
    In SAP R3, Transaction - > SMICM : goto->services -> ..you will find HTTP service number..Use the same in XI adapter.
    or
    Execute transaction : SPROXY
    goto-> connection test.
    Regards,
    Sreenivas.

  • Catch an error in inbound ABAP Proxy

    Hi,
    I'm using an ABAP Proxy to file->PI->ECC(proxy) scenario and I found an error in my sxi_monitor on ECC side:
    <SAP:Stack>Error during proxy processing An exception with the type CX_SY_REF_IS_INITIAL occurred, but was neither handled locally, nor declared in a RAISING clause</SAP:Stack>
    I actually solved the error, but I still don't know how to pass to the MONI the message error catching the exception instead of that "standard" error that y pasted.
    How can I get the exception error and then RAISE it to the MONI?
    Edited by: Marshal on Jun 9, 2009 12:37 PM

    Ok, I'm talking about PI 7.1, I'm not sure if it's the same for older versions:
    1 - Create a Fault Message Type (with standard error data types that PI generates automatically when you create the Fault MT) and add it to your inbound Service Interface (or Message Interface in previous PI versions).
    2 - Regenerate the proxy.
    3 - Now in the proxy class method related to your SI there is an exception you have to possible kind of errors to catch, the 1st one is a short dump than you can catch with a TRY. CATCH. ENDTRY structure, the 2nd one is a situation that isn't a dump but you want the proxy to return an error.
    3.1 - Catch Short dump code:
    DATA:  lo_cx_root TYPE REF TO CX_ROOT,
                 l_pi_fault_data TYPE ZPI_EXCHANGE_FAULT_DATA. "Exception message
    TRY.
    ***********YOUR PROXY CODE
    CATCH cx_root INTO lo_cx_root.
    *     GET ERROR TEXT
          lo_cx_root->if_message~get_longtext(
            RECEIVING result = l_pi_fault_data-fault_text ).
    *    GENERATE ERROR THAT YOU WILL SEE ON SXI_MONITOR (IN ECC!!)
          RAISE EXCEPTION TYPE "YOUR_EXEPCTION_MESSAGE_TYPE"
            EXPORTING standard = l_pi_fault_data.
    ENDTRY.
    3.2 Raise an error when you found an error situation for example an error message after BAPI calll:
       DATA: lt_return TYPE STANDARD TABLE OF bapiret2.
    *  Call any BAPI function....always return bapiret2 table with messages
       CALL FUNCTION 'BAPI_XXXXX'
       TABLES lt_retun.
    *  Look for an Error message
        READ TABLE lt_return INTO lwa_return WITH KEY type = 'E'.
        IF sy-subrc = 0.
          CALL METHOD cl_proxy_fault=>raise
            EXPORTING
              exception_class_name   = 'YOUR_EXCEPTION_MESSAGE_TYPE'
              bapireturn_tab         = lt_return.
        ENDIF.
    I hope it helps

  • Inbound ABAP Proxy

    Hi All,
      I have an inbound ABAP proxy as the receiver. The class, interface, structure and tables are generated when I created the proxy.
      I edited the method execute_asynchronous to collect the data from the table and send it to another RFC.
      When I tried to populate my internal table using the data from table generated during proxy generation, it gives me an error like"zjssrc_dt-header_tab" is not defined in the ABAP dictionary as table, projection view or database view. But it doesn't give me an error while declaring my internal table of the type "zjssrc_dt-header_tab".
    Any inputs on this will be of great help.
    Thanks & Regards,
    Jai Shankar.

    Hi,
    When you generate your Proxy, there will be some structures created. Here you can see the name of the table type.
    Just create a work are for the same table type and one internal table.
    <i>eg.
    DATA: i_data_records TYPE TABLE OF zback_dt_data_records.
    DATA: wa_data_records TYPE zback_dt_data_records.</i>
    Now move the data from the proxy to your internal table
    eg.
    i_data_records = input-mt_val_in-data_records.
    Now this value <i>input-mt_val_in-data_records</i> for you would be input_<MessageType>_<segmentName thats repeating>
    Now loop through the Internal table and move the data to Work area and then update your table.
    I have taken second weblog as eg. Just see that weblog and read this.
    Regards
    Vijaya
    Message was edited by: vijaya kumari

  • Inbound synchronous ABAP proxy in PI 7.1?

    Hi All,
    Can anyone provide me sample ABAP proxy code for inbound synchronous. I have created inbound synchronous service interface, generated proxy in ABAP system. It has only one method in ABAP proxy class with input and output. When I write code ti take the input, process and send an output, its not getting delivered.
    Please help me with sample code or guidence on this. Looks like there are changes in 7.1 when compared with previous versions that EXECUTE_SYNCHRONOUS doesn't exist anymore.Do we just eed to write code in single method with in the class?
    Regards,
    N@v!n

    On Sproxy - >
    Focus on your interface - >
    go to your inbound interface name(service interface) -> double click
    On PROPERTIES TAB -> INTERFACE -> PROVIDER CLASS -> DOUBLE CLICK ON IT ->
    Now One method name is coming - > Double click on it ->
    Congarts ! you will write your code Here ...
    I am Pasting a sample code used in my case , similarly you can compare for your self. :
    __________________________________________________________ Declare Area
    DATA:   IT_INPUT    TYPE  ZPROCESS_ORDER_FILE_ROW_TAB2,
                  WA_INPUT    TYPE  ZPROCESS_ORDER_FILE_ROW2.
    DATA:   IT_FINAL   TYPE  ZPROCESS_ORDER_RESPONSE_RO_TAB,
                  WA_FINAL   TYPE  ZPROCESS_ORDER_RESPONSE_ROW.
    I get this Types from
    go to your inbound interface name(service interface) -> double click
    USED OBJECT TAB
    Here you will get  2 table type Structure for Internal table Finaland Input Both.
    as well as Work area Types.
    _________________  Actual Code -
    IT_INPUT = INPUT-PROCESS_ORDER_FILE-ROW.
    This Structure you get in
    go to your inbound interface name(service interface) -> double click
    USED EXTRENAL VIEW TAB.
    Use ABAP NAME HERE ..
    Populate IT_FINAL according to you and pass it out.
    SImialry for sending Out ....
    OUTPUT-PROCESS_ORDER_RESPONSE-ROW = IT_FINAL.
    Hope it help...
    Still Doubts , Write here ...
    Regards
    Prabhat Sharma.

  • Debugging of inbound ABAP proxy

    Please To show the debugging of inbound ABAP proxy, the implementation of the demo scenario is used. The demo scenario is available in any installation WebAS 6.40 or higher.

    follow this method and check debugging mode.
    Debugging of inbound proxies in WebAS 6.40 or higher
    To show the debugging of inbound ABAP proxy, the implementation of the demo scenario is used. The demo scenario is available in any installation WebAS 6.40 or higher.
    At first you have to set a break point in the ABAP code. Call transaction SPROXY. Expand the namespace http://sap.com/xi/XI/Demo/Airline, the node Message Interface (inbound) and the interface FlightBookingOrderRequest_In.
    Double click on interface II_SXIDAL_FBO_REQUEST and get the view of the proxy object properties.
    Double click on the implementing class (ABAP name) and then double click on the method name (this class has only one method).
    Now you are in the inbound proxy implementation. Set the break point on the first executable line.
    With help of the back button (F3) go back to the transaction SPROXY. Here you choose from menu Proxy -> Test Interface
    In the next pop up check the field XML Editor to maintain the payload.
    In the next screen apply suitable values or upload the XML payload of the SXMB_MONI (after mapping).
    Now the inbound proxy processing should stop at the break point.
    If the processing does not stop at the break point, there might be an error in the XML. Check at the result page for error messages.
    Debugging of inbound proxies in WebAS 6.20
    You set the break point the same way as described above.
    To start the proxy test you call the report SPRX_TEST_INBOUND.
    As parameters you enter the name of the ABAP interface and the method name of of the ABAP interface and check the parameter Edit Native XML
    In the next screen you apply suitable values or upload the XML payload of the SXMB_MONI (after mapping).
    Then you click first on save button (F11), then on back button (F3).
    Now you should see your debug session. If not, check if the XML is valid. BAPI_GOODSMVT_CREATE to post Goods Movement
    The following is an abap program making used of the BAPI function BAPI_GOODSMVT_CREATE to do Goods Receipts for Purchase Order after importing the data from an external system.
    BAPI TO Upload Inventory Data
    GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
                         02 - MB31 - Goods Receipts for Prod Order
                         03 - MB1A - Goods Issue
                         04 - MB1B - Transfer Posting
                         05 - MB1C - Enter Other Goods Receipt
                         06 - MB11
    Domain: KZBEW - Movement Indicator
         Goods movement w/o reference
    B - Goods movement for purchase order
    F - Goods movement for production order
    L - Goods movement for delivery note
    K - Goods movement for kanban requirement (WM - internal only)
    O - Subsequent adjustment of "material-provided" consumption
    W - Subsequent adjustment of proportion/product unit material
    report zbapi_goodsmovement.
    parameters: p-file like rlgrap-filename default
                                     'c:\sapdata\TEST.txt'.
    parameters: e-file like rlgrap-filename default
                                     'c:\sapdata\gdsmvterror.txt'.
    parameters: xpost like sy-datum default sy-datum.
    data: begin of gmhead.
            include structure bapi2017_gm_head_01.
    data: end of gmhead.
    data: begin of gmcode.
            include structure bapi2017_gm_code.
    data: end of gmcode.
    data: begin of mthead.
            include structure bapi2017_gm_head_ret.
    data: end of mthead.
    data: begin of itab occurs 100.
            include structure bapi2017_gm_item_create.
    data: end of itab.
    data: begin of errmsg occurs 10.
            include structure bapiret2.
    data: end of errmsg.
    data: wmenge like iseg-menge,
          errflag.
    data: begin of pcitab occurs 100,
            ext_doc(10),           "External Document Number
            mvt_type(3),           "Movement Type
            doc_date(8),           "Document Date
            post_date(8),          "Posting Date
            plant(4),              "Plant
            material(18),          "Material Number
            qty(13),               "Quantity
            recv_loc(4),           "Receiving Location
            issue_loc(4),          "Issuing Location
            pur_doc(10),           "Purchase Document No
            po_item(3),            "Purchase Document Item No
            del_no(10),            "Delivery Purchase Order Number
            del_item(3),           "Delivery Item
            prod_doc(10),          "Production Document No
            scrap_reason(10),      "Scrap Reason
            upd_sta(1),            "Update Status
          end of pcitab.
    call function 'WS_UPLOAD'
      exporting
        filename                      = p-file
        filetype                      = 'DAT'
    IMPORTING
      FILELENGTH                    =
      tables
        data_tab                      = pcitab
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      OTHERS                        = 6
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      exit.
    endif.
    gmhead-pstng_date = sy-datum.
    gmhead-doc_date = sy-datum.
    gmhead-pr_uname = sy-uname.
    gmcode-gm_code = '01'.   "01 - MB01 - Goods Receipts for Purchase Order
    loop at pcitab.
      itab-move_type  = pcitab-mvt_type.
      itab-mvt_ind    = 'B'.
      itab-plant      = pcitab-plant.
      itab-material   = pcitab-material.
      itab-entry_qnt  = pcitab-qty.
      itab-move_stloc = pcitab-recv_loc.
      itab-stge_loc   = pcitab-issue_loc.
      itab-po_number  = pcitab-pur_doc.
      itab-po_item    = pcitab-po_item.
      concatenate pcitab-del_no pcitab-del_item into itab-item_text.
      itab-move_reas  = pcitab-scrap_reason.
      append itab.
    endloop.
    loop at itab.
      write:/ itab-material, itab-plant, itab-stge_loc,
              itab-move_type, itab-entry_qnt, itab-entry_uom,
              itab-entry_uom_iso, itab-po_number, itab-po_item,
                                                  pcitab-ext_doc.
    endloop.
    call function 'BAPI_GOODSMVT_CREATE'
      exporting
        goodsmvt_header             = gmhead
        goodsmvt_code               = gmcode
      TESTRUN                     = ' '
    IMPORTING
        goodsmvt_headret            = mthead
      MATERIALDOCUMENT            =
      MATDOCUMENTYEAR             =
      tables
        goodsmvt_item               = itab
      GOODSMVT_SERIALNUMBER       =
        return                      = errmsg
    clear errflag.
    loop at errmsg.
      if errmsg-type eq 'E'.
        write:/'Error in function', errmsg-message.
        errflag = 'X'.
      else.
        write:/ errmsg-message.
      endif.
    endloop.
    if errflag is initial.
      commit work and wait.
      if sy-subrc ne 0.
        write:/ 'Error in updating'.
        exit.
      else.
        write:/ mthead-mat_doc, mthead-doc_year.
        perform upd_sta.
      endif.
    endif.
          FORM UPD_STA                                                  *
    form upd_sta.
      loop at pcitab.
        pcitab-upd_sta = 'X'.
        modify pcitab.
      endloop.
      call function 'WS_DOWNLOAD'
        exporting
          filename                      = p-file
          filetype                      = 'DAT'
    IMPORTING
      FILELENGTH                    =
        tables
          data_tab                      = pcitab
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      OTHERS                        = 6
    endform.
    *--- End of Program
    Finding the user-exits of a SAP transaction code
    Finding the user-exits of a SAP transaction code
    Enter the transaction code in which you are looking for the user-exit
    and it will list you the list of user-exits in the transaction code.
    Also a drill down is possible which will help you to branch to SMOD.
    report zuserexit no standard page heading.
    tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
             tables : tstct.
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    parameters : p_tcode like tstc-tcode obligatory.
    select single * from tstc where tcode eq p_tcode.
    if sy-subrc eq 0.
       select single * from tadir where pgmid = 'R3TR'
                        and object = 'PROG'
                        and obj_name = tstc-pgmna.
       move : tadir-devclass to v_devclass.
          if sy-subrc ne 0.
             select single * from trdir where name = tstc-pgmna.
             if trdir-subc eq 'F'.
                select single * from tfdir where pname = tstc-pgmna.
                select single * from enlfdir where funcname =
                tfdir-funcname.
                select single * from tadir where pgmid = 'R3TR'
                                   and object = 'FUGR'
                                   and obj_name eq enlfdir-area.
                move : tadir-devclass to v_devclass.
              endif.
           endif.
           select * from tadir into table jtab
                         where pgmid = 'R3TR'
                           and object = 'SMOD'
                           and devclass = v_devclass.
            select single * from tstct where sprsl eq sy-langu and
                                             tcode eq p_tcode.
            format color col_positive intensified off.
            write:/(19) 'Transaction Code - ',
                 20(20) p_tcode,
                 45(50) tstct-ttext.
                        skip.
            if not jtab[] is initial.
               write:/(95) sy-uline.
               format color col_heading intensified on.
               write:/1 sy-vline,
                      2 'Exit Name',
                     21 sy-vline ,
                     22 'Description',
                     95 sy-vline.
               write:/(95) sy-uline.
               loop at jtab.
                  select single * from modsapt
                         where sprsl = sy-langu and
                                name = jtab-obj_name.
                       format color col_normal intensified off.
                       write:/1 sy-vline,
                              2 jtab-obj_name hotspot on,
                             21 sy-vline ,
                             22 modsapt-modtext,
                             95 sy-vline.
               endloop.
               write:/(95) sy-uline.
               describe table jtab.
               skip.
               format color col_total intensified on.
               write:/ 'No of Exits:' , sy-tfill.
            else.
               format color col_negative intensified on.
               write:/(95) 'No User Exit exists'.
            endif.
          else.
              format color col_negative intensified on.
              write:/(95) 'Transaction Code Does Not Exist'.
          endif.
    at line-selection.
       get cursor field field1.
       check field1(4) eq 'JTAB'.
       set parameter id 'MON' field sy-lisel+1(10).
       call transaction 'SMOD' and skip first   screen.
    *---End of Program
    u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Difference Between BADI and User Exits
    Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software. 
    As with customer exits two different views are available:
    In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object. 
    In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
    In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, partner, and customer solutions, as well as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
    SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
    The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example).
    All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task.
    The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects.
    What is difference between badi and user-exists?
    What is difference between enhancements and user-exists? and what is the full form of BADI?
    I have another doubt in BDC IN BDC WE HAVE MSEGCALL (i did not remember the > correct name) where the error logs are stored, MSEGCALL is a table or structure.
    What is the system landscape?
    1) Difference between BADI and USER-EXIT.
        i) BADI's can be used any number of times, where as USER-EXITS can be used only one time.
           Ex:- if your assigning a USER-EXIT to a project in (CMOD), then you can not assign the same to other project.
        ii) BADI's are oops based.
    2) About 'BDCMSGCOLL' it is a structure.  Used for finding error records.
    3) Full form of BADI 'Business addins'.
    3) System land scape will be depends on your project 
        Ex:- 'Development server'>'Quality server'-> 'Production server'...... 
    List Of User Exit Related to VL01N
    I need to some restriction in fields ( Actual GI Date, T-Code:Vl01n ).
    How do you find out whcih user exits belongs to VL01n ?
    Here is the list of user exit related to VL01N :
    V02V0001   - Sales area determination for stock transport order 
    V02V0002   - User exit for storage location determination 
    V02V0003   - User exit for gate + matl staging area determination 
    V02V0004   - User Exit for Staging Area Determination (Item) 
    V50PSTAT  - Delivery: Item Status Calculation 
    V50Q0001   - Delivery Monitor: User Exits for Filling Display Fields
    V50R0001    -  Collective processing for delivery creation 
    V50R0002    - Collective processing for delivery creation 
    V50R0004    - Calculation of Stock for POs for Shipping Due Date List
    V50S0001    - User Exits for Delivery Processing 
    V53C0001    - Rough workload calculation in time per item 
    V53C0002    - W&S: RWE enhancement - shipping material type/time slot
    V53W0001   - User exits for creating picking waves 
    VMDE0001  - Shipping Interface: Error Handling - Inbound IDoc 
    VMDE0002  - Shipping Interface: Message PICKSD (Picking, Outbound) 
    VMDE0003  - Shipping Interface: Message SDPICK (Picking, Inbound) 
    VMDE0004  - Shipping Interface: Message SDPACK (Packing, Inbound)

Maybe you are looking for