トランザクション・モデル開発のベスト・プラクティス

ベスト・プラクティスに従うことで、モデル分析に必要な時間を短縮できます。

  • 最初のフィルタによって、それ以降のフィルタでの分析に備え、最も小さいデータ・セットが作成されるようにすることを検討します。たとえば、最初のフィルタで日付属性に相対値を適用し、最新の月に該当するデータのみが選択されるようにします。

  • モデル・ロジックの早い段階では単純なフィルタを適用します。たとえば、モデルで請求書のレコードを分析する場合に、取り消されていない(「買掛/未払金請求書」ビジネス・オブジェクトの「取消日」属性が空白である)ものなど、特定のセットに分析を限定する単純なフィルタを含めることができます。または、しきい値(固定値より大きい金額など)を設定したり、特定のタイプのトランザクションを選択することもできます。

  • 単純なフィルタの属性は、提供されたオブジェクトとユーザー定義オブジェクトの両方で使用できます。その場合、モデルに2つのフィルタを作成します(各オブジェクトに1つ)。たとえば、モデルを作成していて、これに「買掛/未払金請求書金額が100より大きい」というフィルタが含まれているとします。また、「特殊請求書」というユーザー定義オブジェクトを作成したとします。これは、「買掛/未払金請求書」オブジェクトに基づいたデータ・セット・コントロールから開発され、「金額」属性が含まれています。2番目のフィルタ「特殊請求書金額が100より大きい」をモデルに含める必要があります。

  • 関数フィルタや、ユーザー定義オブジェクトに「関連先」条件を適用するフィルタは、単純なフィルタの後に適用することが最適です。

  • 「次と等しい」条件を使用するフィルタを複数作成して、レコードをグループに編成できます。フィルタによって同じビジネス・オブジェクトが呼び出される場合、それらのフィルタを順次配置します(モデル・ロジックで許容される場合)。

  • フィルタで「類似」(または「次に類似」)条件を使用して、類似するレコードのグループを設定できます。これらのフィルタの1つ以上をモデルに含めることができます。ただし、他のフィルタの後に配置します(モデル・ロジックで許可されている場合)。

  • Oracle Cloudへのログオン時に選択した言語が、作成するトランザクション・モデルのソース言語になります。一部のビジネス・オブジェクトでは、属性値は複数の言語に翻訳されます。モデルが適切な結果を返すように、翻訳済オブジェクトを使用するモデル・フィルタにおいてソース言語で属性値が検索されることを確認します。または、可能であれば常に、対応する名前属性ではなくID属性をモデル・フィルタにおいて使用します。

    たとえば、「ビジネス営業ユニット」オブジェクトが複数の言語に翻訳されるとします。スペイン語で作業しているユーザーが、"norte"を含むユニット名を検索するフィルタを使用してモデルを作成します。後で、英語で作業しているユーザーが、新しいモデルのベースとしてそのモデルをコピーします。ユーザーが"norte"を"north"に変更しないかぎり、このフィルタは結果を返しません。かわりに、どちらかのモデルの作成者が、名前の値ではなく、組織IDの値(これはどの言語でも同じです)を検索できます。

    自分がアクセスできるモデルのソース言語を識別するには、「モデル」ページで「表示」>「列」を選択し、「ソース言語」列を選択します。

  • ステップ・プロセスを使用してモデルを開発します。フィルタを追加し、モデルを保存して実行し、結果が予期したとおりであることを確認します。その後、別のフィルタを追加し、再度テストします。モデルが完全に開発されるまで続行します。これにより、予期しない結果がモデルから返された場合のトラブルシューティングが大幅に簡略化されます。

  • 既知のデータ・セットを使用してモデルを開発します。モデルの設計時にステップ・プロセスを使用することに加え、まず、既知のテスト・データの小さいセットを選択する単純なフィルタを追加することによって、データ・セットを制限することを検討してください。たとえば、「次と等しい」「次を含む」「次のいずれかと一致」などの条件を、請求書番号、サプライヤ名、個人名などの属性に対して使用します。このアプローチにより、モデル・ロジックの設計が容易になり、必要なフィルタを簡単に評価できます。

  • ほとんどのパターンは、グラフィックな結果と表形式の結果を返します。これらのパターンは、モデルでのみ使用されます。コントロールとしてデプロイするモデルでは使用しないでください。2つの例外があります。「正規化」パターンと「字句トークン化」パターンではグラフが生成されないため、これらはコントロールとしてデプロイされるモデルで使用することに適しています。