RDMLX プログラムは、RPG プログラムおよびサービス・プログラムのプロシージャーを含む、IBM i 上の外部プログラムおよびプロシージャーを呼び出すことができるようになりました。
統合は2つの新しいコマンドによって実装されます:
|
これらのコマンドは、RDMLX コードベースのコンポーネントでのみ使用できますが、Web ページでは使用できません。
LANSAには、渡されるパラメーターの数に固有の制限はありません。C コンパイラまたは実行時に発生することのよってのみ制限されます。
LOB 以外のすべての RDMLX データ型がサポートされています。つまり、固定長の文字、signed、 decimal (packed)、binary、 date、 time、 datetime、 integer、 float、 NULL終了文字列、 varchar (整数での長さの後ろに値が続く)、 boolean 及び nvarchar (整数での長さ(文字数)の後ろに値が続く) がサポートされています。
プロシージャからの戻り値はサポートされています。
この例では、外部メソッドを定義しています。この場合、日付は IBM i RPG でサポートされているすべての日付形式と区切り文字にマップされているかどうかをテストするプログラムを呼び出します。
/* Call program with miscellaneous Date parameters (Run OK) */
Def_Mth_Ex Name(CallPgmMiscDate) Module(P157373J)
Def_Map_Ex Name(DateISO) For(*INPUT) Type(*DATE) Format(*ISO)
Def_Map_Ex Name(DateJIS) For(*INPUT) Type(*DATE) Format(*JIS)
Def_Map_Ex Name(DateEUR) For(*INPUT) Type(*DATE) Format(*EUR)
Def_Map_Ex Name(DateUSA) For(*INPUT) Type(*DATE) Format(*USA)
Def_Map_Ex Name(DateDMYc) For(*INPUT) Type(*DATE) Format(*DMY) Date_Separator(*COMMA)
Def_Map_Ex Name(DateMDYd) For(*INPUT) Type(*DATE) Format(*MDY) Date_Separator(*DOT)
Def_Map_Ex Name(DateYMDh) For(*INPUT) Type(*DATE) Format(*YMD) Date_Separator(*HYPHEN)
Def_Map_Ex Name(DateJULs) For(*INPUT) Type(*DATE) Format(*JUL) Date_Separator(*SLASH)
Def_Map_Ex Name(DateDMYb) For(*INPUT) Type(*DATE) Format(*DMY) Date_Separator(*BLANK)
このメソッドルーチンは呼び出しを行ないます:
/* Call program with miscellaneous Date parameters (Run OK) */
MthroutineName(Check)
Define Field(#DatISO) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatJIS) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatEUR) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatUSA) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatDMYc) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatMDYd) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatYMDh) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatJULs) Type(*DATE) Default(*YYYYMMDD)
Define Field(#DatDMYb) Type(*DATE) Default(*YYYYMMDD)
#COM_OWNER.CallPgmMiscDate( #DatISO #DatJIS #DatEUR #DatUSA #DatDMYc #DatMDYd #DatYMDh #DatJULs #DatDMYb )
Endroutine