Orquestación de pedidos: servicios de descomposición

Después de que una orden se haya validado correctamente, la descomposición de orden es el paso siguiente en el proceso de orquestación de orden. El proceso de descomposición se desencadena mediante la validación satisfactoria de una orden. La aplicación IBM Sterling® Order Management System utiliza un conjunto de servicios para realizar la descomposición de pedidos.

La lista de servicios utilizados en el proceso de descomposición de orquestación de orden son los siguientes:
Tabla 1. Lista de servicios utilizados en el proceso de descomposición de orquestación de orden
Nombre de servicio Descripción
TriggerDecomp Servicio para escuchar el mensaje recibido del servicio de validación o desencadenado para reintentarlo. El proceso de validación envía la información de pedido necesaria al proceso de descomposición invocando el servicio TriggerDecomp . El servicio TriggerDecomp llama a la API personalizada, ProcessOrderDecomp.
ProcessOrderDecomp API personalizada que realiza el proceso de descomposición. La API personalizada que prepara la entrada para la solicitud de descomposición e invoca reglas de negocio utilizando el servicio InvokeDecompRules , así como procesa la respuesta de descomposición del motor de reglas.

La ProcessOrderDecomp API llama a las getOrderDetails y getItemList API para obtener la información completa del pedido utilizando una plantilla extensible, getOrderDetailsForDecomposition. La salida de las dos salidas de API se combina en un documento.

La salida de la API ProcessOrderValidation se envía al servicio de correlación, PrepareMappingForDecomp , que se puede implementar para transformar el XML a un formato entendido por el motor de reglas.

PrepareMappingForDecomp Este servicio de correlación de marcadores se proporciona para transformar datos de orden a un formato comprendido por el motor de reglas para crear la solicitud de descomposición.

Una vez preparado el mensaje de descomposición, se invoca el servicio InvokeDecompRules .

InvokeDecompRules API personalizada para crear entrada para la descomposición e invocar el motor de reglas utilizando un servicio común, InvokeBusinessRule. Este servicio crea la solicitud final con cabecera y datos.
El elemento de salida de InvokeDecompRules debe ser el siguiente:
<DecompOrderList OrderHeaderKey=“RootOrderKey” OrderNo=“RootOrderNo” EnterpriseCode=“Required”>
    <Order CustomerPONo=”{root OrderNo}” ShipToKey="{root ShipToKey}" ShipToID="{root ShipToID}" BillToKey="{root BillToKey}"
           BillToID="{root BillToID}" SellerOrganizationCode="{root SellerOrganizationCode}" OrderNo="Required" 
           OrderType=“ResourceOrder|ServiceOrder|ProductOrder” OrderDate="" EnterpriseCode="{root EnterpriseCode}" 
           DraftOrderFlag="N">
        <OrderLines>
            <OrderLine PrimeLineNo=“” SubLineNo=”” OrderedQty=“”>
                <Item UnitOfMeasure="" ProductClass="" ItemID=" "/>
                <CustomAttributes/>
            </OrderLine>
        </OrderLines>
        <ParentOrder OrderNo=“Required”/>
        <CustomAttributes/>
    </Order>
.
.
.
</DecompOrderList>

Se deben proporcionar los elementos necesarios en negrita y los elementos entre corchetes ({}). Si no se pasa @OrderType , el valor predeterminado es ProductOrder. Si no se pasa ningún atributo pero se puede tomar el valor predeterminado de la orden padre, como por ejemplo @DocumentType, @EnterpriseCode y @BillToID, estos atributos se captan de la orden padre.

ProcessDecompResponse Invoca multiApi para crear órdenes y relaciones. Una API personalizada toma la salida del motor de reglas e invoca la API createOrder para cada uno de los pedidos hijo. El atributo @OrderType se puede utilizar para la determinación de conductos. Antes de llamar a la API de createOrder, una lógica predeterminada rellena cualquier información básica que falte utilizando el pedido original.

Se crea un mapa de relaciones a partir del documento de salida del motor de reglas y la createOrder salida de la API, que conecta las OrderHeaderKeys de los pedidos creados con el OrderNo proporcionado de cada pedido. Esta correlación de relaciones se utiliza para llamar a multiApi para crear las relaciones entre los pedidos.

Las relaciones padre-hijo se crean utilizando la información disponible en el elemento <ParentOrder> . El orden original se define como el orden de nivel raíz, y los pedidos pueden especificarlo u otro orden en la salida como padre. Si no se especifica el padre de una orden, o la orden se lista a sí misma como su propio padre, el padre de la orden toma de forma predeterminada el orden de nivel raíz.

<ParentOrder> y @OrderNo deben hacer referencia a un orden en la salida del motor de reglas. Si el orden al que hace referencia no se puede encontrar, se genera una excepción. Y si hay una dependencia cíclica, como por ejemplo orden hijo-> primer padre-> segundo padre-> orden hijo, se genera una excepción. El XML del elemento Order es el mismo que el XML createOrder y puede contener cualquier elemento de esta API, con la adición del elemento <ParentOrder> necesario.

PostMsgToBuildPlanQ Servicio para enviar mensajes a la cola de ejecución o de plan de compilación.

Visualización de servicios de descomposición

Para ver los servicios de descomposición, realice los pasos siguientes:
  1. En el menú Consola de aplicación , pulse Configuración > Iniciar Gestor de aplicaciones. EL Gestor de aplicaciones se abre en una nueva ventana.
  2. En el menú, pulse Aplicaciones > Application Platform.
  3. En el árbol del panel lateral de reglas de aplicación, efectúe una doble pulsación en Modelado de procesos. La ventana Modelos de proceso se visualiza en el área de trabajo.
  4. Seleccione la pestaña Orden de venta para ver el árbol de modelado de procesos correspondiente para ese tipo de documento base.
  5. En el carril Tipos de proceso, pulse con el botón derecho del ratón en el tipo de proceso Orden de venta y elija Proceso de modelo. La ventana Detalles de repositorio y el área de trabajo se muestran para el tipo de proceso.
  6. Elija la ficha Definiciones de servicio y expanda el grupo de servicios Descomposición .