> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/operacion/libreta_direcciones/contacto/canal/nuevo_canal/programas_usuario.md).

# Programas de usuario

Editran permite ejecutar programas de usuario en distintos momentos de una transmisión. Estos programas pueden utilizarse antes de iniciar el envío, al terminarlo o cuando se produce un error.

Los tipos de programas disponibles son los siguientes:

* Programa previo a emisión/recepción.
* Programa posterior a emisión/recepción.
* Programa de excepción.

## Programa previo a emisión/recepción

Este programa se ejecuta cuando se da la orden de transmitir, antes de iniciar la carga de datos en el caso de una emisión.

Si el programa está definido y devuelve un valor distinto de `0`, la transmisión no continúa y el canal queda bloqueado.

## Programa posterior a emisión/recepción

Este programa se ejecuta al finalizar la transmisión de datos. Su valor de retorno no afecta al estado final en el que queda el canal.

En una emisión, el script se ejecuta antes de solicitar la confirmación de descarga, si esta está activada. En una recepción, se ejecuta después de enviar la confirmación.

## Programa de excepción

Este programa se ejecuta cuando se produce un problema durante la transmisión o un error en la carga o descarga de ficheros.

## GUPGRADE

Hasta la versión 5.1, los programas previos y posteriores recibían siempre el resultado de la transmisión en el parámetro 3. A partir de la versión 5.2, cuando se produce un error, Editran ejecuta el programa de excepción en lugar de esos programas.

La variable de entorno `EDI_GUPGRADE` conserva la compatibilidad con scripts antiguos y hace que los programas previos y posteriores sigan recibiendo ese parámetro 3 con el resultado de la transmisión. En este caso, el valor queda en `0000`, ya que si fuera distinto se habría ejecutado el programa de excepción.

En Windows, esta variable debe definirse en el registro de variables del sistema con valor `1`.

![EDI\_GUPGRADE\_WINDOWS](https://3558922613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSQXv5BLHrdIc5WgYzixC%2Fuploads%2Fgit-blob-2ef76f4fe438ae0ea5057c80e83169b8621548f9%2FEDI_GUPGRADE_WINDOWS.png?alt=media)

En Linux, esta variable debe establecerse con valor `1` en el fichero `Env.conf`, ubicado en `${ruta de instalación de connect}/services/Env.conf`.

```env
[Editran]
EDITRAN_HOME=/opt/EditranConnect/core
EDITRAN_SL_HOME=/opt/EditranConnect/core/bin/SL
EDI_GUPGRADE=1
EDI_DBGL=1

[Editran Connect]
EDITRAN_CONNECT_HOME=/opt/EditranConnect
EDITRAN_CONNECT_DATA=/opt/EditranConnect/data
EDITRAN_DDBB_HOST=localhost
EDITRAN_DDBB_PORT=5432
EDITRAN_DDBB_USER=**********
EDITRAN_DDBB_PWD=**********
EDITRAN_HOST_CONNECT=localhost
EDITRAN_PORT_CONNECT=8081
EDITRAN_HOST_SIGN=localhost
EDITRAN_PORT_SIGN=8085
EDITRAN_G_HOST=localhost
EDITRAN_G_PORT=5001
EDITRAN_P_LOCAL_PORT=8078
EDITRAN_LOG_LEVEL=INFO
EDITRAN_TASK_CONTROLLER_THREADS=1
EDITRAN_TASK_CONTROLLER_SIZE_QUEUE=500
EDITRAN_INTERNAL_TOKEN=**********
```

### Parámetros de cada programa

Los parámetros que recibe cada programa son los siguientes:

| Variable | Excepción                         | Previo SIN GUPGRADE         | PREVIO CON GUPGRADE         | Posterior SIN GUPGRADE                                 | Posterior CON GUPGRADE                                 |
| -------- | --------------------------------- | --------------------------- | --------------------------- | ------------------------------------------------------ | ------------------------------------------------------ |
| 0        | Nombre del programa               | Nombre del programa         | Nombre del programa         | Nombre del programa                                    | Nombre del programa                                    |
| 1        | Presentación                      | Presentación                | Presentación                | Presentación                                           | Presentación                                           |
| 2        | Emisión (E) o Recepción (R)       | Emisión (E) o Recepción (R) | Emisión (E) o Recepción (R) | Emisión (E) o Recepción (R)                            | Emisión (E) o Recepción (R)                            |
| 3        | Resultado transmisión (4 dígitos) | Código Local                | RESULTADO                   | Código Local                                           | RESULTADO                                              |
| 4        | Código Local                      | Código Remoto               | Código Local                | Código Remoto                                          | Código Local                                           |
| 5        | Código Remoto                     | Aplicación                  | Código Remoto               | Aplicación                                             | Código Remoto                                          |
| 6        | Aplicación                        |                             | Aplicación                  | Ruta del fichero con la lista de ficheros transmitidos | Aplicación                                             |
| 7        |                                   |                             |                             |                                                        | Ruta del fichero con la lista de ficheros transmitidos |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/operacion/libreta_direcciones/contacto/canal/nuevo_canal/programas_usuario.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
