For the dependency the previous articles covered distributing the following data objects record to all or subset of receivers where the corresponding leading data object’s records are getting distributed.
What if the problem statement is such that only those following data object’s record should be distributed to the receiver to which the corresponding leading data object record itself is getting distributed by some particular dependency? Complex?
In a way the case is that the distribution of following data object’s record is affected by the path taken by its leading data object record.
Consider following application requirement. The application has two types of orders- SalesOrder and ServiceOrder. For both these orders there are Material details. In case of SalesOrder, the application needs to show the corresponding vendor details. And in case of ServiceOrder, the application needs to show the corresponding Customer details. The same receiver may not receive both ServiceOrder as SalesOrder.
From distribution perspective it will mean that a receiver needs either (SalesOrder,Material and vendor) or (ServiceOrder, Material and Customer) records.
One solution for this may be to
- Add more details in Material to denote reference with SalesOrder or service ;
- Then define simple dependency and then add dependency rule on the dependency between Material & Customer and Material & vendor that can make use of details in step-a such that Customer records are distributed when Material’s reference field flags ServiceOrder. Similar for SalesOrder.
Other solution is to use conditional dependency. For using this:
- While modeling dependency between Material and Customer, exclude the dependency between SalesOrder and Material under the tab leading data object conditional dependency. This means that the dependency between Material and Customer will not be evaluated when the Material record is being distributed because of SalesOrder to Material dependency.
With the SalesOrder-Material dependency excluded in the leading data object conditional dependency for Material-Customer, a corresponding following data object conditional dependency will implicitly gets created for SalesOrder-Material dependency where the Material-Customer dependency will be marked as excluded.
- Similarly while modeling dependency between Material and Vendor, exclude the dependency between ServiceOrder and Material under the tab leading data object conditional dependency. This means that the dependency between Material and Vendor will not be evaluated when the Material record is being distributed because of ServiceOrder to Material dependency.
With the ServiceOrder -Material dependency excluded in the leading data object conditional dependency for Material- Vendor, a corresponding following data object conditional dependency will implicitly gets created for ServiceOrder -Material dependency where the Material- Vendor dependency will be marked as excluded.
Note: Conditional dependency modeling takes one level of leading or following data object into consideration. One cannot chose arbitrary leading or following data object in dependency hierarchy to define the conditional dependency. If needed, however, one can try modeling conditionality on all the intermediate levels till reaching the target to meet requirements.
The different dependency based distribution capabilities of DOE may thus be summarized as following:
- Distribution of the related data based on its simple data relation with another data: Simple dependency and dependency with static filter.
- Distribution of the related data based on the path traversed in the relation tree among the related objects: Conditional dependency.
- Distribution of the related data where the preferences of the receiver can also be imposed on top of the data’s relation: Dependency with dependency rule.