私は EPICOR と協力して BAQ レポートを設計しています。私の基本的なレポートは常に問題ありません。より複雑なクエリの作成に移ったので、クエリを機能させるためのヒントがあるかどうかを考えてみました。構文は正しく、プログラムによって検証されていますが、クエリはまだ読み込まれません。何を探すべきかについて何かアドバイスはありますか?遅延の原因となる可能性のある問題は何ですか?
2 に答える
BAQ にすべてのデータが表示されない場合 (および制限基準を追加していない場合) は、ビジネス オブジェクト間の不適切な関係を記述したことを意味します。内部の Epicor ツールは通常、関係を検証しないことがわかりました。これは、理論的にはそのような結合を使用できるためです (複数の会社の統計の場合、完全な外部結合を使用してアーカイブ用に多くのテーブルをダンプしますが、どちらもお勧めしません)。
BAQ の記述とビジネス オブジェクト間のリレーションシップの修正に関連するいくつかの簡単なヒントを参考にして、データの入力に関する問題を解決してください。
- 常に BO.Company = BO.Company にリンクし、次に最大部分、次に小さい部分というようにリンクします。たとえば、OrderDtl にリンクされた OrderHed は、Company、次に OrderNum、次に OrderLineNum、次に OrderRelNum にリンクする必要があります。ビジネス オブジェクトが company にリンクされていない場合、インデックスに基づいて動作しないため、クエリが非常に遅くなります。
- クエリでパフォーマンスの問題が発生している場合は、リレーションシップがインデックス化されていることを確認してください。これを表示するには、[システム管理] -> [データ ディクショナリ ビューアー] に移動し、使用しているテーブルを検索します。ここに表示されているインデックスのみを使用して、2 つのビジネス オブジェクトを結合するようにしてください。そうしないと、パフォーマンスが低下します。プログレス システムを使用している場合、これらのインデックスは私の知る限り更新できません。必ず使用してください。
- 一般に、関係の方向の背後に特別な理由がない場合は、基本ビジネス オブジェクトを常に最小の詳細単位にし、親を子に向けます。たとえば、企業内のすべての注文リリースに関する情報をリストするレポートを作成する場合、OrderRel を追加し、次に OrderDtl を追加して、OrderDtl が OrderRel を指していることを確認し、次に OrderHed を追加して、OrderHed が OrderDtl を指していることを確認します。Epicor がこれを実際のクエリに変換する方法は、この順序によって異なります。
- この問題について具体的に説明するには、#3 で説明したモデルに従って少数のビジネス オブジェクトから始め、クエリがデータを返すようにします。返されるレコードが少なくなるまで、ビジネス オブジェクトを 1 つずつ追加します。これは、追加した BO のデータがこれらの関係フィールドのすべてを満たしていなかったことを意味し、2 つの間の関係線をクリックして [outer join] ボックスをオンにすると、それらが再表示されます。これを行うと、新しい BO からのフィールド データは表示されません。これは、その特定のデータに対して関係が存在しないためです。ただし、既に機能していた BO からのデータは除外されません。上記の例で、OrderHed を OrderDtl にリンクし、注文明細の一部が表示されなくなった場合、選択した注文明細の注文ヘッダーがないことが示唆されます。
- 別のユーザーが言ったように、右クリックを使用して親の子を反転しないでください->親の子を反転します. これらの問題が発生した場合は、ビジネス オブジェクトと関係を削除して保存し、再度追加してください。これを行うと、Epicor は関係の自動生成をより一貫して処理するように見えますが、親 BO を最初に追加することは実際にはお勧めしません。#4で説明した方法を使用し、追加するたびに保存します.
これらのルールに従えば、BAQ の問題はすべて解決するはずです。
これが役立つことを願っています!
出典: Epicor BAQ Development の 1 年半。
私はEpicor905.700cで作業しています
親子関係をひっくり返す必要がある場合、baq はほとんど機能しないことに気付きました。そのため、親にするテーブルを最初にデザイナーに追加することをお勧めします。つまり、XFileRef はデフォルトで XFileAttch の子であるため、XFileAtch を追加する前に XFileRef をデザイナに取り込みます。これは、私が理解しようとして数時間を無駄にしたことの 1 つです。