Com­ment récu­pé­rer des don­nées dans les journaux

Com­ment récu­pé­rer des don­nées dans les journaux

mer 30 janvier 2019 0 Par Ibmiiste

La com­mande DSPJRN per­met de lire les actions faites sur une table DB2. Quand on veut le résul­tat dans un fichier, il y a un champ, le der­nier, qui contient l’en­re­gis­tre­ment concer­né par l’ac­tion. Cepen­dant ce champ est défi­ni en carac­tère. Les par­ties alpha­nu­mé­riques sont lisibles mais cer­tains types de don­nées, packé par exemple, sont incompréhensibles. 

Voi­ci une méthode manuelle que j’u­ti­lise pour récu­pé­rer des enre­gis­tre­ments à par­tir des journaux.


1- Uti­li­sa­tion de DSPJRN pour récu­pé­rer les enre­gis­tre­ments du jour­nal dans un fichier. DSPJRN JRN(journal) FILE((fichier *FIRST)) RCVRNG( recepteur1) OUTPUT(*OUTFILE) OUTFILE(fichierdesortie) ENTDTALEN(* CALC) La sor­tie doit être de type1.

2- Pre­nez le source du fichier à récu­pé­rer et ajou­ter sa des­crip­tion DDS à la fin du source DDS suivant :

     A          R QJORDJE
     A                                      TEXT('Journal Entries')
     A            JOENTL         5S 0       TEXT('Length of entry')
     A                                      COLHDG('ENTRY' +
     A                                      'LENGTH')
     A            JOSEQN        10S 0       TEXT('Sequence number')
     A                                      COLHDG('SEQUENCE' +
     A                                      'NUMBER')
     A            JOCODE         1A         TEXT('Journal Code')
     A                                      COLHDG('CODE')
     A            JOENTT         2A         TEXT('Entry Type')
     A                                      COLHDG('TYPE')
     A            JODATE         6A         TEXT('Date of entry: Job date for+
     A                                      mat')
     A                                      COLHDG('DATE')
     A            JOTIME         6S 0       TEXT('Time of entry: hour/minute/+
     A                                      second')
     A                                      COLHDG('TIME')
     A            JOJOB         10A         TEXT('Name of Job')
     A                                      COLHDG('JOB' +
     A                                      'NAME')
     A            JOUSER        10A         TEXT('Name of User')
     A                                      COLHDG('USER' +
     A                                      'NAME')
     A            JONBR          6S 0       TEXT('Number of Job')
     A                                      COLHDG('JOB' +
     A                                      'NUMBER')
     A            JOPGM         10A         TEXT('Name of Program')
     A                                      COLHDG('PROGRAM' +
     A                                      'NAME')
     A            JOOBJ         10A         TEXT('Name of Object')
     A                                      COLHDG('OBJECT' +
     A                                      'NAME')
     A            JOLIB         10A         TEXT('Objects Library')
     A                                      COLHDG('LIBRARY' +
     A                                      'NAME')
     A            JOMBR         10A         TEXT('Name of Member')
     A                                      COLHDG('MEMBER' +
     A                                      'NAME')
     A            JOCTRR        10S 0       TEXT('Count or relative record nu+
     A                                      mber changed')
     A                                      COLHDG('COUNT/' +
     A                                      'RRN')
     A            JOFLAG         1A         TEXT('Flag: 1 or 0')
     A                                      COLHDG('FLAG')
     A            JOCCID        10S 0       TEXT('Commit cycle identifier')
     A                                      COLHDG('COMMIT' +
     A                                      'CYCLE ID')
     A            JOINCDAT       1A         TEXT('Incomplete Data: 1 or 0')
     A                                      COLHDG('INCOMPLETE' +
     A                                      'DATA')
     A            JOMINESD       1A         TEXT('Minimized ESD: 0, 1, or 2')
     A                                      COLHDG('MINIMIZED' +
     A                                      'ESD')
     A            JORES          6A         TEXT('Not used')
     A                                      COLHDG('RESERVED')

3 – Com­pi­ler le source.
4 – Ensuite faite un CPYF en NOCHK du fichier issu de la com­mande DSPJRN dans le fichier issu de la com­pi­la­tion.
5 – Et faite toutes les requêtes SQL pos­sibles et inimaginables.

Remarque : il se peut qu’un petit déca­lage appa­raisse sur le champ JORES sui­vant le type de trai­te­ment qu’a subi le fichier.