現在地: LANSA バージョン 14 SP2 の新機能 > IBM i サーバーとの外部プログラム統合

IBM i サーバーとの外部プログラム統合

Related image

RDMLX プログラムは、RPG プログラムおよびサービス・プログラムのプロシージャーを含む、IBM i 上の外部プログラムおよびプロシージャーを呼び出すことができるようになりました。

統合は2つの新しいコマンドによって実装されます:

Def_Mth_Ex

呼び出すプログラム、プロシージャ、およびサービスプログラムを定義します。

Def_Map_Ex

データ型、長さ、小数点以下の桁数、フォーマット、区切り文字、入力、更新、またはその両方としての使用法と戻り値の観点からマッピングを定義します。

 

これらのコマンドは、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