Orquestación de pedidos: API personalizadas
Determinadas API personalizadas ayudan en el proceso de órdenes basadas en reglas. Estas API personalizadas se exponen a través de servicios SDF.
processOrderValidation API
Esta API personalizada lee los atributos de identificación del pedido del documento de entrada y obtiene los detalles del pedido basándose en la plantilla, getOrderDetailsForValidation utilizando la API getOrderDetails. La salida de la API se pasa a un servicio, PrepareMappingForValidation, que realiza la correlación. Los detalles de orden se utilizan para crear la solicitud de entrada según requieran las reglas de negocio, que realiza una implementación personalizada del servicio, PrepareMappingForValidation, que entiende el motor de reglas.
Se proporciona una implementación de servicio de ejemplo con un componente XSL que debe sustituirse por una implementación personalizada. El documento de correlación se envía al servicio, InvokeValidationRules, que llama internamente a la API prepareRequest para invocar la API REST HHTP del motor de reglas. La respuesta de la API REST se procesa para los resultados de validación. Un método interno, processValidationResponse( ) analiza el resultado de la validación y toma la acción apropiada.
invokeValidationRules API
Esta API personalizada invoca los servicios prepareRequest y invokeBusinessRule para llamar al motor de reglas de negocio para la API REST de validación.
<ValidationResult IsValid="" ErrorCode="" ErrorType="" ErrorDescription="" >
<ValidationItems>
<ValidationItem IsValid="" ErrorCode="" ErrorType="" ErrorDescription="">
<ValidationParameter EntityID="" EntityType=""/>
</ValidationItem>
</ValidationItems>
</ValidationResult>processOrderDecomp API
Esta API personalizada utiliza la entrada para invocar las API getOrderDetails y getItemList para una orden determinada. A continuación, las salidas se combinan en un mensaje.
invokeDecompRules API
Esta API personalizada utiliza la entrada para invocar las reglas de negocio para la descomposición de órdenes. La API toma la entrada del servicio de correlación implementado por el cliente.
<DecompOrderList OrderHeaderKey="RootOrderKey" OrderNo="Required" EnterpriseCode="Required">
<Order CustomerPONo="{root OrderNo}" ShipToKey="" ShipToID="" BillToKey="" BillToID="" SellerOrganizationCode="" OrderNo="Required" OrderType="ResourceOrder|ServiceOrder|ProductOrder" OrderDate="" EnterpriseCode="{root}" DraftOrderFlag="N">
<OrderLines>
<OrderLine PrimeLineNo="" SubLineNo="" OrderedQty="">
<Item UnitOfMeasure="" ProductClass="" ItemID=""/>
<CustomAttributes/>
</OrderLine>
</OrderLines>
<ParentOrder OrderNo="Required"/>
<CustomAttributes/>
</Order>
</DecompOrderList>invokeBuildPlanRules API
Esta API personalizada invoca métodos internos de servicios prepareRequest y invokeBusinessRule para llamar al motor de reglas de negocio para la API REST de plan de compilación. La salida define las dependencias entre los pedidos descompuestos.
<BuildPlan OrderHeaderKey="" OrderNo="" EnterpriseCode="" DocumentType="">
<Dependencies>
<Order OrderHeaderKey="" OrderNo="" EnterpriseCode="" DocumentType="">
<DependentUpon OrderHeaderKey="" OrderNo="" EnterpriseCode="" DocumentType=""/>
</Order>
</Dependencies>
</BuildPlan>UpdateOrderDependency API
Esta API personalizada es invocada por el evento OnStatusChange de la transacción ORDER_COMPLETE para un pedido descompuesto. Actualiza todos los registros de relaciones transaccionales para el indicador IsDependencyResolved de los pedidos que dependen del pedido actual. Se envía un mensaje al servicio PostMsgToEvaluateDependencyQ para cada pedido actualizado.
EvaluateOrderDependency API
Esta API personalizada la invoca el servicio EvaluateDependencyIntgServer . La entrada para esta API personalizada es el pedido de cliente original o un pedido descompuesto. Evalúe si el orden de entrada tiene más dependencias pendientes que resolver. Si se resuelven todas las dependencias, cambie el estado del orden. Si la orden de entrada es una orden de cliente, cambie el estado de la orden a Completado. Si la orden de entrada es una orden descompuesta, el estado de la orden de cambio cambia a Preparado para despacho.