Responder
Foto de Usuario
Julio Paz

Ranking Troomes
Mensajes: 20
Registrado: 16 Sep 2013, 11:30
Ubicación: Lima
Contactar:

Mainframe - Sort JoinKeys, Adios al "-Matching-"

Mensaje por Julio Paz » 03 Oct 2013, 14:07

Herramienta que permite realizar Matching de Datos y obtener resultados asombrosos, sin necesidad de hacer un programa; Tratare de explicarles un poco a detalle:

Este ejemplo, crea a partir de dos ficheros de entrada; ficheros de salida de los q hacen -Matching- y no -Matching-
Los ficheros de input contienen una lista de nombres (positions 1-10):
Input File1

Vicky
Frank
Carrie
Holly
David

Input File2

Karen
Holly
Carrie
Vicky
Mary

Vamos a crear los files de output siguientes:
1er bote de salida, donde encontramos los registros que existen en File1 y File2 (Key's iguales)
2do bote de los q solamente se encuentran en File1
3er bote de los q solamente se encuentran en File2

1era Salida OUT12
Carrie
Holly
Vicky
2da Salida OUT1
David
Frank
3era Salida OUT2
Karen
Mary

Here's a DFSORT JOINKEYS job for this:

//JK5 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//IN1 DD DSN=... input File1 (FB/10)
//IN2 DD DSN=... input File2 (FB/10)
//OUT12 DD SYSOUT=* names in File1 and File2
//OUT1 DD SYSOUT=* names in File1 only
//OUT2 DD SYSOUT=* names in File2 only
//SYSIN DD *
JOINKEYS F1=IN1,FIELDS=(1,10,A)
JOINKEYS F2=IN2,FIELDS=(1,10,A)
JOIN UNPAIRED,F1,F2
REFORMAT FIELDS=(F1:1,10,F2:1,10,?)
OPTION COPY
OUTFIL FNAMES=OUT12,INCLUDE=(21,1,CH,EQ,C'B'),
BUILD=(1,10)
OUTFIL FNAMES=OUT1,INCLUDE=(21,1,CH,EQ,C'1'),
BUILD=(1,10)
OUTFIL FNAMES=OUT2,INCLUDE=(21,1,CH,EQ,C'2'),
BUILD=(11,10)
/*Eoj

Otro ejemplo, ejecutado en instalaciones de IBM Mainframe - BBVA

/**********************************************************************
//* ENFRENTAMIENTO DE DOS FICHEROS POR CONTRATO
//* RECUPERAR EXPEDIENTE
//* F1 - DISTRIBUCION DE PROMOTORES
//* F2 - EQUIVA DE CONTRATOS
//**********************************************************************
//MATCHSOR EXEC PGM=SORT,PARM='HIPRMAX=0'
//*
//SORTJNF1 DD DSN=EBVKKUH.INPBD05X.DISTRIB.PROESPEC,DISP=SHR
//SORTJNF2 DD DSN=EBVKKUH.APLBD00X.KKUHJ110.EQUIGDV(0),DISP=SHR
//F1ONLY DD DSN=EBVKKUH.INPBD05X.FIBAP999.M1F1ONLY,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(10,5),RLSE)
//F2ONLY DD DSN=EBVKKUH.INPBD05X.FIBAP999.M1F2ONLY,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(10,5),RLSE)
//F3BOTH DD DSN=EBVKKUH.INPBD05X.FIBAP999.PROMOTO0,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(10,5),RLSE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
JOINKEYS FILE=F1,FIELDS=(1,20,A),TYPE=F
JOINKEYS FILE=F2,FIELDS=(3,20,A),TYPE=F
REFORMAT FIELDS=(F1:1,400,F2:1,201,?)
JOIN UNPAIRED,F1,F2
SORT FIELDS=COPY
OUTFIL FNAMES=F1ONLY,INCLUDE=(602,1,CH,EQ,C'1'),BUILD=(1,400)
OUTFIL FNAMES=F2ONLY,INCLUDE=(602,1,CH,EQ,C'2'),BUILD=(401,201)
OUTFIL FNAMES=F3BOTH,INCLUDE=(602,1,CH,EQ,C'B'),
BUILD=(1,20,496,11,32,369)
OPTION DYNALLOC=(,120)
/*

Espero, sea de mucha utilidad
Un Saludo


Foto de Usuario
edgar.flores

Ranking Troomes
Mensajes: 35
Registrado: 13 Sep 2013, 06:23

Re: Sort JoinKeys, Adios al "-Matching-"

Mensaje por edgar.flores » 13 Oct 2013, 18:30

Muy bien Julio,

No tenia ni idea de este tipo de Sort, lo utilizare en el curro y ya te contare como me fue..

A ver si te apuntas con alguna otra utilidad...

Un saludo
Edgar


Responder