Translate

sábado, 18 de outubro de 2025

☕💣🚀 LABORATÓRIO BELLACOSA MAINFRAME: DATABASE IMS 15.5 / 15.6 NA PRÁTICA

 

Bellacosa Mainframe úm laboratorio pratico ims database

☕💣🚀 LABORATÓRIO BELLACOSA MAINFRAME

IMS 15.5 / 15.6 NA PRÁTICA

Do Zero Até um Banco Hierárquico Funcionando


Objetivo

Construir um banco IMS completo:

CLIENTE
 |
 +-- CONTA
       |
       +-- MOVIMENTO

Aprendendo:

  • DBDGEN

  • PSBGEN

  • Managed ACB

  • DFS3PU00

  • DFSURGU0

  • DFSURGL0

  • DL/I

  • COBOL IMS

  • GU

  • GN

  • GNP

  • ISRT

  • REPL

  • DLET

  • Catalog IMS


Cenário

Banco:

BANKDB

Segmentos:

CLIENTE
CONTA
MOVIMENTO

EXERCÍCIO 1

Criando o DBD

Objetivo:

Definir a estrutura hierárquica.

Fonte DBD:

BANKDB   DBD NAME=BANKDB,ACCESS=HDAM

         DATASET DD1=AREA001

CLIENTE SEGM NAME=CLIENTE,BYTES=100
         FIELD NAME=(CPF,SEQ,U),BYTES=11,START=1

CONTA    SEGM NAME=CONTA,
               PARENT=CLIENTE,
               BYTES=80

         FIELD NAME=(NUMCONTA,SEQ,U),
               BYTES=10,
               START=1

MOVIM    SEGM NAME=MOVIMENTO,
               PARENT=CONTA,
               BYTES=120

         FIELD NAME=(DATA,SEQ),
               BYTES=8,
               START=1

         DBDGEN
         FINISH
         END

Resultado esperado:

BANKDB DBD gerado sem erros

Solução

Executar DBDGEN.


EXERCÍCIO 2

Executando DBDGEN

JCL:

//DBDGEN JOB
//ASM EXEC PGM=ASMA90
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=IMS.SOURCE(BANKDB),DISP=SHR

Validar:

RC=0000

Solução

Verificar:

DBDLIB

contendo:

BANKDB

EXERCÍCIO 3

Criando o PSB

Criar acesso para COBOL.

BANKPSB  PSBGEN LANG=COBOL

PCB TYPE=DB,
    DBDNAME=BANKDB,
    PROCOPT=A

END

Solução

Executar:

PSBGEN

Resultado:

PSBLIB

EXERCÍCIO 4

Inserindo no IMS Catalog

IMS 15.5 e 15.6 utilizam:

Managed ACB

Executar:

DFS3PU00

para publicar:

DBD
PSB

no Catalog.


Solução

Comando:

IMPORT DEFN SOURCE(CATALOG)

Validação:

QUERY DB NAME(BANKDB)

EXERCÍCIO 5

Alocando a Base Física

Criar DBDS.

//ALLOC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 DEFINE CLUSTER -
 (NAME(IMS.BANKDB.AREA001) -
 CYLINDERS(10 5))
/*

Solução

Dataset criado:

IMS.BANKDB.AREA001

EXERCÍCIO 6

Carga Inicial com DFSURGU0

Arquivo de entrada:

CLIENTE12345678901JOAO SILVA
CONTA0000001001
MOVIMENTO20240101PIX000100
MOVIMENTO20240102TED000200

JCL:

//LOAD EXEC PGM=DFSURGU0
//SYSOUT DD SYSOUT=*
//INPUT DD *
CLIENTE12345678901JOAO SILVA
CONTA0000001001
MOVIMENTO20240101PIX000100
MOVIMENTO20240102TED000200
/*

Solução

Banco carregado.

RC=0000

EXERCÍCIO 7

Extraindo Dados com DFSURGL0

JCL:

//UNLOAD EXEC PGM=DFSURGL0
//SYSOUT DD SYSOUT=*
//SYSUT1 DD SYSOUT=*

Solução

Saída:

CLIENTE
CONTA
MOVIMENTO
MOVIMENTO

EXERCÍCIO 8

Programa COBOL - Leitura GU

Objetivo:

Ler cliente específico.

CALL 'CBLTDLI'
 USING
 'GU  '
 PCB-MASK
 CLIENTE-AREA
 SSA-CLIENTE

SSA:

CLIENTE(CPF =12345678901)

Solução

Status:

SPACE

Registro encontrado.


EXERCÍCIO 9

Programa COBOL - Inserção ISRT

Inserir nova conta.

CALL 'CBLTDLI'
 USING
 'ISRT'
 PCB-MASK
 CONTA-AREA

Solução

Nova ocorrência criada:

CLIENTE
 |
 +-- CONTA

EXERCÍCIO 10

CRUD Completo

Executar:

Consulta

GU
GN
GNP

Atualização

REPL

Exclusão

DLET

Solução

Fluxo:

GU CLIENTE

GN CONTA

REPL CONTA

DLET MOVIMENTO

Programa COBOL Completo

IDENTIFICATION DIVISION.
PROGRAM-ID. BANKIMS.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 DLI-GU PIC X(4) VALUE 'GU  '.

LINKAGE SECTION.

01 PCB-MASK.
   05 STATUS-CODE PIC XX.

PROCEDURE DIVISION.

MAIN.

CALL 'CBLTDLI'
 USING
 DLI-GU
 PCB-MASK
 IO-AREA
 SSA.

IF STATUS-CODE = SPACES
 DISPLAY 'REGISTRO ENCONTRADO'
END-IF.

GOBACK.

Desafio Extra 1

Adicionar segmento:

ENDERECO

abaixo de CLIENTE.


Desafio Extra 2

Adicionar segmento:

CARTAO

abaixo de CONTA.


Desafio Extra 3

Criar programa COBOL para listar toda árvore:

CLIENTE
CONTA
MOVIMENTO

usando:

GU
GNP
GN

Desafio Extra 4

Criar utility REXX para executar:

ADDRESS TSO

"SUBCOM IMS"

"QUERY DB NAME(BANKDB)"

e validar status do banco.


Resultado Final Esperado

Hierarquia criada:

CLIENTE
 CPF=12345678901

   CONTA
   0000001001

      MOVIMENTO
      PIX

      MOVIMENTO
      TED

Conhecimentos adquiridos:

✓ DBDGEN

✓ PSBGEN

✓ IMS Catalog

✓ Managed ACB

✓ DFS3PU00

✓ DFSURGU0

✓ DFSURGL0

✓ DL/I

✓ COBOL IMS

✓ GU

✓ GN

✓ GNP

✓ ISRT

✓ REPL

✓ DLET

✓ Administração IMS 15.5 / 15.6


Sem comentários:

Enviar um comentário