# 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:

1. 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.
2. Percorre os links do resultado da busca e coleta os E-mails.
3. Filtra os links usando os dados do arquivo “BlockEmails.xlsx”.
4. 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):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsU7wAmaq3ZD-WhzwGKFlaGzFQd2hJOrDVtII1FXhSSTEjPY2OwkQeFfGgoQw4tcEAC-l0lvH5FV5X48WGLziNxfI1ia7OXvK-4_gUKb-UDjHGF7GKQpHcwcJTmm5C1UbUQ3ZU?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe5LrZONXfMAgiWmOafJN2j1KS8s-q0N7gcK4nClcpu_oacrpUH_9-eyDSv2MxNwaqK87mizM8zZznxPGMiOVKqqaR4JaF77R0ZDu3a24Y28U8Ql_XgVrNp3XKiRSee2xmscJPgyA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco, qualquer diagrama começa).
2. **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á).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc4dscE7y4lLISM50nQ8gs2QSiw-RIyUY82TLlhViMzpKegyzu4FFRwk2-3EnRd9csGwDD8SkhVAxnj11Vex1dMkq7NPnBeOlL_LGYFkAEbJy3fWzCCeUGhp4yr1i3HqQTJjmY_?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

3. **Bloco “Pausa”** suspende a execução do trabalho do cenário por um tempo especificado. Neste caso, por 10 segundos.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfcw9iRqRAdIPze320M-BcS_h3Ka312CfnrF_RejYLpSOB-qHfjvJOGheZqSOFka8ZFUHkBAQIC9LQFY2LlvRNBFHnnl0y2hrMGRSbqBhfTfJFGqwelfeIiQXFYTXc_lYKZWVnJ6A?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

4. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfd5UwJQKX-raktUcTKKN6zuQEYdBRD1FCrAG45GJ69Wg8RlGuKX1l8TE_nkq3rxdHU2SR-min7fAmqZgTDhbJF4PVYjreIDESx5CCFehWQeD_fbd2e4ZE2GzA6A9pcb9uvuG7T?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

5. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdtFsI9gioKuzJBWb2TWF_TxjRDHp2xFsCueAzMtFJwrVSQ9xt3LKTp4VjJJxcm34rGvb8HP-_qnXWRW6nFV6uZyTW2iB2bXqU55p-kcWYD9KsuvSHpvMPRHCs74p2DVJbeqKXzkQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

6. **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.*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfcw9iRqRAdIPze320M-BcS_h3Ka312CfnrF_RejYLpSOB-qHfjvJOGheZqSOFka8ZFUHkBAQIC9LQFY2LlvRNBFHnnl0y2hrMGRSbqBhfTfJFGqwelfeIiQXFYTXc_lYKZWVnJ6A?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

7. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe0QLMsH6m3f4joExUfweAzhIfmSlDWlcWdMXh-IP3rHMZhgCJ__TXaNvTC0YM3XBasNVz2IaW3a43ilZexHtxSFlVVkYinlXjdWHNIB7r4-P5ifo1gDM0YyUJUQbhDzWYZSYjJ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

8. **Bloco “Codificar em Base64”** permite codificar uma string em Base64. Para este bloco, é especificada uma propriedade: “Texto” (string de entrada).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeYm8gzk9VSJhlX60YjoR5a-ecd2duT9gBvozMga6W2jl5SOggW8O6n4tGRplDDCsebysyXCWQE-gfLLHsjco6d8FuvYpRmWzbUHtuPzzQ6d7MLJCygRo6-5HtoD83-xRSd90xNFw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

9. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc4sVDtqosIF-xTg2083WIH8oy47aKbHo23oAA-SnCwVcvaBtixdtphFJNP0kj1cMpqR50yfIbmHkVDDOQS3XtMOT30_8KFiROP93-_21I4wvJKo8gXwIkwQLv5Ha0YRxL19jnavA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

10. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfcLHEdUh_mYb6EiepwbMLinwBV3RMOWq4mgfkpp3EfF4HKVI6zNjkIEjq_hFo5YypC-ViBh4ESLQ45xo1K04nqytS4PFcZILvEQan0KAEchDMUKq8KMTsqD7LlqN5VKOylA7pC?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

11. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfPfJrCIRcZQ0ik1FF-cDVvXtvPhLqJeYXDRe-_mKE9AADfXX_ZpHt9U2MMyMcLXXR0qvNgOTf_uYOCNZKGKC1pV0BhzAY6_Y8LCaHz7Xc1tt82uJcksHZA4OjIjijHH_D9ogMMlA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

12\. \*\*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\[0] == "SherpaRPA". Ou seja, no corpo do e-mail deve haver a palavra-chave "SherpaRPA".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfs3eWiwWudOxDBbcqZaxXHB5l0tpXaRN4PHG28y4y2V3lyKPsu979TI74rCd3stdY25B4rsDlK7ZMAxc4h5kRnKPRHALiyUowsE1H79L4yjM-eaTVqR9poGNLCZ12q6p0aXFdWeA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

13. **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”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcygnWRZwJ8Uw5ud5d7XZX5g_liO3iv6kfSkbu5xavMAht3pAhp5Hzfl7M4jpJMdAkd9glqMHFc0so2RZsHrvu4U_pFwkbcg78w0XK8NBPgoarBWNbmxigdueC3rJRNdSvI3L5z?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

14. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcCSPrW4N_NRPBVzzp_UmayaOC06x3kBeN6ScUqT-eMEnrfLqcvWOz_Tgj86a-Q-Oj6AgtIhR3ms2fOwHf20ca9ClI7tJ72NQs8Iy5PJuaNxvRhGV346m8OoFPe3ur_M_2t8O6gEA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

15. **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á).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcej8T7uEbxkG5VIBP1Azp1sdsSWfAPhwsQJnwdV3eWqQ05u1-J2zzyGtV3--pcaYdWhTBsh16Hn5HjjTLKGw429zxWsbCSdjjjZEa9JCfO4qL6jlc9hq06U_8wcmgUzPHgbSVK?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

16. **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á).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXczh1Fmjb7kZIcZXuiIrKm6m3AFoQyUL5aDUpR-DQVOs_i1sd14D6p5rNqToXB-8ctOXGbhfbwIm94QbBK1ZVx2VEbuHncnTt_blE8l4KaRW6pKLz9Wzgj5-6LkrEBjd8q8_wZHkw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

17. **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:".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdhz2-qPI8hnywsIsyJCFY0WiBgM-WAnnbBTGDQy7UTHvjQ0nemJFoAkJcM-xT3J8Sjkz6HfBID7nZwW4e2I7q5Kqkw4xmtmauP8TBr4_3wlBv_k85wq873ZKA0VZR5Xg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

18. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf6BOD3kUrgWbMgLPcKTYGZ9JZH2rQ46uVLzo297Oo79ehziS-_SC0gEon_xVkZvIcZnxqTezWxsCi-5_Sm5WPOE7Ix7osdJpCyy9McIKfkbA9PIav4vnGq4i3krsrVOG4xJ3ChNg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

19. **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:"

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfiMuVxRJLowhFCO73Vz93cFEZgE-kvyTwIcNOJ0XWwr7mCS8al0a-NBfffRvH9jIvuvZFvPUwlsv1aYcJkH-3Jvn_mojTRmg9aehBYXRknO43jKDjkyvCfZ_2AXnomGwljvnfTAw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

20. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXetu-uCccBGY5Btkms8EEJ-DNIcsARYNa6h63fBckaKvxsDvDE4XDdrSaJSh601bWLIJOdHBjewICytrhE6RiVYWl5b_JuI26Zry6bDuemPA9vKsEZHeHhdcqRJSdAofToOkj0fQw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

21. **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:"

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe-5WM4R10qPDBCNTGwOKQTbfMAri4cASdlyJSv_yayYcWItAJui3UJQeNRZRrukYxDuh6TDIsB-cdsUfJ1NAjTlQkLDjK_UhM8NUCnFRdHwu6BzpEUbtXB5SdrLGWiGA9Pku6a?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

22. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeS7hfr3pt6s7Z7SsI4djyvwZUmqAlgguxoNM-214ZJazw6dWlIL7hscdtDAVIzl4pt2Hj_AZZ6YqTZ_CwV4Ee4apJU5KWnlCG55FKlQ43-_HkKre3dsdP6ht9fiGXSdCZRX3k1FA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

23. **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:".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdWElVcSTYhJ3wgZFu4kFS3EPvwipYHlv8EiIrqRFGZobfDZwWIljO2KVVZhIhsv5NNhgwLtaugUA-a1Z1rB8NMIlQOaBOGBFX_nCXMGnkj5DMp5fQaI4gvC2QWaHouRx7CHYRNNw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

24. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdLopPymoiZIjmdze4k9S5kP7RpW6or2l4bWch08GgrL8gPQ_AMyM4Vjx9p8q-TvLk_Rn-FWdEsm3Uj48Y2sQrZBN7guaZj-7dDKKTWmVzmScwUnBNxgXMAxOGKKVlKvszQIwxv-Q?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

25. **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:".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeIbZw5p2DEhsAQeKBagwb_mnTQh4xcXpILWa31twg615D9YZenR1LOv1IvGQXEWr1rtSEIzYHH7mEBO_oQ2DgZuIaJYmAOWp095MWpksIDcNM2mAbl0y7me4XmGLrrneoDCEqXNQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

26. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfZG4-u-TnoITwkbNHJPpTTQV_nH8GNynvde-z26wa0b5PnnTfxpvs0aK00PrjNxJ_bHVXkHqmnxsZh5YDfytE9WPMiM34VHqNxAVQzLgKiSIuLA1lzgZnmo2sYn9f6vED1tI6wAA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

27. **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:"

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeG3B8osucsq3qD4ias-h9fbOW4bqudBwl-WbJFY4C6EIe0WpwJJOkSpbGuzUNjAJPWZ_Ilm3DyDTjM7pNC_6PROm0yFnz6OXMt-jitWDSuF2BIuU_cdbhAd2wcU7pgdiE5P4M-0A?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

28. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf_TRdYZSXhn6-rbJC8nyigMWFUkO2gAZXhB9x8B5uMJ_P8k41mKwKIvVA3nq50RUhZA4K8mm9SDDdsOgBi0j7k6sl173w-XCzP2jxJUpuc1Jw4QCLYs3aF0zS_AV5475J1Zqc_GA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

29. **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:".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdDAsjqlOY5FnljoYfGcZJpVjIc_xoCf5tHRk9yV4nneZxrKu9UBN85xK5mQY8tvKme0yjT0-Pp-orHj6BdMO4oBTrYFTV2Y_Isbn8J-hifiEHjViWQvbL7RmBY9ZYGWoIAc_WtxA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

30. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeNCeTDDcd-YTCNWBVBZJdnUPWgwrpcR3EqzHBaiijGIgYG3vqWYXmdvnWheboyD2MsXEVRBGBEQaSuLYYtAFXocmtxjupUKbt4CNmKiJ26BUAnxbE-9v1qIWf5az9us18cD4X5tQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

31. **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_4nXd2vBThFRSwQ40O14ze0riJBBEe9XakU5QqjvpPmL9-nba4y4O2Pyi7QLGVHmeWgGCW_tOrDUa1ypMmf8p1YIK4RjyjmDiLVWMG5z6Xo6e_jeJiF0NF46_jEvALLJxOTJgsy-h2?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

**Diagrama “ProcessCreateWord”**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfDyhcYFPaRkgZZSjX8rnDxUJVDf6AA3iZUjAglc83Nxeap9l2rbZfe0BNDQ1uiaHWENebVt3Tt7_i_dGb_pgNsBuzMsGyG_L-pdgO3Qoijd2G3_QWHP0WwTEVgtd32W503JWB9Fg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

1. **Bloco “Iniciar”** (a partir deste bloco começa qualquer diagrama).
2. **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).

  <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfYog-xjlrEekdYqxa29m6-LqGJc_u_p6PNRw8GLCT8KzvcALlAiRpz22i77z6V_KM3lotKNKm03SPD0HI5R64sQb9234ZrZIIYCv85N7lKuuDq836tJzfUOYNL3SxPFamhHrEwVQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

3. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd9KiK5-CA6s2pNhpwNXCwJZfo1vcqu3KUZw_spkXPOWgiBUxK-6ZezqlH6EIRgd3D2cM1vcrMA1u_kTHAhO2h1JZ6eyfbWovJZXSMqDT_3dymPYDgP5EiCtopqrDsNuAp22mq16A?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

4. **Bloco “Novo arquivo”**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfrpVmnUe5M4__OuaMx03MpIBYS9vcXssVTd9JV05Wfn_AzgflMCYNXd7dYZzOo9BKddfIWPvkLyBYE-b9P2W9K5qBsrfFnbIb_LBd0889yPcrBt8n2UhdfJp99sodrXXStL6U9?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

5. **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".*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdQIJuqx4te98H3DIbvgmsMrfaOBINh0xIaB5bLGP9KP_gjLTE5fYp0nLDgChAg4Z-maqeEAkBbdCOkCZlDWUgktJvg3OhT4yLDuTsy0RWxWvcDAUf5SwwMRmXPBURY5gw5ZUsgAA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

6. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcMkRDiudqbSUKrdp2ozieIUnxSU1_MLfULgsfx6atcCBGL2olqEjlXlw6NXCfvUlGS6qCIJ8puNSiEc6pEv21kVULMCeuhVwFoNKD_c9d883GOfbmRqCQdsV1c8cH0Putb00wN?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

7. **Bloco “Fim”** (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).

**Diagrama “ProcessGetEmails”**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdcQ2sU-jAInQESO6R43xogNLiXQzTIZfpMu4LJWXiPP1hQHcw8hz3k9jDnqiczHiFvSZX459mPIPK-UUAcfvAjkhy1BuSvA_Jr9yo8HJDePaDDFRmr5p3av9qfiNi0jfsk_CiSHA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2tNQPexPJXXH11NvmKsvV3fhXpw6gGvxRHdTgacdm4UwahbWz4U6vMBZYE6oamcfRhEKo9mqL2ombFhFN_QqyzzgMYpvVfOcf7nJwhL9DaWd_RwHyvkYiQYZ6MmLNb5ON_etI?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco, qualquer diagrama começa).
2. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeG5hz67GbjLIdXSZdogz8-WhR4fCwwak8LILbb1Ab34U0wrBLxXYRMuIew_9qdc0wfXNNUDP3kFXJ3iwAfSRRAvlrZMxuHXpRThKVDNy2uaLOe5FjAFYaoxvDfcl2QcUWan4BEuw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

3. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeOKMsWz7HxH8_96D5hKCF0sQbnO4H7VuwcymwRM3QAea5FQn84YW-49ivNWHHNffFpSqq7vLGZ-M7P8P55DZmt1Czf8BxFjVjjJI1ih_erY9DsPzg3u6zXmN-yTX1mENgX_SIq?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

4. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf23457LR86PZoDDW_gV32D5n1qT4VLh1WoxiD_2zXM0Cg4Hi2cTOhA5gTlrkHYm0Ll5W-o1jd_tl7gXWLa6cJ2lh3LWTzqW1x1Lmhsspy33AI7DGIu95ZzEad9GAXIdMLs8tMT2g?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

5. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXejz0WsVhpnbLAOgq6IqS8EHHrFpn8B9omINMWbf974PSI1X1r4_HQkeYxiIYizHSawoeSMPecHJn500gxUp7NEhzpFGXHfatAHJnO4RU9hnOIEFXai1YApPnNYLHmW3TLEmxx1?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

6. **Bloco “Reconhecimento de CAPTCHA”** realiza o reconhecimento automatizado de blocos CAPTCHA.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfPxECb6uekktUbPaXVKvrR4MGRmmoj-kgf_o-lFg1cx16-wTrAHSw3Jc6oTCCaT0yyslDZCWP74JNblNGAo_IJmroi-33d2LhzsywaUdQZrd99t_pXF2Mh68rAGZIaL-tbDTTpOA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

\`\`\`markdown 7. \*\*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.*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfvOQD8fDwlets5Ws-kXhHUEvK_U7jsaqGSydpqqbYhKlsMCQGFa7GJRil8KOc2BMs1pOvIiW1M8OgyilApz-qtayS8rCmJExv3Mv3a2xRH7qor9feB5wIT4kqurXGF_GJRY4Lf?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

8. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdGHMnSBtRZYKgA3x_Qd2iRjwhCsK_o9X0ePKJqH8hXKkDn9NNCSFFucXT5_mHYSrb5p82NO8ps5GVIO915kt8kVCCew729vZPN6XD73lo4RwmOUGPSxYzS9vF19eKPkZfx1LibcQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

9. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeG31E5om7OMFbFRo-vVPcQMcKHPJ80g4k1NHbSytBi6X0KpvAXF8gY6PfwqDKpNjxRms4gOaZDAmh9rxkygER2K8d--XbAgFbf3Qp22S3MitFCR4ezCbTK9hOFHureR8O7BYY4?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

10. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc6c07iSAq8rNd_k4hJxkWif_98CweqA26pu6qWxZ3TwYSZiX9k4qRwFzeR41xHja7delwPfeduHxt5HuWxULXKF2mkRRsNRFFABol04FxQL_OGsFv_6qtktWsYNYoRnTaG3ywelg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

11. **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.*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXecNTcJgSaopIoAmMcYQqo5m1aXZ3VquyAs_5aoS6WOnYWDHG6DQ-80W_uD5XX5iM_4j8zKPBKnB3rJMnvPu3hXSAzzG_S_kQdjsMJyvM0qxN7Li9QHAhiHoFI110Fmrbi9dxzxlg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

12. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQHb-9uqTVVvQpocrqh1jyd1I-ISc14Uae7S1_D80d4eEqL6Qf5lBuvW_4umde9M7ATtfVY6ncq1vOKMtbrvxVcMjca-y7qyKgGnLzQVJXzg4XIUwIkNOonkS6gP9xR5jof2Kctw?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

13. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfkQ80GAIhCfo6YD8z3hK6wdGuSHKUaysSAAEhgimoYZBtn4ayzdL4ptEjOpWca0A0kgx9xTPZY7hplcGVi4IsiMUUn0B7aA3hzzeEXm0U7Z0r0yx02dB76Da8GdCcVopas-NdTdA?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

14. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQT8zJV0JAVDQdlxYFLNG733yyvZ3bn_NfVd7n2oUbK8COFFtk0QP1bNHSsT8QuXazzy4hdjMrB0Q-wXrC-_LNLauOvFKnAZ7jSgFZOByP6-kmBk5K8xZfu1SXaFr3KJbNmKuuCg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

15. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf1m0UIesZ5Gn3SUjPiMlF5NCr2gaSs0UF70DP035h0hgmYN6luKxDdaOpNSkeooUTrUWmz6wJP9C8-SWlZAKho_EnRnpX5ZGCwdFisfpzMBF_r2eOjj64WwxugE5dBCglywrPt?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

16. **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_4nXecmde-6TtkHxZYTs4OIyei6nNrRgeLVzI1usAWsVK09jkmCFseFB6lW9mcCVH1lEBSZEZdhM1341HFgTLUyy1DeGgTl4T4PNwyhhEhZjaC0eai_Oz0gAntVw8DDrb4jwHKXIY2_g?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

17. **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.

```<figure><img

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. &#x20;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).
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/primery-robotov/find-suppliers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
