Quantcast
Channel: SCN : Unanswered Discussions - Service-Oriented Architecture (SOA) and SAP
Viewing all articles
Browse latest Browse all 360

Change Soap Header in P2P WebService (No PI available)

$
0
0

Hi Experts,

 

I need your help with a Webservice we are building.

--Facts--

  • We have the requirement to build a WebService in CRM that will be consumed by an external system. (We are service Providers)
  • Since we have no PI available we are building it as a Function Module that will be later transformed into a WebService.
  • The WebService / communication will be Asynchronous. We want to use WS-Adressing to handle the asynchonous process. (Check the requirement Backgroud at the end)
  • We have a sample xml message in which we need to base and build the service WSDL based on:

<?xml version="1.0" encoding="utf-8" ?>

-<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">

 

 

-<NS1:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">

 

 

-<requestHeader>

 

 

<systemID>DEFAULT</systemID>

 

 

<messageID>MSGID</messageID>

 

 

<aplicativoOrigen>bizagi</aplicativoOrigen>

 

 

<timeStamp>2014-12-06T20:24:33.839428</timeStamp>

 

 

<operacion>crearProspecto</operacion>

 

</requestHeader>

 

<wsa:To>http://127.0.0.1:7700/dummy</wsa:To>

 

 

-<wsa:ReplyTo>

 

 

<wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>

 

</wsa:ReplyTo>

 

<wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>

 

 

<wsa:Action>crearProspecto</wsa:Action>

 

</NS1:Header>

 

+<NS1:Body>

 

 

-<crearProspecto xmlns:ges="http://grupobancolombia.com/intf/GestionarProspectosCRM">

 

 

-<datosGenerales>

 

 

 

 

<agenteRetencion>ac</agenteRetencion>

 

</datosGenerales>

 

</crearProspecto>

</NS1:Body>

</NS1:Envelope>

 

 

 

-- Background --

1- We have a CRM system with no PI and an external system (INT) to which we need to communicate in an Asynchronous way. Simply put, we need to provide to and consume from this non SAP System.
(This INT system is the equivalent of an SAP PI system and it will be responsible to transform and reroute the messages to the corresponding legacy systems)

 

2- We want to allow the creation of BPs in an Asynchronous way. The way we want to achieve Asynchronous communication is by means of two Web services.

    1. a.      CRM publishes a WS that is consumed by the INT (directly no PI)
      • In the header of this message we will be using WS-Adressing standard and receiving from the INT the MessageID field.
      • CRM receives the messages, stores the information (does not process it) and immediately sends an accepted HTTP 202 code as a response to the INT.
      1. b.      INT also publishes a WS that is consumed by the CRM and is used to receive the response of the first message from INT to CRM
        • After X amount of time (Hours or days), the CRM gets the stored data and processes it finally creating the BP in the system. Once the BP is successfully created, CRM Consumes this WS exposed by the INT and sends the information that the BP has been finally created. The RelatesTo field in the header is then matched with the MessageID field sent before in the WS-A header and this way the INT finds out to which original message this second Web Service correlates to.

 

3- Please consider no PI is available,

 

 

 

--Question--

How can we build a WSDL for this service? I am asking in specifically how do you build a WSDL with a header with 4 fields and WS-Adressing fields also. Keep in mind that we have no PI and we are using a Function Module to Build the Service.

 

-<requestHeader>

<systemID>DEFAULT</systemID>

 

 

<messageID>MSGID</messageID>

 

 

<aplicativoOrigen>bizagi</aplicativoOrigen>

 

 

<timeStamp>2014-12-06T20:24:33.839428</timeStamp>

 

 

<operacion>crearProspecto</operacion>

 

</requestHeader>

<wsa:To>http://127.0.0.1:7700/dummy</wsa:To>

-<wsa:ReplyTo>

<wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>

 

</wsa:ReplyTo>

<wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>

<wsa:Action>crearProspecto</wsa:Action>

 

 

I am attaching the XML and a WSDL that was provided to us, but not generated by us in CRM. We need to create a service with a WSDL similar to that one in the CRM

 

Thanks!

Pablo.


Viewing all articles
Browse latest Browse all 360

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>