Execução do fluxo de trabalho de amostra para pedidos de processamento recuperados de serviços web REST

O fluxo de trabalho RestfulWebServiceWF mostra como processar pedidos recuperados de serviços web REST que simulam um site para pedido de livros. Um dispositivo de entrada de serviço web REST, uma etapa CallRESTService e uma notificação de serviço web REST. O fluxo de trabalho também dá exemplos destas etapas: ConvertJSONToXML, ApplyXSLTransform, CreateJobsFromXML e DownloadFile.

Esse fluxo de trabalho usa estes objetos e arquivos de amostra:

  • Fluxo de trabalho: RestfulWebServiceWF
  • Dispositivo de entrada: RestfulWebServiceSample

    O dispositivo de entrada faz uma chamada GET para recuperar pedidos JSON de um serviço web REST de amostra em http://localhost:15080/restapi/1.0/sample/order

  • Notificação: RestfulWebServiceSampleNotify

    A notificação faz uma chamada POST para um serviço web de amostra em http://localhost:15080/restapi/1.0/sample/completeJobTicket

  • Pedidos JSON

    Um pedido é recuperado a cada 30 segundos do serviço web de amostra.

    Conteúdo do pedido de amostra:

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

    Cada pedido contém um número gerado aleatoriamente, por exemplo: 1238875463.

  • Arquivos impressos: Brochure.pdf e Cover.pdf

    Esses arquivos são baixados localmente de http://localhost:15080/restapi/

  • Arquivos de folha de estilo XSLT:

    • orderToOverrides.xslt

    • jobticketToOverrides.xslt

    Os arquivos estão no diretório restsample:

    • /aiw/aiw1/testfiles/restsample (Linux)
    • C:\aiw\aiw1\testfiles\restsample (Windows)

  • Arquivos PDF de notificação

    Um arquivo PDF de notificação é gerado para cada pedido concluído. Cada arquivo é nomeado ORDER-ORDnúmero, por exemplo: ORDER-ORD1238875463.

  • A etapa CallRESTService faz uma chamada GET para recuperar bilhetes de tarefa JSON de um serviço web REST de amostra em http://localhost:15080/restapi/1.0/sample/jobTicket

    Obs.:
  • Os serviços web de amostra estão disponíveis localmente. Eles retornar dados de amostra em resposta a solicitações específicas feitas pelo dispositivo de entrada de amostra, notificação e etapa CallRESTService. Os serviços web não suportam outras solicitações.

  • Objetos e arquivos de amostra, incluindo o fluxo de trabalho RestfulWebServiceWF, estão instalados com o recurso Ativação de Serviços Web.

Para executar o fluxo de trabalho de amostra:

  1. Clique na guia Principal.
  2. No portlet de Impressoras, clique com o botão direito na impressora Sample e selecione Enable.
  3. No portlet Dispositivos de entrada, clique com o botão direito no dispositivos de entrada de serviço web REST RestfulWebServiceSample e selecione Enable and Connect.

    A tarefa aparece na tabela de tarefas.

  4. Clique com o botão direito no dispositivo de entrada RestfulWebServiceSample e selecione Disable
  5. Clique com o botão direito do mouse novamente no dispositivo de entrada e selecione Desconecte.

    Obs.: O dispositivo de entrada de amostra faz a varredura por pedidos a cada 30 segundos e recupera uma tarefa JSON. Se você não desativar e desconectar o dispositivo de entrada, uma nova tarefa aparecerá na tabela de tarefas a cada 30 segundos.

    Sempre que o dispositivo de entrada RestfulWebServiceSample recuperar uma tarefa JSON:

    • A tarefa será enviada pela vertente Parent do fluxo de trabalho.

    • A etapa SetJobPropsFromTextFile define a propriedade Customer name para RicohSample e a propriedade Custom 1 para RicohCustom.

    • A etapa ConvertJSONToXML converte a tarefa para XML.

    • A etapa ApplyXSLTransform usa a folha de estilo XSLT orderToOverrides.xslt para converter 2 elementos XML em 2 propriedades da tarefa RICOH ProcessDirector em um arquivo de substituições:

      Elemento XML Propriedade de tarefa
      orderId Job.Info.Attr3
      customername Job.CustomerName

      Conteúdo do arquivo de substituições de amostra:

      Job.Info.Attr3=ORD1238875463Job.CustomerName=Ricoh

      A etapa coloca o arquivo de substituições no diretório de spool da tarefa. RICOH ProcessDirector usa os valores no arquivo de substituições para configurar os valores das propriedades da tarefa.

    • A etapa AssignJobValues define o valor da propriedade Job name para ORDER-${Job.Info.Attr3}, por exemplo: ORDER-ORD1238875463.

    • A etapa CallRESTService faz uma chamada GET para um dos serviços web de amostra para simular um site para pedido de livros. 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 para o pedido para RICOH ProcessDirector.

      Conteúdo das informações do bilhete de tarefa 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" }]}

    • A etapa ConvertJSONToXML converte as informações de bilhete de tarefa JSON para XML.

    • A etapa CreateJobsFromXML usa a expressão XPath //JobTicket para analisar as informações de bilhete da tarefa XML. A etapa encontra 2 bilhetes de tarefas e cria 2 tarefas filhas.

      Conteúdo das tarefas filhas de amostra:

      <?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Brochure.pdf</file><itemnumber>2112076335</itemnumber><media>Letter Plain</media><type>Brochure</type><title>RPDBestSeller</title></JobTicket><?xml version="1.0" encoding="UTF-8"?><JobTicket><copies>4</copies><file>http://localhost:15080/restapi/Cover.pdf</file><itemnumber>1418780325</itemnumber><media>Letter Preprinted</media><type>Cover</type><title>RPDBestSeller</title></JobTicket>

      A etapa envia as 2 tarefas filhas para o fluxo de trabalho RestfulWebServiceWF.

      A regra no conector [2] Child determina se as tarefas são tarefas filhas procurando um ponto decimal no número da tarefa. O conector envia tarefas filhas pela vertente Child do fluxo de trabalho.

      A tarefa JSON original continua pela vertente Parent para a etapa RunHotFolderApplication. A etapa coloca a tarefa JSON em uma hot folder:

      • /aiw/aiw1/testfiles/restsample/sending (Linux)

      • C:\aiw\aiw1\testfiles\restsample\sending (Windows)

      Um dos serviços web de amostra que simula o site para pedidos de livros faz uma varredura na hot folder em busca de tarefas. O serviço web processa cada tarefa JSON quando recebe uma solicitação da notificação RestfulWebServiceSampleNotify. Para obter mais informações, consulte o item de lista para a etapa RetainCompletedJobs.

    • A etapa ApplyXSLTransform2 usa a folha de estilo XSLT jobticketToOverrides.xslt para converter 6 elementos XML em cada tarefa filha em propriedades da tarefa RICOH ProcessDirector em um arquivo de substituições:

      Elemento XML Propriedade de tarefa
      file Job.Info.Attr2
      itemnumber Job.Info.Attr1
      type Job.Info.Attr4
      title Job.Info.Attr5
      copies Job.Copies
      media Job.Media

      Conteúdo do arquivo de substituições de amostra:

      Job.Info.Attr2=http://localhost:15080/restapi/Brochure.pdfJob.Info.Attr1=1182563839Job.Info.Attr4=BrochureJob.Info.Attr5=RPDBestSellerJob.Copies=4Job.Media=Letter Preprinted

    • A etapa DownloadFile faz o download dos arquivos Cover.pdf e Brochure.pdf de http://localhost:15080/restapi/ definindo o valor da propriedade URL for download file para ${Job.Info.Attr2}.

    • A etapa AssignJobValues2 define os valores de 3 propriedades da tarefa:

      • Requested printer: Sample

      • Input data stream: PDF

      • Job name: ${Job.Info.Attr5}-${Job.Info.Attr4}

      Os nomes de tarefas filhas para os arquivos Brochure.pdf e Cover.pdf agora são RPDBestSeller-Brochure e RPDBestSeller-Cover.

    • As etapas OptimizePDF, CountPages, CreatePageRanges e PrintJobs processam e imprimem as tarefas filhas RPDBestSeller-Brochure e RPDBestSeller-Cover na impressora Amostra.

    • Quando cada tarefa filha chega à etapa RetainCompletedJobs, a notificação de serviço web RestfulWebServiceSampleNotify faz uma chamada POST para um dos serviços web de amostra em http://localhost:15080/restapi/1.0/sample/completeJobTicket. O valor da propriedade Parâmetros da solicitação é:

      jobTicket:${Job.Info.Attr1}jobId:${Job.ID}

      O serviço web aguarda até que todas as tarefas filhas para a tarefa JSON original estejam no estado de tarefa Retained. Em seguida, o serviço web cria um arquivo PDF contendo o número da tarefa e o número de item de cada bilhete de tarefa do pedido. Por exemplo:

      10000001.2 with item number 278955095 has been processed10000001.1 with item number 913895452 has been processed

      O serviço web coloca o arquivo PDF em uma hot folder de recuperação para a etapa RunHotFolderApplication:

      • /aiw/aiw1/testfiles/restsample/retrieval (Linux)

      • C:\aiw\aiw1\testfiles\restsample\retrieval (Windows)

      A etapa RunHotFolderApplication faz uma varredura da hot folder, encontra a tarefa de PDF e envia a tarefa para a próxima etapa.

    • A etapa AssignJobValues define o valor da propriedade Fluxo de dados de entrada como PDF e envia a tarefa de PDF para a etapa RetainCompletedJobs.

  6. Na tabela de tarefas, clique com o botão direito na tarefa ORDER-ORDnúmero e selecione View.

    O visualizador exibe o arquivo PDF. As informações no arquivo PDF confirmam que as 2 tarefas filhas foram processadas.