

AWS Il servizio di modernizzazione del mainframe (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a AWS Mainframe Modernization Service (esperienza Managed Runtime Environment), esplora AWS Mainframe Modernization Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. [Per ulteriori informazioni, consulta AWS Modifica della disponibilità di Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Strutture di dati per AWS Transform per utenti mainframe
<a name="ba-endpoints-apx"></a>

Puoi scoprire varie strutture di dati per il motore AWS Transform for mainframe nella sezione seguente.

**Topics**
+ [Dettagli sull'esecuzione del lavoro, struttura dei messaggi](#job-execution-details)
+ [Struttura dei risultati del lancio della transazione](#transaction-outcome)
+ [Struttura dei risultati del record di avvio delle transazioni](#transaction-record-outcome)
+ [Possibile stato di un lavoro in coda](#jobs-status)
+ [Invia il lavoro e pianifica l'input del lavoro](#submit-job)
+ [Elenco delle risposte ai lavori pianificati](#list-scheduled-jobs)
+ [Elenco delle risposte ai lavori ripetuti](#list-on-hold-jobs)

## Dettagli sull'esecuzione del lavoro, struttura dei messaggi
<a name="job-execution-details"></a>

I dettagli di esecuzione di ogni processo avranno i seguenti campi:

ScriptID  
l'identificatore dello script chiamato.

chiamante  
indirizzo IP del chiamante.

identificatore  
identificatore univoco di esecuzione del lavoro.

startTime  
data e ora di inizio dell'esecuzione del lavoro.

endTime  
data e ora in cui è terminata l'esecuzione del lavoro.

status  
uno stato per l'esecuzione del lavoro. Un valore possibile tra:  
+ `DONE`: l'esecuzione del lavoro è terminata normalmente.
+ `TRIGGERED`: esecuzione del processo attivata ma non ancora avviata.
+ `RUNNING`: l'esecuzione del processo è in esecuzione.
+ `KILLED`: l'esecuzione del lavoro è stata interrotta.
+ `FAILED`: l'esecuzione del processo non è riuscita.

Risultato dell'esecuzione  
un messaggio per riassumere il risultato dell'esecuzione del lavoro. Questo messaggio può essere un messaggio semplice se l'esecuzione del lavoro non è ancora terminata o una struttura JSON con i seguenti campi:  
+ ExitCode: codice di uscita numerico; i valori negativi indicano situazioni di errore.
+ programma: ultimo programma lanciato dal job.
+ status: un valore possibile tra:
  + `Error`: quando exitCode = -1; ciò corrisponde a un errore (tecnico) che si verifica durante l'esecuzione del lavoro.
  + `Failed`: when exitcode = -2; Ciò corrisponde a un errore che si verifica durante l'esecuzione di un programma di servizio (come una situazione ABEND).
  + `Succeeded`: quando ExitCode >= 0;
+ StepName: nome dell'ultimo passaggio eseguito nel job.

executionMode  
SINCRONO o ASINCRONO, a seconda del modo in cui il lavoro è stato avviato.

Output di esempio:

```
{
    "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"
  }
```

## Struttura dei risultati del lancio della transazione
<a name="transaction-outcome"></a>

 La struttura potrebbe contenere i seguenti campi:

Risultato  
una stringa che rappresenta il risultato dell'esecuzione della transazione. I valori possibili sono:  
+ `Success`: l'esecuzione della transazione è andata a buon fine.
+ `Failure`: l'esecuzione della transazione non è riuscita a terminare correttamente, sono stati riscontrati alcuni problemi.

- compara  
una stringa che rappresenta il valore finale di COMMAREA, come matrice di byte con codifica byte64. Potrebbe essere una stringa vuota.

ContainerRecord  
(Facoltativo) una stringa che rappresenta il contenuto del record di CONTAINER come array di byte con codifica byte64.

Descrizione del server  
Può contenere informazioni sul server che ha fornito la richiesta (a scopo di debug). Potrebbe essere una stringa vuota.

Un codice di fine  
(Facoltativo) se il programma a cui fa riferimento la transazione avviata è annullato, il valore del codice abend verrà restituito come stringa in questo campo.

Esempi di risposte:

Completato

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

Errore

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

## Struttura dei risultati del record di avvio delle transazioni
<a name="transaction-record-outcome"></a>

La struttura potrebbe contenere i seguenti campi:

Contenuto del record  
una stringa che rappresenta il contenuto del record di COMMAREA come un array di byte con codifica byte64.

ContainerRecord  
una stringa che rappresenta il contenuto del record del CONTAINER come array di byte codificato in byte64.

Descrizione del server  
Può contenere informazioni sul server che ha fornito la richiesta (a scopo di debug). Potrebbe essere una stringa vuota.

Esempi di risposte:

Completato

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

## Possibile stato di un lavoro in coda
<a name="jobs-status"></a>

In una coda, i lavori possono avere il seguente stato:

ACTIVE  
Il processo è attualmente in esecuzione sulla coda.

ESECUZIONE\_ATTESA  
Il lavoro è in attesa che un thread sia disponibile.

SCHEDULED  
L'esecuzione dei lavori è pianificata in una data e ora specifiche.

HOLD  
Job è in attesa di essere rilasciato prima di essere eseguito.

COMPLETED  
Job è stato eseguito con successo.

NON RIUSCITO  
L'esecuzione del Job non è riuscita.

UNKNOWN  
Lo stato è sconosciuto.

## Invia il lavoro e pianifica l'input del lavoro
<a name="submit-job"></a>

L'input del processo di invio e pianificazione è la serializzazione JSON di un `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage` oggetto. L'input di esempio riportato di seguito mostra tutti i campi relativi a tale bean.

Esempio di input per l'invio del lavoro:

```
{
    "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
}
```

Esempio di input per pianificare un lavoro:

```
{
     "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"
 }
```

Numero del lavoro  
se il numero del lavoro è 0, il numero del lavoro verrà generato automaticamente utilizzando il numero successivo nella sequenza numerica del lavoro. Tale valore deve essere impostato su 0 (tranne che a scopo di test).

Priorità del lavoro  
La priorità del lavoro predefinita in AS400 è 5. L'intervallo valido è 0-9, dove 0 è la priorità più alta.

jobOnHold  
Se un lavoro viene inviato in sospeso, non verrà eseguito immediatamente ma solo quando qualcuno lo «rilascia». Un job può essere rilasciato utilizzando l'API REST (/release o /release-all).

ScheduleDate e ScheduleTime  
Se questi valori non sono nulli, il lavoro verrà eseguito alla data e all'ora specificate. 

Data  
Può essere fornito con format MMddyy o dd MMyyyy (la dimensione dell'input determinerà il formato utilizzato)

Orario  
Può essere fornito con format HHmm o HHmmss (la dimensione dell'input determinerà il formato utilizzato)

Parametri del programma  
Verrà passato al programma come mappa.

scheduleMisfirePolicy  
Definisce la strategia utilizzata quando un trigger viene attivato male. Di seguito sono riportati i valori possibili:  

1. Rilascia il primo errore e scarta gli altri.

1. Invia un lavoro in sospeso per il primo errore e scarta gli altri errori.

1. Scarta l'errore di accensione.

1. Rilascia tutti i fallimenti. La coda dei lavori eseguirà tutti i lavori.

## Elenco delle risposte ai lavori pianificati
<a name="list-scheduled-jobs"></a>

 Questa è la struttura dell'endpoint list-jobs job queue. Il messaggio di invio del lavoro utilizzato per inviare quel lavoro fa parte della risposta. Può essere usato per tracciare o testare o inviare nuovamente. Quando un lavoro viene completato, verranno inserite anche la data di inizio e la data di fine.

```
[
  {
    "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
  }
]
```

## Elenco delle risposte ai lavori ripetuti
<a name="list-on-hold-jobs"></a>

Questa è la struttura dell'endpoint /schedule/listjob queue.

```
[
  {
    "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": ""
  }
]
```