9.101 GET_PHYSICAL_LIST

Note: Built-In Function Rules     Usage Options

Retrieves a list of physical files and their descriptions from the data dictionary and returns them to calling RDML function in a variable length working list.

This is a Specialized Built-In Function for use in a Development Environment only.

Arguments

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

A

Req

Positioning file value. The returned list starts with the first file from the dictionary whose name is greater than the value passed in this argument.

1

10

 

 

 

Return Values

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

L

Req

Working list to contain File information.

List must not be more than:
32767 entries in Windows
9999 entries on IBM i.

The calling RDML function must provide a working list with an aggregate entry length of exactly 70 bytes.

Each returned list entry is formatted as follows:

From - To   Description

1 - 10   Physical file name

11 - 20   Physical file library

21 - 60   Description

61 - 63   On IBM i are set to blank.

On Windows, they contain this Visual LANSA-specific information:
61 - 61   File type:
   N = LANSA File
   Y = Other File (loaded on IBM i)
   P = Other File (loaded on Windows)

62 - 62   Automatic RRNO (Y or N)

63 - 63   @@RRNO & @@UPID on file (Y or N)

64 - 64   RDMLX file (Y or N)

65 - 70   <<future expansion>>

70

70

 

 

2

A

Opt

Last file in returned list Typically this value is used as the positioning argument on subsequent calls to this Built-In Function.

1

10

 

 

3

A

Opt

Return code.

OK = list returned partially or completely filled with file details. No more files exist beyond those returned in the list.

OV = list returned completely filled, but more files than could fit in the list exist. Typically used to indicate "more" files in page at a time style list displays.

NR = list was returned empty. Last file in the list is returned as blanks.

2

2

 

 

 

Example

This function could be used to write a program that allows a site to modify an existing LANSA database.

DEF_LIST      NAME(#FILLST) FIELDS(#FILNAM #FILLIB #FILDES #SPARE)     

              TYPE(*WORKING) ENTRYS(10)     

DEF_LIST      NAME(#FILDSP) FIELDS((#SELECTOR *SEL) #FILNAM #FILLIB     

              #FILDES)     

**********    -Clear lists-     

CLR_LIST      NAMED(#FILLST)     

CLR_LIST      NAMED(#FILDSP)     

**********    -Request file to start from in list-     

REQUEST       FIELDS(#STRTFL) TEXT(('File to start from' 5 5))     

**********    -Get the list of files-     

USE           BUILTIN(GET_PHYSICAL_LIST) WITH_ARGS(#STRTFL)      

              TO_GET(#FILLST #LAST #RETCOD)     

**********    -If records found-     

IF            COND('(#RETCOD *EQ OK) *OR (#RETCOD *EQ OV)')     

SELECTLIST    NAMED(#FILLST)     

ADD_ENTRY     TO_LIST(#FILDSP)     

ENDSELECT           

**********           

DISPLAY       BROWSELIST(#FILDSP)     

**********    -Process selected records-     

SELECTLIST    NAMED(#FILDSP) GET_ENTRYS(*SELECT)     

EXECUTE       SUBROUTINE(FILE_EDIT)     

ENDSELECT           

ELSE           

MESSAGE       MSGTXT('No files found .... Program ended')     

RETURN           

ENDIF