19.1.1 3GL Parameters

Fixed Parameters

Arguments / Return Value Parameters

Alpha or Numeric Parameter Example

List Parameter Example

Fixed Parameters

The first three parameters of the program are fixed. These are data structures that are passed throughout the LANSA generated applications:

DC@IDS - Information data structure

DC@EDS - Arrays defined in Information data structure

PR@IDS - Process Information data structure

 

The layouts of these data structures (as RPG /COPY members) can be found in members DC@ISPEC, DC@ESPEC, PR@ISPEC and PR@ESPEC in file DC@F28 in the LANSA data library.

You must not vary the content of any of the storage locations defined by these data structures. Any attempt to do this may violate system integrity and produce unpredictable results.

Arguments / Return Value Parameters

BIF arguments and return values defined in file DC@F48 are set up as parameters for the BIF program or subroutine.

Each of these parameters is passed with accompanying parameter(s) (i.e. every entry in file DC@F48 actually causes two (2) or four (4) parameters to be set up and passed to the Built-In Function program or subroutine).

Alpha or Numeric Parameter Example

For an argument or return value defined in file DC@F48 as type A (alpha) or N (numeric), two (2) parameters are set up/passed to the Built-In Function:

     C     *ENTRY    PLIST

     C               PARM        DC@IDS

     C               PARM        DC@EDS

     C               PARM        PR@IDS

     C               PARM        B$555A  4  <--  Descriptor

     C               PARM        B@555A  3

     C               PARM        B$555B  4  <--  Descriptor

     C               PARM        B@555B 10

     C               PARM        B$555C  4  <--  Descriptor

     C               PARM        B@555C  1

List Parameter Example

For an argument or return value defined in file DC@F48 as type 'L' (list), four (4) parameters are set up/passed to the BIF:

For example:

C  *ENTRY    PLIST

C            PARM        DC@IDS

C            PARM        DC@EDS

C            PARM        PR@IDS

C            PARM        LXnnnB  70 <--  Maximum Entries

C            PARM        LCnnnb  70 <--  Total Entries

C            PARM        LPnnnb  70 <--  Current Entry

C            PARM        LLnnnB     <--  Actual List