Colorisation syntaxique RPGLE

Voici un petit fichier qui vous servira à coloriser votre source RPGLE.

<NotepadPlus>
    <UserLang name="RPGLE" ext="rpgle" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="yes" allowFoldOfComments="no" foldCompact="no" forcePureLC="2" decimalSeparator="1" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="yes" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00// 00* 01 02 03 04</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1"></Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">ACQ&#x000D;&#x000A;ADD&#x000D;&#x000A;ADDDUR&#x000D;&#x000A;ALLOC&#x000D;&#x000A;ANDEQ&#x000D;&#x000A;ANDGT&#x000D;&#x000A;ANDGE&#x000D;&#x000A;ANDNE&#x000D;&#x000A;ANDLT&#x000D;&#x000A;ANDLE&#x000D;&#x000A;BEGSR&#x000D;&#x000A;BITOFF&#x000D;&#x000A;BITON&#x000D;&#x000A;CABEQ&#x000D;&#x000A;CABGT&#x000D;&#x000A;CABGE&#x000D;&#x000A;CABLT&#x000D;&#x000A;CALLE&#x000D;&#x000A;CALL&#x000D;&#x000A;CALLB&#x000D;&#x000A;CALLP&#x000D;&#x000A;CASEQ&#x000D;&#x000A;CASGT&#x000D;&#x000A;CASGE&#x000D;&#x000A;CASLT&#x000D;&#x000A;CASLE&#x000D;&#x000A;CAT&#x000D;&#x000A;CHAIN&#x000D;&#x000A;CHECK&#x000D;&#x000A;CHECKR&#x000D;&#x000A;CLEAR&#x000D;&#x000A;CLOSE&#x000D;&#x000A;COMMIT&#x000D;&#x000A;COMP&#x000D;&#x000A;DEALLOC&#x000D;&#x000A;DEFINE&#x000D;&#x000A;DELETE&#x000D;&#x000A;DIV&#x000D;&#x000A;DOU&#x000D;&#x000A;DOUEQ&#x000D;&#x000A;DOUGT&#x000D;&#x000A;DOUGE&#x000D;&#x000A;DOULT&#x000D;&#x000A;DOULE&#x000D;&#x000A;DOW&#x000D;&#x000A;DOWEQ&#x000D;&#x000A;DOWGT&#x000D;&#x000A;DOWGE&#x000D;&#x000A;DOWLT&#x000D;&#x000A;DOWLE&#x000D;&#x000A;DSPLY&#x000D;&#x000A;DUMP&#x000D;&#x000A;ELSE&#x000D;&#x000A;ELSEIF&#x000D;&#x000A;ENDIF&#x000D;&#x000A;ENDDO&#x000D;&#x000A;ENDFOR&#x000D;&#x000A;ENDSR&#x000D;&#x000A;ENDSL&#x000D;&#x000A;EVAL&#x000D;&#x000A;EVALR&#x000D;&#x000A;EVAL-CORR&#x000D;&#x000A;EXCEPT&#x000D;&#x000A;EXFMT&#x000D;&#x000A;EXSR&#x000D;&#x000A;EXTRCT&#x000D;&#x000A;FOR&#x000D;&#x000A;FORCE&#x000D;&#x000A;GOTO&#x000D;&#x000A;IF&#x000D;&#x000A;IFEQ&#x000D;&#x000A;IFGT&#x000D;&#x000A;IFGE&#x000D;&#x000A;IFLT&#x000D;&#x000A;IFLE&#x000D;&#x000A;IN&#x000D;&#x000A;ITER&#x000D;&#x000A;KFLD&#x000D;&#x000A;KLIST&#x000D;&#x000A;LEAVE&#x000D;&#x000A;LEAVESR&#x000D;&#x000A;LOOKUP&#x000D;&#x000A;MHHZO&#x000D;&#x000A;MHLZO&#x000D;&#x000A;MLHZO&#x000D;&#x000A;MLLZO&#x000D;&#x000A;MONITOR&#x000D;&#x000A;MOVE&#x000D;&#x000A;MOVEA&#x000D;&#x000A;MOVEA&#x000D;&#x000A;MOVEL&#x000D;&#x000A;MULT&#x000D;&#x000A;MVR&#x000D;&#x000A;NEXT&#x000D;&#x000A;OCCUR&#x000D;&#x000A;ON-ERROR&#x000D;&#x000A;OPEN&#x000D;&#x000A;OR&#x000D;&#x000A;OREQ&#x000D;&#x000A;ORGT&#x000D;&#x000A;ORGE&#x000D;&#x000A;ORLT&#x000D;&#x000A;ORLE&#x000D;&#x000A;OTHER&#x000D;&#x000A;OUT&#x000D;&#x000A;PARM&#x000D;&#x000A;PLIST&#x000D;&#x000A;POST&#x000D;&#x000A;READ&#x000D;&#x000A;READC&#x000D;&#x000A;READE&#x000D;&#x000A;READP&#x000D;&#x000A;READPE&#x000D;&#x000A;REALLOC&#x000D;&#x000A;REL&#x000D;&#x000A;RESET&#x000D;&#x000A;RETURN&#x000D;&#x000A;ROLBK&#x000D;&#x000A;SCAN&#x000D;&#x000A;SELECT&#x000D;&#x000A;SETGT&#x000D;&#x000A;SETLL&#x000D;&#x000A;SETOFF&#x000D;&#x000A;SETON&#x000D;&#x000A;SHTDN&#x000D;&#x000A;SORTA&#x000D;&#x000A;SQRT&#x000D;&#x000A;SUB&#x000D;&#x000A;SUBDUR&#x000D;&#x000A;SUBST&#x000D;&#x000A;TAG&#x000D;&#x000A;TEST&#x000D;&#x000A;TESTB&#x000D;&#x000A;TESTN&#x000D;&#x000A;TESTZ&#x000D;&#x000A;TIME&#x000D;&#x000A;UNLOCK&#x000D;&#x000A;UPDATE&#x000D;&#x000A;WHEN&#x000D;&#x000A;WHENEQ&#x000D;&#x000A;WHENGT&#x000D;&#x000A;WHENGE&#x000D;&#x000A;WHENLT&#x000D;&#x000A;WHENLE&#x000D;&#x000A;WRITE&#x000D;&#x000A;XFOOT&#x000D;&#x000A;XLATE&#x000D;&#x000A;XML-INTO&#x000D;&#x000A;XML-SAX&#x000D;&#x000A;XML events&#x000D;&#x000A;Z-ADD&#x000D;&#x000A;Z-SUB</Keywords>
            <Keywords name="Keywords2">%ABS&#x000D;&#x000A;%ADDR&#x000D;&#x000A;%ALLOC&#x000D;&#x000A;%BITAND&#x000D;&#x000A;%BITNOT&#x000D;&#x000A;%BITOR&#x000D;&#x000A;%BITXOR&#x000D;&#x000A;%CHAR&#x000D;&#x000A;%CHECK&#x000D;&#x000A;%CHECKR&#x000D;&#x000A;%DATE&#x000D;&#x000A;%DAYS&#x000D;&#x000A;%DEC&#x000D;&#x000A;%DECH&#x000D;&#x000A;%DECPOS&#x000D;&#x000A;%DIFF&#x000D;&#x000A;%DIV&#x000D;&#x000A;%EDITC&#x000D;&#x000A;%EDITFLT&#x000D;&#x000A;%EDITW&#x000D;&#x000A;%ELEM&#x000D;&#x000A;%EOF&#x000D;&#x000A;%EQUAL&#x000D;&#x000A;%ERROR&#x000D;&#x000A;%FIELDS&#x000D;&#x000A;%FLOAT&#x000D;&#x000A;%FOUND&#x000D;&#x000A;%GRAPH&#x000D;&#x000A;%HANDLER&#x000D;&#x000A;%HOURS&#x000D;&#x000A;%INT&#x000D;&#x000A;%INTH&#x000D;&#x000A;%KDS&#x000D;&#x000A;%LEN&#x000D;&#x000A;%LEN&#x000D;&#x000A;%LEN&#x000D;&#x000A;%LEN&#x000D;&#x000A;%LOOKUP&#x000D;&#x000A;%LOOKUPEQ&#x000D;&#x000A;%LOOKUPGT&#x000D;&#x000A;%LOOKUPGE&#x000D;&#x000A;%LOOKUPLT&#x000D;&#x000A;%LOOKUPLE&#x000D;&#x000A;%MINUTES&#x000D;&#x000A;%MONTHS&#x000D;&#x000A;%MSECONDS&#x000D;&#x000A;%NULLIND&#x000D;&#x000A;%OCCUR&#x000D;&#x000A;%OPEN&#x000D;&#x000A;%PADDR&#x000D;&#x000A;%PADDR&#x000D;&#x000A;%PARMS&#x000D;&#x000A;%PARMNUM&#x000D;&#x000A;%REALLOC&#x000D;&#x000A;%REM&#x000D;&#x000A;%REPLACE&#x000D;&#x000A;%SCAN&#x000D;&#x000A;%SCANRPL&#x000D;&#x000A;%SECONDS&#x000D;&#x000A;%SHTDN&#x000D;&#x000A;%SIZE &#x000D;&#x000A;%SQRT&#x000D;&#x000A;%STATUS&#x000D;&#x000A;%STR&#x000D;&#x000A;%STR&#x000D;&#x000A;%STR&#x000D;&#x000A;%SUBARR&#x000D;&#x000A;%SUBDT&#x000D;&#x000A;%SUBST&#x000D;&#x000A;%THIS&#x000D;&#x000A;%TIME&#x000D;&#x000A;%TIMESTAMP&#x000D;&#x000A;%TLOOKUPEQ&#x000D;&#x000A;%TLOOKUPGT&#x000D;&#x000A;%TLOOKUPGE&#x000D;&#x000A;%TLOOKUPLT&#x000D;&#x000A;%TLOOKUPLE&#x000D;&#x000A;%TRIM&#x000D;&#x000A;%TRIML&#x000D;&#x000A;%TRIMR&#x000D;&#x000A;%UCS2&#x000D;&#x000A;%UNS&#x000D;&#x000A;%UNSH&#x000D;&#x000A;%XFOOT &#x000D;&#x000A;%XLATE&#x000D;&#x000A;%XML&#x000D;&#x000A;%YEARS</Keywords>
            <Keywords name="Keywords3">*HIVAL&#x000D;&#x000A;*IN&#x000D;&#x000A;*ON&#x000D;&#x000A;*OFF</Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00( 01 02) 03&apos; 04 05&apos; 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="808080" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="FF0000" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="0000FF" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="8080FF" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="FF0000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="8080FF" bgColor="FFFFFF" fontStyle="1" nesting="2" />
            <WordsStyle name="DELIMITERS2" fgColor="FF8000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

Ouvrir Notepad++

aller dans langage:

definisserlangage

Puis importer le scripts préalablement enregistrer dans un fichier texte.

importer.jpp

Résultat:

sourcecolorise

Case When

Petit rappel (pour moi aussi):

Comment fait-on un simple choix multiple en DB2 sur IBM i:

SELECT * FROM fichiera
WHERE A1  IN( SELECT CASE  WHEN SUBSTR( B2, 19, 7) <> ''
                           THEN INT( SUBSTR( B2, 19, 7))   
                           WHEN SUBSTR( B2, 19, 7) <> '4'
                           THEN 4 
                           ELSE 0
                       END CASE AS B3
                FROM fichierb)

Comment récupérer des données des journaux

Ce billet est obsolète, je vous invite à lire Afficher les pages du journal de façon intelligible.

Voici une méthode que j’utilise pour récupérer des enregistrements à partir des journaux.

1- Utilisation de DSPJRN pour récupérer les enregistrements du journal dans un fichier.

DSPJRN JRN(journal) FILE((fichier *FIRST)) RCVRNG(
recepteur1) OUTPUT(*OUTFILE) OUTFILE(fichierdesortie) ENTDTALEN(*
CALC)
La sortie doit être de type1.

2- Prenez le source du fichier à récupérer et ajouter sa description 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 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 – Compiler le source.

4 – Ensuite faite un CPYF en NOCHK du fichier issu de la commande DSPJRN dans le fichier issu de la compilation.

5 – Et faite toutes les requêtes SQL possibles et inimaginables.

Remarque : il se peut qu’un petit décalage apparaisse sur le champ JORES suivant le type de traitement qu’a subit le fichier.

Ce billet est obsolète, je vous invite à lire Afficher les postes du journal de façon intelligible.

Tips et tours de main sur IBM I