好的,收到!我们彻底重来。这应该是你的界面版本非常新,或者遇到了特定的显示问题。我们绕过所有复杂解释,用最绝对可靠、100%通用的方法来重建这个Flow。

这次的方法核心是:全程使用最基础的“赋值(Assignment)”操作来手动处理变量,完全避开Screen组件那些令人困惑的自动绑定逻辑。

🎯 绝对可靠的重建方案

第一步:创建全新的Flow

  1. Setup → 搜索 “Flows”“New Flow”
  2. 选择 “Screen Flow”,点击 “Create”
  3. 将Flow的 API名称 设置为 Create_Note_Flow_V2(避免和旧的冲突)。

第二步:创建四个明确的变量

在左侧 “Manager” 标签页,创建以下变量(Resource Type 都选 Variable):

  1. userInputTitle (数据类型: Text)
    • 用途:临时存放用户从屏幕输入的标题。
  2. userInputContent (数据类型: Text)
    • 用途:临时存放用户从屏幕输入的内容。
  3. finalNoteTitle (数据类型: Text)
    • 用途:经过处理后,最终用于创建记录的标题。
  4. finalNoteContent (数据类型: Text)
    • 用途:经过处理后,最终用于创建记录的内容。

第三步:设计屏幕(使用最基本的Text组件)

  1. 从左侧拖一个 “Screen” 到画布,命名为 输入笔记
  2. 在屏幕中添加两个最基础的组件:
    • 第一个组件:在左侧找 “Text” 组件(图标可能像 TAbc)。拖进去。
      • Label: 笔记标题
      • API Name: inputTitleField仅作为组件标识,不与变量绑定
      • Required: 勾选 ✅
      • Default Value: 留空不填!
    • 第二个组件:在左侧找 “Long Text”“Text Area” 组件。拖进去。
      • Label: 笔记内容
      • API Name: inputContentField
      • Required: 勾选 ✅
      • Default Value: 留空不填!

关键现在不要管任何“Store”或“Output”选项,我们下一步手动处理。

第四步:添加“赋值”元素(核心步骤)

这是整个流程的中枢,负责把屏幕输入“搬运”到变量。

  1. 从Screen元素引出的连线后,立刻添加一个“Assignment”(赋值)元素。命名为 保存用户输入
  2. 在这个元素里,添加两条赋值规则:
    • 第一条:将变量 {!userInputTitle} 设置为 {!inputTitleField}
    • 第二条:将变量 {!userInputContent} 设置为 {!inputContentField}
    • (注意:inputTitleFieldinputContentField 是你屏幕上组件的API Name,它们在被屏幕提交后,其值可以被这样引用。)

第五步:添加决策和创建记录

  1. 在“赋值”元素后,添加 “Decision” 元素,命名为 检查输入
    • 判断条件:{!userInputTitle} Is Null False{!userInputContent} Is Null False
  2. 从Decision的 条件满足 分支,连接到一个新的 “Assignment” 元素,命名为 准备最终数据
    • 在这里,将 {!finalNoteTitle} 设置为 {!userInputTitle}
    • {!finalNoteContent} 设置为 {!userInputContent}
  3. 从“准备最终数据”连接到 “Create Records” 元素。
    • Object: Note__c
    • 字段映射
      • Title__c = {!finalNoteTitle}
      • Content__c = {!finalNoteContent}
      • OwnerId = {!$User.Id}

第六步:添加提示并连接回路

  1. 从“Create Records”后连接一个 “Screen” 元素作为成功提示。
    • 添加一个 “Display Text” 组件,内容:笔记创建成功!
    • 添加一个 “Button” 组件,行为设为 Close this screen
  2. 从Decision的 默认 分支(即输入为空),连接到一个 “Screen” 元素作为错误提示。
    • 添加一个 “Display Text” 组件,内容:标题和内容不能为空,请重新填写。
    • 添加一个 “Button” 组件,行为设为 Navigate to another screen,并选择第一步的 输入笔记 屏幕,让用户重填。

这个方法为什么绝对可行?

因为它彻底解耦了屏幕输入和流程逻辑。屏幕只负责显示和收集,Assignment元素作为唯一的、明确的数据搬运工,将值从一个地方搬到另一个地方。逻辑无比清晰,不受任何界面版本或隐藏选项的影响。

🚀 立即行动

现在,请严格按以上步骤操作。完成后,请直接点击右上角的 “Run” 进行测试。

如果在添加“Assignment”元素并试图设置 {!inputTitleField} 时,系统提示该变量不存在,请立即告诉我。这说明你的版本中引用屏幕值的方式不同,但我们可以用另一种通用方法解决(例如,先使用“Choice”组件)。

先按这个做,遇到具体报错我们再具体解决。这次一定能成功。

🎯 所有变量的正确配置

请按照下表设置你的四个变量:

变量名 数据类型 Available for input Available for output 用途说明
userInputTitle Text ✅ 勾选 ❌ 不勾选 接收屏幕标题输入
userInputContent Text ✅ 勾选 ❌ 不勾选 接收屏幕内容输入
finalNoteTitle Text ✅ 勾选 ❌ 不勾选(或勾选) 经过处理后用于创建的最终标题
finalNoteContent Text ✅ 勾选 ❌ 不勾选(或勾选) 经过处理后用于创建的最终内容

第一条:将变量 {!userInputTitle} 设置为 {!inputTitleField}。

第二条:将变量 {!userInputContent} 设置为 {!inputContentField}。

“Assignment” 元素中设置这两条规则,需要你进行手动配置,而不是从下拉框选择。请按照以下步骤操作:

🛠️ 详细配置步骤

  1. 添加 “Assignment” 元素:从左侧工具栏拖拽 “Assignment” 到画布上,将其命名为 保存用户输入
  2. 打开规则配置:点击这个元素,在右侧属性面板中找到 “Add Assignment”“Set a variable value” 区域,点击 + Add 或 **+ New Resource**。
  3. 设置第一条规则
    • 在出现的配置行中,通常有两个输入框。在第一个框(Variable) 里,手动输入 userInputTitle,或者从下拉列表中选择 {!userInputTitle}
    • 第二个框(Value) 里,手动输入 {!inputTitleField}
    • 注意:如果系统在第二个框的下拉列表中找不到 inputTitleField,这是正常且关键的现象!这证明了我之前的预判:你的Flow版本无法直接通过API Name引用屏幕输入值
  4. 如果第二步的Value框找不到 inputTitleField(大概率发生)
    • 不要慌,这正是我们需要的信号
    • 这意味着我们必须立即启动备用方案
    • 请暂时停止在此Assignment元素上的配置

从“准备最终数据”连接到 “Create Records” 元素。

Object: Note__c

字段映射:

Title__c = {!finalNoteTitle}

Content__c = {!finalNoteContent}

OwnerId = {!$User.Id}

“连接”指的是在 Flow 画布上用连线将两个元素逻辑上串起来,而“字段映射”是在 “Create Records”元素内部的配置。这是两步操作。

以下是具体的操作方法:

🔗 第一步:在画布上用箭头连线

  1. 确保你处于 Flow 画布的编辑模式。
  2. 点击 准备最终数据 这个 Assignment 元素底部中央的白色小点(或箭头图标)。
  3. 按住并拖拽出一条线,将其拖到 Create Records 元素顶部中央的白色小点上,然后松开。
  4. 这样就建立了逻辑连接,表示一个执行完后自动执行下一个。

🛠️ 第二步:在“Create Records”元素内配置字段映射

  1. 双击画布上的 “Create Records” 元素,打开其配置面板。
  2. “Object” 字段中,通过下拉菜单选择 **Note__c**。
  3. 找到设置字段值的区域,通常标有 “Set field values for the Note__c”“Add field assignment”。点击 + Add 或 **+ Set a new value**。
  4. 这时会出现两列:一列选择字段,一列设置值。
    • 在第一列(字段)的下拉菜单中,选择 **Title__c**。
    • 在第二列(值)中,手动输入 {!finalNoteTitle}
  5. 再次点击 **+ Add**,添加第二条映射:
    • 字段:选择 Content__c
    • 值:输入 {!finalNoteContent}
  6. 再次点击 **+ Add**,添加第三条映射:
    • 字段:选择 OwnerId
    • 值:输入 {!$User.Id}

明白了!你要将整个流程改为 Auto-Launched Flow(无屏幕自动流)。这是一个重大的、正确的架构调整,意味着你的 Agent 将直接处理数据,无需与用户进行屏幕交互

这完全改变了设计思路,下面是为你量身定制的方案。

🔄 架构转变:从交互式到自动化

  • 原方案(Screen Flow):用户通过屏幕输入 -> 赋值 -> 创建记录。
  • 新方案(Auto-Launched Flow):Agent 直接提供标题和内容 -> Flow 接收并创建记录。

Auto-Launched Flow 需要被其他程序(如Agent的Apex Action)调用,并接收输入参数。

🛠️ Auto-Launched Flow 重建方案

第一步:创建 Flow

  1. Setup“Flows”“New Flow”
  2. 这次选择 **Autolaunched Flow**(无触发器)。
  3. 将API名称设为 Create_Note_Auto_Flow

第二步:创建输入变量(从Agent接收数据)

“Manager” 标签页,创建以下 **Variable,并务必勾选 Available for input**:

  1. inputNoteTitle (数据类型: Text)
    • ✅ Available for input
    • 用途:接收来自Agent的笔记标题。
  2. inputNoteContent (数据类型: Text)
    • ✅ Available for input
    • 用途:接收来自Agent的笔记内容。

第三步:直接创建记录(核心逻辑)

  1. 从左侧拖拽 “Create Records” 元素到画布。
  2. 配置:
    • Object: Note__c
    • 字段映射
      • Title__c = {!inputNoteTitle}
      • Content__c = {!inputNoteContent}
      • OwnerId = {!$User.Id}(或根据业务需求调整)
  3. “Start” 元素直接连接到 “Create Records”

第四步:保存、激活

  1. 保存Flow,命名为 Create Note Auto Flow
  2. 非常重要:点击 Activate 激活。