MarcomProcessOrders

Este flujo de trabajo y el flujo de trabajo MarcomProcessJobTicket demuestran cómo intercambiar datos con el sitio web de MarcomCentral mediante servicios web SOAP. La demostración incluye un dispositivo de entrada del servicio web SOAP y una notificación del servicio web SOAP.

El dispositivo de entrada del servicio web SOAP MarcomReceiveOrders simula una llamada al servicio web de MarcomCentral. El dispositivo de entrada recupera un pedido XML del almacén de ejemplo del sitio web de MarcomCentral y envía el trabajo XML al flujo de trabajo MarcomProcessOrders.

El paso SetJobPropsFromTextFile define la propiedad Nombre de trabajo en Marcom Sample Order.

El paso DetectInputDataStream define la corriente de datos en XML.

El paso ApplyXSLTransform utiliza la hoja de estilo XSLT orderToOverrides.xslt para convertir ocho elementos XML en cinco propiedades de trabajo de RICOH ProcessDirector en un archivo de alteraciones temporales.

En la tabla se enumeran las propiedades de trabajo en el orden en que se especifican en la hoja de estilo XSLT y aparecen en el archivo de alteraciones temporales.

Elemento XML Nombre de base de datos de la propiedad de trabajo Nombre de interfaz de usuario de la propiedad de trabajo
OrderNumber Job.Marcom.OrderNumber Número de orden de MarcomCentral
ID Job.Marcom.OrderId ID de orden de MarcomCentral
ShippingAddress/Address1 ShippingAddress/City ShippingAddress/State ShippingAddress/Zip Job.Info.Attr1 Personalizado 1
User/Email Job.CustomerName Nombre de cliente
count(OrderDetails/OrderDetail) Job.Info.Attr2 Personalizado 2

El paso CallSOAPService simula una llamada a un servicio web de MarcomCentral y recupera dos detalles de trabajo para el pedido XML. El valor del campo de contraseña indica a RICOH ProcessDirector que debe ejecutar la simulación en lugar de llamar al servicio web.

El paso ApplyXSLTransform2 utiliza la hoja de estilo XSLT jobTicketsReceived.xslt para calcular el valor de la propiedad Personalizado 3 contando el número de detalles de trabajo que se han recuperado. El paso coloca el valor en un archivo de alteraciones temporales y sobrescribe dicho archivo en el directorio de spool para el trabajo con el nuevo archivo de alteraciones temporales.

El paso CheckTicketCount llama a un servicio web de RICOH ProcessDirector. El servicio web comprueba si se han recuperado todos los detalles de trabajo de un pedido. El paso compara los valores de Personalizado 2 (total de detalles de trabajo) y Personalizado 3 (detalles de trabajo recuperados). Si los valores coinciden, el paso define el valor de Personalizado 4 (resultado de comparación) en IGUAL QUE. El paso coloca el valor en un archivo de alteraciones temporales y sobrescribe dicho archivo en el directorio de spool con el nuevo archivo de alteraciones temporales.

La regla en el conector [1] Encontrados todos los detalles comprueba si el valor de la propiedad de trabajo Personalizado 4 (resultado de comparación) es IGUAL QUE.

  • Si es así, el número de detalles de trabajo recuperados equivale al número total de detalles de trabajo esperados. El flujo de trabajo envía el trabajo directamente al paso CreateJobsFromXML.
  • Si no es así, el número de detalles de trabajo recuperados es menor que el número total de detalles de trabajo esperados. La regla en el conector [2] Comprobar detalles comprueba si el valor de la propiedad de trabajo Recuento personalizado 1 es inferior a 10. La primera vez que el trabajo llega al paso CheckTicketCount, el valor de la propiedad Recuento personalizado 1 es de 0.
    • Si el valor es 0 a 9, el flujo de trabajo envía el trabajo al paso Esperar, que espera durante 1 minuto. A continuación, el flujo de trabajo envía el trabajo al paso RunExternalProgram.

      El paso RunExternalProgram ejecuta un programa de utilidad Java que aumenta el valor de la propiedad Recuento personalizado 1 en 1. A continuación, el flujo de trabajo envía el trabajo de vuelta al paso CallSOAPService. El paso repite la llamada al servicio web de MarcomCentral que devuelve los detalles de trabajo del pedido. Si el número de detalles de trabajo recuperados es menor de lo esperado, el flujo de trabajo puede enviar el trabajo a través del paso CallSOAPService hasta nueve veces.

    • Si el valor es 10, el trabajo se ha enviado al paso CallSOAPService 10 veces. Después de 10 minutos, el número de detalles de trabajo recuperados no es igual a la cantidad esperada. El trabajo no cumple la regla en el conector [2] Comprobar detalles. El flujo de trabajo envía el trabajo a través del conector [3] Tiempo de espera al paso FailWithMesssage y escribe un mensaje de fallo para el registro de trabajos. El mensaje indica: Algunos detalles de trabajo no se encontraron en el tiempo asignado.

        Nota:
      • Debido a que el mensaje es una propiedad de trabajo, se muestra en la pestaña Información del cuaderno de propiedades del trabajo para todos los trabajos que pasan por el flujo de trabajo. El mensaje aparece en el registro de trabajos sólo cuando el flujo de trabajo envía el trabajo a través del conector [3] Tiempo de espera al paso FailWithMesssage.

El paso CreateJobsFromXML utiliza la expresión XPath //JobTicket para analizar información de detalles del trabajo XML. El paso encuentra dos detalles del trabajo y crea dos trabajos hijo.

El paso somete los dos trabajos hijo al flujo de trabajo MarcomProcessJobTicket.

El trabajo del pedido original se envía al paso WaitForRelatedJobs.

Cuando todos los trabajos hijo del pedido llegan al paso WaitForRelatedJobs del flujo de trabajo MarcomProcessJobTicket, RICOH ProcessDirector envía el trabajo del pedido al paso RetainCompletedJobs. El estado del trabajo del pedido cambia a Retenido.

Cuando se produce ese evento, la notificación del servicio web MarcomCloseoutOrder simula una llamada a un servicio web de MarcomCentral. El servicio web cambia el estado del pedido XML en el almacén de ejemplo.

Si la notificación llamó al servicio web en lugar de ejecutar la simulación, este cambio podría producirse en el almacén de ejemplo. En el cuadro de diálogo Mostrar por elemento del Gestor de pedidos, el valor en la columna Estado de pedido para cada elemento del pedido cambiaría de Trabajo en curso a Enviado.

Fases y pasos

En la ilustración se muestran los pasos en cada fase del flujo de trabajo de ejemplo.