保存されていない変更をフレームワーク・ロック・サービスで処理する
Windowsにのみ適用されます。
フレームワーク・マネージャーにはロック・サービスがあります。このサービスはコマンド・ハンドラーまたはフィルターで保存されていない変更を検知し、ユーザーが変更を確定するか取り消すまでフレームワークをロックします。
フレームワークのロックの簡単な例として、ユーザーがビジネス・オブジェクトの詳細設定を変更した後、同じビジネス・オブジェクトの別のインスタンスをクリックするなど、フレームワークで変更した詳細情報が失われる可能性があるアクションを実行する場合があげられます。
このような場合に、このサービスを使用して、ユーザーに変更が保存されていないことを通知し、ビジネス・オブジェクトの詳細設定が変更された時点でフレームワークをロックすることができます。メッセージが表示され、ユーザーはビジネス・オブジェクトの詳細設定に戻って設定を保存するか、要求したアクションを継続するかを選択します。
Windowsアプリケーションでのフレームワークのロックの完全な使用例は、社員情報コマンド・ハンドラーDF_DET1と課情報コマンド・ハンドラーDF_DET8を参照してください。
フレームワークのロックは、フィルターとコマンド・ハンドラーが使用できる2つのフレームワーク・プロパティ(uLockedとuLockedMessage)により実行されます。
uLocked | 有効な値はFALSE、USER、PROGRAM、PROGRAM_EXITです。 USERが設定されると、フレームワークはロックされますが、ユーザーの操作によりロックを解除できます。 PROGRAMが設定されると、フレームワークはロックされ、プログラムがこのプロパティをFALSEに設定するまでロックは解除されません。 PROGRAM_EXITが設定されると、終了時を除きフレームワークはロックされ、プログラムがこのプロパティをFALSEに設定するまでロックは解除されません。 |
uLockedMessage | ユーザーがロック状態に違反する操作を行った場合に表示されるメッセージです。 |
例えば、ユーザーが変更を保存するまでフレームワークをロックする場合、コマンド・ハンドラーのフィールドのChangedイベントに次のコードを設定できます。
Set #avFrameworkManager uLocked(USER) uLockedMessage('Details for the current Employee not saved.Would you like to return to the details command to save.')
注:フレームワークのロックは、各メイン・フレームワーク・ウィンドウの範囲内に適用されます。新しいウィンドウでビジネスオブジェクトを開くことを許可オプションを使用して新しいメイン・フレームワーク・ウィンドウを開いた場合、新しいウィンドウとすべての子ウィンドウのそれぞれに独自の(新しい)ロック範囲が設定されます。