> 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/open-v5.3/windows/versionado_envio_clave_propia.md).

# Ejemplos prácticos

Este procedimiento explica cómo automatizar la generación de una nueva versión de la clave de un subsistema propio y su envío a una selección de remotos utilizando los comandos del producto.

## Requisitos y consideraciones previas

* Planificación\
  La generación de la nueva versión de la clave y su envío a los remotos debe realizarse conforme a un calendario previamente definido.
* Concurrencia con procesos en remotos\
  No debe coincidir con procesos de envío de clave iniciados desde los propios remotos.\
  El procedimiento utiliza la presentación TELEGC para enviar el fichero de exportación de la clave propia. Si un remoto envía su clave en paralelo, estos ficheros pueden sobrescribirse, alterando el flujo y produciendo errores.
* Ámbito\
  Este procedimiento solo aplica a remotos que ya tienen una versión activa de la clave. No es válido para nuevos remotos, ya que no realiza la creación inicial de presentaciones TELEGC.
* Estado previo de la clave\
  Antes de ejecutar el proceso, la clave debe estar activa en todos los remotos listados y no debe existir una nueva versión ya generada.
* Comportamiento ante errores\
  Si falla la generación de la nueva versión de la clave con el primer remoto, el proceso se interrumpe inmediatamente (no hay versión creada; no se puede continuar). En los demás casos, el proceso no se detiene: continúa con el siguiente remoto, registrando en el log tanto operaciones correctas como errores.

## Garantías de la ejecución

* Se debe revisar el log para identificar si existen remotos que han presentado problemas durante la generación de la nueva versión y/o su envío.
* La finalización sin errores en un remoto únicamente acredita que el envío se ha realizado sin incidencias. Es imprescindible verificar manualmente que la nueva versión de la clave esté activa tanto en el sistema local como en todos los remotos.

## Script

A continuación se muestra un ejemplo de script de creación de la nueva versión del subsistema propio N asociado al local W00000010 y su envío a los remotos L00000010 y L00000110.

```bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

REM --- Configuración de log y parámetros ---
set "LOGDIR=C:\Editran\log"
set "LOGFILE=%LOGDIR%\versionadoSubsistema.log"
set "LOCAL=W00000010"
set "SUBSISTEMA=N"
set "NBITS=4096"
REM Lista de remotos separados entre si por un espacio
set "REMOTOS=L00000010 L00000110"

REM Retorno del script
set "RET=0"

echo Generando nueva version de subsistema propio %SUBSISTEMA% ... > "%LOGFILE%"

set "FIRST=1"
set "VFIRST=-v"

for %%R in (%REMOTOS%) do (
    echo.>> "%LOGFILE%"
    echo Tratando remoto: %%R>> "%LOGFILE%"

    REM Construir comando gc_config (con -v solo para el primer remoto)
    if "!FIRST!"=="1" (
        set "FIRST=0"
    ) else (
        set "VFIRST="
    )

    REM ejecutar gc_config
    gc_config !VFIRST! -k!NBITS! -l!LOCAL! -r%%R -s!SUBSISTEMA! >> "%LOGFILE%" 2>&1
    set "RC=!ERRORLEVEL!"
    if "!RC!"=="1" (
        timeout /t 3 /nobreak >nul
        
        set "TELEGC=!LOCAL!-%%R-TELEGC"
        echo Envio !TELEGC! ... >> "%LOGFILE%"
        
        REM ejecutar igacmd
        igacmd -o Send -p "!TELEGC!" -w -v >> "%LOGFILE%" 2>&1
        if "!ERRORLEVEL!"=="0" (
            echo Enviada correctamente la nueva version del subsistema %SUBSISTEMA% con local %LOCAL% al remoto %%R >> "%LOGFILE%"
        ) else (
            echo Error en el envio de la nueva version del subsistema %SUBSISTEMA% con local %LOCAL% al remoto %%R >> "%LOGFILE%"
            set "RET=1"
        )
    ) else (        
        echo Error en la generacion de la nueva version del subsistema %SUBSISTEMA% con local %LOCAL% y remoto %%R >> "%LOGFILE%"        
        set "RET=1"

        if "!VFIRST!"=="-v" (
            goto end
        )
    )

    timeout /t 3 /nobreak >nul
)

:end
ENDLOCAL & set "RET=%RET%"
exit /b %RET%
```

> *Nota*:\
> En este script el comando gc\_config se utiliza para generar la nueva versión de la clave de un subsistema. Es importante entender que:
>
> * El parámetro -v indica que se debe crear una nueva versión de la clave.
> * Esta operación solo se realiza una vez, con el primer remoto de la lista. Esto garantiza que se genere una única versión consistente.
> * En las iteraciones siguientes, gc\_config no lleva -v, porque ya existe la versión creada en la primera ejecución. En estas llamadas, el comando simplemente aplica esa versión a los demás remotos.


---

# 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/open-v5.3/windows/versionado_envio_clave_propia.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.
