Order Series - Xyna-Factory/xyna GitHub Wiki

When creating Xyna Orders they can be given dependencies to other Orders. The resulting dependency structure of Orders forms an Order Series. The dependencies are evaluated by the Scheduler such that Orders have to wait for their dependent other Orders to be started.

Table of Contents

Types of Dependencies

Dependencies of Orders are simply the connections to other Orders that are their predecessors or successors. These connections can be set explicitly by creating all the Orders at the same time (typically in a Filter) or implicitly by defining the predecessor or successor Orders by a correlation id. Predecessors and successors must form a double-linked structure. It is not allowed to set an Order as predecessor and not also set the corresponding successor in the other Order.

An Order is allowed to have multiple connections to other Orders.

Failure of Orders

When defining the predecessors and successors of an Order it is possible to configure the behavior in case of failed Orders (AutoCancel). If AutoCancel is true, the successors of the failed Order will be automatically aborted.

Scheduling

The Scheduler enforces that Orders are only started when all their predecessors have been executed.

Java Example

 XynaOrder firstOrder = new XynaOrder();
 XynaOrder secondOrder = new XynaOrder();
 SeriesInformation si1 = new SeriesInformation(firstOrder);
 firstOrder.setSeriesInformation(si1);
 si1.addSuccessor(secondOrder);
 SeriesInformation si2 = new SeriesInformation(secondOrder);
 secondOrder.setSeriesInformation(si2);
 si2.addPredecessor(firstOrder);
⚠️ **GitHub.com Fallback** ⚠️