Usare Alias per campi con nomi troppo lunghi

 

 

La keyword ALIAS in DDS esiste da molti anni. Se si aggiunge una keyword alias ad un qualunque file creato, questo potrà utilizzare l’alias più lungo al posto del nome del campo.

E’ altresì vero che se si usa la funzione Client Access “Data Transfer from System i” per trasformare un file AS400 inun file per Excel il nome alias verrebbe usato dal foglio di calcolo come intestazione di colonna.

Questa è da sola un’ottima ragione per definire gli alias nella DDS, anche se non si potevano usare i termini nei programmi RPG quando venne introdotto RPGLE. La capacità di utilizzare l’alias in un pgm RGP arrivò molto dopo, nella versione IBM i 7.1

Mentre definisci DDS, alias non è che un’altra keyword che puoi usare, qui è stata inclusa nel codice sorgente di file fisici:

A          R TESTFILER
A            FLD001        10          ALIAS(FIRST_FIELD)
A            FLD002         3P 0       ALIAS(SECOND_FIELD)
A            FLD003        10          ALIAS(THIRD_FIELD)
A            FLD004         5P 0       ALIAS(FOURTH_FIELD)
A          K FLD001

A si può fare lo stesso nel codice sorgente di file logici:

A          R TESTFILELR                PFILE(TESTFILE)
A            FLD001                    ALIAS(FIELD_1)
A            FLD002                    ALIAS(FIELD_2)
A            FLD003                    ALIAS(FIELD_3)
A            FLD004                    ALIAS(FIELD_4)
A          K FLD002
A          K FLD001

Di seguito c’è un piccolo programma creato per mostrare come usare i nomi alias meglio del nome originale. Questo dimostra anche che questa è una delle funzionalitià più interessanti per RPG.

01  dcl-f TESTFILE usage(*input) alias qualified ;
02  dcl-ds PhyFile likerec(TESTFILE.TESTFILER) ;

03  dcl-f TESTFILEL usage(*input) alias qualified ;
04  dcl-ds LglFile likerec(TESTFILEL.TESTFILELR:*input) ;

05  dcl-ds Another
      extname('TESTFILE') alias qualified
    end-ds ;

06  read TESTFILE PhyFile ;
07  read TESTFILEL LglFile ;

08  Another = PhyFile ;

09  *inlr = *on ;

 

 

fonte: http://www.rpgpgm.com/2014/11/using-alias-for-longer-field-names.html

Leave a Reply

Your email address will not be published. Required fields are marked *