Caso de ejemplo de uso para procesar órdenes en un archivo XML

En este caso de ejemplo, una empresa de impresión quiere procesar órdenes en archivos XML recibidos de vendedores web a impresión. Cada archivo XML contiene varios pedidos y cada pedido puede incluir tanto elementos de impresión como promocionales, como tazas de café o gorras con visera.

En este caso de ejemplo, el administrador de RICOH ProcessDirector utiliza una herramienta externa (como Altova MapForce) para crear hojas de estilo XSLT (Extensible Stylesheet Language Transformations). Para obtener ejemplos de archivos de entrada XML, expresiones XPath, hojas de estilo XSLT y archivos de alteraciones temporales de RICOH ProcessDirector que funcionen en este caso de ejemplo, consulte la referencia correspondiente.

Revisión y preparación para procesar el XML

El administrador de RICOH ProcessDirector revisa el contenido de los archivos XML y decide cómo procesarlos.

  1. En primer lugar, el administrador identifica los elementos XML que suministran valores para las propiedades de trabajo de RICOH ProcessDirector.

    En el archivo de entrada XML de ejemplo, dos elementos XML suministran la información necesaria para hacer un seguimiento de cada elemento de un pedido. El atributo number del elemento order y el elemento customername suministran el número de pedido y el nombre del cliente.

    En el caso de elementos de impresión, el elemento printfile suministra la URL del archivo PDF para descargar e imprimir.

    En el caso de elementos promocionales, el atributo number del elemento stock suministra la ubicación del elemento en el almacén.

    Para todos los elementos, el elemento quantity suministra la cantidad solicitada.

    En esta tabla aparecen estos cinco elementos XML y los nombres de las propiedades de trabajo de RICOH ProcessDirector correspondientes.

    Elemento XML Nombre de base de datos de la propiedad de trabajo Nombre de interfaz de usuario de la propiedad de trabajo
    <order number> Job.Info.Attr1 Personalizado 1
    <customername> Job.CustomerName Nombre de cliente
    <printfile> Job.DownloadFile URL para descargar archivo
    <stock number> Job.Info.Attr2 Personalizado 2
    <quantity> Job.Copies Copias de trabajo solicitadas

  2. El administrador divide el proceso en cinco partes:
    • Crear un trabajo XML independiente para cada pedido.
    • Asignar los valores del pedido (order number y customername) a las propiedades de trabajo.
    • A partir de cada pedido, crear un trabajo de XML diferente para cada elemento.
    • Asignar los valores del elemento (printfile, stock number y quantity) a las propiedades de trabajo.
    • Procesar los elementos de impresión y los elementos de almacenamiento en flujos de trabajo diferentes.
  3. El administrador decide definir cuatro flujos de trabajo:
    • El flujo de trabajo ExtractOrdersFromXML recibe pedidos y crea trabajos diferentes para cada pedido.
    • El flujo de trabajo SplitOrderIntoPrintAndStockJobs separa los elementos de cada pedido en trabajos de almacenamiento e impresión.
    • El flujo de trabajo ProcessPrintJobs procesa trabajos de impresión.
    • El flujo de trabajo ProcessStockJobs procesa trabajos de almacenamiento.

    Un paso basado en la plantilla de pasos CreateJobsFromXML crea trabajos a partir de elementos de un archivo XML que coincide con una expresión XPath. El paso somete los trabajos a un flujo de trabajo.

  4. El administrador decide utilizar tres pasos CreateJobsFromXML, cada uno con una expresión XPath (XML Path Language):
    • El primer paso crea un trabajo XML independiente para cada pedido.

      La expresión Trabajos del pedido identifica los elementos XLM que coinciden con pedidos: /seller/order

    • El segundo paso crea un trabajo XML independiente para cada elemento de impresión.

      La expresión Trabajos de impresión identifica los elementos XLM que coinciden con elementos de impresión: /order/item/printfile/ancestor::item

    • El tercer paso crea un trabajo XML independiente para cada elemento promocional.

      La expresión Trabajos de almacenamiento identifica los elementos XLM que coinciden con elementos promocionales: /order/item/stock/ancestor::item

    El administrador asigna los pasos CreateJobsFromXML a flujos de trabajo:

    • El primer paso pasa al flujo de trabajo ExtractOrdersFromXML. El paso somete los trabajos XML de cada orden al flujo de trabajo SplitOrderIntoPrintAndStockJobs.
    • El segundo y el tercer paso van al flujo de trabajo SplitOrderIntoPrintAndStockJobs. El segundo paso somete trabajos XML para elementos de impresión al flujo de trabajo ProcessPrintJobs. El tercer paso somete trabajos XML para elementos promocionales al flujo de trabajo ProcessStockJobs.

    Un paso basado en la plantilla de pasos ApplyXSLTransform puede transformar el código XML en un archivo de alteraciones temporales de RICOH ProcessDirector que especifica los valores de las propiedades de trabajo.

  5. El administrador decide utilizar tres pasos ApplyXSLTransform. Cada paso utiliza una hoja de estilo XSLT. El administrador utiliza una herramienta XSLT externa para crear las hojas de estilo XSLT.
    • El primer paso utiliza la hoja de estilo XSLT de Trabajos de pedidos. Convierte el atributo name del elemento order y el elemento customername en las propiedades de trabajo Job.Info.Attr1 y Job.CustomerName.

      El paso pasa al flujo de trabajo SplitOrderIntoPrintAndStockJobs antes de los dos pasos CreateJobsFromXML.

    • El segundo paso utiliza la hoja de estilo XSLT de Trabajos de impresión. Convierte el elemento printfile y el elemento quantity en las propiedades de trabajo Job.DownloadFile y Job.Copies.

      El paso pasa al flujo de trabajo ProcessPrintJobs.

    • El tercer paso utiliza la hoja de estilo XSLT de Trabajos de almacenamiento. Convierte el atributo number del elemento stock y el elemento quantity en las propiedades de trabajo Job.Info.Attr2 y Job.Copies.

      El paso pasa al flujo de trabajo ProcessStockJobs.

  6. El administrador decide utilizar un paso DownloadFile para descargar los archivos PDF desde una URL específica.

    Dado que la empresa de impresión utiliza un servidor proxy para comunicarse con sitios web externos, el administrador configura RICOH ProcessDirector para utilizar el servidor proxy.

Configuración de los flujos de trabajo y el dispositivo de entrada

El administrador configura un dispositivo de entrada de carpeta activa para recibir archivos XML y cuatro flujos de trabajo para procesarlos.

  1. El flujo de trabajo ExtractOrdersFromXML crea un trabajo para cada pedido del archivo de entrada XML.

    Después de los pasos SetJobPropsFromTextFile y DetectInputDataStream, el administrador añade el paso CreateJobsFromXML. El administrador establece el valor de la expresión XPath como /seller/order y el valor del flujo de trabajo para nuevos trabajos como SplitOrderIntoPrintAndStockJobs. El administrador especifica que los nuevos trabajos no se crean como trabajos hijo. Cada pedido es un trabajo independiente.

  2. El flujo de trabajo SplitOrderIntoPrintAndStockJobs recibe cada trabajo de la orden, crea los archivos XML para los elementos de impresión y promocionales, y los somete como trabajos hijo al flujo de trabajo correspondiente.

    Después de los pasos SetJobPropsFromTextFile y DetectInputDataStream, el administrador añade un paso ApplyXSLTransform. El paso utiliza la hoja de estilo XSLT de Trabajos de pedidos.

    Después del paso ApplyXSLTransform, el administrador añade dos pasos CreateJobsFromXML:

    • Para el primer paso, el administrador establece el valor de la expresión XPath como /order/item/printfile/ancestor::item y el valor del flujo de trabajo para nuevos trabajos como ProcessPrintJobs.
    • Para el segundo paso, el administrador establece el valor de la expresión XPath como /order/item/stock/ancestor::item y el valor del flujo de trabajo para nuevos trabajos como ProcessStockJobs.
    • Para ambos pasos, el administrador especifica que los nuevos trabajos se crean como trabajos hijo. El administrador también especifica que los trabajos padre pasan al siguiente paso cuando no se crea ningún trabajo hijo. Por ejemplo, los trabajos hijo no se crean en el primer paso CreateJobsFromXML si un trabajo de pedido no tiene ningún elemento de impresión.

    Después del segundo paso CreateJobsFromXML, el administrador añade un paso basado en la plantilla de pasos WaitForRelatedJobs. Este paso retiene los trabajos padre hasta que todos los trabajos hijo para elementos promocionales y de impresión se hayan procesado.

  3. El flujo de trabajo ProcessPrintJobs recibe todos los trabajos para un elemento de impresión y los imprime.

    Después de los pasos SetJobPropsFromTextFile y DetectInputDataStream, el administrador añade un paso ApplyXSLTransform. El paso utiliza la hoja de estilo XSLT de Trabajos de impresión.

    Después del paso ApplyXSLTransform, el administrador añade un paso basado en la plantilla de pasos DownloadFile para descargar el archivo PDF especificado por el valor de la propiedad Job.DownloadFile. El administrador establece el valor de la propiedad Vía de acceso a un archivo descargado como ${getFileName(print,pdf,write)} para que el archivo PDF se descargue en el directorio de spool del trabajo.

    Después del paso DownloadFile, el administrador añade los pasos que la empresa de impresión utiliza para procesar trabajos de PDF.

    Después del último paso que procesa los trabajos de impresión, el administrador añade un paso basado en la plantilla de pasos ManualStepWithAutoStart. Este paso da tiempo al responsable del transporte para añadir el trabajo de impresión al pedido en el departamento de envío.

    Después del paso ManualStepWithAutoStart, el administrador añade un paso basado en la plantilla de pasos WaitForRelatedJobs. Este paso retiene todos los trabajos de un elemento de impresión de un pedido hasta que se han procesado todos los trabajos del pedido.

  4. El flujo de trabajo ProcessStockJobs recibe todos los trabajos de un elemento promocional y tiene en cuenta el tiempo necesario para recuperar un elemento promocional del almacén.

    Después de los pasos SetJobPropsFromTextFile y DetectInputDataStream, el administrador añade un paso ApplyXSLTransform. El paso utiliza la hoja de estilo XSLT de Trabajos de almacenamiento.

    Después del paso ApplyXSLTransform, el administrador añade un paso basado en la plantilla de pasos ManualStepWithAutoStart. Este paso da tiempo al responsable del transporte para obtener el elemento promocional del almacén y añadirlo al pedido en el departamento de envío.

    Después del paso ManualStepWithAutoStart, el administrador añade un paso basado en la plantilla de pasos WaitForRelatedJobs. Este paso retiene todos los trabajos de un elemento promocional de un pedido hasta que se han procesado todos los trabajos del pedido.

Esta figura muestra los cuatro flujos de trabajo. Las líneas verdes muestran el flujo de trabajo al que cada paso CreateJobsFromXML somete trabajos XML.

Procesamiento de trabajos a través de flujos de trabajo

Cuando el administrador habilita los flujos de trabajo y somete un archivo XML al dispositivo de entrada, RICOH ProcessDirector procesa el trabajo a través de los cuatro flujos de trabajo.

El flujo de trabajo ExtractOrdersFromXML recibe el trabajo XML del dispositivo de entrada y crea un archivo XML para cada elemento order que coincide con la expresión XPath de Trabajos de pedidos. El flujo de trabajo somete cada archivo XML como un trabajo al flujo de trabajo SplitOrderIntoPrintAndStockJobs.

El flujo de trabajo SplitOrderIntoPrintAndStockJobs realiza este procesamiento:

  • Recibe cada trabajo de pedido.
  • Utiliza la hoja de estilo XSLT de Trabajos de pedidos para convertir los valores y los elementos order number y customername en valores y propiedades de trabajo.
  • Registra los valores y las propiedades de trabajo en un archivo de alteraciones temporales.
  • Crea un archivo XML para cada elemento item que coincide con la expresión XPath de Trabajos de impresión. El flujo de trabajo somete cada archivo XML como un trabajo hijo al flujo de trabajo ProcessPrintJobs. Con cada trabajo hijo se somete una copia del archivo de alteraciones temporales.

    Crea un archivo XML para cada elemento item que coincide con la expresión XPath de Trabajos de almacenamiento. El flujo de trabajo somete cada archivo XML como un trabajo hijo al flujo de trabajo ProcessStockJobs. Con cada trabajo hijo se somete una copia del archivo de alteraciones temporales.

  • Retiene el trabajo padre para cada pedido hasta que se procesan todos los trabajos hijo.

El flujo de trabajo ProcessPrintJobs realiza este procesamiento:

  • Recibe todos los trabajos de un elemento de impresión.
  • Utiliza la hoja de estilo XSLT de Trabajos de impresión para convertir los valores y los elementos printfile y quantity en valores y propiedades de trabajo.
  • Registra los valores y las propiedades de trabajo sobrescribiendo el contenido del archivo de alteraciones temporales sometido con el trabajo.
  • Utiliza el valor de la propiedad Job.DownloadFile para descargar el archivo PDF de cada elemento de impresión.
  • Imprime el archivo PDF.
  • Espera mientras un responsable de transporte comprueba los valores de las propiedades Personalizado 1 (número de pedido) y Nombre de cliente del trabajo. A continuación, el responsable añade el elemento de impresión al pedido en el departamento de envíos.

    Para mover el trabajo al siguiente paso del flujo de trabajo, el responsable utiliza la acción Completar manualmente.

  • Retiene todos los trabajos de un elemento de impresión hasta que se completa el procesamiento del pedido.

El flujo de trabajo ProcessStockJobs realiza este procesamiento:

  • Recibe todos los trabajos de un elemento promocional.
  • Utiliza la hoja de estilo XSLT de Trabajos de almacenamiento para convertir los valores y los elementos stock number y quantity en valores y propiedades de trabajo.
  • Registra los valores y las propiedades de trabajo sobrescribiendo el contenido del archivo de alteraciones temporales sometido con el trabajo.
  • Espera mientras un responsable del transporte realiza estas tareas:
    • Busca el número de almacenamiento del elemento comprobando el valor de la propiedad Personalizado 2.
    • Obtiene el número necesario de elementos promocionales del almacén.
    • Comprueba los valores de las propiedades Personalizado 1 (número de pedido) y Nombre de cliente del trabajo.
    • Añade los elementos promocionales al pedido en el departamento de envíos.

    Para mover el trabajo al siguiente paso del flujo de trabajo, el responsable utiliza la acción Completar manualmente.

  • Retiene todos los trabajos de un elemento promocional hasta que se completa el procesamiento del pedido.

Cuando todos los trabajos de los elementos promocionales y de impresión de un pedido han llegado al paso WaitForRelatedJobs, se completa el procesamiento del pedido. RICOH ProcessDirector mueve el trabajo padre del pedido y todos los trabajos hijo de los elementos a los pasos en función de la plantilla de pasos RetainCompletedJobs.