Este documento explica como o laboratório utiliza Zowe CLI e Zowe Explorer para conectar o projeto local ao ambiente mainframe remoto. O uso de Zowe é central no Emunah Bank Lab porque ele viabiliza um fluxo moderno de trabalho (Mainframe-as-Code) sem abandonar a dinâmica operacional e a robustez do z/OS.
O laboratório é organizado em uma arquitetura de três camadas interdependentes. O sucesso da operação depende do respeito ao papel de cada uma:
- Camada Local — Onde o código "nasce". Fontes, JCLs, Copybooks e documentação residem aqui e são versionados via Git.
- Camada Remota — Onde o código "trabalha". Datasets, Jobs, Spool e arquivos de negócio (VSAM/GDG) residem no z/OS.
- Camada 3270 — Onde o código é "investigado". Terminal para troubleshooting profundo, uso de SDSF e ISPF quando a interface gráfica não for suficiente.
O Zowe atua como a ponte de integração, permitindo que o desenvolvedor opere o mainframe sem sair do VS Code.
- Ferramentas: VS Code, Zowe CLI, Git.
- Ações: Edição de programas COBOL, construção de JCLs, manutenção de layouts de Copybooks e scripts de automação REXX.
- Source of Truth: Todo arquivo nesta camada é a versão oficial e final.
- Componentes: JES2 (Jobs), PDS/PDSE (Bibliotecas), VSAM (KSDS/ESDS), GDG (Histórico).
- Ações: Compilação (Build), Execução Batch, Gerenciamento de Arquivos de Dados e geração de Spool.
- Ferramentas: TN3270 (ISPF/SDSF).
- Ações: Diagnóstico de ABENDs complexos, consulta detalhada de catálogos e operação de console quando necessário.
O desenvolvedor deve seguir rigorosamente esta sequência para garantir a integridade do ambiente:
- Editar os arquivos localmente no VS Code.
- Salvar na estrutura de pastas local do projeto (respeitando a organização por tipo).
- Publicar no ambiente remoto via Zowe Explorer (drag-and-drop) ou CLI (upload).
- Conferir se o membro foi gravado corretamente no PDS remoto.
- Submeter o JCL de Build (
EBCOMP) para gerar o módulo de carga (LOADLIB). - Submeter o JCL da cadeia batch ou utilitário.
- Acompanhar o status e o Return Code (RC) no Zowe Explorer.
- Investigar erros (RC > 4) através do Spool ou via SDSF no 3270.
- Corrigir obrigatoriamente no local, republicar e repetir o ciclo.
Para que o sistema funcione, os arquivos devem ser publicados nos destinos corretos:
| Pasta Local | Dataset Remoto (PDS/SEQ) | Tipo de Artefato |
|---|---|---|
copybooks/layouts/ |
<HLQ>.EMUNAH.DEV.COPY |
Layouts de Registro |
cobol/batch/ |
<HLQ>.EMUNAH.DEV.COBOL |
Código-fonte COBOL |
jcl/batch/ |
<HLQ>.EMUNAH.DEV.JCL |
Jobs da Grade Operacional |
jcl/compile/ |
<HLQ>.EMUNAH.DEV.JCL |
Jobs de Compilação/Build |
data/normalized/ |
<HLQ>.EMUNAH.STAGE.ENTRADA.SEQ |
Massa de Dados (Upload) |
Nota Técnica: O upload de dados nunca deve ser feito diretamente no arquivo de produção (
ARQ.ENTRADA.SEQ). O arquivo deve subir para o STAGE, onde o jobEBJWAITfará a validação de integridade antes da promoção.
O ciclo operacional mais comum envolve:
- Build: Submissão de
EBCOMP(Compilação),EBLINK(Link-edição) eEBBUILD(Automação de Build). - Dados: Envio da massa via Zowe CLI
files upload. - Batch: Submissão da cadeia governada pelo
ARQ.CTL.STATUS. - Diagnóstico: Download do Spool via Zowe para análise de logs de erro localmente.
- Local é Lei: Nunca altere um código no mainframe (via ISPF 2) e esqueça de atualizar o local. O repositório Git deve refletir exatamente o que está no host.
- RC é Vida: Um Job com RC 0008 ou 0012 não é um "job que rodou". É uma falha que exige investigação imediata.
- Edição Remota é Exceção: Use a edição direta no Zowe Explorer apenas para testes rápidos e descartáveis. Alterações permanentes exigem o fluxo local.
- Respeite o Layout: Arquivos sequenciais enviados via Zowe devem respeitar o LRECL (ex: 120 bytes para lançamentos). Use o modo binário ou ASCII conforme a necessidade do processamento COBOL.
O fluxo está adequado quando o desenvolvedor consegue:
- Reinstalar todo o ambiente em um novo HLQ apenas publicando a estrutura local.
- Submeter jobs sem precisar "limpar" datasets manualmente no 3270 (automação via IDCAMS).
- Corrigir bugs de lógica em segundos, republicando apenas o membro afetado.
- Manter o histórico de alterações via commits no Git.
- Alteração no cálculo de juros em
EBACCR01.cbl(Local). - Upload para
<HLQ>.EMUNAH.DEV.COBOL(EBACCR01). - Submissão do JCL de compilação.
- Verificação do Spool:
IGYCCretornou RC 0000. - Submissão do Job
EBJACCR. - Verificação do resultado no dataset de saída
ARQ.ACCR.MOV.SEQ. - Commit das alterações no repositório local.