RAMPスクリプトからのインスタンス・リストの操作

Visual LANSA

RAMPスクリプトからのインスタンス・リストの操作


フィルターやコマンド・ハンドラーで、共有インスタンス・リスト・マネージャーの簡略化メソッドを呼び出すことで、インスタンス・リストの操作がさらに簡単になります。これを行うための処理は次の2つのみです。

·         Scope(*Application)を使用して共有インスタンス・リスト・マネージャーを宣言する

·         公開されているメソッドを呼び出す

 

RAMP 5250ナビゲーション・スクリプトでは、再利用可能なVLコンポーネントを宣言してそのメソッドを呼び出すことはできませんが、通知イベントを実行できます。したがってこのスクリプトが通知したイベントを「何か」がリッスンしている場合、その「何か」はスクリプトに代わってマネージャー・メソッドを呼び出すことができます。

通常、RAMPスクリプトのイベントをリッスンしているこの「何か」は、フィルターです。このフィルターには次のようなEVTROUTINEが含まれます。

Evtroutine Handling(#Com_owner.avEvent) WithId(#EventId)

WithAInfo1(#AInfo1) WithAInfo2(#AInfo2) WithAInfo3(#AInfo3)

Options(*NOCLEARMESSAGES *NOCLEARERRORS)

 

Case #EventId.Value

 

When (= UPDATE_EMPLOYEE_5250)

 

#EmployeeManager.UpdateListDetails ListManager(#avListManager)

ForEmpno(#AInfo1)

 

When (= DELETE_EMPLOYEE_5250)

 

#EmployeeManager.DeleteListDetails ListManager(#avListManager) ForEmpno(#AInfo1) inDepartment(#AInfo2) InSection(#AInfo3)

 

EndCase

 

Endroutine

 

このコードを含むフィルターは、UPDATE_EMPLOYEE_5250およびDELETE_EMPLOYEE_5250というイベントをリッスンします。このイベントのいずれかを受信したら、要求を共有インスタンス・リスト・マネージャーにルーティングします。もちろんこれには、イベント・ペイロード・パラメータを使って従業員キーの詳細を受け渡す方法に関する、RAMPスクリプトとフィルター間で同意されたプロトコルが必要です。

RAMPスクリプトが、インスタンス・リストの更新が必要であることを意味する5250操作(従業員の削除や更新など)を検出した場合、次のようなJavaScriptスクリプト・コードを実行できます。

AVSIGNALEVENT("DELETE_EMPLOYEE_5250", "BUSINESSOBJECT", objListManager.AKey1[0], objListManager.AKey2[0], objListManager.AKey3[0] );

 

または

AVSIGNALEVENT("UPDATE_EMPLOYEE_5250", "BUSINESSOBJECT", objListManager.AKey3[0]);