Skip to Content
Technical Articles
Author's profile photo Abinash Nanda

Configuring Service Group in SOAMANAGER using Integration Scenarios

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 D: 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

Assigned tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Jose Arturo Palomino Higaonna
      Jose Arturo Palomino Higaonna

      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.

      Author's profile photo Kavya Priya Kaza
      Kavya Priya Kaza

      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?

      Author's profile photo Kefei Dong
      Kefei Dong

      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

       

      Author's profile photo Kefei Dong
      Kefei Dong

      I resolved the problem after adapting, upload and registry the WSDL of BP and BP Relationship Replicate as described in the second part.

      Author's profile photo Frey Chen
      Frey Chen

      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.

      Author's profile photo Florian Preuß
      Florian Preuß

      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

      Author's profile photo Abinash Nanda
      Abinash Nanda
      Blog Post Author

      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-part-ii/comment-page-1/#

       

      Best regards, Abinash

       

      Author's profile photo Florian Preuß
      Florian Preuß

      Hi Abinash, thank you for pointing me into the right direction. Now I got it. Best Regards, Florian

      Author's profile photo Kefei Dong
      Kefei Dong

      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

      Author's profile photo Sven Hertig
      Sven Hertig

      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

      Author's profile photo Abinash Nanda
      Abinash Nanda
      Blog Post Author

      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

      Author's profile photo Simon Dietrich
      Simon Dietrich

      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

      Author's profile photo Abinash Nanda
      Abinash Nanda
      Blog Post Author

      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

      Author's profile photo Simon Dietrich
      Simon Dietrich

      HI Abinash,

      now it works :-).

      Thanks a lot.

      Regards

      Simon.

      Author's profile photo Sven Hertig
      Sven Hertig

      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