# Operaciones de Módulos

Las **“Operaciones”** son llamadas atómicas a APIs, vinculadas a un módulo, que encapsulan la ejecución de una función previamente configurada. Es decir, las operaciones son las acciones que podrá realizar tu módulo cuando se agreguen posteriormente a un flujo.

**Ejemplo:** imagina que tenemos un módulo llamado **“VentasY”** y puede realizar las siguientes operaciones:

* Listar todas las ventas del día
* Listar los 10 productos más vendidos
* Agregar un producto y su respectivo precio

Todos estos ejemplos son configurables a través de las operaciones.

{% hint style="info" %}
Sin una operación, no es posible utilizar un módulo en tus flujos.
{% endhint %}

#### Cómo agregar una operación

1. Haz clic en **“Nueva operación”**.

<figure><img src="/files/M06i3xTcSc6O3EQpwzfd" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Es necesario completar la información en la sección **“**[**Configuraciones**](/espanol/skyone-studio/modulos/configuraciones-and-operaciones.md)**”** para habilitar la creación de operaciones.
{% endhint %}

2. A continuación, se mostrará la pantalla para completar los datos de la nueva operación, dividida en **4 etapas**:

* [**Información general**](#informacion-general)
* [**Parámetros**](#parametros)
* [**Solicitud (Requisición)**](#solicitud-requisicion)
* [**Estructura de salida**](#estructura-de-salida)

A continuación, se detalla paso a paso cada ítem:

### Información General

1. Agrega el **nombre** y la **descripción** de la nueva operación.
2. Luego, haz clic en **“Siguiente paso”**.

<figure><img src="/files/LCT6I4vONS1TR3XyXbAR" alt=""><figcaption></figcaption></figure>

#### Parámetros

En esta etapa configurarás los parámetros que serán utilizados en el módulo, siempre de acuerdo con el tipo de conectividad (Base de Datos, Email, REST, etc.). Para esto:

1. Haz clic en **“Agregar parámetro”**. Aparecerá el siguiente modal:

<figure><img src="/files/KQhC7pXItszYK1xjL5LN" alt=""><figcaption></figcaption></figure>

**Campos:**

1. **Nombre:** elige un nombre que describa mejor la función del parámetro.
2. **Descripción:** describe la función del parámetro.
3. **Tipo:** selecciona el tipo de dato aceptado por el parámetro:

* **Texto:** cualquier combinación de caracteres alfanuméricos. Ejemplos: `"cualquiertexto"`, `"123"`
* **Número:** cualquier número. Ejemplos: `123`, `321`
* **Booleano:** `true/false` (verdadero/falso)
* **Objeto:** objeto JSON. Ejemplo: `{ "name": "John" }`
* **Array:** array JSON. Ejemplos: `[ "A", "B" ]`, `[ "1", "2" ]`

4. **Campo obligatorio:** al seleccionarlo, el parámetro será obligatorio y siempre deberá enviarse en el JSON de entrada.
5. **Dato sensible:** si se selecciona, indica que el valor del parámetro no será publicado si el módulo se comparte.
6. **Ejemplo:** agrega un ejemplo acorde al tipo de dato y al tipo de conectividad del módulo (Base de datos, Email, REST, etc.). Ejemplos:
   1. **Base de datos:** utiliza comandos SQL válidos (`SELECT`, `UPDATE`, `DELETE`, etc.).
   2. **REST:** utiliza operaciones `GET`, `POST`, `PUT`, `DELETE` o `PATCH`.
7. Para finalizar, haz clic en **“Guardar información”**.

Puedes hacer clic en **“Nuevo parámetro”** para agregar otro ítem, o en **“Siguiente paso”** para continuar con la configuración de **Solicitud (**[**Requisición**](/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos.md)**)**.

No hay límite en el número de parámetros que se pueden crear, pero se recomienda que la **nomenclatura** y la **descripción** sean claras y estructuradas para facilitar su identificación y uso.

#### Solicitud (Requisición)

En esta pestaña, podrás redactar la solicitud usando los parámetros creados previamente. Para facilitar, las indicaciones están organizadas según el tipo de conectividad. Haz clic en la opción correspondiente:

<details>

<summary><strong>Base de Datos</strong></summary>

En los módulos del tipo **Base de Datos**, el área de **Solicitud (Requisición)** contiene el campo **"Query"** y los **parámetros disponibles**, que pueden ser arrastrados directamente dentro de este campo.

<figure><img src="/files/dKs9rokJzAbiJsSefzYe" alt=""><figcaption></figcaption></figure>

Si lo prefieres, también puedes **agregar otros parámetros manualmente** dentro de la consulta.

A continuación, haz clic en **"Siguiente paso" (**[**Estructura de salida**](/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos.md)**)**.

</details>

<details>

<summary><strong>Correo electrónico</strong></summary>

En los módulos del tipo **Correo electrónico (Email)**, el área de **Solicitud (Requisición)** contiene los siguientes campos:

<figure><img src="/files/Um1WCHXimpuXILqtJkm3" alt=""><figcaption></figcaption></figure>

* **Parámetros disponibles**: lista de los parámetros creados previamente.
* **Destinatario**: arrastra el parámetro correspondiente a este campo.
* **Asunto**: arrastra el parámetro correspondiente a este campo.
* **Cuerpo (Body)**: además del parámetro creado previamente, este campo requiere un **código HTML**
* **Habilitar archivos adjuntos:** permite incluir uno o más archivos adjuntos.

</details>

<details>

<summary><strong>REST</strong></summary>

En los módulos del tipo **REST**, el área de **Solicitud (Requisición)** contiene los siguientes campos:

* **Parámetros disponibles**: lista de los parámetros creados previamente.
* **Método**: selecciona el método HTTP que se utilizará en la solicitud. Las opciones disponibles son:
  * **GET**: utilizado para recuperar datos.
  * **POST**: enviar datos o crear nuevos recursos.
  * **PUT**: actualizar recursos de forma completa.
  * **DELETE**: eliminar recursos.
  * **PATCH**: actualizar recursos parcialmente.
* **URL (no obligatorio)**: elige el formato de la URL que será utilizada en la solicitud:
  * **PATH**: ruta relativa, usada cuando la URL base ya está definida en otro lugar.
  * **FULL URL**: dirección completa, útil para solicitudes fuera del dominio.
* **Endpoint**: escribe o pega la ruta que será llamada para realizar la solicitud.
* **Body**: si el método elegido admite un cuerpo (como **POST**, **PUT** o **PATCH**), inserta los datos que serán enviados. El cuerpo de la solicitud puede estar en formatos como **JSON**, **XML** u otros, según la API.
* **Header**: define los encabezados HTTP que deben incluirse en la solicitud, como *Content-Type*, *Authorization*, u otros, de acuerdo con las necesidades del servicio que se está integrando.
* **Query**: inserta los parámetros de consulta (*query parameters*) que se agregarán a la URL. Estos parámetros suelen usarse para filtrar, ordenar o paginar los datos en la solicitud.

<figure><img src="/files/sjuhphnWGFVlnpWkMSys" alt=""><figcaption></figcaption></figure>

Luego, haz clic en **"Próximo paso" (**[**Estructura de salida**](#estructura-de-salida)**)**.

</details>

<details>

<summary><strong>SOAP</strong></summary>

En los módulos del tipo **SOAP**, el área de **Solicitud (Requisición)** contiene los siguientes campos:

* **Parámetros disponibles**: lista de los parámetros creados previamente.
* **Body**: el cuerpo de la solicitud SOAP debe seguir el formato **XML**. En el body, es necesario incluir los parámetros que correspondan a la operación solicitada al servicio SOAP.
* **Header**: los encabezados pueden incluir información de autenticación, como *tokens*, o datos de control de la transacción.

<figure><img src="/files/0ShTfr8MLHKKVVXXz1Fi" alt=""><figcaption></figcaption></figure>

Luego, haz clic en **"Próximo paso" (**[**Estructura de salida**](#estructura-de-salida)**)**.

</details>

<details>

<summary><strong>Arquivo</strong></summary>

En los módulos de tipo **Archivo**, el área de **solicitud** contiene los siguientes campos:

* **Parámetros disponibles:** lista de los parámetros creados previamente.
* **Tipo de operación:** las opciones disponibles son:
  * **Mover un archivo:** Al seleccionar esta opción, la pantalla muestra los siguientes campos:
    * **Ruta:** especifica la ruta del directorio donde el archivo se encuentra actualmente.
    * **Nombre:** ingresa el nombre del archivo que será movido.
    * **Ruta de destino:** indica la nueva ruta a donde se moverá el archivo.
  * **Eliminar un archivo:** Al seleccionar esta opción, la pantalla muestra los siguientes campos:
    * **Ruta:** especifica la ruta del directorio donde se encuentra el archivo que será eliminado.
    * **Nombre:** ingresa el nombre del archivo que será eliminado.
  * **Guardar archivo:** Al seleccionar esta opción, la pantalla muestra los siguientes campos:
    * **Ruta:** indica la ruta del directorio donde se guardará el archivo.
    * **Nombre:** ingresa el nombre del archivo que será guardado.
    * **Contenido:** especifica el contenido que se guardará en el archivo.
    * **Agregar el contenido si existe un archivo con el mismo nombre:** marca esta opción si deseas añadir el nuevo contenido al archivo existente, en lugar de sobrescribirlo.
  * **Leer un archivo:** Al seleccionar esta opción, la pantalla muestra los siguientes campos:
    * **Ruta:** especifica la ruta del directorio donde se encuentra el archivo.

      **Nombre:** ingresa el nombre del archivo que será leído.

      **Formato del contenido del archivo:** selecciona el formato del contenido del archivo (binario o texto).
  * **Listar archivos:**&#x20;
    * **Ruta:** especifica la ruta del directorio cuyos archivos serán listados.

<figure><img src="/files/qyutIetCl8rsXLQCEA2z" alt=""><figcaption></figcaption></figure>

* **Crear directorio:**
  * **Ruta:** especifica la ruta donde se creará el directorio.
  * **Directorio:** ingresa el nombre del directorio.

**Importante:** Para garantizar el correcto funcionamiento de esta operación, verifica que tu **Agente** esté actualizado.

A continuación, haz clic en **"Siguiente paso" (**[**Estructura de salida**](#estructura-de-salida)**)**.

</details>

<details>

<summary>RFC</summary>

En los módulos de tipo **RFC**, el área de **solicitud** contiene los siguientes campos:

* **Parámetros disponibles:** lista de los parámetros creados previamente.
* **Nombre de la función:** especifica el nombre de la función que será ejecutada en el sistema SAP.
* **Parámetro:** ingresa los parámetros necesarios para la ejecución de la función seleccionada.

<figure><img src="/files/6ePDQE740AnDpiJTbguR" alt=""><figcaption></figcaption></figure>

A continuación, haz clic en **"Siguiente paso" (**[**Estructura de salida**](#estructura-de-salida)**)**.

</details>

{% hint style="info" %}
Acceda a la [documentación de MongoDB](/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos/operaciones-mongodb.md) para conocer más sobre las operaciones.
{% endhint %}

#### Estructura de salida

En esta etapa, podrás **probar la operación** utilizando la información proporcionada. Para facilitar el proceso, las instrucciones están organizadas según el **tipo de conectividad**. Haz clic en la opción correspondiente:

<details>

<summary><strong>Base de Datos</strong></summary>

Para finalizar la configuración del módulo de tipo **Base de Datos**, la pantalla de **"Estructura de salida"** se divide en dos bloques: **Entrada** y **Salida**.

<figure><img src="/files/1mJYUPAfebHQqXjWevOz" alt=""><figcaption></figcaption></figure>

* **Entrada:** contiene los parámetros configurados en la pestaña **Parámetros**. Puedes realizar ajustes aquí, pero se utilizarán solo para pruebas y no se guardarán.
* **Salida:** antes de la prueba, no se muestra ninguna información. Después de ejecutar la prueba, el resultado se mostrará en este bloque.

Para probar la operación, haz clic en **"Probar"**. Si el resultado es correcto, haz clic en **"Finalizar"** para completar la creación de la operación.

</details>

<details>

<summary><strong>Correo electrónico</strong></summary>

Para finalizar la configuración del módulo de tipo **Correo electrónico**, la pantalla de **"Estructura de salida"** se divide en dos bloques: **Entrada** y **Salida**.

<figure><img src="/files/87WVsHmGyAx6QmE04v0X" alt=""><figcaption></figcaption></figure>

* **Entrada:** contiene los parámetros configurados en la pestaña **Parámetros**. Puedes realizar ajustes aquí, pero se utilizarán solo para pruebas y no se guardarán.
* **Salida:** antes de la prueba, no se muestra ninguna información. Después de ejecutar la prueba, el resultado se mostrará en este bloque.

Para probar la operación, haz clic en **"Probar"**. Si el resultado es correcto, haz clic en **"Finalizar"** para completar la creación de la operación.

</details>

<details>

<summary><strong>REST</strong></summary>

Para finalizar la configuración del módulo de tipo **REST**, la pantalla de **"Estructura de salida"** se divide en dos bloques: **Entrada** y **Salida**.

<figure><img src="/files/XGbNEOq03pMQlK70dAcl" alt=""><figcaption></figcaption></figure>

* **Entrada:** contiene los parámetros configurados en la pestaña **Parámetros**. Puedes realizar ajustes aquí, pero se utilizarán solo para pruebas y no se guardarán.
* **Salida:** antes de la prueba, no se muestra ninguna información. Después de ejecutar la prueba, el resultado se mostrará en este bloque.

Para probar la operación, haz clic en **"Probar"**. Si el resultado es correcto, haz clic en **"Finalizar"** para completar la creación de la operación.

</details>

<details>

<summary><strong>SOAP</strong></summary>

Para finalizar la configuración del módulo de tipo **SOAP**, la pantalla de **"Estructura de salida"** se divide en dos bloques: **Entrada** y **Salida**.

<figure><img src="/files/QD4cPB56ichvVra6lq8U" alt=""><figcaption></figcaption></figure>

**Entrada:** contiene los parámetros configurados en la pestaña **Parámetros**. Puedes realizar ajustes aquí, pero se utilizarán solo para pruebas y no se guardarán.

**Salida:** antes de la prueba, no se muestra ninguna información. Después de ejecutar la prueba, el resultado se mostrará en este bloque.

Para probar la operación, haz clic en **"Probar"**. Si el resultado es correcto, haz clic en **"Finalizar"** para completar la creación de la operación.

</details>

<details>

<summary><strong>Archivo</strong></summary>

Para finalizar la configuración del módulo de tipo **Archivo**, la pantalla de **"Estructura de salida"** se divide en dos bloques: **Entrada** y **Salida**.

<figure><img src="/files/jttjHtL0YnE1EyBen6Gi" alt=""><figcaption></figcaption></figure>

* **Entrada:** contiene los parámetros configurados en la pestaña **Parámetros**. Puedes realizar ajustes aquí, pero se utilizarán solo para pruebas y no se guardarán.
* **Salida:** antes de la prueba, no se muestra ninguna información. Después de ejecutar la prueba, el resultado se mostrará en este bloque.

Para probar la operación, haz clic en **"Probar"**. Si el resultado es correcto, haz clic en **"Finalizar"** para completar la creación de la operación.

</details>

<details>

<summary><strong>RFC</strong></summary>

Para concluir as configurações do módulo do tipo **RFC**, a tela de "**Estrutura de Saída**" é dividida em dois blocos: **Entrada** e **Saída**.

<figure><img src="/files/NbsiUDInxCPTduBvvwfd" alt=""><figcaption></figcaption></figure>

* **Entrada:** Contém os parâmetros configurados na aba [**Parâmetros**](https://docs.skyone.cloud/studio/modulos/configuracoes-and-operacoes/operacoes-de-modulos#parametros). Você pode fazer ajustes aqui, mas eles serão usados apenas para teste e não serão salvos.
* **Saída:** Antes do teste, nenhuma informação é exibida. Após o teste, o resultado é mostrado aqui.

Para testar a operação, clique em "**Testar**". Se o resultado estiver correto, clique em "**Finalizar**" para concluir a criação da operação.

</details>

**Consulta adicional:** [Gestión de operaciones (editar y eliminar operaciones)](/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos/gestion-de-las-operaciones.md)


---

# 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.skyone.cloud/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos.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.
