

AWS El servicio de modernización de mainframes (experiencia en entornos de ejecución gestionados) ya no está abierto a nuevos clientes. Para obtener prestaciones similares a las del Servicio de Modernización de AWS Mainframe (experiencia en entornos de ejecución gestionados), explore el Servicio de Modernización de AWS Mainframe (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte Cambio en la disponibilidad de la modernización del [AWS mainframe.](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Estructuras de datos para usuarios de AWS Blu Age
<a name="ba-endpoints-apx"></a>

Puede obtener información sobre las diversas estructuras de datos del motor AWS Blu Age en la siguiente sección.

**Topics**
+ [Estructura de mensajes de detalles de ejecución del trabajo](#job-execution-details)
+ [Estructura de resultados del lanzamiento de la transacción](#transaction-outcome)
+ [Estructura de resultados del registro de lanzamiento de la transacción](#transaction-record-outcome)
+ [Los posibles estados de un trabajo en una cola son:](#jobs-status)
+ [Entrada de envío y de programación del trabajo](#submit-job)
+ [Lista de respuestas a los trabajos programados](#list-scheduled-jobs)
+ [Lista de respuestas de trabajos recurrentes](#list-on-hold-jobs)

## Estructura de mensajes de detalles de ejecución del trabajo
<a name="job-execution-details"></a>

Los detalles de la ejecución de cada trabajo tendrán los siguientes campos:

ScriptId  
el identificador del script llamado.

caller  
dirección IP del programa que llama.

identificador  
identificador único de ejecución del trabajo.

startTime  
la fecha y hora de inicio de la ejecución del trabajo.

endTime  
la fecha y hora de fin de la ejecución del trabajo.

status  
un estado de la ejecución del trabajo. Un valor posible entre:  
+ `DONE`: la ejecución del trabajo ha finalizado con normalidad.
+ `TRIGGERED`: la ejecución del trabajo se ha activado pero aún no se ha iniciado.
+ `RUNNING`: la ejecución del trabajo se está ejecutando.
+ `KILLED`: la ejecución del trabajo ha sido cancelada.
+ `FAILED`: la ejecución del trabajo ha fallado.

executionResult  
un mensaje para resumir el resultado de la ejecución del trabajo. Este mensaje puede ser un mensaje simple si la ejecución del trabajo aún no ha finalizado o una estructura JSON con los siguientes campos:  
+ exitCode: código de salida numérico; los valores negativos indican situaciones de fallo.
+ program: último programa lanzado por el trabajo.
+ status: un valor posible entre:
  + `Error`: cuando exitCode = -1; corresponde a un error (técnico) que se produce durante la ejecución del trabajo.
  + `Failed`: cuando exitcode = -2; corresponde a un fallo que se produce durante la ejecución de un programa de servicio (como una situación ABEND).
  + `Succeeded`: cuando exitCode >= 0;
+ stepName: nombre del último paso ejecutado en el trabajo.

executionMode  
SYNCHRONOUS o ASYNCHRONOUS, según la forma en que se haya iniciado el trabajo.

Salida de ejemplo:

```
{
    "scriptId": "INTCALC",
    "caller": "127.0.0.1",
    "identifier": "97d410be-efa7-4bd3-b7b9-d080e5769771",
    "startTime": "06-09-2023 11:42:41",
    "endTime": "06-09-2023 11:42:42",
    "status": "DONE",
    "executionResult": "{ \"exitCode\": -1, \"stepName\": \"STEP15\", \"program\": \"CBACT04C\", \"status\": \"Error\" }",
    "executionMode": "ASYNCHRONOUS"
  }
```

## Estructura de resultados del lanzamiento de la transacción
<a name="transaction-outcome"></a>

 La estructura podría contener los siguientes campos:

outCome  
una cadena que representa el resultado de la ejecución de la transacción. Los valores posibles son los siguientes:  
+ `Success`: la ejecución de la transacción ha finalizado correctamente.
+ `Failure`: la ejecución de la transacción no ha finalizado correctamente, se han producido algunos problemas.

commarea  
una cadena que representa el valor final de COMMAREA, como una matriz de bytes codificada en byte64. Puede ser una cadena vacía.

containerRecord  
(Opcional) Cadena que representa el contenido del registro de CONTAINER como matriz de bytes codificada en byte64.

serverDescription  
Puede contener información sobre el servidor que ha atendido la solicitud (con fines de depuración). Puede ser una cadena vacía.

abendCode  
(Opcional) Si el programa al que se hace referencia en la transacción iniciada está ausente, el valor del código de abend se devolverá en forma de cadena en este campo.

Respuestas de ejemplo

Success

```
{
    "outCome": "Success",
    "commarea": "",
    "serverDescription": ""
  }
```

Failure

```
{
    "outCome": "Failure",
    "commarea": "",
    "serverDescription": "",
    "abendCode": "AEIA"
  }
```

## Estructura de resultados del registro de lanzamiento de la transacción
<a name="transaction-record-outcome"></a>

La estructura podría contener los siguientes campos:

recordContent  
una cadena que representa el contenido del registro del COMMAREA como una matriz de bytes codificada en byte64.

containerRecord  
una cadena que representa el contenido del registro del CONTAINER como una matriz de bytes codificada en byte64.

serverDescription  
Puede contener información sobre el servidor que ha atendido la solicitud (con fines de depuración). Puede ser una cadena vacía.

Respuestas de ejemplo

Success

```
{
    "recordContent": "",
    "serverDescription": ""
}
```

## Los posibles estados de un trabajo en una cola son:
<a name="jobs-status"></a>

En una cola, los trabajos pueden tener el siguiente estado:

ACTIVE  
El trabajo se está ejecutando actualmente en la cola.

EXECUTION\$1WAIT  
El trabajo está esperando a que haya un subproceso disponible.

SCHEDULED  
La ejecución del trabajo está programada en una fecha y hora específicas.

HOLD  
El trabajo está esperando a ser publicado antes de ejecutarse.

COMPLETED  
El trabajo se ha ejecutado correctamente.

ERROR  
La ejecución del trabajo ha fallado.

UNKNOWN  
Se desconoce el estado.

## Entrada de envío y de programación del trabajo
<a name="submit-job"></a>

La entrada de envío y de programación del trabajo es la serialización en JSON de un objeto `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage`. El ejemplo de entrada que aparece a continuación muestra todos los campos de dicho bean.

Ejemplo de entrada para envío de trabajo:

```
{
    "messageQueueName":null,
    "scheduleDate":null,
    "scheduleTime":null,
    "programName":"PTA0044",
    "programParams":
     {"wmind":"B"},
    "localDataAreaValue":"",
    "userName":"USER1",
    "jobName":"PTA0044",
    "jobNumber":9,
    "jobPriority":5,
    "executionDate":"20181231",
    "jobQueue":"queue1",
    "jobOnHold":false
}
```

Ejemplo de entrada para programación de trabajo:

```
{
     "scheduleCron": "*/2 * * * * ?",
     "programName":"LOGPGM",
     "programParams": {
         "cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 2 seconds!\"]"
     },
     "localDataAreaValue":"",
     "userName":"PVO",
     "jobName":"LOGGERJOB",
     "jobPriority":5,
     "jobQueue":"queue1",
     "scheduleMisfirePolicy": 4,
     "startTime": "2003/05/04 07:00:00.000 GMT-06:00",
     "endTime": "2003/05/04 07:00:07.000 GMT-06:00"
 }
```

jobNumber  
si el número de trabajo es 0, el número de trabajo se generará automáticamente utilizando el siguiente número de la secuencia de números de trabajo. Ese valor debe establecerse en 0 (excepto para fines de prueba).

jobPriority  
La prioridad de trabajo predeterminada en AS4 00 es 5. El rango válido es de 0 a 9, siendo 0 la prioridad más alta.

jobOnHold  
Si un trabajo se envía en espera, no se ejecutará de inmediato, sino cuando alguien lo “publique”. Se puede publicar un trabajo mediante la API de REST (/release o /release-all).

scheduleDate y scheduleTime  
Si estos valores no son null, el trabajo se ejecutará en la fecha y hora especificadas. 

Date  
Se puede proporcionar con formato MMddyy o dd MMyyyy (el tamaño de la entrada determinará el formato que se utilice)

Tiempo  
Se puede proporcionar con formato HHmm o HHmmss (el tamaño de la entrada determinará qué formato se utilizará)

programParams  
Esto se pasará al programa como mapa.

scheduleMisfirePolicy  
Define la estrategia utilizada cuando un desencadenador no se activa correctamente. A continuación se muestran los posibles valores:  

1. Libera la primera activación incorrecta y descarta las demás activaciones incorrectas.

1. Envíe un trabajo en espera para la primera activación incorrecta y descarte las demás activaciones incorrectas.

1. Descarte la activación incorrecta.

1. Libere todas las activaciones incorrectas. La cola de trabajos ejecutará todos los trabajos.

## Lista de respuestas a los trabajos programados
<a name="list-scheduled-jobs"></a>

 Esta es la estructura del punto de conexión de la cola de trabajos de la lista de trabajos. El mensaje de envío de trabajo que se ha utilizado para enviar ese trabajo forma parte de la respuesta. Este se puede utilizar para realizar un seguimiento, realizar pruebas o volver a enviarlo. Cuando se complete un trabajo, también se rellenarán la fecha de inicio y la fecha de finalización.

```
[
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "HOLD",
    "jobDelay": 0,
    "startDate": null,
    "endDate": null,
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": null,
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 1,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  },
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "COMPLETED",
    "jobDelay": 0,
    "startDate": "2022-10-13T22:48:34.025+00:00",
    "endDate": "2022-10-13T22:52:54.475+00:00",
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 2,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  }
]
```

## Lista de respuestas de trabajos recurrentes
<a name="list-on-hold-jobs"></a>

Esta es la estructura del punto final de la cola de the /schedule/list trabajos.

```
[
  {
    "id": 1,
    "status": "ACTIVE",
    "jobNumber": 1,
    "userName": "PVO",
    "msg": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "startTime": "2024/03/07 21:12:00.000 UTC",
      "endTime": "2024/03/07 21:13:59.000 UTC",
      "programName": "LOGPGM",
      "programParams": {"cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 20 seconds!\"]"},
      "localDataAreaValue": "",
      "userName": "PVO",
      "jobName": "LOGGERJOB",
      "jobNumber": 1,
      "jobScheduleId": 1,
      "jobPriority": 5,
      "executionDate": null,
      "jobQueue": "queue1",
      "jobOnHold": false,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "lastUpdatedAt": "2024-03-07T21:11:13.282+00:00",
    "lastUpdatedBy": ""
  }
]
```