External Dependency

External dependency is a dependency type that waits for notification from an external system by an event before it is satisfied. This dependency is specified by two attributes namely:

  1. event name: Name of the event that satisfies this dependency.
  2. event id: Unique identifier of the event name that satisfies this dependency.

The plan development/enrichment module which adds an external dependency to the milestone of a plan item has to ensure that the combination of event name and event id is unique across all the orders. A unique dependency id is generated according to the two attributes mentioned above and saved in OMS database.

In order to satisfy a particular dependency, an external dependency request has to be sent by the process component to Orchestrator using the following schema on the queue tibco.aff.orchestrator.planItem.externalDependency.release.request. The process component may choose to add 'originator' as a JMS message property with value as 'NodeID' if known to indicate to OMS the node from which this order is being processed.

External Dependency Release request parameters in an XML form


A hook has been provided to enrich the plan returned by OPD by adding external dependencies if needed. This can be achieved by implementing an interface com.tibco.aff.oms.server.jms.orch.custom.OrchestratorPlanEnricher present in omsCommon-1.0.jar located in $AF_HOME/lib. The interface defines a single method enrichPlan() which needs to be implemented. The implementation should be compiled with omsCommon-1.0.jar in the classpath. The compiled dependency must be added in the lib directory of the omsServer service, and the fully qualified name of the implementer class should be added to the com.tibco.fom.orch.enrich.CustomOrchPlanEnricher property in Configurator. In order to complete the process, restart the omsServer service.