Encontrar Fornecedores#
Vamos considerar um exemplo de robô que demonstra a automação da busca por fornecedores.
O projeto do robô consiste em 4 diagramas e 7 arquivos nos formatos xlsx, txt e docx.
Assim, se descrevermos passo a passo, este robô funciona da seguinte maneira:
- Verifica o e-mail e, ao receber uma mensagem (o modelo da qual está definido no arquivo “WorkBodyEmail.txt”), faz uma solicitação para buscar o produto no Yandex.
- Percorre os links do resultado da busca e coleta os E-mails.
- Filtra os links usando os dados do arquivo “BlockEmails.xlsx”.
- Faz o envio para os E-mails especificados, onde o assunto do e-mail é retirado do arquivo “RequestSubjectEmail.txt” e o corpo do e-mail do arquivo “RequestBodyEmail.txt”; como anexos dos e-mails, são incluídos dois arquivos: o primeiro é o pedido do arquivo “RequestWordTemplate.docx”, e o segundo são os dados da empresa do arquivo “CompanyDetails.xlsx”.
O diagrama principal do projeto é assim (para conveniência, os blocos do diagrama estão numerados):
- Bloco “Início” (a partir deste bloco, qualquer diagrama começa).
- 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”, é especificada a propriedade “Nome do diagrama” (o nome do arquivo do diagrama onde a execução do cenário continuará).
- Bloco “Pausa” suspende a execução do trabalho do cenário por um tempo especificado. Neste caso, por 10 segundos.
- Bloco “Receber e-mails via POP3” permite receber e-mails usando o protocolo POP3. Para este bloco, as seguintes propriedades são especificadas:
- Servidor (servidor);
- Login (login necessário para autenticação no servidor);
- Senha (senha necessária para autenticação no servidor);
- Tempo de espera (tempo de espera pela resposta do servidor em segundos);
- SSL (se a flag estiver ativada, uma conexão segura é utilizada);
- Número de e-mails (número dos últimos e-mails que serão recebidos do servidor).
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, é especificada a propriedade “Valor”. Entre aspas, é indicada uma constante de texto, 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.
- Bloco “Ciclo para cada (Lista)” percorre todos os elementos em uma lista especificada, em cada iteração do ciclo atribui o elemento atual à variável que está especificada na propriedade “Elemento”, e então a execução do cenário continua na saída do Elemento deste bloco (no chamado “corpo do ciclo”). Após percorrer todos os elementos da lista, a execução do cenário continua na saída inferior do bloco. Não se esqueça de conectar a saída do último bloco no corpo do ciclo à entrada deste bloco. Para este bloco, é especificada uma propriedade: “Lista” (lista cujos elementos devem ser percorridos no ciclo).
Importante! Para que o ciclo seja reiniciado, é necessário ir não para o próprio ciclo, mas para o bloco acima dele.
- Bloco “Atribuir valor à variável” define novos valores para uma ou mais variáveis. Neste caso, nas propriedades estão especificados dois valores que devem ser atribuídos a duas variáveis, respectivamente.
- Bloco “Codificar em Base64” permite codificar uma string em Base64. Para este bloco, é especificada uma propriedade: “Texto” (string de entrada).
- Bloco “Verificar a presença de um elemento na lista” realiza uma busca na lista e determina se o elemento procurado está presente na lista ou não. Para este bloco, as seguintes propriedades são especificadas:
- Lista (lista na qual é necessário verificar a presença do elemento procurado);
- Elemento (elemento cujo fato de presença deve ser verificado);
- Tipo de verificação (seleção do tipo de verificação).
- Bloco “Adicionar elemento à lista” adiciona o elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:
- Lista (lista à qual é necessário adicionar um novo elemento);
- Elemento (variável que deve ser adicionada à lista).
- Bloco “Dividir texto” divide uma string em substrings com base no símbolo delimitador especificado. Para este bloco, as seguintes propriedades são especificadas:
- Texto (string de entrada);
- Nova linha (se a flag estiver ativada, a divisão será feita por nova linha);
- Remover substrings vazias (se a flag estiver ativada, as linhas vazias serão removidas do resultado);
- Trim (se a flag estiver ativada, cada linha no resultado será trimada).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[0] == "SherpaRPA". Ou seja, no corpo do e-mail deve haver a palavra-chave "SherpaRPA".
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis no log durante a execução do cenário do robô. Para este bloco, a propriedade “Valor” foi 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ô a mensagem “Não há palavra-chave no e-mail”.
- Bloco “Ciclo” permite repetir uma sequência de ações (blocos) várias vezes e, ao mesmo tempo, contar o número de iterações do ciclo, registrando a quantidade atual em uma variável especial (especificada na propriedade “Ciclo”), que pode ser utilizada em outros blocos. Na primeira entrada no bloco, o valor da variável da propriedade “Ciclo” é igualado ao “Valor Inicial” (neste caso, é igual a 1), e então a execução do cenário continua na direção da saída “Ciclo” deste bloco (no chamado “corpo do ciclo”). Assim que a execução do cenário retornar a este bloco, o valor da variável “Ciclo” aumentará em “Passo” (neste caso, é 1), e novamente ocorrerá a transição para a saída “Ciclo”. Assim que o valor da variável “Ciclo” se tornar maior ou igual ao “Valor Final” (neste caso, é definido pela variável $listbody.Count - 1), a execução do cenário continuará na direção da saída inferior do bloco. Não se esqueça de conectar a saída do último bloco no corpo do ciclo à entrada deste bloco ou de algum dos blocos anteriores.
- 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” foi especificada (o nome do arquivo do diagrama onde a execução do cenário continuará).
- 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” foi especificada (o nome do arquivo do diagrama onde a execução do cenário continuará).
- Bloco “Condição” verifica a condição especificada para veracidade, após o que a execução do cenário continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Pedido:". Ou seja, no corpo do e-mail deve haver "Pedido:".
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, foi especificado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada para veracidade, após o que a execução do cenário continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Gerente:". Ou seja, no corpo do e-mail deve haver "Gerente:"
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, foi especificado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada para veracidade, após o que a execução do cenário continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Produto:". Ou seja, no corpo do e-mail deve haver "Produto:"
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Quantidade:". Ou seja, no corpo do e-mail deve haver "Quantidade:".
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Endereço:". Ou seja, no corpo do e-mail deve haver "Endereço:".
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Da empresa:". Ou seja, no corpo do e-mail deve haver "Da empresa:"
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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 é: $listbody[$Index] == "Descrição do produto:". Ou seja, no corpo do e-mail deve haver a palavra-chave "Descrição do produto:".
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
- Bloco “Executar expressão” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell.
Diagrama “ProcessCreateWord”
- Bloco “Iniciar” (a partir deste bloco começa qualquer diagrama).
- Bloco “Abrir documento” permite abrir um documento do Word. Para este bloco, são especificadas as seguintes propriedades:
- Usar COM (com a flag ativada, a operação é realizada através do Word instalado);
- Caminho para o arquivo (caminho para o documento do Word que deve ser aberto).
- Bloco “Substituir todas as variáveis no texto (Word)” permite substituir todas as variáveis %variable% em um documento do Word. Para este bloco, as seguintes propriedades são especificadas:
- Link para o Word (link para o processo de processamento do documento do Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
- Link para o documento (link para o documento do Word aberto, no qual o trabalho está atualmente em andamento. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento).
- Bloco “Novo arquivo”
- Bloco “Salvar documento” permite salvar um documento do Word. Para este bloco, as seguintes propriedades são especificadas:
- Link para o Word (link para o processo de processamento do documento do Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
- Link para o documento (link para o documento que precisa ser salvo. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
- Caminho para o arquivo (caminho para o documento do Word).
Importante! Para salvar o documento no mesmo arquivo, deixe o valor vazio. Caso contrário, insira um novo caminho para o arquivo. Se o arquivo especificado existir, ele será sobrescrito. Formatos disponíveis: ".docx", ".pdf".
- Bloco “Fechar documento” permite fechar um documento do Word. Para este bloco, as seguintes propriedades são especificadas:
- Link para o Word (link para o processo de processamento do documento do Word. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o Word", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
- Link para o 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 o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento).
- Bloco “Fim” (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).
Diagrama “ProcessGetEmails”
- Bloco “Início” (a partir deste bloco, qualquer diagrama começa).
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis 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ô “Busca:” e o nome do produto procurado.
- Bloco “Executar expressão” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, duas expressões são executadas.
- Bloco “Busca Yandex” permite obter uma lista de links em resposta a uma consulta no mecanismo de busca Yandex. Para este bloco, as seguintes propriedades são especificadas:
- Consulta (consulta que deve ser enviada ao mecanismo de busca Yandex);
- Máximo de páginas (número máximo de páginas das quais os links devem ser obtidos em resposta à consulta no mecanismo de busca Yandex);
- Tempo de espera (tempo de espera pela resposta do mecanismo de busca Yandex em milissegundos; se o valor especificado for excedido, a operação é cancelada).
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis 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.
- Bloco “Reconhecimento de CAPTCHA” realiza o reconhecimento automatizado de blocos CAPTCHA.
Importante! Para que o loop seja reiniciado, é necessário ir não para o próprio loop, mas para o bloco acima dele.
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, é indicada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô o URL do produto.
- Bloco “Executar requisição GET” envia uma requisição GET e obtém o código da página retornada. Para este bloco, as seguintes propriedades são especificadas:
- URL (link para a página da Web à qual a requisição GET deve ser enviada);
- Codificação (codificação da página da Web);
- UserAgent (UserAgent que deve ser usado ao acessar a página da Web necessária);
- TLS 12 (com a flag ativada, será utilizado o protocolo seguro TLS 12 ao acessar a página da Web).
- Bloco “Obter lista de substrings por expressão regular” permite obter uma lista de substrings de um texto usando busca por expressão regular. Para este bloco, as seguintes propriedades são especificadas:
- Texto (string de entrada);
- Padrão (expressão regular pela qual a string será dividida);
- Tempo de espera (tempo limite para a conclusão da operação em segundos).
- Bloco “Loop para cada (Lista)” itera sobre todos os elementos em uma lista especificada, em cada iteração do loop atribui o elemento atual a uma variável, que é indicada na propriedade “Elemento”, e então a execução do script continua em direção à saída Elemento deste bloco (no chamado “corpo do loop”). Após iterar sobre todos os elementos da lista, a execução do script continua em direção à saída inferior do bloco. Não se esqueça de conectar a saída do último bloco no corpo do loop à entrada deste bloco. Para este bloco, uma propriedade é especificada: “Lista” (lista cujos elementos devem ser iterados no loop).
Importante! Para que o loop seja reiniciado, é necessário ir não para o próprio loop, mas para o bloco acima dele.
- Bloco “Remover duplicatas na lista” remove da lista todos os elementos duplicados. Para este bloco, uma propriedade é especificada: “Lista” (lista na qual devem ser mantidos apenas elementos únicos, removendo todas as duplicatas).
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua em direção à saída “Sim” (se a condição for atendida) ou em direção à 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 é: $ListEmails.Count >= 5. Ou seja, o valor da lista de e-mails deve ser maior ou igual a 5.
- Bloco “Verificar existência de valor” verifica a existência de um valor em toda a tabela ou em uma coluna específica. Para este bloco, as seguintes propriedades são especificadas:
- Tabela (tabela de dados na qual o valor é verificado);
- Valor (valor que é verificado na tabela);
- Coluna (número da coluna na qual o valor é verificado. A numeração começa em 0);
- Tipo de verificação (seleção do tipo de verificação).
- Bloco “Condição” verifica a condição especificada quanto à veracidade, após o que a execução do script continua em direção à saída “Sim” (se a condição for atendida) ou em direção à 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 é: $Result. Ou seja, o resultado foi obtido.
- Bloco “Executar expressão” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell.
- Bloco “Log” permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, é indicada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô “Quantidade de Emails encontrados:” e a própria quantidade.
18. **Bloco “Ciclo para cada (Lista)”** percorre todos os elementos em uma lista especificada, em cada iteração do ciclo atribui o elemento atual à variável especificada na propriedade “Elemento”, e então a execução do script continua na saída inferior deste bloco (no chamado “corpo do ciclo”). Após percorrer todos os elementos da lista, a execução do script continua na saída inferior do bloco. Não se esqueça de conectar a saída do último bloco no corpo do ciclo à entrada deste bloco. Para este bloco, uma propriedade é especificada: “Lista” (a lista cujos elementos devem ser percorridos no ciclo).
**Importante!** _Para que o ciclo seja reiniciado, é necessário ir não para o próprio ciclo, mas para o bloco acima dele._
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeAHmYCkBzEGDyj5vr1yY1GjRo_4BxR9hLLl2jpAbwGre9XzK847ac2UfsObW5kFFVneSNLLXmHQIkuSLGi71csvKe5gYGX8mr1Exkst7cDIpFjjl2sh905o_rF4ErZNM7YK4jZXA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
19. **Bloco “Enviar e-mail”** permite enviar um e-mail usando o protocolo POP3. Para este bloco, as seguintes propriedades são especificadas:
* Servidor (servidor);
* Login (login necessário para autenticação no servidor);
* Senha (senha necessária para autenticação no servidor);
* SSL (quando a flag está ativada, uma conexão segura é utilizada);
* E-mail do remetente (E-mail de onde o e-mail será enviado);
* E-mail do destinatário (endereço de e-mail do destinatário para o qual o e-mail deve ser enviado);
* Assunto do e-mail (assunto do e-mail);
* Texto do e-mail (conteúdo do e-mail);
* Marcação HTML (quando a flag está ativada, o conteúdo do e-mail será enviado como uma página HTML e pode conter tags);
* Timeout/Tempo de espera (tempo de espera pela resposta do servidor em segundos).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXctryQ1nX2FMVdtcLgywyJrwPMNBHaOgCyx7QM_shPzF6AKaLOjtrv-TjXaV1YBd7YyO5TXZypB8pWjErDvfeCWxP_2lo6phMXH0cLL8vT0cbitHKEav2M6qc_JajOkFadp5Jac?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
20. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, é especificada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô uma mensagem sobre o envio de um e-mail.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2gkVuehzD6sIklA3px5XX30vcMuDiSKJpcesPdXZJ-Oi-3sZbGgMwiABUM53xXaUMiWSUGVP2WTWfJf_6ddnBlZ73HKQf_xymbPgcOqPN3WUNduqO3FNzWNpJMnVdidwZSv8Y5w?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
21. **Bloco “Substituir todas as variáveis no texto”** realiza a substituição de todas as variáveis %variable% no texto. Para este bloco, uma propriedade “Texto” (string de entrada) é especificada.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfqJBc_qVWYE8QNoE08DnS84t6k8knRTX057MxldYu46Jugs5cZv1X9QK3cyabvIVX8JdT_wugUEeqoETCkhxGlJP3UE46X_Q6C2p9ON3m0gspGzoAFQebVVL2eW3_SknGx71rX?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
22. **Bloco “Substituir todas as variáveis no texto”** realiza a substituição de todas as variáveis %variable% no texto. Para este bloco, uma propriedade “Texto” (string de entrada) é especificada.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdAignzlTVMDh0EZW-igg62EQ8kezRmzPRoUi41Vx066fXQNxbd-yVSVL8onmJ9gPpShMVaZpKyRJca8TFtg548WSGex9_uZi2fjjVC_f4-x7kM1QxxPRNKAKl2ypB7ZRb0sLb8CQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
23. **Bloco “Atribuir valor à variável”** define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, um valor é especificado que deve ser atribuído a uma variável, respectivamente.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeRW53rhDEvonTvUaI1jhzVnB0Pk8EyG1UPStofTwzWbx2ktZ-UTjQAv8q7jAeHtcM8-hX-8lpfLHdhieiMSScu0FIMZRnkWtyTQaXUHBA6E5OmEiqBviP2XeM4vxCTQ921-pPaKQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
24. **Bloco “Encontrar linha”** realiza a busca em uma tabela comparando com um valor especificado e retorna a primeira linha correspondente. Para este bloco, as seguintes propriedades são especificadas:
* Tabela (tabela de dados onde a busca pela linha é realizada);
* Valor procurado (valor que está sendo buscado na tabela);
* Coluna (número ou nome da coluna onde o valor é verificado, a numeração começa em 0).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2eHpoJ7aavL6txNa2pjPukdtuhxMQi1PLm83i9J0YsTpKJiLP-HxKX8srXqDScCZn_AAlTjsohucWlNtJiqad1-2FI45qCd5OLOsOxdqTnTKrXVuFCKrpPtI32TAwLrK8YAYj?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
25. **Bloco “Condição”** verifica a condição especificada para veracidade, após o que a execução do script 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 é: $RowOrganization == $null. Ou seja, a linha “Organização” deve ser igual a nulo.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdqvDeyzILxTfX5fHEy4p5nFUjWx9bNBiEi4h4Y1oWN6VyYWJ07n7s7t4b-bc5WOZm5LVVI2aZBJytJqIFAqZY5kbAohBSnharpYZQb4VvnlVjUo8rlXlSdx_avTxYvo-hqOtq0rQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
26. **Bloco “Adicionar elemento à lista”** adiciona o elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:
* Lista (lista à qual o novo elemento deve ser adicionado);
* Elemento (variável que deve ser adicionada à lista).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfBQGZa5TSuQUZPQjDHd20v_yzZ2bjNdOS4eUc_Gq3_sHfnPlBxYU9Q5k7teDDDdjlTun1AOxMPAvNsjiQUx61sYKL5jXUDOeABKGGYnFtPMGXiDpubtXKEABDYGn0AMRUgUArV5A?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
27. **Bloco “Adicionar elemento à lista”** adiciona o elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:
* Lista (lista à qual o novo elemento deve ser adicionado);
* Elemento (variável que deve ser adicionada à lista).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdQ5fqkyAifarJk9CyYecFiUVaxy1cnweyXZ-Aipe39HKz5UxGkAAbOLr8wHwQ2v4YuFoL6-_6LrFc716jUN1YwLyXqa0UZkv0_fhGXmzAnmMN3-PZ260b5m4W613IHKHoc3h_vCQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
28. **Bloco “Enviar e-mail”** permite enviar um e-mail usando o protocolo POP3. Para este bloco, as seguintes propriedades são especificadas:
* Servidor (servidor);
* Senha (senha necessária para autenticação no servidor);
* SSL (quando a flag está ativada, uma conexão segura é utilizada);
* E-mail do remetente (E-mail de onde o e-mail será enviado);
* E-mail do destinatário (endereço de e-mail do destinatário para o qual o e-mail deve ser enviado);
* Assunto do e-mail (assunto do e-mail);
* Texto do e-mail (conteúdo do e-mail);
* Marcação HTML (quando a flag está ativada, o conteúdo do e-mail será enviado como uma página HTML e pode conter tags);
* Anexos (caminho para o arquivo / Lista de caminhos para arquivos / Dicionário com arquivos que serão anexados ao e-mail (chave - nome, valor - caminho para o arquivo));
* Timeout/Tempo de espera (tempo de espera pela resposta do servidor em segundos).<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXccnI45AIpNSXka2pZ3flXv7QYb0h6pggFIFQym42UapixtuOcNBsmDHjQrHw7GgWB8LaozUsOfLO33MZ0j20C9NWDKwkDrBGzjvQhF0S9kzWVlejp1ZiyVMTw1fOewVqmgGtuzzg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
29. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-pG8xaS_Sqg5U7fz2IHI1ZnUrotKk4xthj48HX_2SforRq2AqXK_Ji10CTERQYjd8h0bnapuSXaBH8QvKu8hHBhEZNfHRdg-AefhoPs1uO4zgcjMAmVK3W0qlrK4QiloeNXo-YQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
30. **Bloco “Atribuir valor à variável”** define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, está especificado um valor que deve ser atribuído a uma variável, respectivamente.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcV_hyXibZI0e6UVvMllSuAqEW_wsV1a7neOsrpzFz5KoJ-0rVnMbSo3PdsBlJLqVE_GrEmrov2O12n1gIvrJouwSK1NDPjSb-pFtcemGs_d65CQAmblhGpKyV_7NdGCP_MDUB5ug?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
31. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, estão especificadas as seguintes propriedades:
* Caminho da pasta (caminho da pasta onde o arquivo necessário está localizado);
* Nome do arquivo (nome do arquivo).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdGxrUr9xdEOtP45QLFZpBKrnApn1xCjMHo2-XC7Of6W-pVG7cA5krvz_nSs9QdhLARwt2Qz8m7WW4Q70MuFoEqERsZgjyy20F_Wtz5NSslzFn2mASSaYpOixKpAk1cVvPNKUV-TQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
32.  e 33. **Blocos “Fim”** (esses blocos encerram a execução do script ou retornam o diagrama do subprocesso ao processo principal).
**Diagrama “ProcessSetting”**
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe677WtvSkz1w4UDSbNxwGp5G1-0uiR2yq1T1sAVOBXi8BsBT2WS3_4S2C3Iw1FAWoi_aVX9eFC-xlSMVMLDujIH6SWy-mceMklCUN-PvUyf7T6L_vX_JyoesG95k8qk9nayYrebw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
1. **Bloco “Início”** (a partir deste bloco, qualquer diagrama começa).
2. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, está especificada uma propriedade: “Nome do arquivo”.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe6QSSGNTwtuL9na6ygpfKk7-SZXi9W1nHHq2Lq9SsjSEV04h5UANJNCFeMgwbFlOOnvppoXO2Nz-YRKjAyprgbbwV8pcwkdrGrR_8kvGGmSUDLDaBmykC5WGIDhbr28vsEkME9BQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
3. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, está especificada uma propriedade: “Nome do arquivo”.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdVIBlS0HvpN91a2ASii34JSN70XleQ5k6lk9nELBYYQQtfS3QfzGvihIzN4bBLgbZZCJNJaA3-xt93wwjHCPJHrsOgD_m7HWjpzCtVzd10_qmEREjrfYwwxL7wPucglmSNMUfVhQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
4. **Bloco “Ler arquivo”** permite ler o conteúdo de um arquivo de texto em uma variável. Para este bloco, estão especificadas as seguintes propriedades:
* Nome do arquivo (nome do arquivo de texto cujo conteúdo deve ser lido);
* Codificação (codificação do arquivo).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcVDcC1iOAq2Nv0ayAyr_OI3ThLZoynNf5zimdknn74moQUMOEL9pAhnEV8fvAsrIJinwChRliO-tIwpZAv23T7WB1RWV2BNfRMvdVi82kQ-L3Gcl-hF0BZ-lFeV6YuiI-gk0M?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
5. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, está especificada uma propriedade: “Nome do arquivo”.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXejAUPiihTWqK2DnkD9SXHkwQimmHk7NX9vbebhnules21FHPbckIDdFxfjFx-5SGjWqxjsd_bXtnZ_dmPcHxtOWT0FRgKbwiMT1el92oxnHTUTtr0LQ94AUPjgBA7F6M7E3jMpmw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
6. **Bloco “Ler arquivo”** permite ler o conteúdo de um arquivo de texto em uma variável. Para este bloco, estão especificadas as seguintes propriedades:
* Nome do arquivo (nome do arquivo de texto cujo conteúdo deve ser lido);
* Codificação (codificação do arquivo).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeJFfgeZT81rV07JmKbkS7e5XmFUIZCqgQPM4UMJtfIz-e-Rdh0FK88bnqJfNIXzlHYw3Ekg5Im2ZgBTOxZ4GM0442RPcyKUGgc0tfZ4pHIF5OU6MaVEQj83uoh1f_H972pcb6qqQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
7. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, está especificada uma propriedade: “Nome do arquivo”.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcOWd-pC6Jj6ntSBHHKrqVjZ01lAsFXjVlojmvjLJOdfs6bVkoyfAjsO15EUzSWiFGed8yPFogaz2qGJ5ddCPTXzZI8EMEAetYAm5VymxVG5Ry5miDcDby_v9Gz14s4JLS0wjoqHA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
8. **Bloco “Carregar Tabela de Dados”** permite carregar uma “Tabela de Dados” de um documento Excel. Para este bloco, estão especificadas as seguintes propriedades:
* Caminho do arquivo (tabela de dados na qual os dados do documento Excel serão carregados);
* Folha (número da folha da qual os dados devem ser lidos para a Tabela de Dados).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcJNedbos7RXA5AkDi-p1FiEJGKYFJy_Ni4cHB35LerOOqWtvQ3TYj8W_ZQ9rGu_4i1map_CfWPokJ8Qr6oVr3iKvsOv0DlCXFyZ3okj0hAdW8cEaZWsc12HKpa6sd6sVsgg9myOg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
9. **Bloco “Obter caminho para o arquivo”** permite descobrir o caminho completo para um arquivo. Para este bloco, está especificada uma propriedade: “Nome do arquivo”.
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcMhj24oGirsuExKk7AOoqm-ewqQH8MHtjNOvFxlgFmBs9nfRiY8dEs_A1JyIob2pkZxa5WyeM1oEynnXNdHTZ1-Q9KC2nettVsEZncKMLXnI_8ILT00O9jlI1NEPvCrYnvAkG5aQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
10. **Bloco “Carregar Tabela de Dados”** permite carregar uma “Tabela de Dados” de um documento Excel. Para este bloco, estão especificadas as seguintes propriedades:
* Caminho do arquivo (tabela de dados na qual os dados do documento Excel serão carregados);
* Folha (número da folha da qual os dados devem ser lidos para a Tabela de Dados).
<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd-__flDErov_pC6nUgPWcp6v5steGtr30iOgJfsAjR4vT1NXS5yPSOw1zkGls8Z1i0SARjgEI0VITH96-8K3JDXIsa4Uq7Hez_MDW5Yt4Ut5ccEZOAl3r2rQ7drdNGtVYGvwPHXw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
11. **Bloco “Fim”** (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).