acumatica
エンティティデータの入力を要求するエラーの表示
サーチ…
エンティティデータの入力を要求するエラーの表示
ユーザーは、必要な情報をすべて入力していないため、ビジネスプロセスが完了できない状況で起きることがよくあります。
この状況の例は、ユーザーが顧客アドレスが見つからないドロップ・シップ・オーダーを作成しようとする場合です。
UXのベストプラクティスによれば、システムはユーザーに親しみやすく、状況についてユーザーに知らせるだけでなく、問題の解決に導くべきです。われわれが知っているように、システムは既に、 TSetup
テーブルにレコードがない場合、 PXSetup<TSetup>.Current
によってアクティブにされた同様のメカニズムを持っています。 PXSetupNotEnteredException
スローすることで内部的に実装されていPXSetupNotEnteredException
。
最近、この例外に新しい機能が追加されました。これにより、アプリケーション開発者は、再構成が必要なエンティティへのリンクでエラーをスローできます。
INSite erroneousSite = PXSelect<
INSite,
Where<
INSite.siteID, Equal<Current<SOCreateFilter.siteID>>,
And<INSite.active, Equal<True>,
And<Where<INSite.addressID, IsNull, Or<INSite.contactID, IsNull>>>>>>
.SelectSingleBound(this, new object[] { e.Row });
if (erroneousSite != null)
{
throw new PXSetupNotEnteredException<INSite, INSite.siteCD>(
Messages.WarehouseWithoutAddressAndContact,
erroneousSite.SiteCDlnk,
erroneousSite.SiteCDinf);
}
結果は次のようにユーザーに表示されます。
第1のタイプのパラメータとして、
PXSetupNotEnteredException
は、デフォルトのグラフリンクが生成されるエンティティのタイプを受け入れます。第2のタイプのパラメータは、リンクを生成するために使用されるレコードのキーフィールドを示す。上記の例では、倉庫実体へのナビゲーションはCDキーによって行われています。
最初のコンストラクタ引数は、エラーメッセージのフォーマット文字列です。内部プレースホルダの番号は1から始まります。つまり
The Multiple Warehouses feature and the Transfer order type are activated in the system, in this case an address and a contact must be configured for the '{1}' warehouse.
2番目のコンストラクター引数は、2番目の汎用パラメーターとして指定されたキーフィールドの値です。この例では、生成されるリンクは
/IN204000.aspx?siteCD=erroneousSite.SiteCDlnk
です。3番目のコンストラクタ引数は、エラーメッセージに表示される人間が判読可能な値
...in this case an address and a contact must be configured for the 'erroneousSite.SiteCDinf' warehouse.