DEX455

ConnectApi 类、DataWeave、Data 360 与平台特性

课程介绍

ConnectApi/DataWeave/Data 360平台特性:ConnectApi输入输出类(18字符ID)、限制(DML/API计入/RateLimitException/Test.startTest重置)、打包(Chatter依赖NoAccessException)、序列化(JSON/REST/RemoteAction、仅输出可序列化)、版本管理(getBuildVersion/版本匹配属性/构建版本不等)、casting(instanceof/default分支)、通配符(*/?)、测试(setTest注册数据/不支持runAs/SeeAllData=true)、与其他类差异(忽略sharing/异步操作/无XML/无VARIABLE_ASSIGNMENT/无webservice)、Chatter私信审核(before insert/5字段/addError)、Data 360 DMO SOQL(静态SOQL=callout/仅对象级权限/describeSObjects)、Mock SOQL测试(SoqlStubProvider/createStubQueryRow/Stub限制)、DataWeave(.dwl脚本/createScript/execute/ScriptName内部类/DataWeaveScriptException/3版本支持/7条限制)、FeedItem审核(PendingReview)和External Services(注册API规范→强类型调用)。

课程章节

本课程共有 3 个章节

  • 1

    ConnectApi Classes, Data 360, DataWeave & More

    第 288 页

    好,同学,我们来看这一页的内容。这页讲的是几个比较高级的集成和数据处理的工具,挺有意思的。 首先,说说ConnectApi类。你可以把它想象成一个专门用来和Chatter、Experience Cloud这些社交功能打交道的工具箱。它用起来有个特点:必须用特定的输入对象来传参数,然后返回的也是包装好的输出对象。这和咱们平时写的标准Apex代码限制不太一样,比如有些操作不能直接DML,而是得通过它提供的专门方法。所以,用ConnectApi的时候,要多留意文档里的特殊要求。 接着,这章还会讲到Data 360。Data 360是在Salesforce里用SOQL查询数据,然后还能做模拟测试的一套东西,帮你在不动真实数据的情况下,验证数据逻辑对不对,就像在沙盘上演练一样。 然后还有DataWeave,这是一个专门做数据转换的工具。假如你拿到一份JSON或者CSV文件,想把里面的字段映射、格式变一变再传到Salesforce里,DataWeave就能用声明式的方式帮你轻松搞定,不用写一大堆代码。 再往下,是Chatter和Feed的审核触发器。你可以理解为,当有人在 Chatter 里发帖、评论的时候,你可以用触发器自动检查内容,比如拦截不合适的词,或者批准后才能发布。这样能确保公司内部的交流环境更安全。 另外,这章也涉及Experience Cloud网站。就是说,你对外公开的门户网站或者社区,也可以用这些API和触发器来管理用户互动、信息展示。 还有电子邮件集成。你可以让Salesforce收发邮件,做自动化的邮件处理,比如从邮件里创建案例、记录往来,这些都会讲到。 最后一个是外部服务,这个很有意思。它让你用声明式的方式去调用外部的API,不用写代码,在界面上配一配就行了,像拖拽一样把Salesforce和外部系统连起来。这样一来,很多集成工作就简单多了。 好了,这页大概就是这些内容。后面我们会一个一个深入去看它们具体怎么用。有什么问题随时提出来。

    查看详情
  • 2

    ConnectApi — Input/Output, Limits & More

    第 289 页

    好,我们来看一下这一页的内容,讲的是ConnectApi类的一些关键特性,用起来的时候需要注意的几个地方。 首先,ConnectApi的方法可以接收两种类型的参数:一种是简单的基元类型,比如普通的字符串、Id;另一种是复杂的ConnectApi输入对象,相当于一个包含多个字段的数据结构。实际开发时,你可以根据需求灵活选择。 当方法调用成功,它会返回可嵌套的输出对象。也就是说,返回给你的对象里面可能还装着其他对象,层级可以套得很深,你需要一层一层地去解析里面的信息。 然后,这里有两个配额相关的概念要记住。每个ConnectApi写操作都会消耗一个TLR声明,这算是一种额外的内部资源限制。同时,绝大多数调用都会计入你组织24小时的API请求总配额。所以如果你在循环里频繁调用,很容易就超限。 特别要注意的是,那些依赖于Chatter功能的方法,还受到更细的速率限制:按每个用户、每个命名空间、每小时来计次。一旦超过了限制,系统就会抛出RateLimitResponse异常,你的代码里得做好异常处理,不然用户体验会很差。 还有一个容易踩坑的地方:ConnectApi类是可以在没有启用Chatter的Org中被打包部署的,也就是说打包时Chatter不是强制的。但是,如果运行时那个Org把Chatter禁用了,调用相关方法就会抛出一个运行时异常,有时候我们叫它Nothing异常,程序就会中断。所以封装组件时,最好先判断一下Chatter是否可用。 最后,输出对象序列化之后,生成的格式和Connect REST API返回的JSON格式很像。这一点很方便,你在调试或者跟REST API对接时,结构基本上是一致的,可以互相参考。 好,这张幻灯片的核心点就这些,记住这些限制和特性,以后用ConnectApi就会顺手很多。

    查看详情
  • 3

    Data 360, DataWeave & Moderation

    第 290 页

    各位同学,咱们来看这一页内容,它讲的是 Apex 里几个能让你开发效率翻倍的好帮手。我会一个一个给你拆开讲清楚。 首先,Data 360。这玩意儿能让咱们在 Apex 中直接使用数据模型对象,也就是你可以在代码里像操作普通对象一样去查数据,完全支持 SOQL 查询。而且它还有一个很大的好处,就是在写单元测试的时候,你可以用 SOQL 桩——也就是 Stub 来模拟数据,不用真的碰数据库,测试跑得快,也稳定多了。 接着是 DataWeave。它是一个很强大的数据转换脚本工具,现在可以直接在 Apex 里调用了。比如你要把 JSON 转成 XML,或者把一种数据结构映射成另一种,以前可能要写不少循环和判断,现在用 DataWeave 几行转换脚本就能搞定,从 Apex 里一调用,干淨利落。 再往下,关于 Chatter 消息和 Feed 帖子的审核触发器。这里说的 ChatterMessage 和 FeedPost,其实就是咱们系统里的即时消息和动态信息。以前想在有人发帖或发消息的时候做内容审核,比如检测敏感词,可能需要自己去写触发器、写类。现在可以直接利用审核触发器来自动执行内容策略,也就是说,你可以定制规则,系统会自动过滤或拦截违规内容,省心不少。 最后,外部服务。这个功能把你在 Salesforce 里注册的外部 API,直接映射成强类型的 Apex 类。你就不用再手动去处理 HTTP 请求啦、解析 JSON 或者 HTML 啦,直接像调用本地类的方法一样去调用外部服务,参数和返回值都是强类型的,编译时就能发现错误,代码又安全又干净。 这几个特性,总结起来就是让 Apex 更擅长数据操作、数据转换、内容管控以及外部集成,而且都朝着“少写重复代码、多用类型安全”的方向走。大家记住这些点,以后遇到相应场景就知道去哪里找工具了。好了,这张幻灯片我们就说到这儿。

    查看详情