cancel
Showing results for 
Search instead for 
Did you mean: 

Message name is missing in target mapping while using external definition message

allamudi_loordh
Active Participant
0 Kudos

Hi PI mates,

I got an issue while sending data to webservice. The message name is missing while the payload is going from PI to webservice so it is giving an error that "operation is not found".

The below i can see when i am triggering in Soap UI.

     <urn:FNSENDCOMPLAINTTOCFR soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <COMPLAINT xsi:type="urn:CFRCOMPLAINT">
           ....
        </COMPLAINT>
     </urn:FNSENDCOMPLAINTTOCFR>

But while going from PI the below payload is going

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

<ns0:COMPLAINT >

</ns0:COMPLAINT>

So it is giving an error COMPLAINT operation is not found.

When i am drag & drop into Target inside mapping i am getting the above payload. Need an idea how to get the same payload as in soap ui.

Appreciate your help.

Regards,

Loordh.

Accepted Solutions (1)

Accepted Solutions (1)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Here, You dont create message type.SO you dont see message name in target message. Since you use external definition message, Pick the method as external type message in service interface. That's it. You just do the mapping.  This is very similar to using IDOCs or RFCs.

>When i am drag & drop into Target inside mapping i am getting the above payload. Need an idea how to get the same payload as in soap ui.

Go to mapping test tool and provide data and test and after execution pick the response message of target.

Note: PI generally provides prefix ns0 or so... This is PI mapping internal design, but still you will see if namespace exists, only prefix will be different. SOAPUI is not mapping tool. It's a just webservice test tool.

allamudi_loordh
Active Participant
0 Kudos

Hi Bhaskar,

The payload is going this way from PI.

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

<ns0:COMPLAINT >

</ns0:COMPLAINT>

But it should go in this way

<urn:FNSENDCOMPLAINTTOCFR soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

        <COMPLAINT xsi:type="urn:CFRCOMPLAINT">

           ....

        </COMPLAINT>

     </urn:FNSENDCOMPLAINTTOCFR>

Thank you.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

In the mapping tool, you will see payload and namespace details. You dont see envelope information. You can get those information Envelope which contains header details and payload will be shown in the SXMB_MONI.

allamudi_loordh
Active Participant
0 Kudos

Bhaskar,

In mapping tool i am getting

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

<ns0:COMPLAINT >

</ns0:COMPLAINT>

i am talking about end to end  It should go

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

<FNSENDCOMPLAINTTOCFR>

<ns0:COMPLAINT >

</ns0:COMPLAINT>

</FNSENDCOMPLAINTTOCFR>

so how to add that

<FNSENDCOMPLAINTTOCFR> in the target, should i add in WSDL file?

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Runtime your soap adapter adds as per the wsdl requirement. It will create SOAP envelope which contains header and payload. Better run  a test and see how that goes in SXMB_MONI. Mapping tool test is just for the payload information. Please remember that.

Note: If the WSDL file has no information about SOAP Header and you have above requirement to add in your message, then you have to use java mapping or XSLT mapping to add those information.

allamudi_loordh
Active Participant
0 Kudos

Bhaskar,

It is going like this.

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

<ns0:COMPLAINT>

...

...

</ns0:COMPLAINT>

Even in the moni also, so i am getting error like Operation "COMPLAINT" is not found as operation should FNSENDCOMPLAINTTOCFR

If it goes like below then It will trigger webservice

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

<FNSENDCOMPLAINTTOCFR>

<ns0:COMPLAINT >

</ns0:COMPLAINT>

</FNSENDCOMPLAINTTOCFR>


baskar_gopalakrishnan2
Active Contributor
0 Kudos

That means you need to have XSLT mapping or Java mapping to add those tags in the message.

The below link for XSLT mapping beginners.   beginnerhttp://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/000ee4d0-be91-2d10-8aaf-ff8045bdd...

You could also do it using java mapping. Search SDN.

allamudi_loordh
Active Participant
0 Kudos

Bhaskar,

I am using PI7.3, cant we achieve this by editing wsdl or some thing else except Java mapping or xslt mapping.

Can we create our custom data types and message types ? Is that achievable.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

It's not advisable for us to modify the WSDL.  If you have requirement from the target system to have those tags in the message, then tell target system to modify the wsdl and you can re import after their change. Otherwise use XSLT or Java mapping to add those tags.

Looks like  you have outdated WSDL for that message. Talk to Target system.

Hope that helps.

allamudi_loordh
Active Participant
0 Kudos

Hi Bhaskar,

I have resolved it by enabling the option in external defintion.Actually by default the option will be there" Do Not Extract Messages "..so i have changed it to Using RPC Style so that all message strctures came properly.

http://help.sap.com/saphelp_nwesrce/helpdata/en/26/9e97b0f525d743882936c2d6f375c7/content.htm

thanks for all your replies.

Regards,

Loordh.

Answers (0)