Ações. Parte 2 - Criação de nota fiscal de entrada#
Este exemplo de robô é a segunda parte do projeto que demonstra o trabalho com Ações no Orquestrador (primeira parte aqui) e demonstra o trabalho com Ações no Orquestrador, como isso aparece do lado do Orquestrador pode ser visto aqui. Neste estágio, o robô recebe uma tarefa da fila ($QueueGuid) com a tag "1CModified" ($TaskTag).
Essa tag aparece na tarefa após salvar o formulário de salvar Ações no Orquestrador. O resultado do trabalho deste robô será a verificação e, se necessário, a correção dos dados da “Nota Fiscal de Entrada” após seu reconhecimento a partir do arquivo pdf.
Após receber a tarefa, os dados são inseridos no 1C "Gestão de Pequenas Empresas (demo)" já aberto.
A segunda parte do projeto do robô consiste em dois diagramas.
Assim, se descrevermos passo a passo, este robô funciona da seguinte maneira:
- Recebe da fila especificada a tarefa adicionada a ela na etapa anterior do projeto.
- Altera o status da tarefa recebida para “Em andamento”.
- Inicia o diagrama “AdicionarNotaFiscal”.
- Após a execução do cenário de adição da nota fiscal, altera o status da tarefa concluída para “Com sucesso”.
O diagrama principal do projeto é assim (para conveniência, os blocos do diagrama estão numerados):
- Bloco “Início” (a partir deste bloco começa qualquer diagrama).
- Bloco “Obter tarefa da fila” obtém a tarefa da fila especificada. Para este bloco, as seguintes propriedades são indicadas:
- GUID/Nome da fila (GUID da fila no Orquestrador, da qual é necessário obter a tarefa);
- Status da tarefa (filtro da tarefa por status);
- Prioridade da tarefa (filtro por prioridade da tarefa);
- Filtro por tags (filtro por tags);
- Sobrescrever objeto de parâmetros;
- Erro na ausência de tarefas.
Na saída, as seguintes propriedades são obtidas:
- GUID da tarefa (retorna o GUID da tarefa);
Nome (retorna o nome da tarefa); - Parâmetros (retorna os parâmetros da tarefa);
- Objeto da tarefa.
- Bloco “Atribuir valor à variável” define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, são indicados três valores que devem ser atribuídos às variáveis: valor das células “Produtos”, “Fornecedor” e “Pedido”. Os valores 1, 2 e 3 são atribuídos às variáveis 1, 2 e 3, respectivamente.
- Bloco “Alterar tarefa” permite alterar o status da tarefa do atual para “Em andamento” (In Progress). Para este bloco, as seguintes propriedades são indicadas:
- GUID/Nome da tarefa (GUID da tarefa cujo status deve ser alterado);
- Status (status da tarefa que deve ser atribuído à tarefa).
- Bloco “Processo” permite criar cenários compostos por vários diagramas. A execução do cenário continuará a partir do bloco “Início” do diagrama do projeto especificado. A execução do cenário retornará ao bloco atual e continuará no diagrama atual assim que o bloco “Fim” no diagrama externo for alcançado. Para o bloco “Processo”, a propriedade “Nome do diagrama” é especificada (nome do arquivo do diagrama onde a execução do cenário continuará).
- Bloco “Alterar tarefa” permite alterar o status do atual para “Com sucesso” (Success). Para este bloco, as seguintes propriedades são indicadas:
- GUID/Nome da tarefa (GUID da tarefa cujo status deve ser alterado);
- Status (status da tarefa que deve ser atribuído à tarefa).
- Bloco “Fim” (este bloco encerra o trabalho do cenário ou retorna o diagrama do subprocesso ao processo principal).
Diagrama "AdicionarNotaFiscal"
Após a extração dos dados do arquivo pdf na primeira etapa do projeto, o robô cria a nota fiscal. Este diagrama foi criado parcialmente com a função “Gravação” do Sherpa Designer. Mais detalhes sobre isso aqui.
Vamos analisar mais detalhadamente os blocos deste diagrama (para conveniência, os blocos estão numerados):
- Bloco “Início” (a partir deste bloco começa qualquer diagrama).
- Bloco “Log” permite registrar mensagens e/ou valores de variáveis no log durante a execução do cenário do robô. Para este bloco, a propriedade “Valor” e o nível da mensagem ao enviar o log para o Orquestrador são especificados. Aqui, este bloco registra no log do robô a mensagem “Criando nomenclatura”.
Blocos “Verificar presença de elemento” (verifica a presença de um determinado elemento da interface do usuário na tela), “Clicar com o mouse” (realiza um clique no elemento especificado do aplicativo), “Pressionar teclas” (emula a pressão de teclas no teclado) e “[ENTER]” (emula a pressão da tecla “Enter” no teclado) foram adicionados ao diagrama usando a função “Gravação”. Cada um dos blocos utiliza um seletor. Mais detalhes sobre o trabalho com seletores aqui.
Bloco “Atribuir valor à variável” define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável específica.
Bloco “Ciclo para cada (Tabela de Dados)” percorre ciclicamente todas as linhas da tabela de dados.
- Bloco “Clique do mouse” (realiza um clique no elemento especificado do aplicativo) foi adicionado ao diagrama usando a função “Gravar”.
- Bloco “Pausa” suspende a execução do script por um tempo determinado. Para este bloco, as seguintes propriedades são especificadas:
- Unidade de medida (unidade de medida na qual a duração da pausa é especificada);
- Duração (número de segundos que a execução do script será suspensa).
- Blocos “Clique do mouse” (realiza um clique no elemento especificado do aplicativo), “Pressionar teclas” (emula a pressão de teclas no teclado) e “[ENTER]” (emula a pressão da tecla “Enter” no teclado) foram adicionados ao diagrama usando a função “Gravar”. Cada um dos blocos utiliza um seletor.
- Bloco “Executar expressão” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é utilizada.
- Bloco “Fim” (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).