Saleforce 迁移纷享销客 - 后端代码迁移指导手册

开场语

Salesforce 和纷享销客都有通过代码扩展标准 CRM 功能的能力
Saleforce 的后端代码开发能力为 Apex:https://developer.salesforce.com/developer-centers/apex
纷享销客的后端代码开发能力为 APL:https://www.fxiaoke.com/mob/guide/apl/dist/
在 Saleforce 迁移纷享销客的过程中,代码的迁移无疑是很重要的
迁移时需要同时了解两个平台代码的使用方式、API 的能力、开发工具,才能顺利的完成迁移任务

代码场景对比

我们需要了解同样的场景下, Apex 和 APL 分别在两个系统中是如何实现的,以便输出对应的迁移功能清单
下面列举了 Apex 在 Salesforce 中的主要使用场景以及在纷享销客中的对标能力:
Apex 场景 场景介绍 纷享对标能力
Trigger 数据新建、更新、删除前或后,触发代码逻辑 虽然纷享本身没有 trigger 的代码能力,但是可以通过其他功能实现 trigger 的效果
Before Trigger:通过在对象新建、更新、删除按钮上绑定前函数验证 APL 函数实现
按钮绑定 APL 代码参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/apl-func-scene/button/1.summarize/
After Trigger:通过工作流实现,需要配置工作流的数据触发条件,并在工作流中配置执行 APL 代码节点
工作流绑定 APL 代码参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/apl-func-scene/flow/1.summarize/
API 开放代码给外部系统调用 通过自定义控制器可以开放 APL 函数给外部调用
参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/apl-class-scene/apl_controller/1.summarize/
异步任务 批处理、定时任务、异步接口 使用计划任务绑定 APL 代码实现定时批处理任务
参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/apl-func-scene/scheduler_task/1.summarize/
Fx.function API 实现了一系列函数的异步调用能力
参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-apl/api/FunctionAPI/#fx-function
页面控制 前端 Visualforce/LWC 调用的后端代码逻辑 自定义控制器函数可以被前端组件、插件调用PC 端
参考文档:
https://www.fxiaoke.com/mob/guide/uipaas/dist/pages/api-web/userdefine/call_controller/
移动端(小程序)
参考文档:https://www.fxiaoke.com/mob/guide/uipaas/dist/pages/api-mobile/userdefine/call_controller/
External Call 代码中调用外部接口 使用 Fx.http API 实现了一系类调用外部接口的能力
参考文档:
https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-apl/api/HttpAPI/#fx-http
完成了这一步你应该有了整体的迁移方案和迁移工作项

了解 Apex 的代码逻辑

在迁移代码前,我们需要梳理一下待迁移的 Salesforce 租户中的代码逻辑
如果之前实施项目规范的话,应该会有需求文档。不过有可能 Apex 的需求文档在后续的功能迭代中没有跟随代码持续更新。但是没关系,我们可以使用 Salesforce 官方的 Agentforce for Developers Extension 插件的 AI 能力,用自然语言解释代码逻辑
Agentforce for Developers Extension 是一个 VS code 的插件,它帮助开发者生成、测试 Apex 代码,并可以解释代码、询问任何关于 Apex 语法的问题
详细介绍请参考文档:https://developer.salesforce.com/docs/platform/einstein-for-devs/guide/einstein-overview.html 
其中 Chat with Dev Assistant 功能支持代码解释能力:比如你可以这么问: 
  • /explain What is the getSimilarProducts() method doing?
参考文档
https://developer.salesforce.com/docs/platform/einstein-for-devs/guide/einstein-devassistant.html
完成了这一步你应该有了迁移租户的所有代码逻辑功能清单

开始在纷享中迁移代码

有了上两步的迁移方案和功能清单,就可以使用纷享的智能开发助手:ShareAPL,通过自然语言描述功能自动生成代码
ShareAPL 的文档请参考:
https://help.fxiaoke.com/ee88/fe55/9c5f

迁移Tips

  • 在 ShareAPL 中如果一大段自然语言生成的代码效果不好,可以尝试把业务描述切分成多个小片段自然语言分批次生成
  • Salesforce 对象、字段的名称和纷享中的对象名称、字段有可能不匹配,这会影响 ShareAPL 代码生成的准确性,在生成代码后请务必进行充分的校验和测试
  • 在纷享系统中可以根据用户喜好选择 CodeEditor、WebIDE、VScode 插件等多个途径进行 APL 的代码编写
           CodeEditor 文档:https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/base/ide/
           WebIDE 文档:https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-tools/webide/
           VScode 插件文档:https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-tools/vscode/
  • 和 Apex 不同,纷享的 APL 是有命名空间概念的,不同命名空间的代码对应不同的业务使用场景,在迁移时大概率你会用到自定义控制器、按钮、流程、计划任务等命名空间,各个命名空间的使用场景请参考文档的APL函数开放场景部分:
           https://www.fxiaoke.com/mob/guide/apl/dist/pages/func-introduce/base/introduce/
  • 并不是所有的 Apex 代码迁移后依然是 APL 代码,有可能在纷享中通过无代码实现,有可能是无代码+APL 的组合实现,具体参考上面的「代码场景对比」,在迁移时灵活判断并使用最合理的方案实现
2025-10-09
0 0