9.114 GET_PHYSICAL_LIST

LANSA

9.114 GET_PHYSICAL_LIST


Þ 注:組み込み関数の規則

データ・ディクショナリから物理ファイルとその記述のリストを取得して、呼び出し元のRDMLファンクションに可変長の作業リストで戻します。

Þこれは、 開発環境のみで使用される特殊BIF です。

各製品の対応

LANSA/AD

使用可

 

Visual LANSA for Windows

使用可

X_RUN パラメータがDBII=*NONEの場合、この組み込み関数はサポートされません。

Visual LANSA for Linux

未対応 

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

ポジショニング・ファイルの値。戻されるリストは、ディレクトリの中で、この引数で渡された値よりも大きく、かつ一番近い名前のファイルから始まります。

1

10

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

L

必須

ファイル情報を含める作業リスト

リストは以下のエントリー数を越えてはいけません。
Windowsで32767項目
IBM iで9999項目

呼び出し元のRDMLファンクションは、項目の長さの合計が正確に70バイトの作業リストを提供しなければなりません。

戻されるそれぞれのリスト項目は、次のような形式にする必要があります。

開始 - 終了 説明

1 - 10 物理ファイル名

11 - 20 物理ファイル・ライブラリ

21 - 60 記述

61 - 63 IBM iの場合はブランクに設定される

Windows の場合は、このVisual LANSA固有の情報が設定されます。
61 - 61 ファイル・タイプ:
 N = LANSAファイル
 Y = その他のファイル(IBM i上にロードされている)
 P = その他のファイル(Windows上にロードされている)

62 - 62 自動RRNO (Y/N)

63 - 63 ファイルの@@RRNOと@@UPID (Y/N)

64 - 64 RDMLXファイル (Y/N)

65 - 70 <<将来の拡張>>

70

70

 

 

2

A

任意

戻されたリストの最後のファイル。通常、この値は次にこの組み込み関数を呼び出す時にポジショニング用の引数として使用されます。

1

10

 

 

3

A

任意

戻りコード

OK = ファイル詳細のリスト(満載または一部)が戻された。リストに戻された以上のファイルは存在しない

OV = リスト(満載)が戻された。ただしリストに収まらなかったファイルがさらに存在する。通常、スタイル・リストを表示する時に、この値を使ってページに次のファイルがあることを示す

NR = リストは空で戻された。リストの最後のファイルがブランクで戻される

2

2

 

 

このファンクションを使用すれば、サイトで既存のLANSAデータベースを修正できるプログラムを作成することができます。

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