CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
cancel
Showing results for 
Search instead for 
Did you mean: 
AbinashNanda
Product and Topic Expert
Product and Topic Expert

Introduction


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

  1. Prepare and Upload WSDL

  2. Publish WSDL to Service Registry

  3. Create a Profile

  4. Create a Provider System

  5. Create Logon Data

  6. Create Local Integration Scenario

  7. Create Configuration Objects


Step A: Prepare and Upload WSDL:–

  1. 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.



  2. In SOAMANAGER, upload WSDL for both consumer proxies. Navigation: Tools-> WSDL Upload


Step B: Publish the uploaded WSDL to service registry

  1. Navigation: Service Registry-> Publication of external WSDL

  2. 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.

  3. Select the service state as Configured

  4. In the Bindings tab, Click Next

  5. 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

  6. Review the service details and click on finish to publish the WSDL to local service registry

  7. 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.

  8. We can verify the published service definitions using the navigation path: Service Registry-> Published Service Definitions

  9. 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 😧 Create a provider system

  1. 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.

  2. Under the service registry, select local service registry (SR_LOCAL) and then select the Third-Party system created earlier as the SLD IdentifierNote: If you do not see the use service registry check box, make sure the note 2600392 is implemented.

  3. Maintain user credentials to access WSDL from service registry and check the Tolerant Search

  4. Under applications, assign the business application (IBC) created earlier

  5. Activate the provider system

  6. 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

  1. Navigation: Service Administration->Local Integration Scenario Configuration

  2. Since we are going to use Service Group, we skip the service definitions tab

  3. In the service group tab, add the Service Group Object MDG_BS_SUPPLIERREPLICATEREQ

  4. And assign the IBC reference created earlier

  5. Assign the Logon Data, created previously

  6. Finish and activate the Integration Scenario


Step G: Create configuration objects (Logical ports)

  1. 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

  2. Ensure the task list is executed successfully and as a result logical ports will be created using the service registry.


Verify the Configuration

  1. Navigation: Service Administration-> Web Service Configuration

  2. In the Configuration tab for the service group, verify the logical ports are created

  3. 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.

  1. The BC switch BSSOAV_WS_ACTIVE should be active in IMG. This is required for DRFOUT to use the service group configuration.

  2. 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



  1. Trigger a Business partner message using DRFOUT and check SRT_UTIL (Web Services utilities) message monitor using forward navigation from DRFOUT logs. 

  2. 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

  3. 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.

  4. Here we can see the logical port (E04F4306AC351EE89AC862184BA69A12) being used, which is same as created in SOAMANAGER for the service group.


Additional Information:


Similarly consumer proxies BusinessPartnerSUITEBulkReplicateConfirmation_Out and BusinessPartnerRelationshipSUITEBulkReplicateConfirmation_Out are grouped under service group MDG_BS_SUPPLIERREPLICATECONF.

Further references:


Configuring Web Services in SOA Manager

ABAP Connectivity - Web Services ABAP
34 Comments
0 Kudos
Hi Abinash,

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.

Best regards,
Greetings.
kavya_01
Explorer
0 Kudos
Hi Jose,

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?
frey_chen
Employee
Employee
0 Kudos
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.
florianbus
Contributor
0 Kudos
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.

Best Regards,

Fflorian
AbinashNanda
Product and Topic Expert
Product and Topic Expert
Dear Florian,

 

I have mentioned this in the appendix section of the followup blog.

 

https://blogs.sap.com/2019/12/16/configuring-service-group-in-soamanager-using-integration-scenarios...

 

Best regards, Abinash

 
florianbus
Contributor
0 Kudos
Hi Abinash, thank you for pointing me into the right direction. Now I got it. Best Regards, Florian
ng82si
Participant
0 Kudos
Hi Jose,

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!

Regards

Kefei

 
ng82si
Participant
0 Kudos
I resolved the problem after adapting, upload and registry the WSDL of BP and BP Relationship Replicate as described in the second part.
ng82si
Participant
0 Kudos
Hi Abinash,

thank you for the cool blog!

It works fine for my scenario: S4H Master Data is replicated to FSM and C4C via separate iFlows.

Keep doing.

Regards

Kefei
sven_hertig1
Participant
0 Kudos
Hi Abinash,

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?



Thanks and

Best regards,

Sven
AbinashNanda
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello Sven,

 

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
Simon
Participant
0 Kudos
Hi 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?

Example:


Is that right?

Unfortunately, this does not work for me this way.

 

Thanks

Simon
AbinashNanda
Product and Topic Expert
Product and Topic Expert
Hi Simon,

 

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
Simon
Participant
0 Kudos

HI Abinash,

now it works :-).

Thanks a lot.

Regards

Simon.

sven_hertig1
Participant
0 Kudos
Hi Simon,

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?

 

Thanks and

Best regards,

Sven
0 Kudos
Hi abinash.nanda

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.

 
former_member141062
Discoverer
0 Kudos
Hello Avinash,

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.


 

 

 

 
05555
Explorer
0 Kudos

Hello!
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?


Marina
AbinashNanda
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello Marina,

Have you activated the BC switch BSSOAV_WS_ACTIVEIf yes you can put a break point in CL_BS_SOA_ASYNCPRX_OUT and check what is happening.

Best regards, Abinash
jasper_cremers
Explorer
0 Kudos
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.

 

Regards,

Jasper
0 Kudos

Hi,

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.

 

Regards,

Medha

former_member325732
Discoverer
0 Kudos
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
A41BRINKSCHU
Discoverer
0 Kudos
Hi Abinash,

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).

Best Regards,
Karla
WolfgangGedemer
Advisor
Advisor
Hi Karla,

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
A41BRINKSCHU
Discoverer
0 Kudos
Hi 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.

  1. We had to perform a major modification on the IFLOW WSDL from CPI as otherwise the automatic creation for the local integration scenario is failing. Are there artefacts on CPI where we can download the complete and correct WSDL for such a scenario?

  2. Is there any indication in the integration guide of FSM for the use case to connect to SAP Cloud Services / Applications with S/4? I’m sorry unfortunately I couldn’t find any hint.

  3. Our next step is to integrate a multiple companies on FSM sight. So, we have two legal entities that work with the same system and each of them has its own company in FSM. Are there any integration scenarios documented? Do you have any recommendations like distribute the business partner on CPI site into the different FSM companies?


Thank you in advance,

Karla
gyang001
Explorer
0 Kudos
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.
Summitt12
Participant
0 Kudos
yanggongliang1982 , We are facing similar issue in configuring SOAMANAGER using Service group

Can you please advise, how did you managed to resolve it

Appreciate your time
gyang001
Explorer
0 Kudos
Hi Manish,

A usual reason for the pending task execution to be failed is when it is not able to find valid binding port for all consumer proxies within a Service Group.

In case you have followed the main blog and used service group MDG_BS_SUPPLIERREPLICATEREQ, then you would noticed that there are two consumer proxies in it. If you just uploaded the WSDL to bind the CO_MDG_BP_RPLCTRQ then you will need to upload another WSDL to bind the CO_MDG_BP_RELATIONSHIP_OUT, you may download the WSDL from service definition BusinessPartnerRelationshipSUITEBulkReplicateRequest_In. Alternatively use service group MDG_BP_REPLICATEREQ instead of MDG_BS_SUPPLIERREPLICATEREQ at Step F: Create a local integration scenario then it contains only one consumer proxy CO_MDG_BP_RPLCTRQ if that suits your requirement.

Hope this helps.

Regards

Gavin
Summitt12
Participant
0 Kudos
jasper.cremers

Hope you are doing well, we have similar requirement

Can you please advise, how you managed to resolve it

Thanks & Regards
jasper_cremers
Explorer
0 Kudos
Hi Manish,

I did not resolve it myself eventually, a developer picked it up (and I think they included some custom developments eventually..).

A colleague of mine happened to write a blog about this topic, I did not read it (yet) but it might have additional information:

https://www.acorel.nl/2022/12/service-group-configuration-in-soamanager/

Regards,

Jasper
former_member865576
Discoverer
0 Kudos

Hello Jasper, We also facing same issue. When we tried to replicate BP and BP relationship details to two target systems two logical ports got created and in which one is default and the other is not default. We are able to replicate the message successfully for consumer proxy where port is default but not for the other. Please let me how your team solved this issue?. Your efforts are highly appreciated.

former_member865576
Discoverer
0 Kudos
Hello Medha, Even we are also seeing the same issue. Please let us know if you were able to resolve the issue?
ringo_se80
Discoverer
0 Kudos
Hi all,

Thank you for the article and for the discussion so far. Unfortunately logical port generation fails for me with error "Could not create a valid configuration".

I have to implement Business Partner replication via DRF to two target systems, represented by two different iFlows in the same CPI instance. This is meant to be a decentralized configuration and there is no PI available.

I use service group MDG_BP_RELICATEREQ which contains only the consumer BusinessPartnerSUITEBulkReplicateRequest_Out. I checked the following points:

  1. WSDL contains proper elements wsdl:binding and wsdl:service for BusinessPartnerSUITEBulkReplicateRequestOut. I downloaded it from SE80 and to avoid editing it manually had it uploaded on CPI, create iFlow and download the created WSDL again.

  2. Published Service Definition and Published IBC exist, referring to Physical system.

  3. Provider System and Logon Data are active.

  4. Scenario is active, referring to Service Group MDG_BP_REPLICATEREQ, active IBC reference and logon data.


I made an extra effort to upload and publish also the incoming service endpoint BUSINESSPARTNERSUITEBULKREPLIC on CPI. Therefore a WSDL is found also for the Incoming Interface, but that does not seem to be relevant:



What could be the reason?

How can I find out more details on the root cause for this error?

Can you see alternative options of creating logical ports correctly (maybe manually)?

Any help is highly appreciated, I am lost after trying many options, unfortunately.

I just tried with one WSDL for one target system so far and I understood that I will have to repeat steps to include the second target system with a separate WSDL.

Thanks a lot for any hints,

Ringo
ringo_se80
Discoverer
0 Kudos
I could solve the issue in Logical Port generation by myself! The error was in the "Profile" that is assigned to the Provider system. The Profile had Transport Binding Type set to SOAP 1.2, whereas the WSDL of the Outbound Interface offers only SOAP 1.1. I changed the Profile and updated the Profile version in the Provider system and after that the Logical Ports could be generated successfully.

Still, it took quite some time to identify that root cause by debugging from CL_SRT_CONFIGURATOR_SRV_GROUP to CL_SRT_WSP_CONFIG_SIDL_PM to find the hint on the SOAP version mismatch. Could be reported better by SOAMANAGER!