Quantcast
Channel: SCN : Popular Discussions - SAP Process Orchestration
Viewing all articles
Browse latest Browse all 1306

Calling to BPM via PI

$
0
0

Basically I have already found a solution by trial and error, but I still don't understand what's going on, maybe someone can help me understand.

 

I am trying to make a web service call

  1. from a CRM system (CRM 7.0 EhP3 SP 3), outbound interface {http://sap.com/xi/CRM/FS/Global2}NewLoanBoardingFSCreateRequest_Out
  2. via PI (double-stack, PI 7.31 SP 3)
  3. to a NW Java BPM system (NW 7.40 SP 4, inbound interface {http://sap.com/xi/FS-AO/Global}NewLoanBoardingProcessingNewLBrdngIn. The host name of the system is ilbnknw1 and the port is 50300.

 

I created an EJB for the implementation of the service provider NewLoanBoardingProcessingNewLBrdngIn and a BPM process according to note 1891861 in NW Developer Studio and deployed all of it to the NW Java BPM server.

 

There is a web service end point for NewLoanBoardingProcessingNewLBrdngIn on the NW Java BPM server the URL looks like this: http://ilbnknw1:50300/bpm/testsapcom/polnlbv0/start?wsdl&mode=ws_policy (visible in WS Administrator > Configuration > Connectivity > Single Service Administration > (stay on tab Service Definitions) > search for WSDL Port Type Name: NewLoanBoardingProcessingNewLBrdngIn ... I don't remember if it was created automatically during the deployment or I created it manually.)

The security settings for the end point are set like this:

Transport protocol: HTTP (not HTTPs)

HTTP Authentication: Checkmarks for Login with User ID/Password and for Logon ticket are set. (X.509 is not set and also grayed out.)

Message Authentication: No checkmarks are set.

 

I can test the above WSDL URL (http://ilbnknw1:50300/bpm/testsapcom/polnlbv0/start?wsdl&mode=ws_policy) from WS Navigator and it works - I don't get an error message, and in WS Administrator I see that the process is started (at Operations > Processes and Tasks > Manage Processes).

 

Now I wanted to test it from CRM. One possibility would be to go into SOAMANAGER and create a port that connects to the end point. But we prefer to go via PI. So I set up a receiver determination, interface determination and receiver agreement. The first two have no problems, the correct receiver (a business system referring to the NW Java BPM system) and the correct receiver interface are found. With the receiver agreement I was not so sure what to do and I tried different things.

 

First I thought: It's a call to a web service, let me use a web service receiver channel, i.e. Adapter Type = WS of version SAP BASIS 7.31 (I tried 7.40 because the NW Java BPM server is 7.40, but the PI doesn't like that because it's only 7.31).

I entered:

WSDL Access URL: I used the complete URL (http://ilbnknw1:50300/bpm/testsapcom/polnlbv0/start?wsdl&mode=ws_policy).

Authentication Method for WSDL Access: Basic Authentication using HTTP. (The other option No authentication and SSO using SAP Assertion ticket don't seem to fit.)

User name for WSDL access: A user in the NW Java BPM system.

Password for WSDL access: Password of the user

Security

Communication Security: None

Authentication Method: User ID/Password (Transport Channel Authentication)

Technical Transport Settings

Target Host: ilbnknw1

Service Name/Port: 50300

URL Access Path: /bpm/testsapcom/polnlbv0/start (this can be selected with the value help button and that was the only choice int he value help)

Then in the receiver agreement I chose this channel and entered the user and password on the NW Java system that should be used for the actual WS call (while the other one in the channel is only for accessing the WSDL) ... actually I used the same user and password for both, it has enough authorizations.

 

Result: Didn't work at all, PI showed a red flag for the message with the error WS_ADAPTER_SYS_ERROR and text System error while calling Web service adapter: Error when initializing SOAP client application: 'Error when initializing SOAP client application: "SRT: Unexpected failure in SOAP processing occurre"'

 

Question: Is this totally the wrong adapter to call to a NW Java system, or were my parameters wrong?

 

Then I found some things in the forum that said: Just use SOAP adapter, not WS adapter! And for communication between (newer releases of) PI and (new releases of) NW Java BPM it's best to use the SOAP adapter with the XI 3.0 protocol.

 

So I tried a SOAP receiver channel with XI 3.0 protocol, i.e. Adapter type SOAP with version SAP BASIS 7.31,

Transport Protocol: HTTP,

Message Protocol: change from SOAP 1.1 to XI 3.0,

Adressing Type: URL address (HTTP destination was the alternative),

Target URL: I used the whole URL (http://ilbnknw1:50300/bpm/testsapcom/polnlbv0/start?wsdl&mode=ws_policy),

Authentication Mode: Use Logon Data for Non-SAP system (because Logon Data for SAP system wanted a client and language, so I think it refers to ABAP systems only),

User Name: A user in the NW Java BPM system,

User Password: the matching password

(No settings in receiver agreement, just chose the channel.)

 

Result: The PI didn't show any error anymore, the flag was black-white. But on NW Administrator (Operations > Processes and Tasks > Manage Processes) I could not see the process starting!

 

Question: How is this possible? Where else could the error be seen? Are my parameters wrong? Probably not, otherwise PI should already show the error.

 

Next try: SOAP receiver channel with SOAP 1.1 protocol, i.e. Adapter type SOAP with version SAP BASIS 7.31,

Transport Protocol: HTTP,

Message Protocol: SOAP 1.1 (the default, instead of XI 3.0 in the previous attempt)

Adressing Type: URL address (HTTP destination was the alternative),

Target URL: I used the URL just up to the ? for the parameters, i.e. only http://ilbnknw1:50300/bpm/testsapcom/polnlbv0/start,

Checkmark for Configure User Authentication,

User Name: A user in the NW Java BPM system,

User Password: the matching password

At the bottom:

Checkmark for Use Query String,

SOAP Action: wsdl&mode=ws_policy

(No settings in receiver agreement, just chose the channel.)

 

Result: Success in PI (black-white flag) - and now two processes were started shortly after each other (within 15 seconds)!

 

I tested again to see if it would always trigger two process starts, but now it only started one as expected.

 

So it looks like the other process start "pushed out" a hanging previous process start? Is such a thing possible? Where could I monitor this? (Apparently not in NW Administrator > Operations > Processes and Tasks > Manage Processes).

 

So now I have a solution, I use a SOAP receiver channel with SOAP 1.1 protocol, not with XI 3.0 protocol, and certainly not thw WS adapter. But I still wonder why it's not working with the XI 3.0 protocol, even though this seems to be the most recommended way for PI and BPM to communicate in recent releases that support this, and what exactly happened there, where the first process start was "hiding" in the meantime.


Viewing all articles
Browse latest Browse all 1306

Trending Articles



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