Criar Ordem de Matrícula#

Vamos considerar um exemplo de robô que é projetado para a formação automática e impressão de ordens de matrícula de estudantes. Os dados de entrada são um registro de estudantes (participantes do programa de treinamento). O processo é frequentemente utilizado em instituições de ensino e agências de recrutamento.

O projeto do robô consiste em dois diagramas e três arquivos, sendo um deles no formato xlsx e os outros dois no formato docx.

Se descrevermos passo a passo, este robô funciona da seguinte maneira:

  1. Carrega a tabela de dados do arquivo "P1_Treinamento_modelo.xlsx".
  2. Percorre as células com o número da ordem.
  3. Acessa o cenário do diagrama “CreateEnrollmentOrder_ProcessCreateWord”, que insere os dados, obtém a data e a hora, as transforma em texto e, em seguida, insere os dados no "P1_Modelo de ordem de matrícula.docx", enviando-o para impressão.
  4. Preenche o “Modelo de ordem de matrícula.docx", salva e imprime.

Diagrama principal do projeto

O diagrama principal do projeto é assim (para conveniência, os blocos do diagrama estão numerados):

  1. Bloco “Início” (todas as diagramas começam a partir deste bloco).
  2. Bloco “Carregar Tabela de Dados” permite carregar a “Tabela de Dados” de um documento Excel. Para este bloco, as seguintes propriedades são especificadas:
  • Caminho do arquivo (caminho para o documento Excel do qual as informações devem ser carregadas na Tabela de Dados);
  • Cabeçalho (com a flag ativada, a primeira linha será usada como cabeçalho);
  • Planilha (número da planilha da qual os dados devem ser lidos na Tabela de Dados).
  1. Bloco “Ciclo para cada (Tabela de Dados)” percorre ciclicamente todas as linhas da tabela de dados.
  1. 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” do 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á).
  1. Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do cenário continua na saída “Sim” (se a condição for atendida) ou na saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.

Neste caso, a condição estabelecida é: -Not [string]::IsNullOrEmpty($Row[0]). Ou seja, verifica se o valor da célula zero nesta linha não está vazio.

  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades são especificados três valores que devem ser atribuídos a três variáveis, respectivamente.
  1. Bloco “Executar expressão PowerShell” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, é utilizada uma expressão: $ListFIOString += ($Index+1).ToString() + ". " + $ListFIO[$Index] + [Environment]::NewLine. Ela adiciona à string uma nova linha no formato “1. Ivanov Ivan Ivanovich\r\n”.
  1. Bloco “Obter data e hora atuais” permite obter a data e hora atuais de acordo com as configurações do computador do usuário. Para este bloco, foi especificada uma propriedade – “Resultado” (retorna a data e hora atuais).
  1. Bloco “Converter data e hora em texto” permite converter uma variável do tipo “Data e hora” para o formato de texto. Para este bloco, foram especificadas as seguintes propriedades:
  • Valor (data e hora que precisam ser convertidas em texto);
  • Formato (formato de conversão da data e hora em texto).
  1. Bloco “Obter caminho para o arquivo” obtém o caminho completo para um arquivo com o nome especificado. Para este bloco, foi especificada uma propriedade “Nome do arquivo” (nome do arquivo junto com seu formato).
  1. Bloco “Abrir documento” permite abrir um documento do Word. Para este bloco, foram especificadas as seguintes propriedades:
  • Usar COM (com a flag ativada, o trabalho será realizado com o Word instalado);
  • Caminho para o arquivo (caminho para o arquivo do Word que precisa ser aberto).
  1. Bloco “Substituir todas as variáveis no texto” permite substituir todas as variáveis %variable% em um documento do Word. Para este bloco, foram especificadas as seguintes propriedades:
  • Referência ao Word (referência ao processo de manipulação do documento do Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento);
  • Referência ao documento (referência ao documento do Word aberto, no qual o trabalho está ocorrendo no momento. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento).
  1. Bloco “Obter caminho para o arquivo” obtém o caminho completo para um arquivo com o nome especificado. Para este bloco, foi especificada uma propriedade “Nome do arquivo” (nome do arquivo junto com seu formato).
  1. Bloco “Salvar documento” permite salvar um documento do Word. Para este bloco, foram especificadas as seguintes propriedades:
  • Referência ao Word (referência ao processo de manipulação do documento do Word, o nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento);
  • Referência ao documento (referência ao documento que precisa ser salvo. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento);
  • Caminho para o arquivo (caminho para o documento do Word).
  1. Bloco “Imprimir documento” permite enviar um documento do Word para impressão. Para este bloco, foram especificadas as seguintes propriedades:
  • Referência ao Word (referência ao processo de manipulação do documento do Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento);
  • Referência ao documento (referência ao documento do Word aberto, no qual o trabalho está ocorrendo no momento. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Referência ao documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram utilizados anteriormente para criar ou abrir este documento).
  1. Bloco “Fechar documento” permite fechar um documento do Word. Para este bloco, foram especificadas as seguintes propriedades:* Link para Word (link para o processo de manipulação de documentos Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
  • Link para documento (link para o documento que precisa ser fechado. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento).
  1. Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis no log durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, uma constante de texto é indicada, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô uma mensagem de erro.
  1. e 15. Bloco “Fim” (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).