# Crear Orden de Inscripción

Consideremos un ejemplo de un robot que está diseñado para la formación automática e impresión de órdenes de inscripción de estudiantes. Los datos de entrada son un registro de estudiantes (participantes del programa de formación). Este proceso se utiliza a menudo en instituciones educativas y agencias de empleo.

El proyecto del robot consta de dos diagramas y tres archivos, uno de los cuales está en formato xlsx y los otros en formato docx.

Si se describe paso a paso, este robot funciona de la siguiente manera:

1. Carga la tabla de datos desde el archivo "P1\_Formación\_plantilla.xlsx".
2. Recorre las celdas con el número de orden.
3. Pasa al escenario del diagrama “CreateEnrollmentOrder\_ProcessCreateWord”, que ingresa los datos, obtiene la fecha y la hora, las convierte en texto y luego ingresa los datos en "P1\_Plantilla de orden de inscripción.docx", y lo envía a imprimir.
4. Completa “Plantilla de orden de inscripción.docx", lo guarda y lo imprime.

**Diagrama principal del proyecto**

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_4nXdPcwkCWPYMUfTMwBYwGZT-2G8lsrjeKsvCMAlbBE5BZLYHLPoUq0EMT_rINn-twLAV2tum0tp6DKDoxVO5N2g6f_QZ7DOSpTVpAOdubbT3VeSoB54sj0a6Pq0nJqtLAFgvMASU4C_jZtBYVLB5ijP5xLEP?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

1. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Cargar Tabla de Datos”** permite cargar la “Tabla de Datos” desde un documento de Excel. Para este bloque se especifican las siguientes propiedades:

* Ruta del archivo (ruta al documento de Excel desde el cual se debe cargar la información en la Tabla de Datos);
* Encabezado (si se activa la bandera, la primera fila se utilizará como encabezado);
* Hoja (número de la hoja de la cual se deben leer los datos en la Tabla de Datos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcRYBZsTdSg9zUKoHktBFyKGXWw8NpklhqXUEbx2LPBEIJAtzSq0CfauvQR6YeNT4TOi0ul-CJpHcsSthnJnvOrJX-njg9IfS6HJVwIYYWLIDVIIoCB41gP5nmnpaGRxUwWWI096BFvS8PU-CPepqInn3tU?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

3. **Bloque “Ciclo para cada (Tabla de Datos)”** recorre cíclicamente todas las filas de la tabla de datos.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdVPDsSXxFMhzYKTazSK7rm8YirEr8SlcD5RkghuvBzt0IKQeSTRgF8UDvd2w9gPJMT7_UfZiGFVzmA5HMckjUu4PAwMU8-64mq3_GGw2uK8Nm9zDgD8p_m20EooSkhTevK9RYGKsnWfqSvpHIVSPE-EcE?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

4. **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 especifica la propiedad “Nombre del diagrama” (nombre del archivo del diagrama donde continuará la ejecución del escenario).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXep74ybO3eOkTMAaDSWwHFkK7yh8CVL80sh5NBdBkjDmfQtQ-dDycC961JjPX_nsWyZXhoW5irSClPGAOLZ0E__zLoIFglFRp-3W8YbYqq_wsZVgY70fSUcyhY2AXJ1DaGpLrzhTWbCBQFLCsX6iRp9MAWN?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

5. **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 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 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, se establece la condición: -Not \[string]::IsNullOrEmpty($Row\[0]). Es decir, verifica que el valor de la celda cero en esta fila no esté vacío.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXefMrdvPilTAKF_1pXT2tVhyHCo4Q1yVy3_us79DGuOEpxIqsy9J90JUbtW8mSrIEM_mq8JBeFTNOo5cabCqUKVFwB3nQ_1C1SnP3gUhLEyrykdaip9WebVKK-mNn-_cAYDjJnqMhbwDzJMN9RkBJNHFik?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd95tMSnrAx-sMlmf-Wjwww2b7h709hcFwINub1KvJDrjppBKd_o_B3Vc3npEma38-f3oWczsVHzT-C9rSVJxlYqSnWzFL8DP548lHP0NKy5d6lPLTzx6K-BDjJOllfWuQprojGDSR0NNTbXaA6XODiiHVr?key=jnp0R80kKn84ibHDSqYCXA" 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 especifica un valor que debe asignarse a una variable específica.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc1g5EblVGUnqE3LyxQ8ufT6cPJ-5kxGzO2rqEgLqgYcaDDsC_pswQ952qMHV9vcZUrrHnaXyS73ihOoPRKtw_T4992OnhOT7yHKxsmQhhs2pj2tolBD3kPwkFAZKRC2k9R4UWve3irfXUVXOmHASTeytMX?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

8. **Bloque “Ejecutar expresión PowerShell”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con PowerShell. En este caso, se utiliza una expresión: $ListFIO.Add($fio). Esta agrega el valor $fio a la lista $ListFIO.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeY0X6NTGEmzh1WvxIZXnkKqKiNWGC59bbF6EsRaAP265vvxhctnv8JbufeJMa4xXsx2LxLVmf-0qapve5kOLBPWAjuI87gyyCV7EmjDiTT0cqpTIOXeRvLnTqL9FqDzXPoWMGP07MD1ywYpbHMey_IO5M?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

9. **Bloque “Log”** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del escenario del robot. Para este bloque se especifica 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_4nXfLkrrMXZtbMg-X7EXPZaS3EyNqv1AGnqZIx7cW5rj5VzNniQaR6wCDI2E18hwoZ2QTQ8_V34fnGxSkdX2XHo0xrVE4TiAu2Fcdx5VXyI0uCl1k7JTTHAGtuP4TnSrMk94Z1KFpDNQtqwjmeRFWzd97XwUF?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

10. y 11. **Bloque “Fin”** (este bloque finaliza la ejecución del escenario o devuelve el diagrama del subproceso al proceso principal).

**Diagrama “CreateEnrollmentOrder\_ProcessCreateWord”**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdss9_9I3JYyp_jKniHGke0hxHY8MFCG-0F8q7XNNCEmpycGGzM_QnEsBkIHTmpHV2isbRB0HJrfoff27E9_43KIW5TTdFNSGg_jqs7FbKnk9TlXqfVQknhNbRu3gcfCGNZsWQ3vpqZBeC5bTjjHuSvm9Ko?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

1. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).2. **Bloque “Ciclo”** permite repetir una cadena de acciones (bloques) varias veces y 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 establece en “Valor inicial” (en este caso, es igual a 0), 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 llegue nuevamente a este bloque, el valor de la variable “Ciclo” aumentará en el valor de “Paso” (en este caso, es igual a 1), y nuevamente se realizará 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, se establece en la variable $ListFIO.Count), 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_4nXf3sdzcpZ4xW9MhN8QwdIPFJ4g_m18eTYF_N3vbJqf8IW3DBbxkY_TLBinORcrj-pKv_gSmYGQ5fVzO-GG6ZTcqyQFvaVIJ1owZATZ4Snq7ZGp6SiS6H2O67XMb00fbsKGBUkJv80BAd-XjHrgdhCey0_eE?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

3. **Bloque “Ejecutar expresión PowerShell”** inicia la ejecución de una o varias expresiones en un lenguaje compatible con PowerShell. En este caso, se utiliza una expresión: $ListFIOString += ($Index+1).ToString() + ". " + $ListFIO\[$Index] + \[Environment]::NewLine. Esta añade a la cadena una nueva línea del tipo “1. Ivanov Ivan Ivanovich\r\n”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfYJuG5b7yMBfr3MnSUIZI85JspoTD1TRFqIPfMCuNN1DS8CLH3xjmjiz0FJMTO6du6MO9FVGUWBqB_dUqI1J-VuHHRimcKSOLqPV_RUm6yKPEyxTaOSph-YP_i-0o76FfEfZIX-EeOxCp598pTO2FT0is?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

4. **Bloque “Obtener fecha y hora actuales”** permite obtener la fecha y hora actuales de acuerdo con la configuración del ordenador del usuario. Para este bloque se ha especificado una propiedad: “Resultado” (devuelve la fecha y hora actuales).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdN-4fj6g5t8oIGBhCfMWA2MmujLXcHLA3YvDFy2I5DFPds-co2C29Txy_CMxn-UPq2ji0nxhtNxHyYqXu1K_d1xW6n_ZmWVa0M5i9QgcHsHMMvXiZvja6ic1I-0GrKRxW5978wGtnnFZDfSF6GhaBzERE?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

5. **Bloque “Convertir fecha y hora a texto”** permite convertir una variable de tipo “Fecha y hora” a formato de texto. Para este bloque se han especificado las siguientes propiedades:

* Valor (fecha y hora que se deben convertir a texto);
* Formato (formato de conversión de fecha y hora a texto).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcpnNukh9HdNn5HUHrJXQjmxMLxiUw-ST23C9fv53_ct70rJHZozyAVSbV4j6n0oCDArydDysGliEWlhcDqgAThw1i5rl9zFaU2sK4Zg0k0z-qUGSm_Q1h058i6o7Lm7gmrAhTEL7T_fcHqy4Pp3ha6Ij-Q?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

6. **Bloque “Obtener ruta al archivo”** obtiene la ruta completa al archivo con el nombre especificado. Para este bloque se ha especificado una propiedad: “Nombre del archivo” (nombre del archivo junto con su formato).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfpyGtZKiU08PgCe3qP295c6TCrmT9-GW1xC7k4qBSbU944g4VT0cU14PGqbqW4gz7sffj-9fd-bSWMVEBKKNU_ESE_WENmPBbDXzyncFFVWzRq5id4n4MEo6hyf0Q8ySjuIwzBgLyDEAxLRmLXPjA-Z6_G?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

7. **Bloque “Abrir documento”** permite abrir un documento de Word. Para este bloque se han especificado las siguientes propiedades:

* Usar COM (si está habilitada, el trabajo se realizará mediante el Word instalado);
* Ruta al archivo (ruta al archivo de Word que se desea abrir).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXflShroef1cY5801_AWfxc_zksmtDy5mG_AfdFOCaM2HSXFBKNHBRVCOjUAIc9b_7RKcWom_UAAQTkBkQZB6o3GDxAKMczFBpxGvULCqRWW7Tdub_-ZSWrN-cyTqOqx1B9UVSe4Dn2Mp-PF1_Xe4jK0RYV8?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

8. **Bloque “Reemplazar todas las variables en el texto”** permite realizar el reemplazo de todas las variables %variable% en un documento de Word. Para este bloque se han especificado 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_4nXdsIihEOTKv7vTCdgouAmCIrx88pjqHdj9BW6Mjn5PyioqVhFAvStXSN13PHnD6wUTceMNURfE4qtfduiB178x5Z9pKL-59IbLi353a1MLLaJxHXELk2X3nzp8mfMDjj_C5Iz9_A9MGF_s2WgXUUBukVWUH?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

9. **Bloque “Obtener ruta al archivo”** obtiene la ruta completa al archivo con el nombre especificado. Para este bloque se ha especificado una propiedad: “Nombre del archivo” (nombre del archivo junto con su formato).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdekXyta3MwjF99lU-6fMVJ2XQ-9VJQuWexED6iI5fylCOO1KQjNOeyWfu1C8iaL6uYRSJmbtkIwpZwW60-vLKv0DBgGKpqd9PBmaGiRrN7FuezWTyMmrjZeYmGS91pkgpXiRtB5GJ5AUvPuhcQkSlKCAhF?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

10. **Bloque “Guardar documento”** permite guardar un documento de Word. Para este bloque se han especificado 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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc3ELM8kXdcL7ebcLxQ1lkjgNgvGTmAIisidIBwc7O6U-IJWQY-sF-f76wlcoMiT5yGb3tNvtARHSaUZt58SuPxk21jNGXS5EFi9HVjhHWiSsE1svEioEGG_mGJY8E13XTVRroBHYsnzbqgTuBRdGAgZD10?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

11. **Bloque “Imprimir documento”** permite enviar a imprimir un documento de Word. Para este bloque se han especificado 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_4nXczuCO4EJ51TQUyB1exjkusI-x1BiMXPMjeoyPPuEyvFEf47KcQgwt_HlIAEDSKKrh16mZuucl0pa1BvB8s5S3aRIpr6dJqqZ2k6zimBSjV7e-qoUH3hl0ScTj-jdqsJ5-2qrXauaaQx1VGJgyxofgeyQ-Q?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

12. **Bloque “Cerrar documento”** permite cerrar un documento de Word. Para este bloque se han especificado 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 debe cerrarse. 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_4nXc-tnPPCln3owM-eb58MEy1fo3q6F637kJOvxgx45pwwHyQZvEa5dmmGHRJBtTeSHHD7n66ANLmDohWMKxNwNvxlitQ83y_omYbY3sU8_k18WMVAjE5KO0cpW2_mSafU6GntJ88f8fZrYc2FN7pCsVTNIzz?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

13. **Bloque “Log”** permite registrar en el log mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se especifica 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_4nXdR4h1HXcPWf0OeSeN3nUoLEgbeQLeRZko4X4wfPNA4Kw9DOotRS9VgF0PiLPgiFUlpT2w-Sy3N7htGH7p2F2lGmfhyxBlp1ZpwnKuXc4_8zh6rvNbGrpKxBFuiuEm5KR4x_0sHr-lSLf_5xhnfYUXJ_yo8?key=jnp0R80kKn84ibHDSqYCXA" alt=""><figcaption></figcaption></figure>

14. y 15. **Bloque “Fin”** (este bloque finaliza la ejecución del script o 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/enroll-certificates/create-enrollment-order.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.
