覆盖产品发现的流
使用“发现产品”流选择目录,然后将产品从目录添加到关联的记录页面。“发现产品”流随时可用于产品发现,您可以自定义可用功能之外的流,以满足您的业务需求。
所需的 Edition
| 查看支持的产品和版本。 |
| 所需用户权限 | |
|---|---|
| 在 Flow Builder 中打开、编辑或创建流: | 管理流 |
创建创建上下文数据输入记录的 Apex 类
该流使用 Apex 类创建包含对象 API 名称和记录 ID 的 ContextDataInput 记录列表。然后,该流将包含其他上下文数据的列表传输到产品列表页面容器组件。该组件显示产品,并使用其他上下文数据、上下文定义、资格规则程序和资格规则来确定产品资格。
创建 Apex 类,将对象的 API 名称和记录 ID 作为输入,并返回 ContextDataInput 记录列表作为输出。
- 从“设置”中,在快速查找框中,输入 Apex 类并选择它。
- 单击新建。
-
在编辑器中,自定义并粘贴为您的记录创建其他上下文数据的代码。
public class DiscoverProductFlowAction { // Define input parameters public class FlowInput { @InvocableVariable(required=false) public String objectApiName; @InvocableVariable(required=false) public String recordId; } // Define output parameters public class FlowOutput { @InvocableVariable public runtime_industries_cpq.ContextDataInput[] additionalContextData; } // This method is invoked from a flow @InvocableMethod(label='Process Input' description='Creates the Array of ContextDataInput for additional Context Data') public static List<FlowOutput> generateAdditionalContextData(List<FlowInput> inputs) { String apiName; String recId; FlowOutput output = new FlowOutput(); // Capture input from the flow for(FlowInput input : inputs ){ apiName = input.objectApiName; recId = input.recordId; } //Populate the ContextDataInput list to store additional context data List<runtime_industries_cpq.ContextDataInput> listContextData = new List<runtime_industries_cpq.ContextDataInput>(); runtime_industries_cpq.ContextDataInput cd1 = new runtime_industries_cpq.ContextDataInput(); cd1.nodeName = 'Quote'; //Where Quote is the name of the node in the context definition. cd1.nodeData = new Map<String,Object>(); cd1.nodeData.put('id',recId); listContextData.add(cd1); // Return the additional Context Data to a flow output.additionalContextData = listContextData; return new List<FlowOutput>{output}; } } - 保存更改。
创建自定义发现产品流
预配置的“发现产品”流首先标识用户可用的目录数量。如果在“产品发现”设置页面上选择默认目录,目录将在用户启动流时自动显示。接下来,流将调用流的记录的 objectApiName 和 recordId 传递给 Apex 类,以生成额外的上下文数据。然后,该流使用选定目录和“产品列表页面容器”组件中的其他上下文数据,该组件显示用户可以添加到报价和订单的产品。
使用产品列表页面组件将产品列表添加到任何对象,包括报价和订单,或自定义组件。产品列表页面组件可让您更灵活地根据您的特定需求自定义产品列表的显示和操作标签。
在您将产品列表页面组件添加到自定义 Lightning Web 组件时,通过将自定义组件订阅到 Lightning 消息服务的productDiscovery_notification消息渠道,启用它们之间的通信。然后,根据您的业务需求,自定义从渠道发送的事件的操作。有关更多信息,请查看订阅和取消订阅消息渠道。
- 从“设置”中,在快速查找框中,输入流并将其选中。
- 要打开预配置的流,请单击发现产品。
- 单击流页面页眉上的另存为新流,并输入流标签和流 API 名称。
- 保存更改。
您现在可以自定义流。
更新或禁用从“发现产品”流继承的现有参数会导致不良行为或错误。建议创建新参数,以为特定用例自定义流
创建流后,在“产品发现设置”页面上选择它,以便在用户单击报价和订单页面中的浏览目录按钮时自动启动流。或者,将流映射到记录页面的关联操作按钮。
另请参阅:
在流中包含其他字段
要在覆盖的流中显示其他标准或自定义产品字段,请创建包含这些字段的集合变量,然后在产品列表容器组件的属性面板上选择该变量。
- 从“设置”中,在快速查找框中,输入流并将其选中。
- 打开覆盖的流。
-
创建流集合变量。
您可以将集合变量与分配元素中的产品字段相关联。
- 从工具箱管理器中,单击新建资源。
- 选择变量作为资源类型。
- 输入变量的 API 名称和描述。
- 选择文本作为数据类型。
- 要将变量转换为可以存储多个值的集合变量,请选择允许多个值。
- 保存更改。
-
要将值分配到集合变量,请在产品列表页面流屏幕组件前添加分配元素。
- 输入分配元素的名称、API 名称和描述。
- 在变量中,输入流集合变量的 API 名称。
- 选择添加为运算符。
-
将产品字段 API 名称指定为变量的值。
例如,要将产品对象的规格类型字段添加为集合变量的值,请输入 Product2.SpecificationType。
您最多可以包含 3 个其他产品字段。 -
选择产品列表容器流屏幕组件上的集合变量。
- 打开流屏幕组件。
- 要访问属性面板,单击“编辑屏幕”页面上的产品列表容器组件。
- 在“其他字段”属性中,输入集合变量的 API 名称。
- 单击完成。
- 保存流。

