This content has been marked as final. Show 1 reply
Provide two pieces of information:
1. Order Item Property
2. Boolean XQuery expression returning fn:true() to fire the dependency.
Assume you need to ensure all Provisioining items (From) must have reached the "PRODUCT STARTED" milestone , before the Billing Component Items (To) can start.
Note From Component is also known as "blocking" while the To Component is known as "Waiter"
1. Data Change Notification property: milestone
2. Data Change Condition Expression Xquery:
declare variable $blockingIndexes as xs:integer* external; (: list of From component items - index :)
let $expectedMilestoneCode := "PROVISION STARTED"
(: extract milestones values from all provisioning function items matching the expected milestone value , only for the given From component :)
let $milestoneValues := /GetOrder.Response/_root/ControlData/Functions/ProvisioningFunction/orderItem/orderItemRef[fn:index-of($blockingIndexes, xs:integer(@referencedIndex)) != 0]/milestone[text() eq $expectedMilestoneCode]
(: Return true only if ALL the milestones in the From component (ProvisioningFunction/orderItem/orderItemRef) are PROVISION STARTED :)
return fn:count($milestoneValues) eq fn:count($blockingIndexes)