用途
该技能用于在 Salesforce 标准对象或自定义对象上启用变更数据捕获(CDC),并生成相应的元数据文件。它生成两类文件:PlatformEventChannelMember(每个订阅实体一个)用于将对象订阅到 CDC,以及 PlatformEventChannel(仅自定义通道需要)。适用对象为标准对象、自定义对象或两者。
不在范围内的内容:发布自定义平台事件(PlatformEvent 元数据类型);Pub/Sub API 或外部 Kafka/Bayeux 配置;收费与限额指引(由 CDC 开发者指南负责);Apex 中的程序化事件总线订阅者。
主要能力
- 将标准对象或自定义对象订阅到 CDC。
- 支持默认通道(ChangeEvents)或自定义通道。
- 配置增强字段(enrichment fields)。
- 配置过滤表达式(filter expression)。
- 定义自定义数据通道。
使用方式
在生成前,若信息不明确,需与用户确认:需要启用 CDC 的实体(标准、自定义或两者)、使用默认通道还是自定义通道(若是自定义,提供通道标签)、是否需要增强字段、是否需要过滤表达式。
所需输入:源实体 API 名称(如 Account、Lead、Order__c);通道(ChangeEvents 或自定义通道的 developer name,以 __chn 结尾);可选的增强字段列表;可选的过滤表达式。默认值:通道为 ChangeEvents,增强字段与过滤表达式默认为无。若用户请求清晰完整,可立即生成。
工作流程为顺序步骤:了解唯一有效的 CDC 元数据类型(PlatformEventChannelMember 与 PlatformEventChannel),识别通道,将源实体翻译为 ChangeEvent 实体名,生成 channel-member 文件,为自定义通道生成 PlatformEventChannel 文件,按需添加增强字段与过滤表达式。生成后,用户可用 sf project deploy start --dry-run -d <path> --target-org <alias> 进行验证。
命名规范要点:<selectedEntity> 是 ChangeEvent 类型名而非源对象名(Account 对应 AccountChangeEvent,Order__c 对应 Order__ChangeEvent);member 的 fullName 与文件名使用单下划线(Account_ChangeEvent),自定义对象去掉 __c(Order_ChangeEvent);默认通道值精确为 ChangeEvents,无路径前缀;自定义通道 DeveloperName 以 __chn 结尾,且 XML 需包含 <channelType>data</channelType>。
约束包括:增强字段须为源实体上的单跳 API 名称;过滤表达式主体不含 WHERE 关键字;过滤不能引用 IsDeleted 或做关系遍历;DateTime 字段过滤仅支持相等运算符;过滤右侧须为字面量;复合字段需用点号分量访问。PlatformEventChannelMember 仅接受四个元素:<enrichedFields>、<eventChannel>、<filterExpression>、<selectedEntity>;PlatformEventChannel 仅接受 <channelType> 和 <label> 两个元素。该技能只生成元数据文件,不执行部署。
适用场景
需要在 Salesforce 中为标准对象、自定义对象或两者启用 CDC 订阅时;需要为 CDC 配置自定义事件通道、增强字段或过滤表达式时。
限制
不发布自定义平台事件,不涉及 Pub/Sub API 或外部 Kafka/Bayeux 配置,不提供收费与限额指引,不涉及 Apex 中的程序化事件总线订阅者;仅生成元数据文件,部署属于独立环节。源自定义对象须已存在或在同一事务中部署。