Desencadeamento de tarefas de lote de mainframe
-
28-09-2019 - |
Pergunta
Eu sou novo no CICS. Eu tenho uma consulta, podemos desencadear uma transação completa do CICS em lote? Quero acionar um trabalho em lote através do programa que é executado pela transação do CICS, é possível?
Solução
Sim é possivel.
Seus programadores do sistema precisam configurar uma fila de dados transitórios de partição extra cuja instrução DD está apontando para o leitor interno do JES.
Você precisa escrever o JCL na fila de dados transitórios, incluindo o último // do cartão.
Você é responsável por garantir o acesso em série à fila de dados transitórios com os comandos CICS Enqueue e Dequeue.
O cartão de trabalho precisa conter um ID do usuário e uma senha, para que o trabalho seja executado em sua conta e não no ID do usuário da região do CICS.
Outra opção é o comando spoolopen do CICS.
Aqui está algum código COBOL que usa o comando spoolopen.
EXEC CICS SPOOLOPEN OUTPUT
NODE ('LOCAL')
USERID ('INTRDR')
RESP(RETCODE)RESP2(RESP2)
TOKEN(TOKEN)
END-EXEC
PERFORM VARYING JCL-IND FROM +1 BY +1
UNTIL RETCODE NOT = DFHRESP(NORMAL)
OR JCL-IND > jcl-ind-max
MOVE JCLELE (JCL-IND) TO JOBQUEUE
EXEC CICS SPOOLWRITE
FROM(JOBQUEUE)
RESP(RETCODE) RESP2(RESP2)
FLENGTH(OUTLEN)
TOKEN(TOKEN)
END-EXEC
END-PERFORM
EXEC CICS SPOOLCLOSE
TOKEN(TOKEN)
RESP(RETCODE) RESP2(RESP2)
END-EXEC
Eu encontrei essas informações em um Wiki do CICS.