RecommendationStrategy
ファイルのサフィックスおよびディレクトリの場所
RecommendationStrategy コンポーネントのサフィックスは .recommendationStrategy で、recommendationStrategies フォルダに保存されます。
バージョン
RecommendationStrategy コンポーネントは、API バージョン 45.0 以降で使用できます。
特別なアクセスルール
RecommendationStrategy 型のメタデータアクセスは、ManageRecommendationStrategies ユーザ権限によって裏付けられます。
項目
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| actionContext | StrategyAction[] | 戦略で使用されるアクションコンテキストの配列。 |
| contextRecordType | string | フローで使用される $record の sObject 型。 |
| description | string | おすすめ戦略の説明。 |
| filter | StrategyNodeFilter[] | 検索条件ノードの配列。 |
| if | StrategyNodeIf[] | if ノードの配列。 |
| invocableAction | StrategyNodeInvocableAction[] | Apex の呼び出し可能なアクションノードの配列。API バージョン 46.0 以降で利用できます。 |
| isTemplate | boolean | おすすめ戦略がテンプレートであるか (true)、否か (false) を示します。管理パッケージからインストールされた場合、知的財産 (IP) の保護により、登録者はおすすめ戦略の参照やコピーを行うことができません。ただし、おすすめ戦略がテンプレートの場合、登録者はそれをビルダーで開いたり、コピーしたり、カスタマイズしたりできます。この項目のデフォルト値は false です。API バージョン 47.0 以降で利用できます。 |
| label | string | 必須。フローの表示ラベル。 |
| map | StrategyNodeMap[] | 地図ノードの配列。API バージョン 46.0 以降で利用できます。 |
| mutuallyExclusive | StrategyNodeExclusive[] | mutuallyExclusive ノードの配列。 |
| onBehalfOfExpression | string | おすすめの意図した対象を定義する数式 (つまり、ケースに関連付けられた取引先責任者)。主に反応追跡に使用されます。 |
| recommendationLimit | StrategyNodeRecommendationLimit[] | おすすめ制限ノードの配列。 |
| recommendationLoad | StrategyNodeRecommendationLoad[] | おすすめ読み込みノードの配列。 |
| sort | StrategyNodeSort[] | 並び替えノードの配列。 |
| union | StrategyNodeUnion[] | 結合ノードの配列。 |
StrategyNodeBase
すべての戦略ノードの基本クラス。これは抽象クラスです。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| childNode | string | 子ノード名の配列 (実行順)。 |
| description | string | ノードの説明。 |
| label | string | ノードの表示ラベル。 |
| name | string | 必須。ノードの一意の名前。 |
StrategyAction
戦略から呼び出し可能なアクションへのコールを定義します。結果は、戦略の決定要素で使用されます。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| action | string | 必須。実行する InvocableAction の名前または ID。 |
| argument | StrategyActionArg[] | 戦略アクション引数のリスト。 |
| description | string | 戦略の説明。 |
| label | string | 戦略アクションの表示ラベル。 |
| name | string | 必須。戦略アクションの一意の名前。戦略の決定要素で参照されます。 |
| type | InvocableActionType (string 型の列挙) | 必須。呼び出し可能なアクションの種別。InvocableActionType 列挙を参照してください。. |
StrategyActionArg
戦略アクションに関連付けられている呼び出し可能なアクションに渡される引数を定義します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| name | string | 必須。呼び出し可能なアクションに渡すパラメータの一意の名前。 |
| value | string | 必須。評価結果が戦略アクションのパラメータ値として使用される Salesforce 数式。 |
StrategyNodeUnionBase
子の結合を実行するノードの基本クラス。結合ノードは、子の出力を結合して結合ノード自体への入力を作成します。StrategyNodeUnionBase は StrategyNodeBase を拡張し、その項目のすべてを継承します。これは抽象クラスです。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| limit | int | 出力される結果の最大数。 |
StrategyNodeFilter
おすすめを絞り込む検索条件要素を定義します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| expression | string | 必須。ノードの入力に含まれる各おすすめに対して実行される、結果が Boolean 値の数式。結果が true の入力から出力が作成され、結果が false の入力は除外されます。 |
StrategyNodeIf
除外する特定の子を選択し、その結果を結合します。子ノード式の配列に基づいて実行し、子ノードの結果を返します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| childNodeExpression | IfExpression[] | if 式の配列。 |
| onlyFirstMatch | boolean | true の場合、一致する子の結果のみを選択します。false の場合、一致する子すべての結果を選択して結合します。デフォルト値は false です。 |
IfExpression
StrategyNodeIf で使用される式。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| childName | string | 必須。照合する子の名前。 |
| expression | string | 必須。true または false を返す数式。 |
StrategyNodeInvocableAction
おすすめのリストを作成または拡張するために、Apex の呼び出し可能なアクションをコールする要素を定義します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| action | string | 必須。実行する呼び出し可能なアクションの名前。 |
| argument | StrategyNodeInvocableActionArg[] | 呼び出し可能なアクションに渡す引数のリスト。 |
| isGenerator | boolean | 必須。true の場合、UI で作成要素が表示されます。false の場合、UI で拡張要素が表示されます。デフォルトは false です。 |
| type | InvocableActionType (string 型の列挙) | 必須。呼び出し可能なアクションの種別。有効な値は apex です。 |
StrategyNodeInvocableActionArg
おすすめのリストを作成または拡張する Apex の呼び出し可能なアクションに渡す引数を定義します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| name | string | 必須。呼び出し可能なアクションに渡すパラメータの一意の名前。この名前は、呼び出し可能なアクションで定義されたパラメータに一致する必要があります。 |
| value | string | 必須。評価結果がアクションのパラメータ値として使用される Salesforce 数式。 |
StrategyNodeRecommendationLimit
すでに受諾または拒否されているおすすめを除外します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
StrategyNodeRecommendationLoad
おすすめオブジェクトを取得します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| condition | RecommendationLoadCondition[] | どのおすすめを読み込むかを指定する条件の配列。 |
| conditionLogic | string | 条件を組み合わせるロジック (AND または OR)。すべての条件が組み合わされます (混合ではない)。たとえば、Cond1 AND Cond2 AND Cond3 などです。 |
| object | string | 必須。おすすめを読み込�� sObject の API 名を指定します。たとえば、この項目は Account または MyCustomObject__c を参照し、そのオブジェクトの特定のレコードは参照しません。API バージョン 48.0 以降で利用できます。 |
| sortField | StrategyNodeSortField | 並び替える項目。API バージョン 48.0 以降で利用できます。 |
RecommendationLoadCondition
StrategyNodeRecommendationLoad で作成されたクエリの一部として使用される条件を表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| field | string | 必須。おすすめ BPO (SOAP) オブジェクトの任意の項目。 |
| operator | RecommendationConditionOperator (string 型の列挙) | 必須。
|
| value | RecommendationConditionValue | 必須。クエリで使用する定数値。 |
StrategyNodeSortField
StrategyNodeSort および StrategyNodeRecommendationLoad で並び替える項目を定義します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| name | string | 必須。並び替える項目の名前。 |
| nullsFirst | boolean | true の場合、null 値はリストの先頭に並び替えられます。デフォルトは false です。 |
| order | SortOrder (string 型の列挙) |
リストの並び替え順。デフォルトは Asc です。有効な値は、次のとおりです。
|
StrategyNodeSort
おすすめを並び替えます。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| field | StrategyNodeSortField | 必須。並び替える項目。 |
StrategyNodeUnion
StrategyNodeUnion は、すべての子ノードの出力を結合します。StrategyNodeUnion は StrategtNodeUnionBase の具象実装であり、その項目のすべてを継承します。
StrategyNodeMap
値を使用しておすすめ項目を設定します。StrategyNodeUnionBase を拡張し、その項目のすべてを継承します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| mapExpression | MapExpression[] | MaxExpressions のリスト。 |
宣言的なメタデータの定義のサンプル
前の定義を参照する RecommendationStrategy コンポーネントの例を次に示します。
1<?xml version="1.0" encoding="UTF-8"?>
2<RecommendationStrategy xmlns="http://soap.sforce.com/2006/04/metadata">
3 <contextRecordType>Asset</contextRecordType>
4 <description>Hills Brothers Coffee strategy to handle machine down incidents</description>
5 <if>
6 <childNode>IfNoEscaladeOrBetterSupport</childNode>
7 <childNode>IfModel</childNode>
8 <description>If Machine Down</description>
9 <label>RootNode</label>
10 <name>RootNode</name>
11 <childNodeExpression>
12 <childName>IfModel</childName>
13 <expression>ISPICKVAL($Record.Status, "OutOfOrder")</expression>
14 </childNodeExpression>
15 <childNodeExpression>
16 <childName>IfNoEscaladeOrBetterSupport</childName>
17 <expression>ISPICKVAL($Record.Status, "OutOfOrder")</expression>
18 </childNodeExpression>
19 <onlyFirstMatch>false</onlyFirstMatch>
20 </if>
21 <if>
22 <childNode>LoadEscalade</childNode>
23 <description>If Customer does not have escalade support plan</description>
24 <label>IfNoEscaladeOrBetterSupport</label>
25 <name>IfNoEscaladeOrBetterSupport</name>
26 <childNodeExpression>
27 <childName>LoadEscalade</childName>
28 <expression>NOT(ISPICKVAL($Record.Account.SLA__c, "Gold") || ISPICKVAL($Record.Account.SLA__c, "Platinum"))</expression>
29 </childNodeExpression>
30 <onlyFirstMatch>false</onlyFirstMatch>
31 </if>
32 <if>
33 <childNode>LoadMiniDiagnostic</childNode>
34 <childNode>LoadMaxiDiagnostic</childNode>
35 <description>If Machine Model switch node</description>
36 <label>IfModel</label>
37 <name>IfModel</name>
38 <childNodeExpression>
39 <childName>LoadMiniDiagnostic</childName>
40 <expression>$Record.Product2.Name == "Mini Coffee Roaster"</expression>
41 </childNodeExpression>
42 <childNodeExpression>
43 <childName>LoadMaxiDiagnostic</childName>
44 <expression>$Record.Product2.Name == "Maxi Coffee Roaster"</expression>
45 </childNodeExpression>
46 <onlyFirstMatch>false</onlyFirstMatch>
47 </if>
48 <label>HillsBrothersCoffee</label>
49 <recommendationLoad>
50 <description>Load upgrade to escalade support plan</description>
51 <label>LoadEscalade</label>
52 <name>LoadEscalade</name>
53 <condition>
54 <field>Name</field>
55 <operator>EQUALS</operator>
56 <value>
57 <type>TEXT</type>
58 <value>Upgrade your Maintenance Package</value>
59 </value>
60 </condition>
61 <conditionLogic>and</conditionLogic>
62 </recommendationLoad>
63 <recommendationLoad>
64 <description>Load Mini Coffee Roaster Diagnostic Troubleshooting proposition</description>
65 <label>LoadMiniDiagnostic</label>
66 <name>LoadMiniDiagnostic</name>
67 <condition>
68 <field>Name</field>
69 <operator>EQUALS</operator>
70 <value>
71 <type>TEXT</type>
72 <value>Mini Coffee Roaster Diagnostic Troubleshooting</value>
73 </value>
74 </condition>
75 <conditionLogic>and</conditionLogic>
76 </recommendationLoad>
77 <recommendationLoad>
78 <description>Load Maxi Coffee Roaster Diagnostic Troubleshooting proposition</description>
79 <label>LoadMaxiDiagnostic</label>
80 <name>LoadMaxiDiagnostic</name>
81 <condition>
82 <field>Name</field>
83 <operator>EQUALS</operator>
84 <value>
85 <type>TEXT</type>
86 <value>Maxi Coffee Roaster Diagnostic Troubleshooting</value>
87 </value>
88 </condition>
89 <conditionLogic>and</conditionLogic>
90 </recommendationLoad>
91 <union>
92 <childNode>RootNode</childNode>
93 <label>Output</label>
94 <name>Output</name>
95 </union>
96 <invocableAction>
97 <action>MyInvocableApexClass</action>
98 <isGenerator>true</isGenerator>
99 <type>apex</type>
100 <argument>
101 <name>MyNameParam</name>
102 <value>$User.FirstName</value>
103 </argument>
104 <argument>
105 <name>MyIdParam</name>
106 <value>$Record.Id</value>
107 </argument>
108 </invocableAction>
109 <map>
110 <expression>
111 <name>Name</name>
112 <expression>'Hello' & $User.FirstName</expression>
113 <type>TEXT</type>
114 </expression>
115 <expression>
116 <name>MyDynamicField</name>
117 <expression>Id == $Record.Id</expression>
118 <type>BOOLEAN</type>
119 </expression>
120 </map>
121</RecommendationStrategy>マニフェストファイル内のワイルドカードのサポート
このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。