1

SalesQuotationLineテーブルのプライマリデータソースを使用して、AX 2009(SP1、現在はロールアップ6)でレポートを作成しようとしています。在庫がどのように構成されているかにより、特定のカテゴリのアイテム(この場合、InventTableで定義されている非サービスアイテム)のみを表示するフィルターを適用する必要があります。ただし、SalesQuotationLineとInventTableの間のリンクに問題があり、2つの特定のアイテムのみが表示されるようです。

これを[販売見積の詳細]画面に対してもテストしたところ、同じ結果が得られました。次のようなクエリを実行します。ここに画像の説明を入力してください

...前述の特定の項目の1つを含む見積もりの​​みが表示されます。アイテムタイプを別のもの(たとえば、アイテム)に変更すると、結果は空のセットになります。この問題は、セカンダリテストサーバーの1つでも発生しています。これは、すべての目的で新規インストールです。

あるテーブルから別のテーブルへのデータマッピングに問題はないようです。また、他のテーブルセットでもこの問題は発生していません。これは本当の問題ですか、それとも私は何かが足りないだけですか?

4

1 に答える 1

2

クエリの実行中に実行されたSQLプロファイルの結果を分析したところ、問題はシステムのバグであったようです。SalesQuotationLinesに結合するテーブルを選択する場合、「アイテム」と「アイテム(アイテム番号)」の2つのオプションがあります。クエリを実行するテーブルを選択するかどうかに関係なく、クエリは「SalesQuotationLines.ProjTransCode=InventTable.ItemId」という関係でInventTableを結合します。テーブルをシステム内の他のレイヤーと比較した後、(SYPレイヤーの)createLineメソッドから次のコードブロックが削除されていることがわかりました。

if (this.ProjTransType == QuotationProjTransType::Item)
{
    this.ProjTransCode = this.ItemId;
}

ProjTransCodeが入力されなくなったため、ProjTransCodeが入力されている特定の引用行を除いて、結合は機能しません。

さらに、InventTableとの直接定義された関係はありません。リンクは、SalesQuotationLine.ItemIdフィールドで使用される拡張データ型を介してのみ維持されます。この関係を手動で追加すると、問題が解決しました。

于 2013-02-27T21:03:54.373 に答える