Cenário de utilização para processamento de solicitações em um arquivo XML

Neste cenário, uma empresa de impressões quer processar pedidos em arquivos XML recebidos de vendedores web-to-print. Cada arquivo XML contém vários pedidos, e cada pedido pode incluir tanto impressão quanto itens promocionais, como canecas e bonés.

Neste cenário, o administrador do RICOH ProcessDirector usa uma ferramenta de terceiros (como Altova MapForce) para criar folhas de estilo XSLT (Extensible Stylesheet Language Transformations). Para obter exemplos de arquivos XML de entrada, expressões XPath, folhas de estilo XSLT e arquivos de substituição do RICOH ProcessDirector que funcionam neste cenário, consulte a respectiva referência.

Revisão e preparação para processar o XML

O administrador do RICOH ProcessDirector verifica o conteúdo dos arquivos XML e decide como os processar.

  1. Primeiro, o administrador identifica os elementos XML que fornecem valores para as propriedades da tarefa do RICOH ProcessDirector.

    No arquivo XML de entrada de exemplo, dois elementos XML fornecem as informações necessárias para detectar cada item em um pedido. O atributo number do elemento order e o elemento customername fornecem o número do pedido e o nome do cliente.

    Para itens de impressão, o elemento printfile fornece o URL do arquivo PDF para download e impressão.

    Para itens promocionais, o atributo number do elemento stock fornece o local do item no armazém.

    Para todos os itens, o elemento quantity fornece a quantidade solicitada.

    Esta tabela mostra esses cinco elementos XML e os nomes das propriedades de tarefa correspondentes do RICOH ProcessDirector.

    Elemento XML Nome do banco de dados da propriedade da tarefa Nome da interface com o usuário da propriedade da tarefa
    <order number> Job.Info.Attr1 Personalizada 1
    <customername> Job.CustomerName Nome do cliente
    <printfile> Job.DownloadFile URL para download do arquivo
    <stock number> Job.Info.Attr2 Personalizada 2
    <quantity> Job.Copies Cópias de Tarefas Solicitadas

  2. O administrador divide o processo em cinco partes:
    • Cria uma tarefa XML separada para cada pedido.
    • Atribui os valores do pedido (order number e customername) às propriedades da tarefa.
    • A partir de cada pedido, cria uma tarefa XML separada para cada item.
    • Atribui os valores do item (printfile, stock number, e quantity) à propriedades da tarefa.
    • Processa os itens de impressão e os itens de estoque em fluxos de trabalho separados.
  3. O administrador decide definir quatro fluxos de trabalho:
    • O fluxo ExtractOrdersFromXML recebe pedidos e faz tarefas separadas para cada um.
    • O fluxo SplitOrderIntoPrintAndStockJobs divide os itens em cada pedido em tarefas de impressão e estoque.
    • O fluxo ProcessPrintJobs processa as tarefas de impressão.
    • O fluxo ProcessStockJobs processa as tarefas de estoque.

    Uma etapa baseada no modelo de etapa CreateJobsFromXML cria tarefas de elementos em um arquivo XML que corresponde a uma expressão XPath. A etapa envia as tarefas a um fluxo de trabalho.

  4. O administrador decide usar três etapas CreateJobsFromXML, cada uma expressão XPath (XML Path Language) diferente:
    • A primeira etapa cria uma tarefa XML separada para cada pedido.

      A expressão Tarefas de pedidos identifica os elementos XML que correspondem aos pedidos: /seller/order

    • A segunda etapa cria uma tarefa XML separada para cada item de impressão.

      A expressão Tarefas de impressão identifica os elementos XML que correspondem aos itens de impressão: /order/item/printfile/ancestor::item

    • A terceira etapa cria uma tarefa XML separada para cada item promocional.

      A expressão Tarefas de estoque identifica os elementos XML que correspondem aos itens promocionais: /order/item/stock/ancestor::item

    O administrador atribui as etapas CreateJobsFromXML aos fluxos de trabalho:

    • A primeira etapa fica no fluxo de trabalho ExtractOrdersFromXML. A etapa envia as tarefas XML de cada pedido para o fluxo de trabalho SplitOrderIntoPrintAndStockJobs.
    • A segunda e a terceira etapas ficam no fluxo de trabalho SplitOrderIntoPrintAndStockJobs. A segunda etapa envia as tarefas XML de itens de impressão para o fluxo de trabalho ProcessPrintJobs. A terceira etapa envia as tarefas XML de itens promocionais para o fluxo de trabalho ProcessStockJobs.

    Uma etapa baseada no modelo de etapa ApplyXSLTransform pode transformar XML em um arquivo de substituição do RICOH ProcessDirector que especifica os valores das propriedades da tarefa.

  5. O administrador decide usar três etapas ApplyXSLTransform. Cada etapa usa uma folha de estilo XSLT. O administrador usa uma ferramenta de XSLT de terceiros para criar as folhas de estilo XSLT.
    • A primeira etapa usa a folha de estilo XSLT Tarefas de pedidos. Ela converte o atributo name do elemento order e o elemento customername em propriedades da tarefa Job.Info.Attr1 e Job.CustomerName.

      A etapa fica no fluxo de trabalho SplitOrderIntoPrintAndStockJobs antes das duas etapas CreateJobsFromXML.

    • A segunda etapa usa a folha de estilo XSLT Tarefas de impressão. Ela converte o elemento printfile e o elemento quantity em propriedades da tarefa Job.DownloadFile e Job.Copies.

      A etapa fica no fluxo de trabalho ProcessPrintJobs.

    • A terceira etapa usa a folha de estilo XSLT Tarefas de estoque. Ela converte o atributo number do elemento stock e o elemento quantity em propriedades da tarefa Job.Info.Attr2 e Job.Copies.

      A etapa fica no fluxo de trabalho ProcessStockJobs.

  6. O administrador decide usar uma etapa DownloadFile para baixar arquivos PDF de um URL especificado.

    Como a empresa de impressões usa um servidor proxy para se comunicar com sites externos, o administrador configura o RICOH ProcessDirector para usar o servidor proxy.

Configurando o dispositivo de entrada e os fluxos de trabalho

O administrador configura um dispositivo de entrada hot folder para receber arquivos XML e quatro fluxos de trabalho para processá-los.

  1. O fluxo de trabalho ExtractOrdersFromXML cria uma tarefa para cada pedido do arquivo XML de entrada.

    Depois das etapas SetJobPropsFromTextFile e DetectInputDataStream, o administrador adiciona a etapa CreateJobsFromXML. O administrador define o valor da expressão XPath como /seller/order e o valor do fluxo de trabalho das novas tarefas como SplitOrderIntoPrintAndStockJobs. O administrador especifica que as novas tarefas não são criadas como tarefas filhas. Cada pedido é uma tarefa independente.

  2. O fluxo de trabalho SplitOrderIntoPrintAndStockJobs recebe cada tarefa de pedido, cria arquivos XML para itens de impressão e promocionais, e as envia como tarefas filhas para o fluxo de trabalho apropriado.

    Depois das etapas SetJobPropsFromTextFile e DetectInputDataStream, o administrador adiciona uma etapa ApplyXSLTransform. A etapa usa a folha de estilo XSLT Tarefas de pedidos.

    Depois da etapa ApplyXSLTransform, o administrador adiciona duas etapas CreateJobsFromXML:

    • Para a primeira etapa, o administrador define o valor da expressão XPath como /order/item/printfile/ancestor::item e o valor do fluxo de trabalho de novas tarefas como ProcessPrintJobs.
    • Para a segunda etapa, o administrador define o valor da expressão XPath como /order/item/stock/ancestor::item e o valor do fluxo de trabalho de novas tarefas como ProcessStockJobs.
    • Para ambas as etapas, o administrador especifica que novas tarefas serão criadas como tarefas filhas. O administrador também especifica que as tarefas pai passam para a próxima etapa quando nenhuma tarefa filha for criada. Por exemplo, tarefas filha não são criadas na primeira etapa CreateJobsFromXML se uma tarefa de pedido não tiver nenhum item de impressão.

    Depois da segunda etapa CreateJobsFromXML, o administrador acrescenta uma etapa baseada no modelo de etapa WaitForRelatedJobs. Esta etapa prende as tarefas pais até que todas as tarefas filhas de itens de impressão e promocionais sejam processadas.

  3. O fluxo de trabalho ProcessPrintJobs recebe cada tarefa de um item impressão e imprime os itens.

    Depois das etapas SetJobPropsFromTextFile e DetectInputDataStream, o administrador adiciona uma etapa ApplyXSLTransform. A etapa usa a folha de estilo XSLT Tarefas de impressão.

    Depois da etapa ApplyXSLTransform, o administrador acrescenta uma etapa baseada no modelo de etapa DownloadFile para fazer o download do arquivo PDF especificado pelo valor da propriedade DownloadFile. O administrador define o valor da propriedade Path to downloaded file como ${getFileName(print,pdf,write)} para que o arquivo PDF seja baixado para o diretório spool da tarefa.

    Depois da etapa DownloadFile, o administrador adiciona as etapas que a empresa de impressões usa para processar tarefas em PDF.

    Depois que a última etapa que processa as tarefas de impressão, o administrador adiciona uma etapa baseada no modelo de etapa ManualStepWithAutoStart. Esta etapa dá a um funcionário de transporte tempo para adicionar a tarefa de impressão ao pedido no departamento de expedições.

    Depois da etapa ManualStepWithAutoStart, o administrador acrescenta uma etapa baseada no modelo de etapa WaitForRelatedJobs. Esta etapa prende cada tarefa de um item de impressão de um pedido, até que todas as tarefas do pedido sejam processadas.

  4. O fluxo de trabalho ProcessStockJobs recebe cada tarefa para um item promocional e conta o tempo necessário para recuperar um item promocional no estoque.

    Depois das etapas SetJobPropsFromTextFile e DetectInputDataStream, o administrador adiciona uma etapa ApplyXSLTransform. A etapa usa a folha de estilo XSLT Tarefas de estoque.

    Depois da etapa ApplyXSLTransform, o administrador acrescenta uma etapa baseada no modelo de etapa ManualStepWithAutoStart. Esta etapa dá a um funcionário de transporte tempo para obter o item promocional no estoque e adicioná-lo ao pedido no departamento de expedições.

    Depois da etapa ManualStepWithAutoStart, o administrador acrescenta uma etapa baseada no modelo de etapa WaitForRelatedJobs. Esta etapa prende cada tarefa de um item promocional de um pedido, até que todas as tarefas do pedido sejam processadas.

Esta figura mostra os quatro fluxos de trabalho. As linhas verdes mostram o fluxo de trabalho a que cada etapa CreateJobsFromXML envia as tarefas XML.

Processando tarefas por meio dos fluxos de trabalho

Quando o administrador ativa os fluxos de trabalho e envia um arquivo XML para o dispositivo de entrada, o RICOH ProcessDirector processa a tarefa por meio dos quatro fluxos de trabalho.

O fluxo de trabalho ExtractOrdersFromXML recebe a tarefa XML do dispositivo de entrada e cria um arquivo XML para cada elemento order que corresponde à expressão XPath Tarefas de pedidos. O fluxo de trabalho envia cada arquivo XML como uma tarefa para o fluxo de trabalho SplitOrderIntoPrintAndStockJobs.

O fluxo de trabalho SplitOrderIntoPrintAndStockJobs realiza este processamento:

  • Ele recebe cada tarefa de pedido.
  • Ele usa a folha de estilo XSLT das Tarefas de pedidos para converter os elementos order number e customername e seus valores para as propriedades e os valores da tarefa.
  • Ele registra as propriedades e os valores da tarefa em um arquivo de substituição.
  • Ele cria um arquivo XML para cada elemento item que corresponde à expressão XPath das Tarefas de impressão. O fluxo de trabalho envia cada arquivo XML como uma tarefa filha para o fluxo de trabalho ProcessPrintJobs. Uma cópia do arquivo de substituição é enviado com cada tarefa filha.

    Ele cria um arquivo XML para cada elemento item que corresponde à expressão XPath de Tarefas de estoque. O fluxo de trabalho envia cada arquivo XML como uma tarefa filha para o fluxo de trabalho ProcessStockJobs. Uma cópia do arquivo de substituição é enviado com cada tarefa filha.

  • Ele prende a tarefa pai de cada pedido até que todas as tarefas filhas sejam processadas.

O fluxo de trabalho ProcessPrintJobs realiza este processamento:

  • Ele recebe cada tarefa de um item de impressão.
  • Ele usa a folha de estilo XSLT de Tarefas de impressão para converter os elementos printfile e quantity e seus valores em propriedades e valores da tarefa.
  • Ele registra as propriedades e os valores da tarefa, sobrepondo o conteúdo do arquivo de substituição enviado com a tarefa.
  • Ele usa o valor da propriedade Job.DownloadFile para fazer download do arquivo PDF de cada item de impressão.
  • Ele imprime o arquivo PDF.
  • Ele espera enquanto um funcionário de transporte verifica os valores das propriedades Custom 1 (número do pedido) e Customer name da tarefa. O funcionário adiciona o item de impressão ao pedido no departamento de expedições.

    Para mover o trabalho para a etapa seguinte no fluxo de trabalho, o funcionário usa a ação Conclusão manual.

  • Ele prende cada tarefa de um item de impressão até que o processamento do pedido seja concluído.

O fluxo de trabalho ProcessStockJobs realiza este processamento:

  • Ele recebe cada tarefa de um item promocional.
  • Ele usa a folha de estilo XSLT das Tarefas de estoque para converter os elementos stock number e quantity e seus valores em propriedades e valores da tarefa.
  • Ele registra as propriedades e os valores da tarefa, sobrepondo o conteúdo do arquivo de substituição enviado com a tarefa.
  • Ele espera enquanto um funcionário de transporte faz as seguintes tarefas:
    • Encontra o número de estoque do item, verificando o valor da propriedade Custom 2.
    • Busca o número necessário de itens promocionais no estoque.
    • Verifica os valores das propriedades Custom 1 (número do pedido) e Customer name da tarefa.
    • Adiciona os itens promocionais ao pedido no departamento de expedições.

    Para mover o trabalho para a etapa seguinte no fluxo de trabalho, o funcionário usa a ação Conclusão manual.

  • Ele prende cada tarefa de um item promocional até que o processamento do pedido seja concluído.

Quando todas as tarefas de itens de impressão e promocionais de um pedido chegarem à etapa WaitForRelatedJobs, o processamento do pedido será concluído. RICOH ProcessDirector move a tarefa pai para o pedido e todas as tarefas filhas dos itens para as etapas baseado no modelo de etapa RetainCompletedJobs.