Data Service Guidelines

Data Service is replicated to Order Management Server through the use of bridges. If the data in Order Management Server is out of date, verify that the correct bridges are in place for plan data.

Plan data is stored in concepts. Operations are provided to retrieve plans and plan items. This is the recommended way of retrieving data within Process Components.

Data Service is designed to be a pass-by-reference data cache. This means that duplicate data must not be replicated across plan items. One plan item must be a designated master for any given User Defined Field. If a particular User Defined Field is required by a plan item that does not master this data, then the master plan item must be retrieved as well.

There are four types of operation to retrieve plan from Data Services:
GetPlanItems:

If possible, the process components must retrieve only the data for its own plan item by using the GetPlanItems interface. If the process component requires data from other plan items, it must retrieve them using the same interface at the same time if the planItemIDs of the other plan items are known.

It might be necessary for the process component to invoke GetPlanItems multiple times to determine the planItemIDs of dependent plan items. If possible, bundle these into the same GetPlanItems call to reduce the number of invocations.

GetPlan:

Retrieving the entire plan from Data Service using GetPlan operation can be less efficient than retrieving plan items using GetPlanItems. This is particularly the case for larger plans where a process component needs only a limited set of data. However, if it is necessary to do multiple GetPlanItems calls to determine dependent plan items, it might be more efficient to do a single GetPlan instead to get all the information. Make use of the IDs-only option to retrieve a list of IDs in the plan rather than the entire plan data.

SetPlanItems:

The SetPlanItem operation is provided to set User Defined Field data on an individual plan item. By convention a process component must set plan item User Defined Field data only on its own plan item. There is no technical restriction on setting data on other plan items, but this introduces a situation where there might be contention for the data. This is particularly a problem with plans with parallel tracks of execution. The convention of setting User Defined Field data only on its own plan item eliminates the possibility of this happening.

If possible make use of the merge data option in SetPlanItem. Using merge means sending through only the User Defined Fields that have changed rather than the entire set of User Defined Fields. It is only possible to merge data if unique User Defined Field names are implemented and configured in the Data Service global variable flags. If merge data is not used, then the entire set of User Defined Fields is replaced by the set values. In this case it is necessary to send through all User Defined Fields, whether or not they have been changed.

SetPlan:

The SetPlan operation is provided so that User Defined Fields might be set on the plan header. It is very important not to set data on the plan items using this interface because it might potentially overwrite other plan item data that might be set by other process components. Setting the plan header User Defined Field data must only be done as a last resort. Use the plan item User Defined Field data instead.