Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
Hello Folks

I have written part I of this blog series for synchronous server proxy which sends Purchase Order data from a SOAP webservice call to ABAP in HANA system using Process Orchestration version 7.5 as a middleware.

The following objects were created in order:

1 In Process Orchestration ESR

1.1 Data Type : DT_PO_In ( from the sender system)



1.2 Data Type : DT_PO_Out (into the target system )



1.3 Message Type : MT_PO_In ( from source system )

 



1.4 Message Type : MT_PO_Out (into target system)



1.5 Service Interface : SI_PO_Out ( from source system)



1.6 Service Interface SI_PO_In ( into the target system)



1.7 Message Mapping – Request MM_PO_In : (from source to target )



1.8 Message Mapping – response MM_PO_Out (from target to source)



1.9 Operation Mapping



 

 

2: Integration Directory Objects

2.1 : Business Component – Source Sender System



2.2 Business System : receiver Target S/4 HANA System



2.3 SOAP Sender Channel



2.4 : Proxy receiver channel



2.5 ICO



 

3: ABAP S/4 HANA System

3.1 SPROXY - Proxy Objects creation and activation



3.2 ABAP Source Code


METHOD ZII_SI_PO_IN~SI_PO_IN.

"=================== DATA DECLARATIONS : INTERNAL TABLE ==============================
      DATA: IT_ITEM TYPE ZDT_PO_IN_PO_ITEM_TAB.
      DATA: IT_RETURN TYPE TABLE OF BAPIRET2.
      DATA: IT_POITEM     TYPE TABLE OF BAPIMEPOITEM,
            IT_POITEMX    TYPE TABLE OF BAPIMEPOITEMX.

"=================== DATA DECLARATIONS : WORK AREA  ===================================
      DATA: WA_HEADER TYPE ZDT_PO_IN_PO_HEADER.
      DATA: WA_HEADERX TYPE ZDT_PO_IN_PO_HEADER.
      DATA: WA_ITEM TYPE ZDT_PO_IN_PO_ITEM.



"=================== DATA DECLARATIONS : LOCAL VAIRABLES  ==============================
      DATA: LS_POHEADER   TYPE BAPIMEPOHEADER,
            LS_POHEADERX  TYPE BAPIMEPOHEADERX,
            LS_POITEM     TYPE BAPIMEPOITEM,
            LS_POITEMX    TYPE BAPIMEPOITEMX.
      DATA: LS_PO_NUMBER TYPE BAPIMEPOHEADER-PO_NUMBER.















"================================ MOVE HEADER DATA : POHEADER =====================================
      LS_POHEADER-COMP_CODE = INPUT-MT_PO_IN-PO_HEADER-COMP_CODE.
      LS_POHEADER-DOC_TYPE = INPUT-MT_PO_IN-PO_HEADER-DOC_TYPE.
      LS_POHEADER-VENDOR = INPUT-MT_PO_IN-PO_HEADER-VENDOR.
      LS_POHEADER-LANGU = INPUT-MT_PO_IN-PO_HEADER-LANGU.
      LS_POHEADER-PURCH_ORG = INPUT-MT_PO_IN-PO_HEADER-PURCHASE_ORG.
      LS_POHEADER-PUR_GROUP = INPUT-MT_PO_IN-PO_HEADER-PURCHASE_GRP.
      LS_POHEADER-CURRENCY = INPUT-MT_PO_IN-PO_HEADER-CURRENCY.

"================================ MOVE HEADER DATA : POHEADERX =====================================
      LS_POHEADERX-COMP_CODE = INPUT-MT_PO_IN-PO_HEADER-COMP_CODE.
      LS_POHEADERX-DOC_TYPE = INPUT-MT_PO_IN-PO_HEADER-DOC_TYPE.
      LS_POHEADERX-VENDOR = INPUT-MT_PO_IN-PO_HEADER-VENDOR.
      LS_POHEADERX-LANGU = INPUT-MT_PO_IN-PO_HEADER-LANGU.
      LS_POHEADERX-PURCH_ORG = INPUT-MT_PO_IN-PO_HEADER-PURCHASE_ORG.
      LS_POHEADERX-PUR_GROUP = INPUT-MT_PO_IN-PO_HEADER-PURCHASE_GRP.
      LS_POHEADERX-CURRENCY = INPUT-MT_PO_IN-PO_HEADER-CURRENCY.

"================================ MOVE ITEM DATA : POITEM =====================================
      LOOP AT INPUT-MT_PO_IN-PO_ITEM INTO WA_ITEM.
        LS_POITEM-PO_ITEM = WA_ITEM-ITEM_NUMBER.
        LS_POITEM-MATERIAL = WA_ITEM-MATERIAL.
        LS_POITEM-PLANT = WA_ITEM-PLANT.
        LS_POITEM-QUANTITY = WA_ITEM-QUANTITY.
        APPEND LS_POITEM TO IT_POITEM.
        ENDLOOP.

"================================ MOVE ITEM DATA : POITEMX =====================================
      LOOP AT INPUT-MT_PO_IN-PO_ITEM INTO WA_ITEM.
        LS_POITEMX-PO_ITEM = WA_ITEM-ITEM_NUMBER.
        LS_POITEMX-MATERIAL = WA_ITEM-MATERIAL.
        LS_POITEMX-PLANT = WA_ITEM-PLANT.
        LS_POITEMX-QUANTITY = WA_ITEM-QUANTITY.
        APPEND LS_POITEMX TO IT_POITEMX.
        ENDLOOP.





"================================ CALL BAPI  =====================================
 CALL FUNCTION 'BAPI_PO_CREATE1'
  EXPORTING
    POHEADER                     = LS_POHEADER
    POHEADERX                    = LS_POHEADERX
*   POADDRVENDOR                 =
*   TESTRUN                      =
*   MEMORY_UNCOMPLETE            =
*   MEMORY_COMPLETE              =
*   POEXPIMPHEADER               =
*   POEXPIMPHEADERX              =
*   VERSIONS                     =
*   NO_MESSAGING                 =
*   NO_MESSAGE_REQ               =
*   NO_AUTHORITY                 =
*   NO_PRICE_FROM_PO             =
*   PARK_COMPLETE                =
*   PARK_UNCOMPLETE              =
 IMPORTING
    EXPPURCHASEORDER             = LS_PO_NUMBER
*   EXPHEADER                    =
*   EXPPOEXPIMPHEADER            =
 TABLES
   RETURN                       = IT_RETURN
   POITEM                       = IT_POITEM
   POITEMX                      = IT_POITEMX
*   POADDRDELIVERY               =
*   POSCHEDULE                   =
*   POSCHEDULEX                  =
*   POACCOUNT                    =
*   POACCOUNTPROFITSEGMENT       =
*   POACCOUNTX                   =
*   POCONDHEADER                 =
*   POCONDHEADERX                =
*   POCOND                       =
*   POCONDX                      =
*   POLIMITS                     =
*   POCONTRACTLIMITS             =
*   POSERVICES                   =
*   POSRVACCESSVALUES            =
*   POSERVICESTEXT               =
*   EXTENSIONIN                  =
*   EXTENSIONOUT                 =
*   POEXPIMPITEM                 =
*   POEXPIMPITEMX                =
*   POTEXTHEADER                 =
*   POTEXTITEM                   =
*   ALLVERSIONS                  =
*   POPARTNER                    =
*   POCOMPONENTS                 =
*   POCOMPONENTSX                =
*   POSHIPPING                   =
*   POSHIPPINGX                  =
*   POSHIPPINGEXP                =
*   SERIALNUMBER                 =
*   SERIALNUMBERX                =
*   INVPLANHEADER                =
*   INVPLANHEADERX               =
*   INVPLANITEM                  =
*   INVPLANITEMX                 =
*   NFMETALLITMS                 =
          .

* COMMIT CHANGES TO DB
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
 EXPORTING
   WAIT          = 'X'
* IMPORTING
*   RETURN        =
          .



OUTPUT-MT_PO_OUT-PO_OUT_HEADER-PO_NUMBER = LS_PO_NUMBER.

COMMIT WORK.

  ENDMETHOD.

 

 

 

 

 

3.3 Sample Test Data and SPROXY testing

 

Initiate Testing



 



 



Response Result : Purchase Order created in Target system



 

 

4 : Test using External Application : SOAPUI

4.1 Create a new SOAP request





 

4.2 Use the Input test data to execute end to end and receive the PO Number from the S/4 HANA System

 



 

**** End of Part I Of Blog for Proxies ****

 

Thanks

Pratibha.
Labels in this area