Salesforce OmniStudio FlexCard无法读取输入字段问题求助
解决FlexCard调用Integration Procedure时无法读取文本输入字段数据的问题
以下是针对该问题的具体排查和解决方案:
1. 确认文本输入字段的绑定与命名
- 检查每个文本输入组件的API名称(组件属性
Advanced标签下),确保和动作映射中使用的Key(例如LastName)完全一致——Salesforce FlexCard对名称大小写敏感,拼写或大小写错误会直接导致值无法读取。 - 无数据源的FlexCard中,输入字段的绑定需指向本地状态变量,而非数据源字段。正确绑定格式应为
{!v.local.<变量名>},比如{!v.local.LastName},而非直接写{LastName}。
2. 验证动作输入映射的语法
- 在调用Integration Procedure(IP)的动作配置中,输入参数的
Value必须使用正确的引用路径:- 若已配置本地状态变量,直接引用
{!v.local.LastName}; - 若未配置本地状态,可直接引用输入组件的当前值:
{!v.<输入组件API名称>.value},比如输入组件API名为LastName_Input,则写{!v.LastName_Input.value}。
- 若已配置本地状态变量,直接引用
- 避免使用无路径的
{LastName}格式,这种写法仅适用于绑定到数据源字段的场景,无数据源卡片无法识别。
3. 检查FlexCard本地状态配置
- 进入FlexCard设计器,切换到Local State标签页,确认需要传递的字段(如
LastName、FirstName等)已被定义为本地状态变量:- 点击
Add添加变量,设置变量名称(需和绑定名称一致)、类型(文本类型对应字符串); - 若未定义本地状态变量,输入字段的值无法被持久化,动作调用时自然读不到数据。
- 点击
4. 排查Set Values动作的配置(若使用)
- 确保Set Values动作的执行顺序在调用IP之前;
- Set Values的Source需指向输入组件的当前值(如
{!v.LastName_Input.value}),Target需指向对应的本地状态变量(如{!v.local.LastName}),确保值被正确同步到本地状态后再传递给IP。
5. 验证Integration Procedure的输入参数
- 检查IP的输入参数名称与FlexCard动作中映射的
Key完全一致(包括大小写); - 确认IP的输入参数未设置不合理的强制非空限制(虽单独测试IP正常,但参数名称不匹配仍会导致值无法传递)。
6. 利用Action Debugger定位问题
- 在Action Debugger中查看执行动作前的
v.local状态,确认输入字段的值是否已被正确存储到本地状态; - 查看调用IP动作的输入参数明细,若参数值为空,可直接定位到绑定路径错误或变量未初始化的问题。
内容的提问来源于stack exchange,提问作者ScottH7a9
相关产品推荐
相关产品推荐

