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:
- Carrega a tabela de dados do arquivo "P1_Treinamento_modelo.xlsx".
- Percorre as células com o número da ordem.
- 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.
- 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):
- Bloco “Início” (todas as diagramas começam a partir deste bloco).
- 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).
- Bloco “Ciclo para cada (Tabela de Dados)” percorre ciclicamente todas as linhas da tabela de dados.
- 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á).
- 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.
- 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.
- 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”.
- 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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.
- e 15. Bloco “Fim” (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).