Order Managementでの拡張可能フレックスフィールドの設定に関するガイドライン
Oracle Order Managementで拡張可能フレックスフィールドを設定するために、次のガイドラインを使用します。
- 付加フレックスフィールドとは異なり、拡張可能フレックスフィールドに必要な数のセグメントを追加できます。
- コンテキストを使用して、ビジネス・データをOrder Management作業領域の簡潔なセクション(ダイアログなど)に編成します。
- 表示および使用上のニーズに応じて、属性を論理グループに編成します。
- 拡張可能フレックスフィールドがオーダー取得およびオーダー履行ライフサイクルで役立つ可能性がある場所を検討します。
- 別のOracleアプリケーションと統合します。 「拡張可能フレックスフィールドを使用したOrder ManagementとOracle Applicationsの統合」を参照してください。
- オーダー・ヘッダーに追加する拡張可能フレックスフィールドは、オーダー明細に追加する拡張可能フレックスフィールドとは無関係です。 拡張可能フレックスフィールドごとに同じ名前を使用する場合でも、Order Managementはそれらの間で値を通信または転送しません。 それらの間の依存性が必要な場合は、オーダー管理拡張を作成し、拡張で依存ロジックを指定します。
セグメントおよびコンテキストの作成
ノート
操作 | 処理 |
---|---|
新規セグメントの作成 |
「コード」属性と「API名」属性に同じ値を使用します。 これにより、設定と保守が簡素化されます。 webサービス、ビジネス・ルール、ビジネス・インテリジェンスなどと統合する場合など、設定全体でAPI名を使用します。 セグメントの作成後にコードまたはAPI名を変更することはできません。 |
すでに存在するセグメントを変更します。 | API名は変更しないでください。 フレックスフィールドのロジックは、API名を調べます。 空の場合、ロジックではコードの値が使用されるため、API名に値を指定する必要はありません。 API名を変更すると、実行時に予期しない結果でフレックスフィールドが失敗する可能性があります。 |
ノート
-
セグメントごとに一意のコード、名前および説明を入力します。 オーダー管理作業領域ではこれらの値は表示されないため、設定および保守時に最も役立つ命名規則を使用してください。
- コンテキストで「翻訳可能」オプションを有効にしないでください。 詳細は、「オーダー管理での拡張可能フレックスフィールドの設定」を参照してください。
名称
作成する各コンテキストの「表示名」属性および「コード」属性は、文字で始まり、文字、数字および次の特殊文字のみが含まれていることを確認してください:
文字 |
摘要 |
---|---|
単一スペース | |
. |
期間 |
, | カンマ |
- |
ハイフン emダッシュまたはenダッシュを使用しないでください。 |
_ |
アンダースコア |
" |
二重引用符 |
: |
コロン |
/ |
スラッシュ |
ノート
- 複数の連続する空白文字を含めることはできません。
- 属性の値を空白文字で終わらせないでください。
「拡張可能フレックスフィールド属性の公開」スケジュール済プロセスの実行時に誤った別名エラーが発生した場合は、コンテキストに正しい命名法があることを確認してください。
属性およびセグメントの数
コンテキストに追加できる属性およびセグメントの数は、コンテキストに設定したデータ型によって異なります:
データ型 | 追加できる属性の数 | 追加できるセグメント数 |
---|---|---|
Varchar | 20 | 20 |
数値 | 10 | 5 |
日付 | 5 | 10 |
時間 | 5 | 10 |
各コンテキストに最大40個のセグメントを追加できます。
オーダー管理では、追加できるコンテキストの数は制限されませんが、各コンテキストがパフォーマンスに影響を与える可能性があるため、必要なコンテキストの最小数のみを追加する必要があります。
フレックスフィールドの識別
REST API、ファイルベース・データ・インポート、オーダー管理拡張のいずれを使用するかに関係なく、ペイロードでフレックスフィールドの属性およびコンテキスト・コードを正しく識別する必要があります。 オーダー明細にステータスを格納するために使用する拡張可能フレックスフィールドを追加する必要があるとします:
-
SourceLineInfoコンテキストおよびステータス・セグメントを履行明細情報拡張可能フレックスフィールドに追加します。
詳細は、「オーダー管理での拡張可能フレックスフィールドの設定」を参照してください。
-
「オーダーの拡張可能フレックスフィールドの管理」ページで、値を検索します。
属性
値
名前
履行明細情報
-
検索結果で、名前列に履行明細情報が含まれる「行」をクリックし、「処理」>「フレックスフィールド・アーカイブのダウンロード」をクリックします。
-
「確認」ダイアログで、「ダウンロード」をクリックし、zipファイルを任意のフォルダに保存します。
オペレーティング・システムのファイル・マネージャが開きます。 たとえば、Microsoft Windowsを使用している場合は、Windows Explorerが開きます。
-
ファイル・マネージャで、10008_DOO_FULFILL_LINES_ADD_INFO.zipをダブルクリックし、ビュー・フォルダまで展開します。
たとえば:
C:\downloads\10008_DOO_FULFILL_LINES_ADD_INFO.zip\oracle\apps\scm\doo\processOrder\flex\fulfillLineContextsB\view
FulfillLineEffBSourceLineInfoprivateVO.xmlファイルには、参照する必要がある拡張可能フレックスフィールド・セグメントが含まれています。
-
xmlエディタを使用して、FulfillLineEffBSourceLineInfoprivateVO.xmlを開きます。
-
webサービス・ペイロードで必要な値はどれですか。
-
属性名を検索します。
<ViewAttribute Name="status" EntityUsage="FulfillLineEffEO" EntityAttrName="status" AliasName="status">
-
コンテキスト・コードを検索します。
<Property Name="FND_ACFF_EFF_CONTEXT_CODE" Value="SourceLineInfo"/>
-
Order Management拡張の使用

ノート
-
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."); } }
インポートと統合
クローズ済オーダー明細またはクローズ済販売オーダーの拡張可能フレックスフィールドは、オーダー管理作業領域でのみ更新できます。 これは、ファイル・ベースのデータ・インポート、webサービス、REST API、Oracle Application Development Framework (ADF)などのインポートでは実行できません。
REST APIの使用
「Oracle Supply Chain Management CloudのREST API」 > 「Order Management」>「Order Hubの販売オーダー」>「販売オーダーの作成」に移動し、下にスクロールして例を確認します。 これらはすべて、拡張可能フレックスフィールドのインポート方法を説明しています。
例 | 説明 |
---|---|
19 | オーダー・ヘッダーにフレックスフィールドがある販売オーダーを作成および送信します。 Oracle Pricingを使用して価格設定します。 |
20 | 19と同じですが、フレックスフィールドはオーダー明細にあります。 |
21 | 19と同じですが、ヘッダーにフレックスフィールドがあり、明細に別のフレックスフィールドがあります。 |
41 | すでに存在する販売オーダーのヘッダーに新規フレックスフィールドを追加します。 |
42 | 41と同じですが、そのフレックスフィールドを更新します。 |
43 | 41と同じですが、同時に新しいフレックスフィールドも追加します。 |
44 | すでに存在する販売オーダーの明細に新しいフレックスフィールドを追加します。 |
45 | 44と同じですが、そのフレックスフィールドを更新します。 |
46 | 45と同じですが、同時に新しいフレックスフィールドも追加します。 |
47 | 44と同じですが、ヘッダーにもフレックスフィールドを追加します。 |
ファイル・ベース・データ・インポートの使用
オーダー・インポート・テンプレートを使用して拡張可能フレックスフィールドのデータをインポートする場合は、次のガイドラインを使用します:
-
オーダー・インポート・テンプレートで正しい列を参照するように、各セグメントの「表列」属性を割り当てます。
-
オーダー・ヘッダーの詳細を取得するには、DOO_ORDER_HDRS_ALL_EFF_B_INTワークシートを使用します。
-
オーダー明細の詳細を取得するには、DOO_ORDER_LINES_ALL_EFF_B_INTワークシートを使用します。
-
ATTRIBUTE_CHAR1などの列を使用して、各属性の詳細を取得します。
-
ワークシート名または列名は変更しないでください。 かわりに、コメントを追加します。
-
Excelにコメントを追加して、設定を文書化します。
拡張可能フレックスフィールドで使用できるのは、次のエンティティのみです:
-
ヘッダー
-
オーダー明細
オーダー明細エンティティに拡張可能フレックスフィールドを追加できません。 オーダー・ヘッダー・エンティティまたはオーダー明細エンティティに1つのみ追加できます。 テンプレートではDOO_ORDER_LINESというフレーズが使用されますが、DOO_ORDER_LINES_ALL_EFF_B_INTワークシートに追加した詳細を使用して、オーダー明細ではなくオーダー明細の拡張可能フレックスフィールドと対話します。 「オーダー管理にオーダーをインポート」を参照してください。
次の例では、ATTRIBUTE_CHAR1列を参照するコンプライアンス情報セグメントの設定方法を示します:

Webサービスの使用
webサービス・ペイロードにフレックスフィールドの詳細を追加します:
-
すべてのタスク・タイプで「履行タスク・レスポンス・サービスの受入」webサービスを使用します。 DooTaskFulfillOrderResponseInterfaceCompositeコンポジットを使用します。
-
拡張可能フレックスフィールド属性の公開スケジュール済プロセスを実行します。
-
スケジュール済プロセスが作成したログ・ファイルから、ペイロードを含むXSDファイルに拡張可能フレックスフィールド・データをコピーします。 フレックスフィールド・データを必要とする各オブジェクトにこのデータをコピーします。 このアプローチは、Oracle Order Managementの設定とチャネル・システムを同期させるのに役立ちます。
-
Application Development Framework (ADF)からのインポート・サービスを使用します。 SOA (サービス指向アーキテクチャ)インポート・サービスは使用しないでください。
この例のペイロードでは、1つのコード・セクションがログ・ファイルからXSDファイルにコピーされます:

「REST API、WebサービスおよびFBDIを使用したOrder Managementの統合に関するガイドライン」を参照してください。
フレックスフィールドの表示
オーダー・ヘッダーにフレックスフィールドを直接表示する場合は、Visual Builder Studioを使用する必要があります:
重要な詳細は、「オーダーの作成 - ビジネス・ルール」ビデオを参照してください。 フレックスフィールドの説明は3:50から始まります。
要約を次に示します。
- 「設定および保守」作業領域でフレックスフィールドを設定します。
- Visual Builder Studioを開きます。 詳細は、「Visual Builder Studioへのアクセス」を参照してください。
- フィールドおよびリージョンの構成をクリックします。
- 通常のフォーム・ルールを作成します。
- 「オーダー・ヘッダー」エンティティを展開します。
- additionalInformation要素の「非表示」列をクリックし、「デフォルトで表示」をクリックします。
- additionalInformationの下の「グローバル・データ要素」およびDOO_HEADERS_ADD_INFOを展開し、フレックスフィールドを除くすべての子要素を「常に非表示」に設定します。 フレックスフィールドが表示されていることを確認します。
- オプションとして、条件を使用してフレックスフィールドを表示するタイミングを指定します。 たとえば、ビジネス・ユニット属性にVision Operationsが含まれている場合にのみ表示します。
- ブラウザでポップアップ・ブロッカを削除し、「プレビュー」をクリックして、期待どおりにフレックスフィールドが表示されることを確認します。
-
すべてが良好に見える場合は、ページの上部にある「公開」をクリックします。
ヘッダーに直接表示するのではなく、ダイアログにフレックスフィールドを表示する場合は、Visual Builder Studioを使用する必要はありません。 「設定および保守」でフレックスフィールドを設定する場合は、DOO_HEADERS_ADD_INFOカテゴリを使用します。 実行時にアクセスするには、ヘッダーの「追加オーダー詳細」をクリックし、「新規販売オーダー」ダイアログの「追加オーダー情報」セクションを表示します。
オーダー明細でのフレックスフィールドの表示
Visual Builder Studioを使用して、オーダー明細にフレックスフィールドを表示する必要があります。 フレックスフィールドをヘッダーに追加するのに使用するステップと同じステップを実行します。ただし、フォーム・ルールのかわりに収集ルールを作成し、「オーダー明細(表)」エンティティを展開します。
バックグラウンドについては、次を参照してください:
変更の管理

変更管理の要件を特定します。 たとえば、フレックスフィールドの値を変更するときにオーケストレーション・プロセスが補正する必要があるかどうか、およびスケジュールや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.
詳細な例は、「変更する販売オーダーを補正」を参照してください。
すべてのフレックスフィールド値に対する変更を無視するには、「変更管理」セクションの各ステップに対して「フレックスフィールド属性の使用」が使用可能になっていないことを確認してください。
変更管理では、オーダー・ヘッダーにある実行時にフレックスフィールドの値に加えた各変更は無視されます。
レポートおよび分析の使用
レポートの変更

販売オーダー・レポートを使用すると、販売オーダーを作成または表示できます。
フレックスフィールドのデータをレポートに追加します:
-
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対多関係がサポートされます。 これを使用して、複数のコンテキスト依存セグメントを追加できます。
- コンテキストを削除しないでください。 コンテキストを作成して削除し、同じ名前で別のコンテキストを作成すると、販売オーダーの処理を妨げるランタイム・エラーが発生する可能性があります。 かわりに、すでに持っているコンテキストを修正するか、別の名前で別のコンテキストを作成してください。
コンテキストを削除する必要がある場合は、削除する前にそのコンテキストへのすべての参照を削除してください。 SourceLineInfoという名前のコンテキストを作成し、それを「追加履行明細情報」カテゴリに関連付けるとします。 SourceLineInfoを削除する必要がある場合は、まずSourceLineInfoと追加履行明細情報の間の関連を削除する必要があります。 次に、デプロイして公開し、SourceLineInfoを環境から削除します。
本番環境にデプロイおよび公開した後は、コンテキストまたはセグメントを変更または削除しないでください。 変更または削除する必要がある場合は、販売オーダーがコンテキストまたはセグメントを参照していないことを確認し、変更の完了後に再度デプロイおよび公開する必要があります。
-
オーダー明細のフレックスフィールドの値を更新できません。
-
販売オーダーを改訂し、オーダー明細のフレックスフィールドの値を更新できますが、改訂を処理するときにOrder Managementでは改訂値は使用されません。
-
販売オーダーまたはオーダー明細のステータスに関係なく、オーダー・ヘッダーのフレックスフィールドを更新できます。