Versions Compared

Key

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

...

トリガー・ファンクションの作成

ファンクションをトリガー・ファンクションとして定義するには、FUNCTIONコマンドでTRIGGERパラメータを使用します。

ファンクションをデータ・ディクショナリ・レベルのトリガーとして動作させる場合は、このパラメータの最初の部分に*FIELDと入力し、2番目の部分に、関連付けるデータ・ディクショナリ・フィールド名を入力します。

ファンクションをデータベース・レベルのトリガーとして動作させる場合は、パラメータの最初の部分に*FILEと入力し、2番目の部分に、関連付けるデータベース・テーブル名を入力します。指定するテーブルは、インデックスではなく物理テーブルでなければなりません。

新しいトリガー・ファンクションを容易に定義できるよう、LANSAには、トリガー・ファンクションの土台として使用できる以下のアプリケーション・テンプレートが付属しています。

BBFLDTRIG

フィールド・レベルのトリガー・ファンクション

BBFILTRIG

テーブル・レベルのトリガー・ファンクション

 
ファンクションをトリガー・ファンクションとして定義するときは、以下のガイドラインに従う必要があります。 ファンクションをトリガー・ファンクションとして定義するときは、以下のガイドラインに従う必要があります。

  • パラメータRCV_LIST(#TRIG_LIST)を使用してください。
  • パラメータRCV_DSは使用しないでください。
  • オプション*DIRECTも使用してください。
  • オプションxxx_SYSTEM_VARIABLEまたはxxx_FIELD_VALIDATEは使用しないでください。
  • リスト#TRIG_LISTは、DEF_LISTコマンドでDEF_LIST NAME(#TRIG_LIST) TYPE(*WORKING) ENTRYS(2)として定義されていなければなりません。また、このリストでは、FIELDSパラメータに列を含むことができません。必要な列は自動的に追加されます。
  • DISPLAY、REQUEST、またはPOP_UPコマンドは使用できません。これは、意図的に適用されている設計/使用上の制約で、将来的なバージョンで排除される可能性があります。
  • 別のプロセス/ファンクションに対する呼び出し(CALL)が存在してはなりません。これは、意図的に適用されている設計/使用上の制約で、将来的なバージョンで排除される可能性があります。
  • アクション・バー・プロセス内でトリガー・ファンクションを定義することはできません。これは、アクション・バー内からトリガー・ファンクションを参照できないということではなく、アクション・バー・タイプのプロセスの一部としてトリガー・ファンクションを定義できないということです。
  • 関連付けられたプロセスではパラメータを使用できません。
  • 交換リストは使えません。これは、トリガー・ファンクションの設計および使用における独立性とモジュール性を確保するために意図的に適用されている設計/使用上の制約です。

...