cancel
Showing results for 
Search instead for 
Did you mean: 

BPM process failing from PI --> NW BPM in mapping

Former Member
0 Kudos

Hi Experts,

We have a PO installation on PI 7.31 SP 03. We developed a BPM process in NWDS 7.31 SP 03 and deployed on PI server.

Scenario -- SOAP --> PI --> BPM

Problem -- BPM process fails and in Log viewer (NWA) we see that PI Operation Mapping that is called inside BPM and fails with error:    RuntimeException during appliction Java mapping com/sap/xi/tf/_MM_CombineSapAndPrimaveraReadResponses_Thrown:com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:Messages/ns0:Message1/ns1:MT_Standard/SelectionCriteria/Primavera/QueryElement/attribute. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD.


The problem is the xml from UI (SOAP) to PI has this value and data in it. This is also mapped in the event trigger of the BPM. However, inside the BPM the value seems to be lost.

The data type of "attribute" is string as with other elements in the xml which have the value and pass through the mapping.

Attached is the screenshot of xml before reaching BPM. and screenshot of context data in BPM which does not contain the value.


It may be something very small that we are overlooking but this has become a show stopper for now.

Any help regarding this will be much appreciated.


Thanks,

Latika.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Looks strange...

What I Can advise here is to take some intermediate variable and map the data to that variable to see at which step of BPM data is lost...or data itself is not sent to BPM process..

Also check the data types of that variable.

HTH

Rajesh

Former Member
0 Kudos

Thanks Indrajit and Rajesh for your suggestions.

1) I did the mapping of all the steps again and re-deployed the BPM. but same error.

2) Rajesh, InspireStdRequest (in screenshot of context object) is the first local variable/container to receive the message from Pi and it is also missing the value of "attribute" though I see it mapped one to one in mapping of trigger event.

Next, i am thinking of redoing the whole BPM from scratch -- from creating a new workspace hoping that this might resolve the (unknown) issue.

Any advice?

Thanks,

Latika.

Former Member
0 Kudos

Hello,

Strange...I have never seen any data getting lost in BPM.

U r doing any mapping in PI for start event ICO (SOAP -> PI -> BPM (Start event))?

Thanks

Amit Srivastava

Former Member
0 Kudos

Hi Amit,

Yes there is mapping in ICO between the interface which gave correct output (standalone as well as in NWA logs)

All,

I just found the reason for this "data loss". There was a wrong enumeration defined for this field in PI --> data types which was stopping the value (not in the list) to pass into BPM. When I remove this enumeration from details in data type definition, I can see the value being passed into BPM variables.

However, what I am wondering now is why would PI not stop such a value (since I could see that in mapping output all through these years when we had this called from ccBPM). But NW BPM rightly stops it.

Any idea?

Thanks,

Latika.

Former Member
0 Kudos

Hello,

I tried replicating what u have mentioned and i got below error in BPM monitoring (related to BPM mapping). So it seems that BPM is doing some kind of internal XSD validation of input data.

Mapping failed
java.lang.IllegalArgumentException: Value 'AmitSrivastava' of type http://MultipleCollect#DT_Output+Name fails validation check: Enumeration=[amits]
com.sap.mapping.lib.execution.api.exception.TExecutionException: Cannot process assignment
at RelayTransformer, SetIntegrator, DisjunctionExpander( TerminalPart:assignment )
at Name( TerminalPart:assignment )



Thanks

Amit Srivastava

Former Member
0 Kudos

Hi,

What is the service interface pattern you have selected for the message which you sent to the BPM..

Service interface pattern can make a difference here ...

AFAIK if the service interface pattern is stateless(XI 3.0 Compatible) you should see the same earlier behavior , if it is stateless then the validation may take place against xml xsd and as a result you have the noted behavior...

HTH

Rajesh

Former Member
0 Kudos

Hi Rajesh,

Service Interface pattern is stateless(XI 3.0 Compatible) and the validation took place. but my concern is why PI 7.0/7.1/7.11/7.3 where I ran the same mapping passed this value (which is not in enumeration) without validation? Earlier also interface pattern was the same.

Hi Amit,

Where did you see this error? In my case the xml was passed into the BPM. It was only in subsequent operation mapping that it failed and I realized some issue with data. There also I did not see this detailed error on enumeration (else it would have been quicker). Can you share the path where you saw this error?

Thanks,

Latika.

Former Member
0 Kudos

Hi,

I'm sure that validation of XSD takes place ...like in IDoc_AAE Java adapter against IDoc XSD...

but not able to recollect what exact parameter makes this mandate...

probably try other way that is change the interface pattern from XI 3.0 Compatible to Stateless and share the behavior ...i.e. pass the input value which is not present in enumeration list...

Note Validations doesn't take place at mapping level/adapter level implicitly and that the reason we have the option of XSD Validation introduced earlier...but now for some cases like these implict validations are taking place..e.g. IDoc_AAE adapter does this..

HTH

Rajesh

Former Member
0 Kudos

Hello,

I am using PI7.31 SP09 and i have seen above error in BPM Process Monitoring.

NWA -> Availability and performance -> BPM System overview -> filter ur BPM process and select the same ->  extreme below u will find a "History" tab, so click on that-> and from "Show" dropdown select "Advanced".

Thanks

Amit Srivastava

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Latika

Everything looks good. The only problem may be during your trigger event step.Make sure that the local variable has the field name 'attribute' and it has a proper mapping in the output mapping in trigger event.

If needed do the output mapping once again and re-deploy the BPM and then test.