Depuis un mois je bouffe des analyses dans tous les sens pour comparer des données applicatives qui sont en déphasage avec celles transmises par des référentiels du SI. Pour appareiller 2 fichiers, un programme cobol c’est très bien, mais quand la réponse est attendue 2 heures auparavant, et bien c’est pas gagné avec les changements de copybook, recompilation, gestion de versions…

DFSORT permet, depuis les PTFs UK51706 et UK51707 de novembre 2009, de faire des appareillages simples très efficaces, facilement maintenables et très performants. Je trouve que c’est une solution idéale pour créer de petites moulinettes de derrière les fagots, qui en 2 temps 3 mouvements vous rendront beau et désirable par n’importe quelle Maîtrise d’ouvrage soucieuse d’avoir son analyse dans l’heure!

Une petite explication avec exemple vous fera le plus grand bien :

Soit le fichier F1 provenant du SI avec un identifiant garantie sur 22 positions débutant en colonne 15 et F2 le déchargement d’une table applicative avec l’identifiant garantie sur 22 positions débutant en colonne 2. La clé d’appareillage est l’identifiant garantie. On veut enrichir le fichier F1 avec une donnée du fichier F2 qui se trouve en colonne 35 sur 2 positions (l’état de la garantie par exemple).

//STEPJOIN EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//F1       DD DSN=MON.FICHIER.UNLOAD,DISP=SHR
//F2       DD DSN=MON.FICHIER.SI,DISP=SHR
//SORTOUT  DD SYSOUT=*
//SYSIN    DD *
  JOINKEYS FILE=F1,FIELDS=(15,22,A),SORTED
  JOINKEYS FILE=F2,FIELDS=(2,22,A),SORTED
  REFORMAT FIELDS=(F1:1,70,F2:35,2)
/*

Cet appareillage est l’équivalent d’un INNER JOIN en SQL. Si vous souhaitez obtenir l’équivalent d’un LEFT, d’un RIGHT ou d’un FULL OUTER JOIN, il existe une fonction JOIN qui permet de les réaliser :

JOIN UNPAIRED    <---FULL JOIN UNPAIRED,F1 <---LEFT JOIN UNPAIRED,F2 <---RIGHT

Si vos fichiers sont triés selon la clé d’appareillage, SORTED permet d’indiquer à DFSORT ne pas retrier les fichiers (gain de perf) et NOSEQCK l’empêche de vérifier que vous ne mentez pas.

Plus d’info, d’explication, d’exemple et de détail sur la doc officielle IBM : SORTUGPG – User Guide for DFSORT PTFs UK51706 and UK51707 by Frank Yaeger [Attention accès via FTP, un proxy d'entreprise peut interdire l'accès à ce lien].