Callouts from Invocable Actions in Screen Flows

DEX455 - Flow 与 Formula Evaluation:Apex 集成 Flow Builder 完全指南

📄 第 293 页 🎬 视频课程

课程章节介绍

同学们,咱们这节课讲一个在屏幕流当中特别实用的知识点。 当你写了一个 Apex 方法,想把它作为“可调用动作”放到屏幕流里,而且这个方法还要去调用外部系统、发消息、查接口,也就是我们常说要做“外部调用”——在 Slide 里有个词叫“收件箱修饰符”,指的就是这个事儿。 那怎么告诉屏幕流“我这个方法要跟外面打交道”呢? 关键就在 ,@InvocableMethod, 这个注解上,给它加上 ,收件箱修饰符,,实际上就是把它的 `callout` 属性设为 `true`。 屏幕流看到这个修饰符,就知道:“哦,这个动作要往外打电话了,我得考虑一下事务安全。” 它会这么处理: - 如果当前事务里还有没保存的数据库变更,比如你改了记录信息还没提交,那屏幕流就会先自动帮你提交这些东西,,结束当前事务,然后开一个新事务,,在新事务里安安全全地去执行外部调用。 - 要是没收件箱修饰符,也就是 `callout` 没开,那这个调用就会混在当前事务里执行,有可能因为数据库锁或者平台限制而出问题。 这样一来,咱们的流管理员在设计流程时,就有很大的灵活度了——他们不用担心底层事务冲突,只要给方法标上这个“收件箱”标记,系统就会自己处理好保存和调用的顺序,让整个流程又稳又安全。 你可以这么记:,想从流程里往外发消息、调接口,就在注解上打个“允许收件箱(callout=true)”的勾,剩下的事务控制,交给屏幕流去操心就行。, 这样讲清楚了吗?有什么问题随时提出来。

关键词

Apex Salesforce Developer Guide