Skip to Content
Former Member
Mar 14, 2013 at 03:32 AM

How to use the for-each and conditional atoms to update a Business Partner?


Again, I apologize if this is simplistic, but I've recently been trying to learn quite a bit about the various atoms we can use in processing steps. I've been successful in entering in a single call to a B1 atom, but I was curious about how to use conditional processing and for each processing atoms to potentially make multiple calls. I have set up a processing flow as follows in B1iF

I have a single SQL call that starts everything and pulls data very simply with a SELECT CUSTOMER_ID, CUSTOMER_NAME FROM ORDERS. I am trying to fill in the CardCode and CardName fields in B1 using this SQL call and hope to do it with the B1 Object in the middle of the for-each atom. I could have up to 200 Business partners pulled from my SQL call.

I have tried adding a path variable like /* to the path atom to allow the SQL call's data to reach the for-each atom. When I reach the for each atom, I try processing the data for each row, so I enter in an xpath value of /vpf:Msg/vpf:Body/vpf:Payload[./@Role='C' and ./@id='atom1']/jdbc:ResultSet/jdbc:Row But the moment I try to debug this to see what message is coming off the for-each atom into the xForm atom I receive a "run could not be triggered" error. The moment I remove the xForm and B1 Object atoms, the scenario step debugs without issue.

Would anyone have an idea of what's happening that they could share? Can we not use B1 object calls in the middle of a for-each statement? Am I missing something in the xpath I am using in the path or the for-each variables? I am at a loss, even after reading the integration framework's documentation.