Órdenes derivadas
Las órdenes derivadas son órdenes subordinadas creadas a partir de la orden de padre, pero que una vez creadas no mantienen más que una referencia con el padre. Su ciclo de vida es independiente del padre y no realizan ninguna propagación de estado a la orden padre, ni se actualizan con cambios en la orden padre.
Una orden por niveles se define como "Derivada" si no tiene que finalizar el proceso de cumplimentación antes de que la orden padre se pueda considerar cumplimentada. Por ejemplo, una orden de compra puede "derivarse" de una orden planificada.
Normalmente, el ciclo de vida de la orden padre ya ha finalizado en el momento en que se crea una orden derivada de ella (por ejemplo, creando una orden de cumplimentación desde una orden planificada) o se tiene que generar una orden completamente nueva para algún proceso paralelo (por ejemplo, crear órdenes de intercambio para devoluciones antes de realizar la disposición de devolución). Se mantiene un enlace entre una orden derivada y una orden padre únicamente para realizar el seguimiento de la progresión de la orden de padre hacia otros documentos de orden diferentes.
La creación de órdenes derivadas, requiere crear dos transacciones abstractas "Incluir en orden derivada" y "Crear orden derivada". Estas transacciones se pueden copiar durante la configuración de la transacción para crear las transacciones significativas que sean apropiadas. Ambas transacciones pueden tener varios estados de recogida y un único estado de completado. Para obtener más información sobre los detalles de implementación, consulte el Javadoc de la API de createDerivedOrder .
Una orden puede tener varias órdenes derivadas de la misma cantidad, pero como las órdenes encadenadas se crean para completar la cumplimentación de la orden padre, una unidad en la orden padre puede pertenecer a una y únicamente una orden encadenada.