Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Added |../../index.htm#lansa/dsnbi_0225.htm]
現在地:

Anchor
DSNBI_0225
DSNBI_0225
Anchor
_Toc130909878
_Toc130909878
Windows/Linux/IBM i 用の 3GL 組み込み関数の作成手順

1.      「Windows      「Windows/Linux の 3GL BIF ネーミング規則」に従い、組み込み関数のプログラムに名前を付けることで、組み込み関数をデザインします。 ネーミング規則」に従い、組み込み関数のプログラムに名前を付けることで、組み込み関数をデザインします。
2.      組み込み関数の定義フォームを完成させます。組み込み関数のサンプル・フォーム       組み込み関数の定義フォームを完成させます。組み込み関数のサンプル・フォーム より提供されているサンプルを使用することも可能ですし、独自にデザインしたものを使用しても構いません。BIF 定義の構成を知るには、「例 定義の構成を知るには、「- 簡単な平均化関数」などの 簡単な平均化関数」などの 3GL BIF 定義の例を参照してください。
         注:この手順は必須ではありませんが、初めて組み込み関数を作成する場合などは特に、このステップを踏むことが推奨されます。この手順を行うことで、自身の組み込み関数のデザインを必要なデータに変換できるようになっています。
3.      関連する情報を組み込み関数定義ファイルに入力します。
         注:この後の 2 つの手順は必須です。組み込み関数がこれらのファイルに記述されていないと、LANSA に認識されません。また、このデータが正しくない場合、組み込み関数は期待通りに動作しません。
4.      LX_F47 と LX_F4 の定義を作成
         LX_F47 と LX_F4 の定義は、次の 2 通りの作成方法があります。
      方法1:BIF を定義し、Windows にポート
a.      「IBM       「IBM i で RDML ファンクション用の 3GL 組み込み関数を作成」の説明に従い、組み込み関数を 組み込み関数を作成」の説明に従い、組み込み関数を IBM i ベースのテーブル DC@F47 に定義します。
b..      「IBM       「IBM i で RDML ファンクション用の 3GL 組み込み関数を作成」の例に示されているように、組み込み関数の引数および戻り値を 組み込み関数を作成」の例に示されているように、組み込み関数の引数および戻り値を IBM i ベースのテーブル DC@F48 に定義します。
c.      オプションとして、自身の組み込み関数の IBM i ベースのバージョンを設計し、コーディングしてテストします。LANSA の組み込み関数機能は LANSA アプリケーションがマルチ・プラットフォーム間でジェネリックなインターフェースとなるよう設計されています。
       注:最終的にマルチ・プラットフォームの組み込み関数を提供する必要がある場合は、すべてのサポート・プラットフォームの組み込み関数用に致命的なエラーの "スタブ" を作成することも検討してください。つまり、作成した組み込み関数が非サポート・プラットフォーム (例: IBM i) で誤って実行された場合に、この状況ではどのような結果になるかを説明する簡単な "致命的なエラー" が表示されるようにするということです。これで、コンパイルや実行時などにより複雑な問題が発生することを防げます。
d.      標準の LANSA REQUEST(PCMAINT) 機能を使って、この組み込み関数の定義を IBM i リポジトリからエクスポートします。
e.      組み込み関数の定義を使用する必要のある各 Visual LANSA システムにインポートします。これを行うには、CD または共有フォルダから標準の Visula LANSA のインポート機能を利用します。この機能により、ステップ 4 でIBM i からエクスポートされた組み込み関数の詳細を使って LX_F47 と LX_F48 の SQL テーブルが更新されます。 
 
      方法2:Windows の SQL 経由で直接 BIF を定義
         この方法は、IBM i が存在しない、もしくは Windows/Linux のプラットフォームで SQL ステートメントを使ってデータベースを更新することに不慣れな方向けの代替の方法です。この方法では、定義を LX_F47 と LX_F48 に直接入力する必要があります。
注:SQL 経由で LX_F47 および LX_F48 の内部 LANSA テーブルにレコードを挿入・更新する際にデータベースが破損する可能性があります。LX_F47 および LX_F48 の内部 LANSA テーブルへの SQL 経由のレコード挿入・更新時にサポートが必要な場合は、データベース管理者に相談してください。
 
         以下はファイル LX_F47 にデータ挿入する場合の例です。
      INSERT INTO "LX_DTA"."LX_F47" VALUES('UD_AVERAGE',413,'Get the Average','C','U_BIF413','N',2,1)
         ファイル LX_F48 にデータ挿入する際の例は以下の通りです。
      INSERT INTO "LX_DTA"."LX_F48" VALUES('UD_AVERAGE','ARG',1,1,'A','First Value','R','N',7,7,0,0,10,0,'')
 
5.      Windows 用に特化した BIF を作成している場合や Windows の 64 ビットのサポートが必要な場合は、以下に示すステップ 6 ~ 9 を行うよりも、LANSA ユーザー定義 BIF ウィザードを利用する方が簡単かもしれません。その場合は、代わりに「Visual ウィザードを利用する方が簡単かもしれません。その場合は、代わりに「Visual Studio ウィザードで組み込み関数を定義」に進んでください。このウィザードは、既存の ウィザードで組み込み関数を定義」に進んでください。このウィザードは、既存の Visual Studio ユーザーや複数のユーザー定義 BIF が必要な場合などは特に便利です。
6.      x_win95\x_lansa\source ディレクトリにインストールされた以下のファイルのコピーを作成します。名前の "NNN" の部分を自身の組み込み関数に割り当てた一意の識別子に変更します。
         例えば、作成する組み込み関数が 445 で、C: ドライブで作業をする場合は次のようなコマンドを利用します。
              CD \X_WIN95\X_LANSA\SOURCE
              COPY U_BIFNNN.  U_BIF445.
 
         以下は、x_win95\x_lansa\source ディレクトリにインストールされているファイルです。

...

 
8.      作成した .C、.MAK、.WMK,、.DEF、.unx、ISB ファイルはできるだけ早くバックアップを取ってください。これはソースコードですので、頻繁にバックアップする必要があります。セキュアでない PC システムにおいて、ソースコードを不意に損失してしまうことはよくある問題です。
9.      利用しているプラットフォームに合わせて、以下に示された例のいずれか 1 つを使って、組み込み関数をコンパイルします。
         Windows          Windows で組み込み関数をコンパイル
         Linux          Linux で組み込み関数をコンパイル
         IBM          IBM i で組み込み関数をコンパイル
[ Image Added |../../index.htm#lansa/dsnbi_0225.htm]