アルゴリズムの管理
サービス・マッピングは、宛先表に送信されるデータをカスタマイズするアルゴリズムとともに使用されます。
エンティティは、カスタム・フィールドを作成したり、ビュー・オブジェクト属性から入力値を受け取る標準フィールドを識別するために使用されます。 サービスは、Groovyスクリプトに基づいてエンティティのフィールドを変更または変換するために使用できるアルゴリズムを参照し、アルゴリズムによって読取りおよび書込みが可能なエンティティ属性を定義します。
アルゴリズムでカスタマイズを行う必要がある場合は、QP_ALGO_ENABLE_FACTORY_MODE_RUNプロファイル・オプションの「カスタマイズ」オプションをTrueに変更して、カスタマイズ・オプションを有効にする必要があります。 この値を更新するには、 に移動します。
アルゴリズムをカスタマイズするが、「カスタマイズ」オプションをTrueに変更しない場合、カスタマイズは選択されません。
既存のアルゴリズムをプロモートするか、新しいバージョンを作成するには、「アルゴリズムの管理」ページのアクション・メニューをクリックします。 アルゴリズムのステータスの新しいバージョンは、「進行中」になります。
アルゴリズムには、次の2つの事前定義済データ・セットがあります:
- AssetMap
- 折れ線
アルゴリズムの編集では、カスタム属性を管理するために、SoHeaderやLineEFFなどの新しい行を作成できます。 次のような値を使用します:
列名 | 列値 | ノート |
---|---|---|
名前 | SoHeader | カスタム名 |
変数パス | AssetRequest.SalesOrderHeaderと入力 |
|
カーディナリティ | ゼロまたは1 | この値を選択します。 |
データ・セット結合 | [HeaderId: {SoHeader.HeaderId}] |
|
ヘッダー明細の場合は、次のような情報を使用します。
列名 | 列値 | ノート |
---|---|---|
名前 | HeaderEFF | エンティティ名 |
変数パス | AssetRequest.HeaderEFF_Custom |
|
カーディナリティ | ゼロまたは1 | この値を選択してください。 |
データ・セット結合 | [HeaderId_Custom: {SoHeader.HeaderId}] |
|
明細の場合は、このような情報を使用します。
列名 | 列値 | ノート |
---|---|---|
名前 | LineEFF | エンティティ名 |
変数パス | AssetRequest.LineEFF_Custom |
|
カーディナリティ | ゼロまたは1 | この値を選択します。 |
データ・セット結合 | [FulfillLineId_Custom : {Fline.FulfillLineId}] |
|
アルゴリズムの条件の実行
エンティティおよび属性のルールを定義します。 これらはgroovyスクリプト文です。 Groovyは、Oracleクラウドで詳細なサポートを提供するJavaプラットフォーム用の標準の動的スクリプト言語です。 Groovyドキュメントを利用して、Groovyスクリプト言語を使用してアプリケーションを拡張する方法の基本を理解できます。
コンテキストでGroovyスクリプトを使用する必要がある場合、通常は式と呼ばれる短い1行スクリプトを使用しますが、技術的にはスクリプトと式は交換可能です。 1行の式を指定できる場所は、必要に応じて複数行のスクリプトを提供するための有効なコンテキストでもあります。 短い式と複数行のスクリプトのどちらを指定しても、使用する構文と機能は同じです。 コードが、それを使用するコンテキストに適した型の値を返すことを確認するだけで済みます。
groovyスクリプトのサンプルを次に示します:
-
AssetMap.CutomerAssetStartDate = FLine.FulfillLineFulfillmentDate ? : Fline.FulfillLineActualShipDate ? : 現在())
-
サービス・オーダーが作成されると、顧客とアセット開始日の両方が販売オーダー履行日と等しくなり、アセットの実績出荷日がシステム日付と等しくなります。
-
-
AssetMap.CustomerAssetStartdate = now () - 30
-
サービス・オーダーが作成されると、顧客アセット開始日はシステム日付から30日を引いた日付になります。
-
-
AssetMap.AssetAppCompChar4_Custom = HeaderEFF?.HeaderEFFAttri1_Custom
-
SOヘッダーの下に入力された値カスタム属性(カスタム属性1)が作成されると、アセット・アプリケーション・コンポーザ・カスタム属性(文字4)がマップされます
-
アルゴリズムのテスト
テストの目的は、ソース属性のデータ入力をシミュレートし、同じ.XMLファイルの結果を取得することです。 テスト・タブを選択し、新規追加ボタンをクリックして新しいxmlスクリプト名を作成することで、アルゴリズムをテストできます。
次に、鉛筆アイコンをクリックして.XMLファイルを編集します。 これにより、変数値と対話するためのポップアップ・ダイアログが有効になります。
次に、.XMLファイル・タイプにテスト入力値を入力して、テスト・スクリプトを実行します。 次のサンプルに従ってください。
ソース・データ | 例 | ノート |
---|---|---|
<CustomerAssetStartDate> | 2022-06-27T22:00:00.000 | これはアセット開始日です。 システム日付はここでOKです。 この形式に従っていることを確認してください。 |
<AssetOrderService:FulfillLineId> | 111 | これは販売オーダー明細IDです。数値はOKです。 |
<AssetOrderService:HeaderId> | 222 | これは販売オーダー・ヘッダーIDです。数値値はOKです。 |
<AssetOrderService:MapId> | 333 | これはマップIDです。数値値はOKです。 |
<AssetOrderService:HeaderEFFAttri1_Custom> | ATTR1 | これは、ソース販売オーダー・ヘッダー・カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を必ず選択してください |
<AssetOrderService:HeaderEFFNum1_Custom> | 10101 | これはソース販売オーダー・ヘッダー・カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を必ず選択してください |
<AssetOrderService:HeaderEFFDate1_Custom> | 2022-06-27T22:00:00Z | これはソース販売オーダー・ヘッダー・カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を選択してください |
<AssetOrderService:FulfillLineEFFAttri1_Custom> | ATTRFL1 | これはソース販売オーダー明細カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を必ず選択してください |
<AssetOrderService:FulfillLineEFFNum1_Custom> | 101001 | これはソース販売オーダー明細カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を必ず選択してください |
<AssetOrderService:FulfillLineEFFDate1_Custom> | 2022-06-27T22:00:00Z | これはソース販売オーダー明細カスタム属性です。 正しい属性タイプ(文字、数値、日付など)を必ず選択してください |
期待した結果が表示されます。 たとえば、HeaderEFFAttri1_Custom> ATTR1 <の値を入力すると、テストの実行時にAssetAppCompChar4_Custom> ATTR1 <結果リージョンに同じ値が結果として表示されます。
結果の行を修正するには、テストの実行ボタンを選択してスクリプトを実行する必要がある場合があります。
テストは、最終実行ステータスにチェック・マークが表示されたときに終了します。