| 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