Invoke Synchronous RFC in ECC using NW BPM 7.40 – Part1
This document describes the creation, configuration and execution of simple NW BPM which involve calling a synchronous RFC defined in backend ECC, pass data and which returns a complete record of data inserted in a table in ECC.
- SAP Process Orchestration 7.40 SP8
- SAP ERP EHP7
- NWDS 7.31 SP12 PAT0012
- Create or Update ERP(R/3) system configuration in NWDS
- Add or create a new ABAP provider system in NWA
- Create an RFC synchronous FM in ECC
- Create a new Process Composer development component in NWDS
- Create a new Service Group to the ECC system under Connectivity
- Create a new NW BPM, import RFC and applicable service interfaces
- Configuring Start event in BPM process
- Configuration for Automated activity “YBAPI_PITEST”
- Assign administrator to the pool for NW BPM BAPIBPM
- Build and Deploy the Process Development Component
- Assign provider system to process component
- Start and test the BAPIBPM process
Create/Update ERP(R/3) system configuration in NWDS
This will ensure that the RFC which was created in ECC is available and ready to use in NW BPM as shown below.
Open NWDS and go to Windows –> Preferences –> Destination configurations –> R/3 Configuration
Click on “ADD” to add a new R/3 system to NWDS configuration
Click on “Single Server” tab and fill the following parameters
- Host Name: Fully qualified host name of the ECC or R/3 system
- System Number: System number of the ECC system
Under User Account, Provide the following parameters
- Client: SAP Client of the ECC system
- Logon Name: User name to login to SAP system and password
Add or create a new ABAP provider system in NWA
Logon to NWA and click on SOA –> Technical Configuration –> system connections
Select “New” to add a new provider system which is ECC(R/3) as shown below.
Provide the following information
- System Name: Three letter name of ECC(R/3) system
- System Type: ABAP
- Client: client # of the ECC system.Ex: 000,111,222,333,…
Since we want to use RFC connectivity,check “Do not use WS connectivity” and click Next
Provide the following inputs in the screen for RFC connectivity
- Target Host: Fully qualified host name of the ECC system
- Sys No: system number of the ECC system. Get this from Logon pad.
- Runtime Authentication settings: Select Technical user and provide appropriate user name and pwd of the user created in ECC system and click Next.
if all the above steps are correct, then you will see a green icon that the connection test is successful to the ECC(R/3) system as shown below.
Now, a summary of the sys connection information to ECC(R/3) system will be displayed.
Create a synchronous RFC FM in ECC
Run SE37 transaction in ECC and create a FM named YBAPI_PITEST
Functionality of this RFC: This module will accept 2 parameters as input, inserts a record in a table and returns the complete record as synchronous response to the NW BPM created in SAP PO.
Create a new Process Composer Development Component in NWDS
In NWDS go to File –> New –> Other. Then select “Process Composer Development Component”. Click Next and
Select “My Components[demo.sap.com]” and click Next
Provide the following parameters and click finish.
The new process development component will be created as shown below.
Create a new Service Group for the ECC system under Connectivity
Go to Connectivity –> Service Groups. Right click and create “New Service Group”
Provide the following parameters and click finish. Keep a note of the name of the service group as this will be used later during deployment.
- Service Group Name: XXX_ABAP (XXX – Name of the ECC system)
- Description: Service group configuration for ECC
Create a new BPM and import RFC and applicable Service Interfaces
Right click on Processess –> New Process and create a new process. Provide the following information and click Next.
- Name: BAPIBPM
- Orientation: Top to Bottom
- New Pool: Select “Create a pool” with name as “Pool” and lanes as “Lane”
- Project: soa/sg
Keep “Create start and end event from the selected trigger” and click finish. The following BPM will be created.
Now, Go to Window –> Show View –> Other and type “search console” to bring up the search console.
Provide the following parameters in the search console to search for RFC and click on search.
Search For: RFC
Search In: XXX_ECC, where XXX is the ECC system name
Find: Function Module which was created in ECC. In my case it is “YBAPI_PITEST”.
Group By: Application Component
This will return the YBAPI_PITEST RFC as shown below.
Now, drag and drop the RFC from the search console to the BAPIBPM process which we have created earlier.
The BAPIBPM process will appear like as below.
The appropriate Service Interface definitions for the imported RFC will automatically created in Project Explorer.
Similarly, import SI_PO_BAPI_Req which was already created in ESR. This interface will be used to capture the request triggered to BAPIBPM in the start event. This will be an “inbound” interface with interface pattern “Stateless(XI 3.0 Compatible)”. Uncheck Point-Point selection.
Corresponding message type MT_BPI_Req contains the following structure.
Import BPI_Req and BPI_Res DTs which are already created in ESR to be used for capturing request and response data from the synchronous RFC.
BPI_Req data type structure
BPI_Res data type structure
Hence 2 parameters will be passed in the request to RFC and 12 parameters will be returned by RFC as synchronous response.
Now, the Project Explorer will look like this.
Drag and drop BPI_Req, BPI_Res and ZSFLIGHT data types to the BPM process. These will create data objects DO_BPI_Req, DO_BPI_Res and DO_ZSFLIGHT as shown below.
Configuring Start event in BPM process
Click on Start event in BAPIBPM and go to Properties.
Select “Event Trigger” tab and click “New”
Create a new trigger “testreq” with the following parameters
EndPoint Name: http://<localhost>:<port>/bpm/demosapcom/soa/sg/testreq?wsdl
Service: select SI_PO_BAPI_Req
Operation: SI_PO_BAPI_Req(In: MT_BPI_Req, Out)
Map the IP_CARRID and IP_CONNID of MT_BPI_Req to corresponding fields in Process Context for DO_BPI_Req as shown below.
Configuration for Automated activity “YBAPI_PITEST”
Select the “YBAPI_PITEST” automated activity in BPM and provide or select the following parameters in the activity properties
In the interface tab, maintain the following parameters
Service Interface: YBAPI_PITEST.PortType
Operation: Will be automatically selected. In my case, it contains both In and Out parameters as its synchronous.
Service Reference: Create a new Service Reference
Select “Choose existing” and “XXX_ABAP” which is the service group we have created earlier and click Finish.
Map corresponding fields in DO_BPI_Req Process context to the fields in YBAPI_PITEST
Map the corresponding fields in the BAPI response YBAPI_PITEST.Response to fields in DO_BPI_Res. This is ensure that the synchronous response which was returned by RFC in ECC is appropriately mapped to our target structure in BPM process.
Please refer to http://scn.sap.com/docs/DOC-70291 for continuation of this document. as I cannot able to add further content to this document, rest of the content was added to the Part2 document accessed using the link above.