ステップ4. 課をロードするリレーション・ハンドラーを作成する

Visual LANSA

ステップ4. 課をロードするリレーション・ハンドラーを作成する


このステップでは、部門を展開したときに課をインスタンス・リストにロードするリレーション・ハンドラーを作成します。

非表示フィルター・コードを使用してすべての課を部門と共にロードすることもできますが、リレーション・ハンドラーを使用すると、最初にルート・オブジェクトまたは親オブジェクトをインスタンス・リストに追加するだけで、その後は子オブジェクトを動的に追加できるようになるので、フィルターのパフォーマンスを改善できます。

 

1.    Visual LANSAエディターで、プロセスiiiPROC2 – Framework Functions作成します。このプロセスに属するファンクションを作成します。ファンクション名をiiiFN04、説明にリレーション・ハンドラーと指定します(ここでiiiは入力者のイニシャルです。Visual LANSAの非ライセンス版または試行版を使っている場合は、iiiの部分をDEMとする必要があります)。

2.    ファンクション内の既存のコードを、このファンクションがリレーション・ハンドラーであることを示す次のコードに置き換えます。

FUNCTION OPTIONS(*DIRECT *LIGHTUSAGE) RCV_LIST(#VIS_LIST #PID_LIST #COL1_LIST #COL2_LIST #COL3_LIST #COL4_LIST #COL5_LIST #COL6_LIST #COL7_LIST #COL8_LIST #COL9_LIST #COLA_LIST)

 

INCLUDE PROCESS(*DIRECT) FUNCTION(VFREL1)

INCLUDE PROCESS(*DIRECT) FUNCTION(VFREL2)

作成したVFREL1ファンクションおよびVFREL2ファンクションには、リレーションの生成ファンクションの標準の定義が含まれています。

 

3.    次に、すべてのキーと追加のカラムをインスタンス・リストからクリアします。

EXECUTE SUBROUTINE(CLEARKEYS)

EXECUTE SUBROUTINE(CLEARCOLS)

   

リレーション・ハンドラーで呼び出すサブルーチンはVFREL2ファンクションに含まれています。

 

4.    選択した部門のキー値を取得します。

 

CHANGE FIELD(#DEPTMENT) TO(#SRC_AK1)

  

 

5.    現在の部門で課を選択し、インスタンス・リストのエントリー値を設定します。

SELECT FIELDS(*ALL) FROM_FILE(SECTAB) WITH_KEY(#DEPTMENT)

    EXECUTE SUBROUTINE(SETAKEY) WITH_PARMS(1 #DEPTMENT)

    EXECUTE SUBROUTINE(SETAKEY) WITH_PARMS(2 #SECTION)

    EXECUTE SUBROUTINE(SETNCOL) WITH_PARMS(1 #SECPCODE)

    EXECUTE SUBROUTINE(SETACOL) WITH_PARMS(1 #SECADDR1)

    EXECUTE SUBROUTINE(SETACOL) WITH_PARMS(2 #SECADDR2)

    EXECUTE SUBROUTINE(SETACOL) WITH_PARMS(3 #SECADDR3)

    EXECUTE SUBROUTINE(SETACOL) WITH_PARMS(4 #SECPHBUS)

    EXECUTE SUBROUTINE(ADDTOLIST) WITH_PARMS('DEPARTMENT_SECTIONS' #SECDESC #SECTION)

ENDSELECT

 

·         SETAKEYサブルーチンは子インスタンス・リストのキー値を設定します。このサブルーチンの最初のパラメータはキーの位置で、2番目のパラメータはキー値です。数値キーを設定するSETNKEYサブルーチンもあります。

·         SETNCOLサブルーチンとSETACOLサブルーチンは子インスタンス・リスト・エントリーにカラムを追加します。

·         ADDTOLISTサブルーチンはエントリーをインスタンス・リストに追加します。このサブルーチンの最初のパラメータは子ビジネス・オブジェクト名、2番目のパラメータはビジュアル識別子1カラム、3番目のパラメータはビジュアル識別子2カラムです。

 

コードは、次のようになります。

  

6.    ファンクションをコンパイルします。

7.    フレームワークを開いてください。

8.    Company Departmentsビジネス・オブジェクトのプロパティを表示します。

9.    [インスタンスリストの設定]タブで、Department Sectionsビジネス・オブジェクトを選択します。

10.    [リレーション ハンドラー]フィールドに、リレーション・ハンドラーの名前を入力します。


 

12.    Company Departmentsのプロパティを閉じます。

13.    フレームワークを保存して再起動します。

14.    iii HRアプリケーションでCompany Departmentsビジネス・オブジェクトを選択します。

15.    インスタンス・リストで部門を展開してください。


 

展開した各部門の課が動的にロードされます。

リストには、セクション名と識別子のみが表示されます。次のステップで、インスタンス・リストを変更して課の追加カラムを表示します。