cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP receiver channel, file data getting missed

former_member585940
Participant
0 Kudos

Hi Experts,

We have one idoc to SOAP scenario.We are calling third party web service and placing the file at their local tool.The local tool will validate the XSD and process the file if XSD is correct.

Now the issue is whenever we are sending the file to third party,they are not receiving the messageheader feild ( first feild in xsd) ,hence file is not getting processed at their end.

If I check PI receiver channel or adapter engine, the output file is having header and correct.

So seems something is happening while calling webservice.

I would really appreciate your inputs on it.

We are not using any specific setting in SOAP channel.

The SOAP action is the web method which we are calling in this case.

The error at third party side is

Error=Invalid Message
Received

XML in message does not match schema at line 1 character 41
The element 'schedule' has incomplete content. List of possible elements
expected: 'messageHeader'.
Schema Validation Failed:  XML in message does not match schema at line 1
character 41.
The element 'schedule' has incomplete content. List of possible elements
expected: 'messageHeader'.

Regards,

Varinder Singh

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member585940
Participant
0 Kudos

Hi All,

It was the issue with reciever web service.

They have refernce from two namespaces and that was missing in the file,sent by PI.

After web service update,it is working fine.

Thanks for your support.

Regards,

Vikram

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

Please try executing your request externally by using SOAPUI. After doing this, compare the request generated by SOAPUI to the request that XI is sending. There are some webservices (at least in some of my projects) that are strict with namespace prefixes and would not accept the ns0 generated by PI message mapping.

Hope this helps,

Mark

former_member585940
Participant
0 Kudos

Hi Mark,

Thanks for the reply.

This is the first time i am working with SOAP.

One doubt here, If we execute the request using SOAP UI and it goes through and gets posted successfully.

How can we compare it with XI request and where can we see the payload that is going through web service.

Also, we need to find where and which field is gettng missed when we are sending the same request via XI..

Thanks,

Vikram

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Vikram,

You compare the request generated by SOAP UI and the request generated by PI. The payload going through the webservice should be in the request message mapping pipeline step in sxi_monitor. In SOAP UI, this can be seen in the Raw tab under the request.

Regards,

Mark

former_member585940
Participant
0 Kudos

Hi Mark,

I did not find any data in RAW tab.Its just having response data.

But when i import the WSDL from third party to SOAPUI, I found that the field where we are getting the error is named as 'tms:messageHeader' but in our PI XSD, it is maintained as 'messageHeader'.

Can this be the reason?

is there any automatic validation that happens at web service side?

Also, he is able to post the same file manually. So, I am still not sure why it is not getting posted via webservice.

Regards,

Vikram

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Vikram,

Yes, that could be the reason. tms:messageHeader has a namespace prefix while messageHeader has none. If you try to add tms in the test tab of message mapping, you will see that that field becomes "red" in tree structure.

Regards,

Mark

Former Member
0 Kudos
Former Member
0 Kudos

Hi Vikram,

You said you call a SOAP service? Why is then a file placed somewhere? Can you please explain in more detail? Did you get a WSDL from the called SOAP service which you used in PI?

Best Regards

Harald

former_member585940
Participant
0 Kudos

Hi Harald,

We are using the XSD in PI which is being used by the third party tool.

Now, for connecting to that tool, we are going via web service.

With SOAP channel we are going for one particular web method and trying to post the file.

We are not using the WSDL from SOAP service but the XSD being used in PI is similar to SOAP service WSL.

Regards,

Vikram

Former Member
0 Kudos

Vikram,

Can you provide the xml sent from SOAP and the xml received at third party web service.

Regards,

Pranav

former_member585940
Participant
0 Kudos

Hi Pranav,

At third party, the XML directly goes to the tool and only status is sent.

If it is processed then database is updated, if not then status with error msg will be sent.

Regards,

Vikram