SRから作業オーダーにさらにフィールドをマップするにはどうすればよいですか。
この例では、サービス・リクエストから作業オーダーに追加フィールドをマップする方法を示します。 たとえば、SRのタイトルを作業オーダーにマップします。
ノート: この例では、カスタム・フィールドがレイアウトにすでにマップされていることを前提としています。
VB Enterでの新規アクション・チェーンの作成
- AppUIsタブ>「Oracle CX Service UI拡張アプリケーション」を展開→「サービス」>「fieldsvc」>「作成」ページにナビゲートします。
- 「イベント・リスナー」>「VBEnterでの新規イベント・リスナーの作成」>「ページの作成」アクション・チェーン (JSON形式)に移動します。 たとえば、vbEnterChangeListener.json
ノート:
デフォルトでは、VBはJavascript形式で生成されます。 JSON形式に変更します。
Create-page.json-xファイルは、次のコードに示すように行を生成します:
Create-page.json-x
"vbEnter": {
"chains": [
{
"parameters": {},
"chainId": "vbEnterChangeListener"
}
]
}
アクション・チェーンのフィールドの割当
- 前のステップで作成したアクション・チェーンにナビゲートし、次のロジックを追加します:
- 'fetchSRDetails' = trueの割当
- 'fetchOtherSRFields' = <SR Field names with coma separated>を割り当てます
ノート:
フィールド名は、サービス・リクエスト・オブジェクトと一致する必要があります。 次に例を示します: CustomText_c,CustomText_c_2. アクション・チェーンJSONファイルは、次のコードのようになります:
vbEnterChangeListener.json
"actions": {
"assignVariablesFetchSRDetails": {
"module": "vb/action/builtin/assignVariablesAction",
"parameters": {
"$base.page.variables.fetchSRDetails": {
"source": true
}
},
"outcomes": {
"success": "assignVariables"
}
},
"assignVariables": {
"module": "vb/action/builtin/assignVariablesAction",
"parameters": {
"$base.page.variables.fetchOtherSRFields": {
"source": "{{'CustomText_c','CustomText_c_2'}}"
}
}
}
}
ページ・イベントの処理チェーンの作成と入力パラメータの追加
- 「イベント'fetchSRDetails'」>「JSON形式のページ・アクション・チェーンの作成」ページの「イベント・リスナー」>「新規イベント・リスナーの作成」にナビゲートします。 例: fetchSRDetailsChangeListener.json
ノート:
デフォルトでは、VBはJavascript形式を生成します。 これをJSON形式に変更する必要があります。
アクション・チェーン > $event.srObj (入力パラメータへのマップ'event.srOb'jオブジェクト)の入力パラメータを'srObj'として宣言します。
create-page-x.json
"oracle_cx_serviceUI/page:fetchSRDetails": {
"chains": [
{
"parameters": {
"srObj": "{{ $event.srObj }}"
},
"chainId": "fetchSRDetailsChangeListener"
}
]
}
アクション・チェーンおよびマップ・イベント・オブジェクトの入力パラメータの追加
- 前のステップで作成したアクション・チェーンにナビゲートし、次のようにロジックを入力します:
- イベント・リスナー"srObj"の入力パラメータを'Any'タイプとして作成し、コール元からの入力必須としてマークします。
fetchSRDetailsChangeListener.json
"variables": { "srObj": { "type": "any", "input": "fromCaller" } }
新しいJS関数を作成し、パラメータを渡します
- 次のコード・サンプルに示すように、コール関数メソッドを起動し、新しい関数'assignFieldsFromSRtoWO'を作成し、パラメータ'srObj'および'customerWorkOrders'オブジェクトを追加します:fetchSRDetailsChangeListener.json
"assignFieldsFromSRtoWO": { "module": "vb/action/builtin/callModuleFunctionAction", "parameters": { "module": "[[ $functions ]]", "functionName": "assignFieldsFromSRtoWO", "params": [ "{{ $variables.srObj }}", "{{ $base.page.variables.customerWorkOrders }}" ] }
- 'assignFieldsFromSRtoWO'関数で、SRオブジェクト・フィールドをWOオブジェクト・フィールドにマップし、追加したWOオブジェクトを関数から返すロジックを追加します。 コードは次のようになります:
create-page-x.js
/** * assign Fields from SR to WO Object * @param {Object} srObject * @param {Object} woObject * @return {Object} woObject */ assignFieldsFromSRtoWO(srObject,woObject) { woObject.WorkOrderCustText_c = srObject.CustomText_c; // Add relevant object mapping example : WorkOrderCustText_c is wo custom field where 'CustomText_c' is SR custom field return woObject; }
作業オーダー・オブジェクトへの機能結果の割当
- 前のステップから取得した関数結果に'customerWorkOrders'オブジェクトを割り当てます。 アクション・チェーン・コードは次のようになります:
fetchSRDetailsChangeListener.json
"actions": {
"assignVariablesCustomerWorkOrders": {
"module": "vb/action/builtin/assignVariablesAction",
"parameters": {
"$base.page.variables.customerWorkOrders": {
"source": "{{ $chain.results.assignFieldsFromSRtoWO }}"
}
}
}
オプション・ステップ: 実行時にエラーが表示される場合(たとえば、ブラウザ・コンソールに'create-page-template-x.html'が見つからない場合):
「作成」ページにナビゲートし、テスト・セクションを作成して'create-page-template-x.html'を生成します。 これは、カスタマイズ・ページをロードするために必要です。
- fieldsvcセクションに移動し、「作成」ページを見つけます。
- ページ・デザイナで、「構造」タブに移動し、「コンテナ・ルールセット」セクションをクリックします。
- プロパティ・ウィンドウが開きます。
- CreateFormTemplateリンクをクリックします。
-
CreateFormTemplateウィンドウで、ドロップダウン・リストからオプション「セクションの作成」を選択します。
-
このステップでは、サンプル・セクションを作成し、最終的に"create-page-template-x.html"という名前のファイルを生成します。