操作事前検証ステータス
検証サービスとクライアントインフラストラクチャは、事前検証操作については、現在 "有効"、"無効"、"非表示" の 3 つのステータスをサポートしています。"有効" ステータスは、操作がユーザーに表示され、ユーザーによる選択が可能であることを意味します。"無効" ステータスは、操作がユーザーに表示されるものの、選択不可能である (操作が "淡色表示" されている) ことを意味します。"非表示" ステータスは、操作がまったくユーザーに表示されないことを意味します。アイコンとしてレンダリングされる "無効" 操作 (テーブルヘッダ、テーブル行などで) は現在サポートされていないことに注意してください。検証サービスが操作アイコンの "無効" ステータスを返すと、クライアントインフラストラクチャはその操作アイコンを非表示にするだけです。
事前検証ロジックを実行するフィルタとバリデータのどちらを実装する場合でも、検証ステータスが (直接または検証結果に内包されて) 検証サービスに返ります(ソリューショングループを実装する場合は、検証サービスは、ソリューショングループによって無効と見なされたすべてのコンポーネントに自動的に "非表示" ステータスを割り当てます)。
バリデータまたはフィルタからどのステータスを返すかを選択するには、以下の規則を目安として使用してください。
• 不明な場合は有効に。操作を使用可能にすべきかどうか確定できない場合は、有効ステータスにします。その後さらにコンテキスト情報がわかってきてから、別の検証で (別のフィルタ、バリデータ、選択後検証など) ユーザーを無効または拒否できる可能性があります。ほとんどあらゆる状況で、ユーザーが実行可能な操作が非表示になっているよりも、実行できない操作が表示されている方がはるかにましです。
• 非表示と無効のどちらを選択するかは、現在のコンテキストで、操作がユーザーに表示される可能性があるかどうかを考えてみてください。表示されていた場合は、ステータスを無効にします。たとえば、"チェックアウト" 操作は、現在チェックアウト中のオブジェクトに対しては有効ではありません。しかし、その同じオブジェクトがチェックアウトされていなければ、そのユーザーは "チェックアウト" 操作を使用できます。その場合は、無効ステータスが適しています。一方、管理者ユーザーにのみ許可する操作があり、ユーザーが管理者ではないとします。その場合は、操作がそのユーザーに対して有効になることは決してないので、非表示ステータスが適しています。