This is the PI part of a step-by-step documentation of what was created to enable C4C to call a web service in ERP. In this series is also the steps performed in ERP to create the web service as well as a documentation of the implementation fo the service in C4C. Here is a link to a description of the use case as well as links to all of the documentation (LINK)
I would like thank Murali Vankadoath for his support in collecting this information.
This should not be considered best practice or production ready configuration, but an attempt to collect as many of the steps involved in creating a PI configuration that works.
The complete use case is available here, and the steps performed in ERP before this part is available here.
A couple of assumptions:
- We are adding a web service to a PI system that already communicates with C4C and ERP, so this is not the initial setup of PI
- We have downloaded the Iflows for the standard content delivered for utility integration.
- This is only important in the sense that we use the component names used for the utility solution. It would certainly be possible to jus create own components for this.
In this setup, we consider:
- C4C Outbound
- ERP Inbound
We are working in three Design Objects (delivered with the standard utility integration):
- COD_ERP_INT Inbound relevant configuration
- SAP_BYD Outbound relevant configuration
- COD_ERP_INT_IC Mapping
It was possible to re-use these as the work was done in an internal SAP system. In a customer landscape, you would create your own components and perform your configuration here.
As stated earlier, this is not the initial setup so we already have business systems configured:
- CfC_ERP_UTIL (this is the C4C system)
- ECA_100 (this is the ERP system)
The PI Configuration can be broken down in to three main parts:
- Preperation of the WSDL
- Enterprise Service Builder settings
- Create External Definitions
- Create Service Interface
- Create Message Mapping
- Create Communication Scenario
- Integration Builder configuration
- Create Communication scenario
2. Names used on Configuration
One of the errors I made most was not being clear on the names used. As a result I now provide a paln for the names ahead of the configuartion, and in this way there is less of a risk for errors in this context.
zsbh_tech_int_1_in – COD_ERP_INT – Inbound
zsbh_tech_int_1_out – SAP_BYD – Outbound
zsbh_tech_m_map1_ERP_COD (from ERP to C4C) – Response
zsbh_tech_m_map1_COD_ERP (from C4C to ERP) – Request
3. Adjust WSDL
The WSDL downloaded from ERP needs to have 2 policy segments removed – they are both in the end of the WSDL.
In this case, line 76 – 78 and line 80 – 82 (all marked in yellow) needs to be removed from the WSDL.
After the removal :
4. Enterprise Service Builder Configuration
4.1 Create External Definitions
Open Enterprise Service Builder in PI (transaction: SXMB_IFR)
You will get a logon screen:
You may be asked for a profile – if you do then select:
First we create the outbound part – open COD_ERP_INT and select ‘External Definitions’.
Right click on External Definitions and select ‘New’.
Find the WSDL you downloaded from SOAMANAGER and click on ‘Open’.
If we want to see the structure of the message, both request and response, then click on the message tab, and you will see the input and output structure for your WSDL.
The two object names marked with the red arrows will be used for our message mapping at a later stage.
Save the external definition.
Then activate the external definition – activation can be done form either the menu as shown below, or by going to the object list and select activate.
This was the configuration for the inbound part.
NOW REPEAT THIS FOR OUTBOUND IN NODE: SAP_BYD:
Using the same WSDL as used for inbound configuration.
Name for external Definition for outbound: zsbh_tech_ext_1_out.
THIS CONCLUDE CREATION OF EXTERNAL DEFINITIONS
4.2 Create Service Interface.
Like before – this has to be done for inbound in COD_ERP_INT and outbound in SAP_BYD. Here we will only show this for COD_ERP_INT.
The Category needs to be changed to ‘Inbound’ and the ‘Mode’ needs to be changed from ‘Asynchronous’ to ‘Synchronous’.
When that is done, we see that we need to select both the request and the response message.
Also – the message type need to be changed to ‘External Message’ (highlighted in yellow):
Then click on the search option for message:
And then find the name of your service and message. PAY ATTENTION TO THAT THERE IS BOTH A REQUEST AND A RESPONSE MESSAGE. As mentioned earlier the response message states –response at the end of the name, whereas the request has no appended name:
First select the Request message and Click on ‘Apply’.
Repeat this for the response message:
Now Save and Activate.
Then Click ‘Activate’:
NOW REPEAT THIS FOR OUTBOUND IN NODE: SAP_BYD.