Peter's Blog

「用有趣的方式看世界」

Salesforce LWC 与主流 JS 框架 (Vue.js,React.js) 的比较与认识

在现代 Web 开发中,前端框架扮演着越来越重要的角色。本文将深入比较 Salesforce Lightning Web Components (LWC) 与两大主流 JavaScript 框架 Vue.js 和 React.js,探讨它们的异同、优缺点以及适用场景。 Salesforce Lightning Web Components (LWC) 介绍 Salesforce Ligh...

浅谈 Salesforce 的数据安全模型

Salesforce 的客户通常拥有几十到几百名担任不同职责的员工。Salesforce 的多层数据安全模型使管理员和应用程序开发人员能够从组织角度到个别记录层面管理这些员工对信息的访问权限。这意味着不仅可以提供更好的用户体验,还可以减少错误和提高安全性:如果用户账户被攻击,入侵者无法访问超出该用户权限范围的信息。 在 Salesforce 安全中,数据被存储在 3 个关键结构中:对象,字...

「译」探索一个组合式的异步 Apex 框架

原文链接 你应该使用哪个异步 Apex 框架?这篇博客提供了一个自动为你选择 Batchable 或 Queueable Apex 的解决方案。 Batchable 和 Queueable 是 Salesforce 平台上开发人员可用的两种主要异步框架。在处理记录时,您可能会思考应该使用哪一种。在本文中,我们将介绍一种替代方案,它能自动在 Batchable 和 Queueabl...

Tips for Crafting Efficient and Scalable Code in Salesforce

In this post, I will share tips on crafting efficient and scalable code in Salesforce. As an experienced developer, I have been involved in several Salesforce projects and written technical documen...

Salesforce 数据分析解决方案:Snowflake & Tableau

在 Salesforce 项目中,随着业务的不断增长,随之产生的数据量也越来越庞大,有的项目可能每年就会产生几千万甚至上亿条的数据,而这些数据随着时间推移逐渐变成历史数据,而这些数据也不想删除,因为历史数据可能还是要时常进行数据分析,产生各种报表,看看近几年的销售数据的走势。对于上亿条的数据,Salesforce 是没有办法保存的 ( 可以使用 Big Objects, 参考我之前的文章 )...

DataWeave in Apex

在 Apex 中处理基于文本的数据是一项相当普遍的任务,尤其是在系统集成中。然而,处理 JSON,XML 和 CSV 往往需要写大量的代码,并且也会导致性能问题,Salesforce 目前推出了 DataWeave in Apex(截至 2 月 2 号,仍处于测试阶段). DataWeave in Apex 的目标是能够在 Salesforce 中允许我们用 MuleSoft 的转换语言来处...

探讨使用 Salesforce Big Objects 进行数据归档的最佳实践

归档是一种将不常使用的数据从主数据库中移除的技术。通过归档,我们可以减少数据库存储空间,提高系统性能,降低存储成本,增加可用空间,提高数据安全性,提高数据准确性和可靠性。 随着企业数据量的不断增加,数据管理和存储已经成为一个重要的问题。而对于使用 Salesforce 服务更是如此,Salesforce Big Objects 是一种特殊数据对象,旨在解决企业面临的存储和管理数据的...

基于 Cohere(NLP 模型平台) 对 Salesforce Case 进行归类

我们使用 Salesforce 构建客户服务系统的时候,往往客服团队需要每天处理大量不同类型的 Cases, 那么根据 Case 类型的不同则需要不同的客服团队去处理,如果通过人工的方式对 Case 分门别类则会降低工作效率,降低客户的满意度,所以是否有一些方式可以基于现有的 Cases 数据建立数据模型,对之后新的 case 进行分析预测然后自动分类型,这样的话也能提高整个客服团队的服务效...

在 VS Code 中使用 Apex Debugger

在我们的日常开发中,调试 apex 的最常见做法是使用调试日志。然而,Salesforce 提供了对你调试代码很有用的一些其他方案。可以像 Java, Golang, PHP 那样通过断点调试自己的 code. Apex Interactive Debugger, 也叫 Apex Debugger, 允许客户使用 VS Code 作为客户端,在沙盒和 scratch orgs 中实时调试他...

在 Apex 中使用 JWT Flow

在之前的文章中介绍了什么是 JWT Token, 以及如何创建 JWT Token, 并通过 JWT Token 获取 Salesforce 访问令牌,今天主要介绍如何在 Salesforce Apex 类中使用同样的功能。目前 Salesforce 只支持 Java Keystore(JKS) 格式,用于将私钥/公钥对 (含证书) 导入 Salesforce org 中。 将私钥/公钥对...

Salesforce OAuth: JWT Bearer 流程

JWT Bearer Flow 是一种 OAuth 流程,其中外部应用程序 (也称为客户端) 向 Salesforce 发送一个称为 JWT 的签名 JSON 字符串,以获得一个访问令牌(access token). 然后外部应用程序可以使用该访问令牌来读取和写入 Salesforce 中的数据。 与其他一些 OAuth 流程不同的是,JWT 流程不需要最终用户操作。外部应用程序发送 JW...

「译」Salesforce 中的执行上下文

本篇文章的译文内容节选自「Advanced Apex Programming - Fifth Edition」第一章的第一部分 - Thinking in Apex, 该书的作者是 Dan Appleman. 个人感觉这本书写的不错,但是国内目前没有发现有中文版本,所以就尝试着翻译这本书,该书共有三大章节,13 个小节,只在自己空闲的时间翻译一点,目前第一章的进度大概在 70% 左右,不过由...

探讨 Salesforce 中的 QA 自动化测试

当 Salesforce 于 2000 年 2 月份首次推出 CRM 服务时,它只是一个用于存储客户信息和跟踪销售机会的数据库。如今,它几乎无人不晓,因为从销售和市场营销到运营和财务的各种部门都依赖 Salesforce 来推动业务发展。现在,每个 ORG 都有自己独特的工作流程,自定义对象和众多第三方集成,以满足其业务需求。这些定制优化了流程和功能,但在没有测试自动化的情况下部署这些功能到...

Apex Trigger 中的递归调用现象

递归 Trigger 对 Salesforce 开发人员来说是个大问题。我们总是希望在 Salesforce 中避免递归调用 Trigger. 但是,如果我们有一个庞大的功能复杂的 Org, 其中有多个带有父子关联的记录更新的触发器,包括 Process builder 和 Workflow field updates 等。那么我们就会很容易面临递归调用 Trigger 的问题。 因此,今...

Apex 中的 Abstract, Virtual, Interface

Object-oriented programming (OOP) is a programming paradigm based on the concept of “objects”, which can contain data and code. The data is in the form of fields (often known as attributes or pr...