Order Managementでの拡張可能フレックスフィールドの設定に関するガイドライン
Oracle Order Managementで拡張可能フレックスフィールドを設定するために、次のガイドラインを使用します。
- 付加フレックスフィールドとは異なり、必要な数のセグメントを追加できます。
- コンテキストを使用して、ビジネス・データをダイアログなどのユーザー・インタフェース要素の簡潔な領域に編成します。
- 表示および使用の要件に従って、属性を論理グループに編成します。
- 拡張可能フレックスフィールドがオーダー取得およびオーダー履行ライフサイクルで役立つ可能性がある場所を検討します。
- 販売オーダー・ヘッダーに追加する拡張可能フレックスフィールドは、履行明細に追加する拡張可能フレックスフィールドから独立しています。 拡張可能フレックスフィールドごとに同じ名前を使用する場合でも、Order Managementはそれらの間で値を通信または転送しません。 それらの間の依存性が必要な場合は、オーダー管理拡張を作成し、拡張で依存ロジックを指定します。
セグメントおよびコンテキストの作成
指定に応じて、次のようになります。
作成または変更 | 処理 |
---|---|
新規セグメントの作成 |
「コード」属性と「API名」属性に同じ値を使用します。 これにより、設定と保守が簡素化されます。 API名は、webサービス、ビジネス・ルール、ビジネス・インテリジェンスなどと統合する場合など、設定全体で使用します。 セグメントの作成後にコードまたはAPI名を変更することはできません。 |
すでに存在するセグメントを変更します。 | API名は変更しないでください。 拡張可能フレックスフィールド・ロジックはAPI名を調べます。 空の場合、ロジックではコードの値が使用されるため、API名に値を指定する必要はありません。 API名を変更すると、実行時にフレックスフィールドが予期しない結果で失敗する可能性があります。 |
ノート
-
セグメントごとに一意のコード、名前および説明を入力します。 オーダー管理作業領域ではこれらの値は表示されないため、設定および保守時に最も役立つ命名規則を使用してください。
- コンテキストで「翻訳可能」オプションを有効にしないでください。 詳細は、「オーダー管理での拡張可能フレックスフィールドの設定」を参照してください。
名称
作成するフレックスフィールド、コンテキストおよびセグメントごとに、「表示名」属性と「コード」属性で正しい命名法が使用されていることを確認します:
-
属性が文字で始まり、文字、数字および次の特殊文字のみが含まれていることを確認してください:
文字
摘要
単一スペース .
期間
-
ハイフン
emダッシュまたはenダッシュを使用しないでください。
_
アンダースコア
'
一重引用符
:
コロン
/
スラッシュ
-
コード属性を数値で開始しないでください。 XMLでは、数字で始まるコンテキスト名またはセグメント名はサポートされません。 コンテキストまたはセグメントの名前を数字で始めると、オーダー管理では実行時に名前にアンダースコア( _)が自動的に表示されます。 たとえば、コンテキストに1MyContextという名前を付けると、Order Managementによって、名前が自動的に_1MyContext.Beginに変更され、アルファベットの文字AからZが付けられます。
-
複数の連続する空白文字を含めることはできません。
-
コード属性にスペースを含めないでください。 領域があると、実行時エラーが発生します。
- 属性の値を空白文字で終わらせないでください。
「拡張可能フレックスフィールド属性の公開」スケジュール済プロセスの実行時に誤った別名エラーが発生した場合は、コンテキストおよびセグメントで正しい命名法が使用されていることを確認してください。
属性およびセグメントの数
コンテキストに追加できる属性およびセグメントの数は、コンテキストに設定したデータ型によって異なります:
データ型 | 追加できる属性の数 | 追加できるセグメント数 |
---|---|---|
Varchar | 20 | 20 |
数値 | 10 | 5 |
日付 | 5 | 10 |
時間 | 5 | 10 |
各コンテキストに最大40個のセグメントを追加できます。
オーダー管理では、追加できるコンテキストの数は制限されませんが、各コンテキストがパフォーマンスに影響を与える可能性があるため、必要なコンテキストの最小数のみを追加する必要があります。
オーダー管理拡張の作成
ノート
-
If文を含めて、拡張が参照する各コンテキストおよびセグメントが存在し、値が含まれていることを確認します。 欠落しているオブジェクトと空の値をチェックしない場合、予測できない結果で拡張が失敗する可能性があります。
-
拡張可能フレックスフィールドの値を作成または更新するには、getOrCreateContextRowメソッドを使用します。 オブジェクトが存在しない場合は、getOrCreateContextRowによってオブジェクトが作成されるため、このメソッドを使用して更新を行う前にオブジェクトが存在するかどうかを判断する必要はありません。 getContextRowを使用して行のみを取得します。
-
拡張可能フレックスフィールド・コンテキストを参照する場合は、コンテキスト・コードを使用します。
-
拡張可能フレックスフィールド・セグメントを参照する場合は、API名を使用します。 拡張可能フレックスフィールドの設定時にAPI名を指定しない場合は、セグメント・コードを使用しますが、スペース()のかわりにアンダースコア( _)を使用します。
-
Groovyコードは、拡張可能フレックスフィールドからすべてのデータを取得するためにコンテキストおよびセグメントを横断する必要があります。
while
文を使用してすべてのデータを横断する例を次に示します。def complianceDetails = header.getOrCreateContextRow("ComplianceDetails"); complianceDetails.setAttribute("_ComplianceReason", "This has been set by pre submit extension."); def lines = header.getAttribute("Lines"); while( lines.hasNext() ) { def line = lines.next(); def inventoryItemId = line.getAttribute("ProductIdentifier"); def orgId = line.getAttribute("InventoryOrganizationIdentifier"); def item = getItem(inventoryItemId, orgId); String hazardous = item.getAttribute("HazardousMaterialFlag"); def packShipInstruction = line.getOrCreateContextRow("PackShipInstruction"); if( "Y".equals(hazardous) ) { // get details for fulfill line context PackShipInstruction packShipInstruction.setAttribute("_ShippingInstruction", "Hazardous Handling Required."); } }
ビジネス・ルールの使用
履行システムで、販売オーダーの事前定義済属性が指定していないデータが必要な場合は、他の販売オーダー属性にデフォルト値を設定するための基準として拡張可能フレックスフィールドの値を使用します。
Sample Requestedという名前の拡張可能フレックスフィールドを設定したとします。 次の値を含めることができます:
-
無料
-
手数料
-
サンプルなし
変換ルールを作成できます:
If the value is Complimentary or Charge, then add a fulfillment line for the sample item.
次に、値がComplimentaryかChargeかに応じて、サンプル明細の価格詳細を移入するルールを設定できます。
拡張可能フレックスフィールドでは属性のデフォルト値を設定できないため、変換ルールの処理時に、次のタイプの変換のいずれかでデフォルト・ルールを実行してください:
変換のタイプ |
摘要 |
---|---|
変換前 |
他の変換ロジックで属性のデフォルト値が必要な場合は、拡張可能フレックスフィールドを使用します。 たとえば、デフォルト属性値を使用して変換時に無料サンプル項目を追加するかどうかを決定する必要がある場合は、デフォルト値を設定する変換前ルールを作成します。 |
変換後 |
デフォルト・ルールを実行する前に変換を実行する必要がある場合は、ポスト変換を使用します。 たとえば、変換中に品目を追加する予定で、オーダー・ヘッダーで拡張可能フレックスフィールド属性を使用して、新しい履行明細に設定するデフォルト値を決定する場合などです。 |
ビジネス・ルールで拡張可能フレックスフィールドを使用します。 詳細は、「ビジネス・ルールのフレックスフィールド・コンテキストおよびカテゴリ・コードの識別」を参照してください。
インポートと統合
クローズ済履行明細またはクローズ済販売オーダーの拡張可能フレックスフィールドは、Order Management作業領域でのみ更新できます。 これは、ファイル・ベースのデータ・インポート、webサービス、REST API、Oracle Application Development Framework (ADF)などのインポートでは実行できません。
ソース・オーダーのインポート
オーダー・インポート・テンプレートを使用して拡張可能フレックスフィールドのデータをインポートする場合は、次のガイドラインを使用します:
-
オーダー・インポート・テンプレートで正しい列を参照するように、各セグメントの「表列」属性を割り当てます。
-
オーダー・ヘッダーの詳細を取得するには、DOO_ORDER_HDRS_ALL_EFF_B_INTワークシートを使用します。
-
履行明細の詳細を取得するには、DOO_ORDER_LINES_ALL_EFF_B_INTワークシートを使用します。
-
ATTRIBUTE_CHAR1などの列を使用して、各属性の詳細を取得します。
-
ワークシート名または列名は変更しないでください。 かわりに、コメントを追加します。
-
Excelにコメントを追加して、設定を文書化します。
拡張可能フレックスフィールドで使用できるのは、次のエンティティのみです:
-
ヘッダー
-
履行明細
-
履行明細詳細
オーダー明細エンティティに拡張可能フレックスフィールドを追加できません。 オーダー・ヘッダー・エンティティまたは履行明細エンティティにのみ追加できます。 テンプレートではDOO_ORDER_LINESという語句が使用されますが、DOO_ORDER_LINES_ALL_EFF_B_INTワークシートに追加する詳細を使用して、オーダー明細ではなく履行明細の拡張可能フレックスフィールドと相互作用します。 「オーダー管理にオーダーをインポート」を参照してください。
次の例では、ATTRIBUTE_CHAR1列を参照するコンプライアンス情報セグメントの設定方法を示します:
Webサービスを使用した拡張可能フレックスフィールド詳細のインポート
Order Managementがwebサービスとの通信に使用するペイロードに拡張可能フレックスフィールドの詳細を追加します:
-
すべてのタスク・タイプで、受入履行タスク・レスポンス・サービスというwebサービスを使用します。 DooTaskFulfillOrderResponseInterfaceCompositeを使用します。
ペイロードの例を取得します。 詳細は、「オーダー管理を統合するWebサービス・ペイロードの例」を参照してください。
返品、カバレッジ、構成など、様々な例を使用できます。 これらのペイロードには、必要な販売オーダー・データの大部分が含まれます。
-
独自のペイロードを作成する場合は、ペイロードに必要なWSDL定義に従って作成します。 「独自のペイロードを使用した拡張可能フレックスフィールドのインポート」を参照してください。
-
拡張可能フレックスフィールド属性の公開スケジュール済プロセスを実行します。
-
スケジュール済プロセスが作成したログ・ファイルから、ペイロードを含むXSDファイルに拡張可能フレックスフィールド・データをコピーします。 拡張可能フレックスフィールド・データを必要とする各オブジェクトにこのデータをコピーします。 このアプローチは、Oracle Order Managementの設定とチャネル・システムを同期させるのに役立ちます。
-
Application Development Framework (ADF)からのインポート・サービスを使用します。 SOA (サービス指向アーキテクチャ)インポート・サービスは使用しないでください。
次に、ログ・ファイルからXSDファイルに1つのコード・セクションをコピーするペイロードの例を示します:
「Webサービスを使用したOrder Managementの統合に関するガイドライン」を参照してください。
他のOracle Applicationsとの統合
Oracle Pricing、Oracle Receivables、Oracle Shipping、Oracle Receiving、Oracle Purchasingなど、他のOracle Applicationと統合する場合は、拡張可能フレックスフィールドを使用します。 Oracle Pricingに設定したサービス・マッピングと同様のサービス・マッピングを設定します。 拡張可能フレックスフィールドを使用して、サービス・マッピングに必要な値を格納します:
ノート
-
ログ・ファイルからビュー・オブジェクトの名前をコピーします。 サービス・マッピングでは、ビュー・オブジェクトを使用して拡張可能フレックスフィールドからデータを取得します。 拡張可能フレックスフィールド属性の公開スケジュール済プロセスで作成されるログ・ファイルを使用します。
-
新しいエンティティをそれぞれ指定する場合は、_Customサフィクスを使用します。
-
統合アルゴリズムを使用して、複雑なロジックを実装します。 たとえば、品目を品目をカバーするカバレッジと連結し、数量を追加してから、結果をOracle Receivablesの付加フレックスフィールドに格納する必要があるとします。 統合アルゴリズムを使用して、この要件を実装できます。
変更の管理
変更管理の要件を特定します。 たとえば、拡張可能フレックスフィールドの値を変更したときにオーケストレーション・プロセスが補正する必要があるかどうか、およびスケジュールやOracle Receivablesのコールなど、補正時に実行する処理を確認します。
オーケストレーション・プロセスは、参照する値によってフレックスフィールドが変更されるのか、特定のものに変更されるのかによって異なります:
報酬値 | 「フレックスフィールド属性の使用」オプションを有効にします |
---|---|
任意の拡張可能フレックスフィールド | オーケストレーション・プロセス定義のヘッダー上。 |
特定の拡張可能フレックスフィールド |
オーケストレーション・プロセス定義の「変更管理」セクション。 拡張可能フレックスフィールドを参照するオーケストレーション・プロセス・ステップに追加します。 また、このステップに報酬パターンを設定します。 報酬パターンを使用して、変更する値に応じて、取消、作成、更新などの処理を指定します。 設定では、1つの値が変更されたときに更新を送信し、他の値が変更されたときに更新の送信をスキップできます。 この方法では、実行する報酬をより詳細に制御できます。 |
報酬パターンの例を次に示します:
pseudocode:
If segment3 changes, then cancel task x, and then recreate task x.
If segment4 changes, then do nothing.
If segment5 changes, then call an update service.
詳細な例は、「変更する販売オーダーを補正」を参照してください。
すべての拡張可能フレックスフィールド値に対する変更を無視するには、「変更管理」セクションの各ステップの「フレックスフィールド属性の使用」が使用可能でないことを確認してください。
変更管理では、オーダー・ヘッダーの場合、実行時に拡張可能フレックスフィールドの値に加えた各変更は無視されます。
オーダー管理の作業領域の使用
56794販売オーダーで拡張可能フレックスフィールドを検索する必要があるとします:
- 「オーダー管理」作業領域に移動します。
- 概要ページの「タスク」>「履行明細の管理」。
- 「フィールドの追加>拡張可能フレックスフィールド・カテゴリ」をクリックします。
- 値を設定します:
属性 値 オーダー 56794 拡張可能フレックスフィールド・カテゴリ 追加の履行明細情報と等しい - 「検索」をクリックします。
- 検索結果で、右端までスクロールし、拡張可能フレックスフィールドの属性を確認します。 これらは、コンテキストやカテゴリなど、フレックスフィールドに対して設定した名前を持ちます。
オプションとして、「表示」>「列」をクリックし、検索結果から個々の属性を追加または削除します。
- 「保存」をクリックして、検索を保存します。 このようにして、次にフレックスフィールドの詳細を表示する必要があるときに、保存済検索にアクセスできます。
販売オーダーのフレックスフィールドを検索する別の方法は次のとおりです:
- 「オーダー管理」作業領域に移動します。
- 「概要」ページで、「タスク」→「オーダーの管理」の順にクリックします。
- 「オーダーの管理」ページで、「フィールドの追加」>「拡張可能フレックスフィールド・カテゴリ」をクリックします。
- 属性を設定します:
属性 値 オーダー 56794 拡張可能フレックスフィールド・カテゴリ 等しい追加ヘッダー情報
レポートおよび分析の使用
レポートの変更
販売オーダー・レポートを使用すると、販売オーダーを作成または表示できます。
拡張可能フレックスフィールド・データをレポートに追加します:
-
Oracle Analytics Publisher Desktopのインストール
-
Oracle Analytics Publisherの販売オーダー・レポートの編集処理を使用します。 このアクションにより、販売オーダー・レポートがリッチ・テキスト形式で表示されるため、変更できます。
-
「原野」を右クリックし、「コピー」をクリックします。
-
Oracle Analytics Publisherのプロパティを使用して、レポートがフィールドのデータを表示するために使用するソースを指定します。 次の書式を使用します:
<?context/segment?>
説明
-
context。 拡張可能フレックスフィールド・コンテキストの名前。
-
/ (フォワード・スラッシュ)。 コンテキストとセグメントの間にはスラッシュを使用する必要があります。
-
segment。 拡張可能フレックスフィールド・セグメントの名前。
-
context/segment
を囲むには、一連の疑問符( ?? )を使用する必要があります。 -
疑問符を囲むには、山カッコ(< >)のセットを使用する必要があります。
たとえば、Context1を使用して取引コンプライアンスの詳細を格納し、SegmentAを使用してコンプライアンスの説明を格納する拡張可能フレックスフィールドを設定したとします。 次のコードを使用します:
<?Context1/SegmentA?>
-
分析の変更
Oracle Transaction Business Intelligence (OTBI)は、アナリティク・レポートを提供します。 拡張可能フレックスフィールド・データはOTBIで表示できます。
ノート
-
拡張可能フレックスフィールドの設定時に「BI有効」オプションを有効にします。
-
トランザクションBusiness IntelligenceのOracle Fusionデータ拡張のインポート・スケジュール済プロセスを実行します。 このプロセスによってOTBIが更新され、OTBIのサブジェクト領域に拡張可能フレックスフィールドが表示されます。 詳細は、「フレックスフィールド変更インポートの概要」を参照してください。
-
サブジェクト領域からOTBIのレポートに拡張可能フレックスフィールドを追加します。
-
OTBIで使用される形式は次のとおりです。
Category_Context
たとえば:
Additional Fulfillment Line Information_Additional Details1
説明
-
Additional Fulfillment Line Information
はカテゴリです。 -
Additional Details1
はコンテキストです。
-
その他のガイドライン
拡張可能フレックスフィールドでは、1つのエンティティと1つ以上の属性との間の1対多関係がサポートされます。 これを使用して、複数のコンテキスト依存セグメントを追加できます。
拡張可能フレックスフィールドは、履行明細または拡張可能フレックスフィールドをサポートする他のオブジェクトに対して設定できます。
-
履行明細の拡張可能フレックスフィールドの値を更新できません。
-
販売オーダーを改訂し、履行明細の拡張可能フレックスフィールドの値を更新できますが、オーダー管理では改訂の処理時に改訂値を使用しません。
-
販売オーダーまたはオーダー明細のステータスに関係なく、オーダー・ヘッダーの拡張可能フレックスフィールドを更新できます。