# Encontrar Proveedores

Consideremos un ejemplo de un robot que demuestra la automatización de la búsqueda de proveedores.

El proyecto del robot consta de 4 diagramas y 7 archivos en formatos xlsx, txt y docx.

Así, si se describe paso a paso, este robot funciona de la siguiente manera:

1. Revisa el correo y al recibir un mensaje (el cual está definido en el archivo “WorkBodyEmail.txt”) hace una solicitud para buscar un producto en Yandex.
2. Recorre los enlaces del resultado de la búsqueda y recopila correos electrónicos.
3. Filtra los enlaces utilizando los datos del archivo “BlockEmails.xlsx”.
4. Realiza un envío a las direcciones de correo electrónico especificadas, tomando el asunto del correo del archivo “RequestSubjectEmail.txt” y el cuerpo del correo del archivo “RequestBodyEmail.txt”; se adjuntan dos archivos a los correos: la primera es la solicitud del archivo “RequestWordTemplate.docx”, y la segunda son los detalles de la empresa del archivo “CompanyDetails.xlsx”.

El diagrama principal del proyecto se ve así (para mayor comodidad, los bloques del diagrama están 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. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Proceso”** permite crear escenarios que constan de varios diagramas. La ejecución del escenario continuará desde el bloque “Inicio” del diagrama del proyecto especificado. La ejecución del escenario volverá al bloque actual y continuará en el diagrama actual tan pronto como se alcance el bloque “Fin” en el diagrama externo. Para el bloque “Proceso” se ha especificado la propiedad “Nombre del diagrama” (el nombre del archivo del diagrama en el que continuará la ejecución del escenario).

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

3. **Bloque “Pausa”** detiene la ejecución del trabajo del escenario durante un tiempo determinado. En este caso, durante 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. **Bloque “Obtener correos a través de POP3”** permite recibir correos utilizando el protocolo POP3. Para este bloque se han especificado las siguientes propiedades:

* Servidor (servidor);
* Login (login necesario para la autorización en el servidor);
* Contraseña (contraseña necesaria para la autorización en el servidor);
* Tiempo de espera (tiempo de espera de respuesta del servidor en segundos);
* SSL (si se activa, se utiliza una conexión segura);
* Cantidad de correos (número de los últimos correos que se recibirán del servidor).

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

5. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del escenario del robot. Para este bloque se ha especificado la propiedad “Valor”. En las comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot un mensaje de error.

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

6. **Bloque “Ciclo para cada (Lista)”** recorre todos los elementos en una lista dada, en cada iteración del ciclo asigna el elemento actual a la variable que se indica en la propiedad “Elemento”, y luego la ejecución del escenario continúa hacia la salida del Elemento de este bloque (en lo que se llama “cuerpo del ciclo”). Después de recorrer todos los elementos de la lista, la ejecución del escenario continúa hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del ciclo con la entrada de este bloque. Para este bloque se ha especificado una propiedad: “Lista” (lista cuyos elementos deben ser recorridos en el ciclo).

**¡Importante!** *Para que el ciclo se reinicie, debe dirigirse no al propio ciclo, sino al bloque superior noг*о.

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

7. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se han indicado dos valores que deben asignarse a dos variables, respectivamente.

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

8. **Bloque “Codificar en Base64”** permite codificar una cadena en Base64. Para este bloque se ha especificado una propiedad: “Texto” (cadena de entrada).

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

9. **Bloque “Verificar la existencia de un elemento en la lista”** realiza una búsqueda en la lista y determina: si el elemento buscado está presente en la lista o no. Para este bloque se han especificado las siguientes propiedades:

* Lista (lista en la que se debe verificar la existencia del elemento buscado);
* Elemento (elemento cuyo hecho de existencia se debe verificar);
* Tipo de verificación (selección del tipo de verificación).

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

10. **Bloque “Agregar elemento a la lista”** añade el elemento especificado al final de la lista. Para este bloque se han especificado las siguientes propiedades:

* Lista (lista a la que se debe agregar un nuevo elemento);
* Elemento (variable que se debe agregar a la lista).

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

11. **Bloque “Dividir texto”** divide una cadena en subcadenas basándose en el símbolo delimitador especificado. Para este bloque se han especificado las siguientes propiedades:

* Texto (cadena de entrada);
* Nueva línea (si se activa, la división se realizará por nueva línea);
* Eliminar subcadenas vacías (si se activa, se eliminarán las cadenas vacías del resultado);
* Recortar (si se activa, cada línea en el resultado será recortada).

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

12\. \*\*Bloque "Condición"\*\* verifica la veracidad de la condición especificada, después de lo cual la ejecución del escenario continúa hacia la salida "Sí" (si se cumple la condición) o hacia la salida "No" (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[0] == "SherpaRPA". Es decir, en el cuerpo del correo debe estar la palabra clave "SherpaRPA".

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

13. **Bloque "Log"** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del escenario del robot. Para este bloque se ha especificado la propiedad “Valor”. En comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot el mensaje “No hay palabra clave SherpaRPA en el correo”.

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

14. **Bloque "Ciclo"** permite repetir una cadena de acciones (bloques) varias veces y, al mismo tiempo, contar el número de iteraciones del ciclo, registrando el número actual en una variable especial (especificada en la propiedad “Ciclo”), que luego se puede utilizar en otros bloques. En la primera entrada al bloque, el valor de la variable de la propiedad “Ciclo” se iguala a “Valor inicial” (en este caso es 1), y luego la ejecución del escenario continúa hacia la salida “Ciclo” de este bloque (en el llamado “cuerpo del ciclo”). Tan pronto como la ejecución del escenario vuelva a este bloque, el valor de la variable “Ciclo” aumentará en el valor de “Paso” (en este caso, es 1), y nuevamente se producirá la transición hacia la salida “Ciclo”. Una vez que el valor de la variable “Ciclo” sea mayor o igual a “Valor final” (en este caso, está dado por la variable $listbody.Count - 1), la ejecución del escenario continuará hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del ciclo con la entrada de este bloque o de alguno de los bloques 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. **Bloque "Proceso"** permite crear escenarios compuestos por varios diagramas. La ejecución del escenario continuará desde el bloque “Inicio” del diagrama del proyecto especificado. La ejecución del escenario volverá al bloque actual y continuará en el diagrama actual, tan pronto como se alcance el bloque “Fin” en el diagrama externo. Para el bloque “Proceso” se ha especificado la propiedad “Nombre del diagrama” (nombre del archivo del diagrama en el que continuará la ejecución del escenario).

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

16. **Bloque "Proceso"** permite crear escenarios compuestos por varios diagramas. La ejecución del escenario continuará desde el bloque “Inicio” del diagrama del proyecto especificado. La ejecución del escenario volverá al bloque actual y continuará en el diagrama actual, tan pronto como se alcance el bloque “Fin” en el diagrama externo. Para el bloque “Proceso” se ha especificado la propiedad “Nombre del diagrama” (nombre del archivo del diagrama en el que continuará la ejecución del escenario).

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

17. **Bloque "Condición"** verifica la veracidad de la condición especificada, después de lo cual la ejecución del escenario continúa hacia la salida "Sí" (si se cumple la condición) o hacia la salida "No" (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Pedido:". Es decir, en el cuerpo del correo debe estar "Pedido:".

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

18. **Bloque "Asignar valor a variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se ha indicado un valor que debe asignarse a una variable, respectivamente.

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

19. **Bloque "Condición"** verifica la veracidad de la condición especificada, después de lo cual la ejecución del escenario continúa hacia la salida "Sí" (si se cumple la condición) o hacia la salida "No" (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Gerente:". Es decir, en el cuerpo del correo debe estar "Gerente:"

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

20. **Bloque "Asignar valor a variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se ha indicado un valor que debe asignarse a una variable, respectivamente.

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

21. **Bloque "Condición"** verifica la veracidad de la condición especificada, después de lo cual la ejecución del escenario continúa hacia la salida "Sí" (si se cumple la condición) o hacia la salida "No" (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Producto:". Es decir, en el cuerpo del correo debe estar "Producto:"

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

22. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

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

23. **Bloque “Condición”** verifica la condición especificada para su veracidad, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Cantidad:". Es decir, en el cuerpo del correo debe haber "Cantidad:".

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

24. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, 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. **Bloque “Condición”** verifica la condición especificada para su veracidad, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Dirección:". Es decir, en el cuerpo del correo debe haber "Dirección:".

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

26. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

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

27. **Bloque “Condición”** verifica la condición especificada para su veracidad, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "De la empresa:". Es decir, en el cuerpo del correo debe haber "De la 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. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, 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. **Bloque “Condición”** verifica la condición especificada para su veracidad, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, como condición se establece: $listbody\[$Index] == "Descripción del producto:". Es decir, en el cuerpo del correo debe haber la palabra clave "Descripción del producto:".

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

30. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

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

31. **Bloque “Ejecutar expresión”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con 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. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Abrir documento”** permite abrir un documento de Word. Para este bloque se especifican las siguientes propiedades:

* Usar COM (con la bandera activada, el trabajo se realiza a través de Word instalado);
* Ruta al archivo (ruta al documento de Word que se debe abrir).

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

3. **Bloque “Reemplazar todas las variables en el texto (Word)”** permite reemplazar todas las variables %variable% en un documento de Word. Para este bloque se especifican las siguientes propiedades:

* Enlace a Word (enlace al proceso de procesamiento del documento de Word. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace a Word", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o abrir este documento);
* Enlace al documento (enlace al documento de Word abierto, en el que actualmente se está trabajando. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace al documento", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o 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. **Bloque “Nuevo archivo”**

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

5. **Bloque “Guardar documento”** permite guardar un documento de Word. Para este bloque se especifican las siguientes propiedades:

* Enlace a Word (enlace al proceso de procesamiento del documento de Word. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace a Word", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o abrir este documento);
* Enlace al documento (enlace al documento que se debe guardar. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace al documento", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o abrir este documento);
* Ruta al archivo (ruta al documento de Word).

**¡Importante!** *Para guardar el documento en el mismo archivo, deje el valor vacío. De lo contrario, ingrese una nueva ruta al archivo. Si el archivo especificado existe, será sobrescrito. Formatos disponibles: ".docx", ".pdf".*

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

6. **Bloque “Cerrar documento”** permite cerrar un documento de Word. Para este bloque se especifican las siguientes propiedades:

* Enlace a Word (enlace al proceso de procesamiento del documento de Word. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace a Word", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o abrir este documento);
* Enlace al documento (enlace al documento que se debe cerrar. El nombre de la variable en esta propiedad debe coincidir con el nombre de la variable en la propiedad "Enlace al documento", bloques "Crear documento" o "Abrir documento" del grupo Word, que se utilizaron anteriormente para crear o abrir este documento).

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

7. **Bloque “Fin”** (este bloque finaliza la ejecución del script o devuelve el diagrama del subproceso al proceso 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. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se especifica la propiedad “Valor”. En comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot “Búsqueda:” y el nombre del producto buscado.

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

3. **Bloque “Ejecutar expresión”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con PowerShell. En este caso, se ejecutan dos expresiones.

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

4. **Bloque “Búsqueda de Yandex”** permite obtener una lista de enlaces en respuesta a una consulta en el motor de búsqueda Yandex. Para este bloque se especifican las siguientes propiedades:

* Consulta (consulta que se debe enviar al motor de búsqueda Yandex);
* Máximo de páginas (número máximo de páginas de las que se deben obtener enlaces en respuesta a la consulta en el motor de búsqueda Yandex);
* Tiempo de espera (tiempo de espera para la respuesta del motor de búsqueda Yandex en milisegundos, si se supera el valor especificado, la operación se cancela).

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

5. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se especifica la propiedad “Valor”. En comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot un mensaje de error.

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

6. **Bloque “Reconocimiento de CAPTCHA”** realiza el reconocimiento automatizado de bloques 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>

7\. \*\*Bloque “Ciclo para cada (Lista)”\*\* itera sobre todos los elementos en la lista dada, en cada iteración del ciclo asigna el elemento actual a la variable que se indica en la propiedad “Elemento”, y luego la ejecución del script continúa hacia la salida Elemento de este bloque (en el llamado “cuerpo del ciclo”). Después de iterar sobre todos los elementos de la lista, la ejecución del script continúa hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del ciclo con la entrada de este bloque. Para este bloque se ha especificado una propiedad: “Lista” (lista cuyos elementos deben ser iterados en el ciclo).

**¡Importante!** *Para que el ciclo se reinicie, debe dirigirse no al propio ciclo, sino al bloque que está por encima de él.*

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

8. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se ha especificado la propiedad “Valor”. En las comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot la URL del producto.

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

9. **Bloque “Ejecutar solicitud GET”** envía una solicitud GET y obtiene el código de la página devuelta. Para este bloque se han especificado las siguientes propiedades:

* URL (enlace a la página web a la que se debe enviar la solicitud GET);
* Codificación (codificación de la página web);
* UserAgent (UserAgent que se debe utilizar al acceder a la página web necesaria);
* TLS 12 (si se activa la bandera, se utilizará el protocolo seguro TLS 12 al acceder a la página web).

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

10. **Bloque “Obtener lista de subcadenas por expresión regular”** permite obtener una lista de subcadenas de un texto mediante la búsqueda con una expresión regular. Para este bloque se han especificado las siguientes propiedades:

* Texto (cadena de entrada);
* Patrón (expresión regular por la cual se dividirá la cadena);
* Tiempo de espera (tiempo máximo de espera para completar la operación en segundos).

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

11. **Bloque “Ciclo para cada (Lista)”** itera sobre todos los elementos en la lista dada, en cada iteración del ciclo asigna el elemento actual a la variable que se indica en la propiedad “Elemento”, y luego la ejecución del script continúa hacia la salida Elemento de este bloque (en el llamado “cuerpo del ciclo”). Después de iterar sobre todos los elementos de la lista, la ejecución del script continúa hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del ciclo con la entrada de este bloque. Para este bloque se ha especificado una propiedad: “Lista” (lista cuyos elementos deben ser iterados en el ciclo).

**¡Importante!** *Para que el ciclo se reinicie, debe dirigirse no al propio ciclo, sino al bloque que está por encima de él.*

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

12. **Bloque “Eliminar duplicados en la lista”** elimina de la lista todos los elementos repetidos. Para este bloque se ha especificado una propiedad “Lista” (lista en la que se deben dejar solo elementos únicos, eliminando todos los duplicados).

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

13. **Bloque “Condición”** verifica la veracidad de la condición especificada, después de lo cual la ejecución del script continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”.

En este caso, se ha establecido como condición: $ListEmails.Count >= 5. Es decir, el valor de la lista de correos electrónicos debe ser mayor o igual a 5.

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

14. **Bloque “Verificar existencia de valor”** verifica la existencia de un valor en toda la tabla o en una columna dada. Para este bloque se han especificado las siguientes propiedades:

* Tabla (tabla de datos en la que se verifica el valor);
* Valor (valor que se verifica en la tabla);
* Columna (número de columna en la que se verifica el valor. La numeración comienza desde 0);
* Tipo de verificación (selección del tipo de verificación).

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

15. **Bloque “Condición”** verifica la veracidad de la condición especificada, después de lo cual la ejecución del script continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”. En este caso, se ha establecido como condición: $Result. Es decir, si se ha obtenido el resultado.

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

16. **Bloque “Ejecutar expresión”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con PowerShell.

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

17. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se ha especificado la propiedad “Valor”. En las comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot “Cantidad de correos electrónicos encontrados:” y la cantidad misma.

    <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdf_4Eu3weQUKYM8B4ZPSYnCpFOLCGGz1WtOqBLABDU58eENFN939iQ4mBg1JCCazrzzueICt53_PMNuQGe3Q-GbPWXvx6r695TEL3hmXhmHJIL-q2KkaGFlRI6Qr9HrvSPg2Yozg?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>
18. **Bloque “Ciclo para cada (Lista)”** itera sobre todos los elementos en la lista dada, en cada iteración del ciclo asigna el elemento actual a la variable que se indica en la propiedad “Elemento”, y luego la ejecución del script continúa hacia la salida Elemento de este bloque (en el llamado “cuerpo del ciclo”). Después de iterar sobre todos los elementos de la lista, la ejecución del script continúa hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del ciclo con la entrada de este bloque. Para este bloque se indica una propiedad: “Lista” (la lista cuyos elementos deben ser iterados en el ciclo).

**¡Importante!** *Para que el ciclo se reinicie, debe ir no al mismo ciclo, sino al bloque superior н*его.

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

19. **Bloque “Enviar correo”** permite enviar un correo utilizando el protocolo POP3. Para este bloque se indican las siguientes propiedades:

* Servidor (servidor);
* Login (login necesario para la autorización en el servidor);
* Contraseña (contraseña necesaria para la autorización en el servidor);
* SSL (si la bandera está activada, se utiliza una conexión segura);
* Email del remitente (E-mail desde el cual se enviará el correo);
* Email del destinatario (dirección de correo del destinatario a quien se debe enviar el correo);
* Asunto del correo (asunto del correo);
* Texto del correo (contenido del correo);
* Marcado HTML (si la bandera está activada, el contenido del correo se enviará como una página HTML y puede contener etiquetas);
* Timeout/Tiempo de espera (tiempo de espera para la respuesta del servidor en segundos).

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

20. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se indica la propiedad “Valor”. En comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot un mensaje sobre el envío de un E-mail.

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

21. **Bloque “Reemplazar todas las variables en el texto”** realiza la sustitución de todas las variables %variable% en el texto. Para este bloque se indica una propiedad “Texto” (cadena de entrada).

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

22. **Bloque “Reemplazar todas las variables en el texto”** realiza la sustitución de todas las variables %variable% en el texto. Para este bloque se indica una propiedad “Texto” (cadena de entrada).

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

23. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeRW53rhDEvonTvUaI1jhzVnB0Pk8EyG1UPStofTwzWbx2ktZ-UTjQAv8q7jAeHtcM8-hX-8lpfLHdhieiMSScu0FIMZRnkWtyTQaXUHBA6E5OmEiqBviP2XeM4vxCTQ921-pPaKQ?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

24. **Bloque “Buscar fila”** realiza una búsqueda en la tabla comparando con un valor dado y devuelve la primera fila que coincida. Para este bloque se indican las siguientes propiedades:

* Tabla (tabla de datos en la que se realiza la búsqueda de la fila);
* Valor buscado (valor que se busca en la tabla);
* Columna (número o nombre de la columna en la que se verifica el valor, la numeración comienza desde 0).

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

25. **Bloque “Condición”** verifica la condición especificada para su veracidad, después de lo cual la ejecución del script continúa hacia la salida “Sí” (si la condición se cumple) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”. En este caso, se establece como condición: $RowOrganization == $null. Es decir, la fila “Organización” debe 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. **Bloque “Agregar elemento a la lista”** agrega al final de la lista el elemento especificado. Para este bloque se indican las siguientes propiedades:

* Lista (lista a la que se debe agregar un nuevo elemento);
* Elemento (variable que se debe agregar a la lista).

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

27. **Bloque “Agregar elemento a la lista”** agrega al final de la lista el elemento especificado. Para este bloque se indican las siguientes propiedades:

* Lista (lista a la que se debe agregar un nuevo elemento);
* Elemento (variable que se debe agregar a la lista).

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

28. **Bloque “Enviar correo”** permite enviar un correo utilizando el protocolo POP3. Para este bloque se indican las siguientes propiedades:

* Servidor (servidor);
* Contraseña (contraseña necesaria para la autorización en el servidor);
* SSL (si la bandera está activada, se utiliza una conexión segura);
* Email del remitente (E-mail desde el cual se enviará el correo);
* Email del destinatario (dirección de correo del destinatario a quien se debe enviar el correo);
* Asunto del correo (asunto del correo);
* Texto del correo (contenido del correo);
* Marcado HTML (si la bandera está activada, el contenido del correo se enviará como una página HTML y puede contener etiquetas);
* Archivos adjuntos (ruta al archivo / Lista de rutas a archivos / Diccionario con archivos que se adjuntarán al correo (clave - nombre, valor - ruta al archivo));
* Timeout/Tiempo de espera (tiempo de espera para la respuesta del servidor en segundos).

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

29. **Bloque “Ejecutar expresión”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con 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. **Bloque “Asignar valor a variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, 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. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indican las siguientes propiedades:

* Ruta de la carpeta (ruta de la carpeta donde se encuentra el archivo necesario);
* Nombre del archivo (nombre del archivo).

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

32. y 33. **Bloques “Fin”** (con estos bloques se finaliza la ejecución del script o se devuelve el diagrama del subproceso al proceso 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. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indica una propiedad: “Nombre del archivo”.

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

3. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indica una propiedad: “Nombre del archivo”.

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

4. **Bloque “Leer archivo”** permite leer el contenido de un archivo de texto en una variable. Para este bloque se indican las siguientes propiedades:

* Nombre del archivo (nombre del archivo de texto cuyo contenido se requiere leer);
* Codificación (codificación del archivo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcVDcC1iOAq2Nv0ayAyr_OI3ThLZoynNf5zimdknn74moQUMOEL9pAhnEV8fvAsrIJinwChRliO-tIwpZAv23T7WB1RWV2BNfRMvdVi82kQ-L3Gcl-hF0BZ-lFeV6YuiI-gk0M?key=jbUDunSxnrB5kl7NOMhHjOp2" alt=""><figcaption></figcaption></figure>

5. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indica una propiedad: “Nombre del archivo”.

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

6. **Bloque “Leer archivo”** permite leer el contenido de un archivo de texto en una variable. Para este bloque se indican las siguientes propiedades:

* Nombre del archivo (nombre del archivo de texto cuyo contenido se requiere leer);
* Codificación (codificación del archivo).

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

7. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indica una propiedad: “Nombre del archivo”.

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

8. **Bloque “Cargar Tabla de Datos”** permite cargar una “Tabla de Datos” desde un documento de Excel. Para este bloque se indican las siguientes propiedades:

* Ruta del archivo (tabla de datos en la que se cargarán los datos desde el documento de Excel);
* Hoja (número de la hoja de la que se deben leer los datos en la Tabla de Datos).

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

9. **Bloque “Obtener ruta de archivo”** permite conocer la ruta completa de un archivo. Para este bloque se indica una propiedad: “Nombre del archivo”.

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

10. **Bloque “Cargar Tabla de Datos”** permite cargar una “Tabla de Datos” desde un documento de Excel. Para este bloque se indican las siguientes propiedades:

* Ruta del archivo (tabla de datos en la que se cargarán los datos desde el documento de Excel);
* Hoja (número de la hoja de la que se deben leer los datos en la Tabla de Datos).

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

11. **Bloque “Fin”** (con este bloque se finaliza la ejecución del script o se devuelve el diagrama del subproceso al proceso 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/es/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.
