Cenário de uso para processamento de pedidos JSON com serviços Web

Neste cenário, uma empresa de impressão quer processar pedidos recuperados de um site para encomenda de livros. Cada pedido consiste em 2 bilhetes de tarefa. Um bilhete de tarefa fornece informações (incluindo a localização do arquivo impresso) necessário para imprimir o livro. O outro bilhete de tarefa contém as informações necessárias para imprimir a capa do livro. O livro e sua capa passarão por diferentes processos de produção e a empresa de impressão deverá elaborar um relatório quando todo o pedido estiver concluído. O site oferece uma interface de serviços Web REST.

O recurso Ativação de Serviços Web inclui objetos de amostra que mostram como esse cenário funciona:

  • Fluxo de trabalho RestfulWebServiceWF
  • Dispositivo de entrada do serviço da Web REST RestfulWebServiceSample
  • Pedidos JSON e bilhetes de tarefa
  • Expressão XPath
  • Folhas de estilo XSLT
  • Arquivos de substituições RICOH ProcessDirector
  • Notificação de serviço Web REST RestfulWebServiceSampleNotify

Para examinar o fluxo de trabalho RestfulWebServiceWF, consulte o tópico de tarefa relacionado sobre como executar um fluxo de trabalho que processa pedidos recuperados de serviços Web REST.

Aprendizagem dos requisitos do site de pedidos de livro

A empresa de impressão recebe os requisitos para se comunicar com os serviços Web REST para o site de pedidos de livro. RICOH ProcessDirector deve chamar 3 serviços Web:

  • Uma chamada para um serviço Web recupera informações JSON sobre cada pedido de livro. Caso os pedidos estejam aguardando no site, o serviço Web retornará um pedido JSON em resposta para cada chamada GET. Se não houver pedidos aguardando, o serviço Web não responderá à chamada.

    Conteúdo do pedido JSON de amostra:

    {"Order": {"orderId": "ORD1238875463", "customername": "Ricoh"}}

  • Uma chamada para outro serviço Web recupera informações JSON sobre os bilhetes de tarefa para o livro e sua capa.

    Informações de bilhete de tarefa JSON de amostra:

    {"JobTicket": [{ "itemnumber": "1182563839", "copies":"4","media" : "Letter Plain","file" : "http://localhost:15080/restapi/Brochure.pdf","type" : "Brochure","title" : "RPDBestSeller"}, { "itemnumber": "1934194376", "copies":"4","media" : "Letter Preprinted","file" : "http://localhost:15080/restapi/Cover.pdf","type" : "Cover" ,"title" : "RPDBestSeller" }]}

  • Uma chamada para um terceiro serviço Web envia o número de item de cada bilhete de tarefa concluído para um pedido. Quando ambos os números de item de um pedido tiverem sido enviados, o serviço Web criará um arquivo PDF listando os números da tarefa e os números de item. O serviço Web coloca o arquivo PDF em um diretório.

    Conteúdo do arquivo PDF de amostra:

    10000001.2 with item number 1182563839 has been processed10000001.1 with item number 1934194376 has been processed

    Obs.:
  • O 3 serviços Web de amostra simulam os serviços Web para um site de pedidos de livro, mas estão disponíveis localmente como parte do recurso Ativação de Serviços Web. Eles retornam dados de amostra em resposta a pedidos específicos feitos pelo dispositivo de entrada RestfulWebServiceSample, a etapa CallRESTService no fluxo de trabalho RestfulWebServiceWF e a notificação RestfulWebServiceSampleNotify.
  • O serviços Web de amostra geram pedidos de amostra com IDs de pedido diferentes e conjuntos de bilhetes de tarefa de amostra com diferentes números de item. O restante dos dados nas amostras é o mesmo.

Para fazer chamadas para serviços Web, o administrador RICOH ProcessDirector recebe:

  • Os valores necessários para autenticação do site de pedido de livro.
  • Os valores necessários para solicitar dados de cada serviço Web.
  • O formato dos dados fornecidos na resposta de cada serviço Web.

O administrador usa um plug-in de navegador para executar testes manuais que solicitam respostas dos serviços Web REST. Exemplos de plug-ins incluem RESTClient para Mozilla Firefox e Boomerang para Google Chrome.

Preparação para processar JSON

O administrador verifica o conteúdo dos pedidos JSON e bilhetes de tarefa retornados pelos serviços Web REST e identifica as informações necessárias para RICOH ProcessDirector. Em seguida, o administrador avalia as capacidades de RICOH ProcessDirector que chamam serviços Web e processam XML e JSON. O administrador decide os objetos RICOH ProcessDirector e conjuntos de etapas que processam os pedidos e bilhetes de tarefa e extrai as informações necessárias. Em seguida, o administrador define as expressões XPath e as folhas de estilo XSLT exigidas pelos objetos e etapas.

  1. Para processar pedidos e bilhetes de tarefa em RICOH ProcessDirector, o administrador identifica objetos JSON que fornecem as informações necessárias. O administrador atribui os valores desses objetos às propriedades da tarefa RICOH ProcessDirector.
    • Para chamar o serviço Web que recupera informações JSON sobre os bilhetes de tarefa, o administrador deve fornecer o ID de pedido. O administrador também deve rastrear o nome do cliente em RICOH ProcessDirector.

      Dois membros do objeto de pedido JSON fornecem estes valores: orderId e customername.

      Essa tabela mostra os 2 membros JSON e os nomes das propriedades da tarefa RICOH ProcessDirector que o administrador usa para extrair as informações.

      Membro JSON Nome do banco de dados da propriedade da tarefa Nome da interface com o usuário da propriedade da tarefa
      orderId Job.Info.Attr3 Custom 3
      customername Job.CustomerName Nome do cliente

    • Para criar tarefas separadas para cada bilhete de tarefa, o administrador deve usar o número de item. Para fazer download e imprimir os arquivos PDF para livros e capas, o administrador deve usar o arquivo, cópias e informações de mídia no bilhete de tarefa. O administrador também deve rastrear o tipo de livro e título em RICOH ProcessDirector.

      Seis membros do objeto de bilhete de tarefa JSON fornecem estes valores: file, itemnumber, type, title, copies, e media.

      Esta tabela mostra esses 6 membros JSON e os nomes das propriedades da tarefa RICOH ProcessDirector.

      Membro JSON Nome do banco de dados da propriedade da tarefa Nome da interface com o usuário da propriedade da tarefa
      itemnumber Job.Info.Attr1 Personalizada 1
      file Job.Info.Attr2 Personalizada 2
      type Job.Info.Attr4 Custom 4
      title Job.Info.Attr5 Custom 5
      copies Job.Copies Cópias de tarefas solicitadas
      media Job.Media Mídia

  2. Antes de projetar o processo RICOH ProcessDirector, o administrador examina os objetos RICOH ProcessDirector e o modelo de etapa que serviços Web REST:
    • Dispositivo de entrada do serviço da Web REST
    • Notificação de serviço Web REST
    • Modelo da etapa CallRESTService

    Cada um deles pode fazer chamadas DELETE, GET, PATCH, POST, ou PUT, e cada um pode processar JSON ou XML.

    O dispositivo de entrada pode criar uma tarefa de cada resposta ou pode avaliar a resposta para uma expressão JSONPath ou XPath. Se o dispositivo de entrada faz uma avaliação, ele pode criar uma tarefa sempre que encontrar a expressão.

  3. O administrador também examina os modelos de etapa RICOH ProcessDirector que processam XML:
    • Uma etapa baseada no modelo de etapa ApplyXSLTransform pode converter a entrada em um formato para saída em outro formato. Por exemplo, a etapa pode converter XML para esta saída:
      • Um arquivo de texto contendo tarefa RICOH ProcessDirector ou propriedades do documento.
      • Um arquivo com XML em outro formato para entrada para a etapa CreateJobsFromXML.
    • Uma etapa baseada no modelo de etapa CreateJobsFromXML permite criar uma ou mais tarefas XML avaliando o conteúdo de um arquivo de entrada XML. A etapa pode enviar as tarefas como tarefas independentes ou tarefas filhas para um determinado fluxo de trabalho.

    Como ApplyXSLTransform e CreateJobsFromXML não processam JSON, uma etapa baseada no modelo de etapa ConvertJSONToXML pode converter JSON em XML para entrada nessas etapas.

  4. O administrador decide sobre os componentes essenciais do processo RICOH ProcessDirector.
    • Para recuperar pedidos JSON provenientes do site de pedidos de livro, o administrador escolhe um dispositivo de entrada de serviço Web REST.

      Como cada resposta contém um único pedido, o administrador configura o dispositivo de entrada para criar uma tarefa de cada resposta.

    • Para recuperar bilhetes de tarefa JSON para cada pedido, o administrador escolhe 3 etapas:
      • Uma etapa ConvertJSONToXML converte pedidos JSON para XML para entrada para uma etapa ApplyXSLTransform.
      • A etapa ApplyXSLTransform converte valores de ID de pedido e nome do cliente em pedidos XML para propriedades da tarefa RICOH ProcessDirector Custom 3 e Customer name.
      • Utilizando o valor de propriedade Custom 3, uma etapa CallRESTService recupera os bilhetes de tarefa JSON.
    • Para criar uma tarefa para cada bilhete de tarefa, o administrador escolhe 2 etapas:
      • Uma etapa ConvertJSONToXML converte bilhetes de tarefa JSON para XML para entrada para uma etapa CreateJobsFromXML.
      • A etapa CreateJobsFromXML cria uma tarefa separada para cada bilhete de tarefa avaliando a resposta usando uma expressão XPath.
    • Para extrair informações dos bilhetes de tarefa e usá-las para fazer o download de arquivos impressos PDF, o administrador escolhe 3 etapas:
      • Uma etapa ApplyXSLTransform converte valores em bilhetes de tarefa XML para propriedades da tarefa RICOH ProcessDirector. Por exemplo, a URL do arquivo para download é convertida para o valor da propriedade da tarefa Custom 2.
      • Utilizando o valor de propriedade da tarefa Custom 2, uma etapa DownloadFile faz o download dos arquivos impressos PDF.
      • Uma etapa AssignJobValues define o fluxo de dados de entrada para PDF para informar as outras etapas no fluxo de trabalho sobre o tipo de arquivo que estão processando.
    • Quando ambas as tarefas PDF em um pedido são impressas, o administrador deve notificar o site de pedido de livro que o pedido está pronto para envio. Como o site usa REST, o administrador escolhe uma notificação de serviço Web REST.
  5. Para a etapa CreateJobsFromXML, o administrador precisa de uma expressão XML Path Language (XPath) que identifique os bilhetes de tarefa. Para definir a expressão, o administrador examina o XML para os bilhetes de tarefa.
  6. Para cada etapa ApplyXSLTransform, o administrador precisa de uma folha de estilo XSLT para converter elementos XML em propriedades da tarefa. O administrador usa uma ferramenta XSLT (como Altova MapForce) para criar 2 folhas de estilo XSLT:
    • Uma folha de estilo XSLT arquivo de pedido para substituição converte elementos ID de pedido e nome do cliente do pedido em propriedades da tarefa.
    • Uma folha de estilo XSLT arquivo de bilhete de tarefa para substituição converte os elementos de arquivo, número de item, tipo, título, cópias e mídia do bilhete de tarefa em propriedades da tarefa.

    Cada etapa ApplyXSLTransform entrega as propriedades da tarefa em um arquivo de texto. O valor de cada propriedade Arquivo de saída especifica um arquivo de substituições no diretório de spool para a tarefa.

    RICOH ProcessDirector usa os valores no arquivo de substituições para configurar os valores das propriedades da tarefa. Valores dos pedidos são usados para recuperar bilhetes de tarefa. Valores dos bilhetes de tarefa são utilizados para fazer download e processar arquivos impressos.

Configuração do fluxo de trabalho

O administrador configura um fluxo de trabalho com 2 vertentes.

  1. O administrador cria um fluxo de trabalho chamado ProcessBookOrders e define as propriedades da etapa SetJobPropsFromTextFile.
  2. O administrador adiciona 10 passos ao fluxo de trabalho nesta ordem:
    • DetectInputDataStream

      Essa etapa configura a propriedade Fluxo de dados de entrada para JSON.

    • ConvertJSONToXML

      Essa etapa usa os valores padrão para o arquivo de entrada JSON e o arquivo de saída XML.

    • ApplyXSLTransform

      Essa etapa usa a folha de estilo XSLT arquivo de pedido para substituição para criar um arquivo de texto que define valores para as propriedades Custom 3 e Nome do cliente. A etapa transforma o arquivo de texto em arquivo de substituições no diretório de spool para a tarefa. RICOH ProcessDirector usa o arquivo de substituições para definir os valores de propriedade Custom 3 e Nome do cliente para a tarefa.

    • AssignJobValues

      Essa etapa configura o valor da propriedade Nome da tarefa para ORDER-order ID.

    • CallRESTService

      Esse etapa faz uma chamada GET para outro serviço Web para o site de pedido de livro. A etapa especifica o ID de pedido como o valor da propriedade Parâmetros da solicitação:

      orderId:${Job.Info.Attr3}

      O serviço Web retorna informações do bilhete de tarefa JSON.

    • ConvertJSONToXML

      Essa etapa usa os valores padrão para o arquivo de entrada JSON e o arquivo de saída XML.

    • CreateJobsFromXML

      O administrador define o valor da expressão XPath para //JobTicket e o valor do fluxo de trabalho de novos trabalhos para ProcessBookOrders. Para manter as novas tarefas conectadas à tarefa original do pedido, o administrador define o valor da propriedade Criar tarefas filhas como Sim. Para especificar o ID do pedido como o nome da tarefa, o administrador define o valor da propriedade Nome da nova propriedade da tarefa como ${Job.Info.Attr3}.

      As tarefas XML que entram na etapa seguem para a próxima etapa, enquanto as novas tarefas filhas são enviadas para uma vertente diferente do fluxo de trabalho.

    • RunHotFolderApplication

      O administrador adiciona essa etapa para se comunicar com o serviço Web que cria arquivos PDF e os coloca em uma hot folder. Primeiro, o serviço Web faz a varredura de uma hot folder para tarefas de pedido. Depois que o serviço Web recebe 2 solicitações por pedido da notificação RestfulWebServiceSampleNotify, o serviço Web coloca um arquivo PDF em outra hot folder. A etapa RunHotFolderApplication especifica a hot folder para pedidos de tarefas como o valor da propriedade Pasta de envio. A etapa especifica a hot folder com os arquivos PDF como o valor da propriedade Pasta de recuperação.

        Obs.:
      • Esse cenário inclui uma etapa RunHotFolderApplication porque o fluxo de trabalho de amostra RestfulWebServiceWF utiliza essa etapa para troca de dados com o serviço Web de amostra. Em vez de retornar um arquivo PDF quando um pedido é concluído, o serviço Web pode fazer uma função diferente. Por exemplo, o serviço Web pode enviar uma mensagem de e-mail para notificar o departamento de embalagem que o pedido está pronto para coleta.

    • AssignJobValues

      Essa etapa configura o valor da propriedade Fluxo de dados de entrada como PDF para que os arquivos PDF criados pelo serviço Web possam ser visualizados no fluxo de trabalho.

    • RetainCompletedJobs
  3. O administrador conecta a etapa RetainCompletedJobs à etapa RemoveJobs.
  4. O administrador cria uma segunda vertente para processar as tarefas filhas para os livros e suas capas.
    • O administrador define uma regra no conector entre as etapas SetJobPropsFromTextFile e DetectInputDataStream:
      • Nome da regra: Parent
      • Pedido de execução: 1
      • Propriedade: Número da tarefa
      • Comparação: Diferente
      • Valor: *.*

      A regra envia tarefas JSON que o dispositivo de entrada recupera para a etapa DetectInputDataStream.

    • O administrador adiciona uma etapa ApplyXSLTransform2 na fase Receber e a conecta à etapa SetJobPropsFromTextFile.

      A etapa usa a folha de estilo XSLT arquivo de bilhete de tarefa para substituição para criar um arquivo de substituições que define valores para as propriedades Custom 2, Custom 1, Custom 4, Custom 5, Cópias de tarefas solicitadas e Mídia. Custom 2, Custom 1, Custom 4 e Custom 5 são arquivo, número de item, tipo e título, respectivamente.

    • O administrador define uma regra no conector entre as etapas SetJobPropsFromTextFile e ApplyXSLTransform2:
      • Nome da regra: Child
      • Pedido de execução: 2
      • Propriedade: Número da tarefa
      • Comparação: Similar
      • Valor: *.*

      A regra envia tarefas filhas que a etapa CreateJobsFromXML cria para a etapa ApplyXSLTransform2.

    • Como o foco desse cenário é serviços Web, a parte de impressão é simples. Um processo de produção pode enviar os livros e suas capas por diferentes etapas em diferentes fluxos de trabalho ou vertentes para diferentes impressoras.
  5. O administrador adiciona 6 passos ao fluxo de trabalho nesta ordem:
    • DownloadFile

      Essa etapa faz download dos arquivos PDF para o livro e sua capa de um site. A etapa define o valor da propriedade URL para download do arquivo para Custom 2, que contém as informações de download do arquivo do bilhete de tarefa.

    • AssignJobValues

      Essa etapa configura o valor de 3 propriedades da tarefa:

      • Impressora solicitada
      • Fluxo de dados de entrada
      • Nome da tarefa

      O valor de Nome da tarefa é ${Job.Info.Attr5}-${Job.Info.Attr4}: o título do livro, um hífen e o tipo de trabalho de impressão (livro ou capa).

    • OptimizePDF
    • CountPages
    • CreatePageRanges
    • PrintJobs
        Obs.:
      • Como o foco desse cenário é serviços Web, a parte de impressão do fluxo de trabalho possui somente 4 etapas. Um processo de produção pode enviar os livros e suas capas por muitas outras etapas em diferentes vertentes (ou fluxos de trabalho separados) para diferentes impressoras.
  6. O administrador conclui o fluxo de trabalho conectando a etapa PrintJobs à etapa RetainCompletedJobs.

Esta figura mostra o dispositivo de entrada, o fluxo de trabalho e a notificação. A linha preta indica que a etapa CreateJobsFromXML envia as tarefas filhas para o fluxo de trabalho ProcessBookOrders.

Configuração do dispositivo de entrada

Na guia Geral do dispositivo de entrada do serviço Web REST, o administrador define o valor da propriedade fluxo de trabalho filho para ProcessBookOrders. O dispositivo de entrada envia pedidos JSON recuperados do serviço Web para o site de pedido de livro daquele fluxo de trabalho. O administrador define o intervalo de varredura para 30 segundos para recuperar pedidos rapidamente quando vários deles estão aguardando no site. Outras propriedades são definidas para corresponder ao ambiente da empresa de impressão.

Na guia Solicitação, o administrador especifica os valores necessários para recuperar pedidos JSON do serviço Web REST. Como cada resposta contém um pedido JSON, o administrador define o valor da propriedade Criar tarefas a partir da resposta como Sempre. A rede na empresa de impressão não requer um servidor proxy.

    Obs.:
  • Para usar um servidor proxy, defina a propriedade Usar servidor proxy como Sim. As propriedades de servidor proxy são configuradas na guia Servidor proxy da página Configurações do Sistema.

Na guia Autenticação, o administrador especifica os valores necessários para autenticar com o serviço Web REST.

    Obs.:
  • O dispositivo de entrada RestfulWebServiceSample fornecido mostra como configurar um dispositivo de entrada de serviço Web REST para esse cenário. O dispositivo de entrada chama um serviço Web que não exige autenticação. Para obter informações sobre autenticação com um serviço Web REST, consulte o tópico da tarefa relacionada.

Configuração da notificação

Na guia Solicitação da notificação de serviço Web REST, o administrador especifica os valores necessários pelo serviço Web REST que recebe a notificação. A rede na empresa de impressão não requer um servidor proxy.

    Obs.:
  • Para usar um servidor proxy, defina a propriedade Usar servidor proxy como Sim.

Na guia Autenticação, o administrador especifica os valores necessários para autenticar com o serviço Web REST.

    Obs.:
  • A notificação RestfulWebServiceSampleNotify fornecida mostra como configurar uma notificação de serviço Web REST para esse cenário. A notificação chama um serviço Web que não exige autenticação. Para obter informações sobre autenticação com um serviço Web REST, consulte o tópico da tarefa relacionada.

Na guia Eventos, o administrador especifica as informações de evento de notificação:

  • Tipo de evento: Tarefa
  • Propriedade: Atual estado da tarefa
  • Ação: Muda para
  • Valor: Retido

Na guia Condições, o administrador especifica as informações de condições de notificação:

  • Aplicar qualquer uma ou todas as seguintes condições = Todas
  • Propriedade 1: Fluxo de trabalho
  • Comparação 1: =
  • Valor 1: ProcessBookOrders
  • Propriedade 2: Número da tarefa
  • Comparação 2: similar
  • Valor 2: *.*

O resumo das condições instrução é:

Job.JobType = 'RestfulWebServiceWF' AND Job.ID like '*.*'

Quando todas as tarefas filhas para um pedido chegarem à etapa RetainCompletedJobs, a notificação chamará o serviço Web. O serviço Web cria um arquivo PDF contendo o número de item de cada bilhete de tarefa do pedido. O serviço Web coloca o arquivo em uma hot folder monitorada pela etapa RunHotFolderApplication. O arquivo PDF aparece na tabela de tarefas. Os funcionários na empresa de impressão podem exibir o arquivo PDF para confirmar que o livro e a capa do pedido foram impressos.

Processar tarefas por meio do fluxo de trabalho

O fluxo de trabalho RestfulWebServiceWF fornecido com o recurso Ativação de Serviços Web é semelhante ao fluxo de trabalho ProcessBookOrders. Para ver como as tarefas são processadas pelo fluxo de trabalho ProcessBookOrders, execute o fluxo de trabalho RestfulWebServiceWF. Para obter mais informações, consulte tópico de tarefa relacionado sobre como executar um fluxo de trabalho que processa pedidos recuperados de serviços Web REST.