サーチ…


エンティティデータの入力を要求するエラーの表示

ユーザーは、必要な情報をすべて入力していないため、ビジネスプロセスが完了できない状況で起きることがよくあります。

この状況の例は、ユーザーが顧客アドレスが見つからないドロップ・シップ・オーダーを作成しようとする場合です。

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.



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow