Configuring Service Group in SOAMANAGER using Integration Scenarios
In this blog, we will discuss how to configure the service group using local integration scenario in SOAMANAGER. This is useful when you want to replicate master data from S/4 to more than one external system (example SAP Cloud for Customer aka C4C and SAP Fieldglass), using Data Replication Framework (DRFOUT). It is recommended to create logical ports based on integration scenarios for service groups, rather than creating logical ports manually in SOAMANAGER.
Note: The approach mentioned in the blog is based on decentralized configuration, where there is no central service registry, but local ABAP service registry is used for publishing and WSDL retrieval. Check SAP note 2605166 for further details.
For Central configuration approach please check the part II of this blog.
For additional information such as prerequisites (Authorizations, Service Users in ABAP Stack, Business Functions etc) and additional explanation of various steps , please refer to Configuring the SOA Manager for MDG (NW 7.40 or higher) on SAP Help.
In this blog we will configure the service group MDG_BS_SUPPLIERREPLICATEREQ to configure the consumer proxies BusinessPartnerSUITEBulkReplicateRequest_Out (CO_MDG_BP_RPLCTRQ) and BusinessPartnerRelationshipSUITEBulkReplicateRequest_Out (CO_MDG_BP_RELATIONSHIP_OUT)
Configuration in SOAMANAGER
The following steps need to be performed in SOAMANAGER
- Prepare and Upload WSDL
- Publish WSDL to Service Registry
- Create a Profile
- Create a Provider System
- Create Logon Data
- Create Local Integration Scenario
- Create Configuration Objects
Step A: Prepare and Upload WSDL:–
- Obtain WSDL from the provider system.
- Download the WSDL via SE80 for the Consumer Service and adapt the WSDL by adding Binding and Service elements. In case you need more information, please check the Appendix section of my other blog
- Alternatively, with SAP NetWeaver PI the WSDL can be downloaded using the Sender Agreement in case of classical configuration or using Integration configuration object in case of AAE based configuration.
- In SOAMANAGER, upload WSDL for both consumer proxies. Navigation: Tools-> WSDL Upload
Step B: Publish the uploaded WSDL to service registry
- Navigation: Service Registry-> Publication of external WSDL
- Under Service Details tab, provide an internal nameNote: The Port type name and namespace in the external WSDL should match the corresponding names defined in SE80.
- Select the service state as Configured
- In the Bindings tab, Click Next
- Create a new Physical system, with system type as Third Party (This will make sure the RM protocol is set to SAP RM when the logical ports are created later for asynchronous reliable messaging). This is mandatory to send messages via SAP Cloud platform Integration
- Review the service details and click on finish to publish the WSDL to local service registry
- Perform all the above steps for the other consumer proxies in the service group except for the Physical system. Select the existing system that was already created.
- We can verify the published service definitions using the navigation path: Service Registry-> Published Service Definitions
- Additionally, this will create an IBC (Identifiable Business Context for the physical system) in the service registry. Navigation: Service Registry-> Published IBCs
Step C: Create a profile
- Navigation: Technical Administration->Profiles (Example: Here the profile is used for maintaining proxy settings)
Step D: Create a provider system
- Navigation: Technical Administration->Provider Systems. Note: The Provider system name will be used as business system name in DRFIMG. For C4C it is recommended to use the C4C short tenant ID as the provider system.
- Under the service registry, select local service registry (SR_LOCAL) and then select the Third-Party system created earlier as the SLD Identifier. Note: If you do not see the use service registry check box, make sure the note 2600392 is implemented.
- Maintain user credentials to access WSDL from service registry and check the Tolerant Search
- Under applications, assign the business application (IBC) created earlier
- Activate the provider system
- This will create an IBC reference. Navigation: Service Administration->Identifiable Business Context Reference
Step E: Create Logon Data
Create Log on Data and activate it. Using navigation: Service Administration->Logon Data Management .
Note: This will be used to log on to the provider system (will be used in the logical port created later)
Step F: Create a local integration scenario
- Navigation: Service Administration->Local Integration Scenario Configuration
- Since we are going to use Service Group, we skip the service definitions tab
- In the service group tab, add the Service Group Object MDG_BS_SUPPLIERREPLICATEREQ
- And assign the IBC reference created earlier
- Assign the Logon Data, created previously
- Finish and activate the Integration Scenario
Step G: Create configuration objects (Logical ports)
- Once the Integration Scenario is activated the system will display a link to configure and activate the consumer proxies using Pending Tasks. Alternatively, use navigation path, Service Administration->Pending Tasks
- Ensure the task list is executed successfully and as a result logical ports will be created using the service registry.
Verify the Configuration
- Navigation: Service Administration-> Web Service Configuration
- In the Configuration tab for the service group, verify the logical ports are created
- In the messaging tab, verify the RM protocol is set to SAP RM (required for CPI based connection
Configuration in IMG
On S/4HANA On-Premise system, transaction code DRFOUT is used to replicate business partner and business partner relationship messages to external systems.
- The BC switch BSSOAV_WS_ACTIVE should be active in IMG. This is required for DRFOUT to use the service group configuration.
- DRFOUT uses the DRFIMG configuration. To send data to the provider systems, using logical ports created in SOAMANAGER, the following two points must be adapted in the DRFIMG configuration
- In DRFIMG, create a business system with the same name as defined as provider system in SOAMANAGER (For replicating data to C4C, you should use the C4C short tenant ID as the business system name)
- Assign the business system to the replication model
Test the configuration
- Trigger a Business partner message using DRFOUT and check SRT_UTIL (Web Services utilities) message monitor using forward navigation from DRFOUT logs.
- In the payload the RecipientBusinessSystemID in MessageHeader is populated from the Business system name defined in DRFIMG, which is same as the provider system name in SOAMANAGER
- For demonstration purpose, the message was made to fail intentionally, so that we can verify the logical port used by DRFOUT, in Web Service utilities-> Error Log.
- Here we can see the logical port (E04F4306AC351EE89AC862184BA69A12) being used, which is same as created in SOAMANAGER for the service group.
Similarly consumer proxies BusinessPartnerSUITEBulkReplicateConfirmation_Out and BusinessPartnerRelationshipSUITEBulkReplicateConfirmation_Out are grouped under service group MDG_BS_SUPPLIERREPLICATECONF.
Configuring Web Services in SOA Manager
When step g is performed, it does not create the logical ports using the service registry.
In addition to that when performing a test from the trx "drfout", it does not generate the corresponding output.
Even i am facing the similar issue. Did you fix the logical port issue which you were facing previously? if yes, can you please help me in fixing this?
I am facing the same issue too. Have you resolved the problem?
The WSDL, in which the binding is changed, is ProductMDMBulkRelicateRequest_Out in the Blog Part II. But the service group here is MDG_BS_SUPPLIERREPLICATEREQ. They are different, right? I am a little confused.
Thank you for clarify!
I resolved the problem after adapting, upload and registry the WSDL of BP and BP Relationship Replicate as described in the second part.
Maybe it's an older version of your system, when you create a new Provider System, under section Services Registry did you see 'Use Services Registry' checkbox? If this approach doesn't work for you, maybe you can try create logical ports manually in SOAMANAGER.
Hi, i find this blog very interesting and i am trying to work through it. So far i understood the concept but I am technically failing with the very first step to retrieve the proper WSDL from the CPI iFlo to generate the correct service registry which also will point to the CPI tenant and sets up correct transport settings. Any help would highly be appreciated.
I have mentioned this in the appendix section of the followup blog.
Best regards, Abinash
Hi Abinash, thank you for pointing me into the right direction. Now I got it. Best Regards, Florian
thank you for the cool blog!
It works fine for my scenario: S4H Master Data is replicated to FSM and C4C via separate iFlows.
thanks for your informational blog post. In my scenario I have to replicate master data in one target system (system ID) but parallel in two clients of this target system.
SAP MDG Hub (system EMA / client 100) --> SAP S/4 ERP (system EEA / client 100)
--> SAP S/4 ERP (system EEA / client 200)
Therefor I would like to configure two Provider system which includes the business system ID from the counter part systems.
Provider system 1 --> EEA_100 = Business system ID
Provider system 2 --> EEA_200 = Business system ID
Unfortunately I can not use the SLD ID from the service registry of the provider system (EMA 100) twice.
Do you have a hint for me how can I solve my problem?
In your case provider systems are EEA_100 and EEA_200. In simple terms, provider system is the system which is receiving data and consumer system is the system which is sending the data (via the consumer proxy logical port)
Best regards, Abinash
thanks for sharing this information.
I have to distribute the business partners once to C4C and once to FSM.
Unfortunately, it is only ever sent to one endpoint.
How can I send to two different endpoints in detail?
For me, only 1 logical port with an endpoint URL is created.
Does the WSDL file have to have 2 bindings + services?
Is that right?
Unfortunately, this does not work for me this way.
You need to have 2 WSDL, one for each target system. You need to create 2 configuration one for each target system.
Best regards, Abinash
now it works :-).
Thanks a lot.
great that it works now for you. Can you provide some information how did you configure the provider systems in your case? Did you use the service registry and SLD-ID? If YES how did you set it?
I believe the CPI system your trying to connect here is Neo. Can you help me how it works for cloud foundry? Especially the step 5. The hostname which we get from the iFlow is too long for the Host name space in step 5.
Thanks in advance.
In my scenario, we have to process the data to multiple receiver systems, so I am trying to create the logical ports using the service group, however its failing while executing the pending tasks.
Please refer the attached error screenshot, did not find anything regarding this error.
I would really appreciate, if you can provide your inputs on this.
Error Screenshot while processing the pending tasks.
I've configured the system following all instructions in the blog. I didn't see any errors during settings. But I have one huge problem. It works only if I set logical port as Default for one of 2 endpoints.
What did I miss?
Have you activated the BC switch BSSOAV_WS_ACTIVE. If yes you can put a break point in CL_BS_SOA_ASYNCPRX_OUT and check what is happening.
Best regards, Abinash
We are having the same kind of issue. The business partner is always sent to the port which is marked as "Default".
We already had a configuration of the CO_MDG_BP_RPLCTRQ consumer proxy. This is configurated to replicate business partners from S4 to an ECC system.
Now we want to also integrate S4 with C4.
Do we need to change the existing WSDL of the ECC proxy? Do we need to add a specific binding in there?
Any help is appreciated.
Even we are seeing the same problem. It works only if we set configured logical port as Default. Use case where system has 2 logical ports it is not working.
Please help if you were able to resolve the problem.
Dear Abinash Nanda,
In your case you are sending from a S4 to a C4 using CPI, right? And in my case I would like to use WS-RM (P2P) from S/4 (consumer) to TM (provider 1) and also to EWM (provider 2) without CPI, it is possible without CPI? thank you
thanks for your helpful blog. I already worked through it for the business partner replication (consumer proxy: CO_MDG_BP_RPLCTRQ) and it worked.
As you can see here the system created a logical port manually:
The replication to FSM works as well.
Now I tried to do the same steps as described in your blog for the business partner relationship (consumer proxy: CO_MDG_BP_RELATIONSHIP_OUT). For this consumer proxy the system didn’t create the logical port:
I think this is due to the fact that the consumer proxy is missing in the service group I used in the integration scenario.
As you mention as an additional information at the end of your blog, similary consumer proxies should be grouped under the same service group:
If I open the service group MDG_BP_REPLICATEREQ I can only find the consumer proxy of the business partner for which one it already works:
Do I have to add the consumer proxy CO_MDG_BP_RELATIONSHIP_OUT to the existing service group? (If yes: How can I do this?)
Or should I use another service group where both consumer proxies already exist? (If yes: Which one is it? I couldn’t find the correct one).
if you need both, Business Partner and Business Partner Relationship you must use service groups MDG_BS_SUPPLIERREPLICATEREQ and MDG_BS_SUPPLIERREPLICATECONF.
The other groups MDG_BP_REPLICATEREQ and MDG_BP_REPLICATECONF are only intended for those customer who don't use Business Partner Relationship and want to avoid configuring Business Partner Relationship .
see note https://launchpad.support.sap.com/#/notes/2990688
Best Regards, Wolfgang
many thanks for your help and the hint to look at SAP note 2990688. This made it possible to replicate both business partner and business partner relationship.
Thank you in advance,
This is a very very helpful blog, I also met the same error about processing pending tasks.
Managed to solve it by uploading one more WDSL at the beginning and publish it under the same external system name.