cancel
Showing results for 
Search instead for 
Did you mean: 

Edit Specific Node from SOAP Message in CPI

ag3silaus
Participant
0 Kudos

Hi Experts,

The problem is that I get IDOC messages from an S4 system and through message mapping we convert the message to SOAP message. But one parameter (UserAccountsInactiveIndicator) should be true instead of false. I did it in Integration Flow but if we get an update it will be deleted. That's why I should do it in an extension. How can i change this specific node with PostExit. Or should I use my Original IDOC message in my PostExtend Integration Process. Thank you in advance for your help.

Accepted Solutions (1)

Accepted Solutions (1)

MortenWittrock
Active Contributor

Hi Burak

Create a new iflow with a sender ProcessDirect channel. In the new iflow, set up a mapping that changes the single field, you want to update. Then configure the pre-packaged integration flow with your ProcessDirect channel name.

The payload will be passed to your new iflow, updated and then returned to the calling iflow, with the single field changed. This way you will still receive updates to the pre-packaged iflow.

Regards,

Morten

ag3silaus
Participant
0 Kudos

Hi Morten,

Thank you for your quick answer. I already do first step (Create a new iflow with a sender ProcessDirect channel) and it's working. In this step (In the new iflow, set up a mapping that changes the single field, you want to update) i made mappings which is not working. I made also last step (Then configure the pre-packaged integration flow with your ProcessDirect channel name). Payload content disappears after my Mapping that in new iflow.

Regards,

Burak

ag3silaus
Participant
0 Kudos

Hi Morten again,

additional when i mapped whole Payload then i became this error

==> com.sap.xi.mapping.camel.XiMappingException: Cannot produce target element /ns4:EmployeeReplicationRequest. Queue has not enough values in context. Target xsd requires a value for this element, but target field mapping does not produce one. Probably the xml-instance is not valid to the source xsd, or the target field mapping does not fulfill the requirement of the target xsd.

Thank you again for your Help

MortenWittrock
Active Contributor

Hi ag3silaus

In that case, the problem is with your mapping only and not with the way the extension is set up. With XSLT, it's quite easy to change a single XML element and leave everything else in place.

You should probably ask a new question specifically about this mapping problem. Remember to provide some sample input XML.

Regards,

Morten

Answers (0)