RAMP画面からのインスタンス・リストの更新
チュートリアル「RAMP-TS007:データ入力ファンクションのスナップイン」では、このトピックを詳しく説明しています。
フィルターは、その関連するインスタンスリストを管理します。RAMP画面はビジネスオブジェクトインスタンスを削除、追加、または変更した場合、フィルターに変更が発生したことを通知する必要があります。
コードウィザードを使用したフィルターの作成
RAMP画面からの変更を検査するフィルターを作成するには、コードウィザードを使用してオプションインスタンスリストを更新するためのシグナルを受け取るRoutineを選択します。
このオプションによってインスタンスリストへの変更を自動的に処理するフィルター・コードが作成されます。
ボタン・スクリプトへのAVSIGNALEVENTファンクションの追加
変更を処理するボタン(通常、保存または削除)のRAMP宛先画面のボタン・スクリプトにAVSIGNALEVENTファンクションを追加して、インスタンスリストを変更する必要があることをフィルターに通知します。
例えば、オブジェクトを更新するRAMP画面で、次のステートメントをSAVEボタン・スクリプトに追加します。
AVSIGNALEVENT("Update_List_Entry", "BUSINESSOBJECT", objListManager.AKey1[0]);
送信されるイベントの名前はUpdate_List_Entryで、渡される値は更新されたインスタンスの識別子です。
新しく作成されたオブジェクトの保存を処理するには、フィルターにそのオブジェクトの識別子を渡す必要があります。例えば、従業員番号を使用して新しい従業員を追加するには、最初にGETVALUEファンクションを使用して画面上の従業員番号を取り込み、objGlobalオブジェクトのプロパティとしてその従業員番号を保存します。次に、従業員番号をフィルターに渡します。
objGlobal.utxtEmployeeCode = GETVALUE("utxtEmployeeCode");
SENDKEY(KeyEnter);
AVSIGNALEVENT("Add_List_Entry", "BUSINESSOBJECT", objGlobal.utxtEmployeeCode);
(utxtEmployeeCodeフィールドは、宛先画面でテキストフィールドとして定義されている従業員番号フィールドです。)
インスタンスリストの更新に使用できる標準のイベント名は次のとおりです。
· Refresh_Instance_List
· Update_List_Entry
· Add_List_Entry
· Delete_List_Entry