

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na [disponibilidade AWS da modernização do mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Estruturas de dados do AWS Transform para usuário de mainframe
<a name="ba-endpoints-apx"></a>

Você pode aprender sobre várias estruturas de dados do AWS Transform for mainframe engine na seção a seguir.

**Topics**
+ [Estrutura de mensagens de detalhes de execução de trabalhos](#job-execution-details)
+ [Estrutura de resultados do lançamento da transação](#transaction-outcome)
+ [Estrutura de resultados do registro de lançamento da transação](#transaction-record-outcome)
+ [Possível status de trabalho em uma fila](#jobs-status)
+ [Enviar um trabalho e agendar a entrada do trabalho](#submit-job)
+ [Lista de respostas de trabalhos agendados](#list-scheduled-jobs)
+ [Lista de respostas de trabalhos repetidos](#list-on-hold-jobs)

## Estrutura de mensagens de detalhes de execução de trabalhos
<a name="job-execution-details"></a>

Cada detalhe da execução do trabalho terá os seguintes campos:

scriptId  
o identificador do script chamado.

chamador  
Endereço IP do chamador.

Identifier  
identificador exclusivo de execução do trabalho.

startTime  
data e hora em que a execução de trabalho foi iniciada.

endTime  
data e hora em que a execução de trabalho foi encerrada.

status  
um status para a execução do trabalho. Um valor possível entre:  
+ `DONE`: a execução do trabalho terminou normalmente.
+ `TRIGGERED`: a execução do trabalho foi acionada, mas ainda não foi lançada.
+ `RUNNING`: a execução do trabalho está em execução.
+ `KILLED`: a execução do trabalho foi interrompida.
+ `FAILED`: a execução do trabalho falhou.

executionResult  
uma mensagem para resumir o resultado da execução do trabalho. Essa mensagem pode ser uma mensagem simples se a execução do trabalho ainda não tiver sido concluída ou uma estrutura JSON com os seguintes campos:  
+ exitCode: código de saída numérico; valores negativos indicam situações de falha.
+ program: último programa lançado pelo cargo.
+ status: um valor possível entre:
  + `Error`: quando exitCode = -1; isso corresponde a um erro (técnico) que ocorre durante a execução do trabalho.
  + `Failed`: quando exitCode = -2; Isso corresponde a uma falha que ocorre durante a execução de um programa de serviço (como uma situação ABEND).
  + `Succeeded`: quando exitCode >= 0;
+ stepName: nome da última etapa executada no trabalho.

executionMode  
síncrona ou assíncrona, dependendo da forma como a tarefa foi iniciada.

Exemplo de saída:

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

## Estrutura de resultados do lançamento da transação
<a name="transaction-outcome"></a>

 A estrutura pode conter os seguintes campos:

outCome  
uma string representando o resultado da execução da transação. Os valores possíveis são:  
+ `Success`: a execução da transação foi até o final corretamente.
+ `Failure`: a execução da transação falhou ao terminar corretamente, alguns problemas foram encontrados.

commarea  
uma string representando o valor final COMMAREA, como uma matriz de bytes codificada em byte64. Pode ser uma string vazia.

containerRecord  
(Opcional) Uma string que represente o conteúdo do registro do CONTAINER como uma matriz de bytes codificada em byte64.

serverDescription  
Pode conter informações sobre o servidor que atendeu à solicitação (para fins de depuração). Pode ser uma string vazia.

abendCode  
(Opcional) Se o programa referenciado pela transação iniciada for alterado, o valor do código de abend será exibido como uma string nesse campo.

Respostas de exemplo:

Bem-sucedida

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

Falha

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

## Estrutura de resultados do registro de lançamento da transação
<a name="transaction-record-outcome"></a>

A estrutura pode conter os seguintes campos:

recordContent  
uma string representando o conteúdo do registro do COMMAREA como uma matriz de bytes codificada em byte64.

containerRecord  
uma string representando o conteúdo do registro do CONTAINER como uma matriz de bytes codificada em byte64.

serverDescription  
Pode conter informações sobre o servidor que atendeu à solicitação (para fins de depuração). Pode ser uma string vazia.

Respostas de exemplo:

Bem-sucedida

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

## Possível status de trabalho em uma fila
<a name="jobs-status"></a>

Em uma fila, os trabalhos podem ter o seguinte status:

ATIVO  
O trabalho está sendo executado atualmente na fila.

EXECUTION\$1WAIT  
O trabalho está aguardando a disponibilidade de um thread.

SCHEDULED  
Os trabalhos são programados para execução em uma data e hora específicas.

HOLD  
Job está esperando para ser lançado antes de ser executado.

CONCLUÍDO  
Job foi executado com sucesso.

FAILED  
Houve falha na execução de trabalho.

UNKNOWN  
O status é desconhecido.

## Enviar um trabalho e agendar a entrada do trabalho
<a name="submit-job"></a>

A entrada do trabalho de envio e do trabalho de programação é a serialização JSON de um objeto `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage`. O exemplo de entrada abaixo exibe todos os campos desse tipo de feijão.

Exemplo de entrada para enviar um trabalho:

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

Exemplo de entrada para agendar um trabalho:

```
{
     "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  
Se o número do trabalho for 0, o número do trabalho será gerado automaticamente usando o próximo número na sequência numérica do trabalho. Esse valor deve ser definido como 0 (exceto para fins de teste).

jobPriority  
A prioridade de trabalho padrão em AS400 é 5. O intervalo válido é de 0 a 9, sendo 0 a prioridade mais alta.

jobOnHold  
Se um trabalho for enviado em espera, ele não será executado imediatamente, mas somente quando alguém o “liberar”. Um trabalho pode ser lançado usando a API REST (/release ou /release-all).

scheduleDate e scheduleTime  
Se esses valores não forem nulos, o trabalho será executado na data e hora especificadas. 

Data  
Pode ser fornecido com formato MMddyy ou dd MMyyyy (o tamanho da entrada determinará qual formato será usado)

Hora  
Pode ser fornecido com formato HHmm ou HHmmss (o tamanho da entrada determinará qual formato será usado)

programParams  
Isso será transmitido para o programa como um mapa.

scheduleMisfirePolicy  
Define a estratégia usada quando um gatilho falha no disparo. Os valores possíveis são os seguintes:  

1. Libere a primeira falha no disparo e descarte as outras.

1. Envie um trabalho suspenso para a primeira falha no disparo e descarte as outras falhas.

1. Descarte a falha no disparo.

1. Libere todas as falhas no disparo. A fila de trabalhos executará todos os trabalhos.

## Lista de respostas de trabalhos agendados
<a name="list-scheduled-jobs"></a>

 Essa é a estrutura do endpoint da fila de trabalhos list-jobs. A mensagem de trabalho de envio que foi usada para enviar esse trabalho faz parte da resposta. Isso pode ser usado para fins de rastreamento, teste/reenvio. Quando um trabalho for concluído, a data de início e a data de término também serão preenchidas.

```
[
  {
    "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 respostas de trabalhos repetidos
<a name="list-on-hold-jobs"></a>

Essa é a estrutura do endpoint da fila de trabalhos /schedule/list.

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