用途:为 Salesforce Industries Common Core 编写、审查和迁移可调用 Apex(System.Callable),使其安全、确定且可配置地接入 OmniStudio 与 Industries 扩展点。
主要能力:生成带安全 action 分发的 System.Callable 类;审查现有可调用实现;按 120 分制评分校验;将 VlocityOpenInterface / VlocityOpenInterface2 迁移到 System.Callable。评分维度含契约与分发 20、输入校验 20、安全 20、错误处理 15、批量化与限制 20、测试 15、文档 10;阈值 90+ 就绪、70-89 需审查、低于 70 阻断。
使用方式:按四阶段流程——需求收集(入口点、action 名、输入输出契约、数据访问、副作用,并扫描 **/Callable.cls);设计与契约定义(显式 action 列表、输入输出 schema、推荐响应信封 success/data/errors、switch 分发、默认分支抛类型化异常);实现(call() 保持精简并委托私有方法,早期校验与类型转换,强制 CRUD/FLS 与 sharing,使用 Security.stripInaccessible(),必要时 WITH USER_MODE,集合输入需批量化);测试与校验(正向、负向、契约、批量测试)。Open Interface 契约映射:methodName 对应 action,inputMap 对应 args.get('inputMap'),options 对应 args.get('options'),结果写入 outputMap 并返回布尔值。
适用场景:Industries 扩展点、OmniScript/Integration Procedure/DataRaptor 调用、旧 Open Interface 现代化。
限制与护栏:禁止基于用户输入的动态方法执行、循环内 SOQL/DML、without sharing、静默失败、响应结构不一致;需处理 args 为 null 或缺少 inputMap 的情况;迁移后调用方须改读返回值;IndustriesCallableException 需随类部署;同一 action 不应同时启用旧接口与新 Callable。通用 Apex、构建 Integration Procedure、编写 OmniScript、部署元数据不在范围内。