[25/02/09 14:22:20:824 GMT] 00000087 BpelEngine I CWWBE0085E: Incompatible types were encountered during the assignment to a variable or partner link 'determineClawbackEligibilityRequest' in activity 'Assign'.
org.apache.commons.jxpath.JXPathException: Exception trying to create xpath Customer/PortfolioAccount/CancelledSubscriptionList/Subscription[bpws:getVariableData('Index1')]/Id; JXPath can only create a path if it uses exclusively the child:: and attribute:: axes and has no context-dependent predicates
[25/02/09 14:22:20:824 GMT] 00000087 BpelEngine I CWWBE0163I: Business Process Choreographer is using navigation based on JMS in long-running business processes
Root Cause
When you use for loop in BPEL, and try to assign from a Xpath to a Xpath expression using loop variable , you will see the above error.
Like
Requset/customers/customer[LoopVar]/id = Response/customers/customer[LoopVar]/id.
In the left hand side the expression is fine, but the predicate (right side) is not correct in BPEL. you cant use variable in case of BPEL for loop predicate.
Resolution
You have to assign the individual id to a temp variable and that temp variable you have to add to the final response.
Requset/customers/customer[LoopVar]/id = Temp_id.
each_Cust = createNewCustomer.setString("id",Temp_id)
Cust_List = response.getList("customers/customer")
Cust_List.add(each_Cust);

No comments:
Post a Comment