在Salesforce的世界,凡事皆Metadata. 先通过一句经常使用的代码带入一下: Account accountItem = (Account)JSON.deserialize(accountString,Account.class); 这种代码相信大部分开发都会写过,前台将数据序列化,通过字符串的形参传递给后台,后台将数据进行反序列化,从而获取到这个表或者这个自定义类的实例.所以问题来了,为啥第二个参数是 Account.class?我们通过官方的API描述可能更好的进行了解. 这里…
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Profile但是对于某个表,某个字段,或者某个Apex类等却可以有不同访问权限,这个时候就要用到Permission sets.  Permission sets 配置 1.点击setup->Administer->Manage Users->Permission Sets进入Permissio…
我们在程序中经常需要对数据列表进行排序,有时候使用SOQL的order by 不一定能完全符合需求,需要对数据进行排序,排序可以有多种方式,不同的方式针对不同的场景.篇一只是简单的描述一下选择排序,插入排序以及插入排序优化版--希尔排序. 一.选择排序 选择排序的中心思想为第一轮找到数组中最小的值,将最小值和第一个元素交换位置,第二轮找到剩余数组的最小值,将其和第二个元素交换,以此类推. 选择排序的特点如下: 1.比较次数:n * (n-1) / 2 2.交换次数:N 4.运行时间和输入无关 5…
本篇参考: https://code.visualstudio.com/docs/editor/versioncontrol https://git-scm.com/doc https://git-scm.com/book/zh/v2 salesforce作为云平台,相信很多人开发都很爽,有啥需求在开发sandbox开发, outbound changeset 或者通过ant migration tool部署到相应的SIT或者UAT环境,测试通过上线~~~ 可能有很多人做salesforce做了…
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上操作而不是手工做这些工作. 一. WorkFlow配置 点击setup-->build-->create-->Workflow & Approvals-->workflow Rules或者在搜索栏中搜索workflow 然后选择workflow Rules.选择后会出现下图的引…
本篇参考: https://developer.salesforce.com/blogs/engineering/2013/04/managing-lookup-skew-to-avoid-record-lock-exceptions.html https://developer.salesforce.com/blogs/engineering/2012/04/avoid-account-data-skew-for-peak-performance.htmlhttps://developer.s…
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://resources.docs.salesforce.com/200/latest/en-us/sfdc/pdf/formula_date_time_tipsheet.pdf Validation rules:https://resources.docs.salesforce.com/200/lates…
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的使用此标签进行解析附件内容,后台只要声明String类型变量用来存储附件名称,Blob类型变量用来存储附件的内容即可. 但是当我们的项目整体使用第三方的前端框架,例如VUE或者angular等前端框架时,有时使用apex:inputFile反而不是很方便,需要用到html的原生的附件上传的标签<inpu…
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的autoComplete实现. 此篇需求为在输入框中输入检索词对数据库中User表和Contact表的Name字段进行检索,符合条件的放在联想列表中,当用户选择相应的名称后,输入框中显示此名称对应的邮箱地址. 实现此功能可以整体分成三步: 1.通过输入内容检索相关表中符合条件的数据: 2.对检索的数据进…
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. 十七篇链接:salesforce 零基础学习(十七)Trigger用法 有的时候对于sObject的trigger处理复杂的情况下,比如一个sObject的before update要实现功能1,2.....n功能情况下,Handler中需要在before update写实现功能1--n的代码.然而…
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restful_http_testing_httpcalloutmock.htm https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_services/apex_integration_re…
项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随便的取一个审批人了,有以下方式针对不同的场景可以获取到当前记录的最终审批人以及审批意见. 邮件内容使用以下几种方式实现: 1.代码里面实现邮件发送 2.email template(text/html/custom) 3.visualforce emailTemplate 对发送邮件方式不清楚的,可…
本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lightning_out_considerations https://developer.salesforce.com/docs/component-library/bundle/lightning:isUrlAddressable/documentation…
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trailhead.salesforce.com/content/learn/modules/platform_events_basics https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_even…
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using_streaming_api_durability.htm https://trailhead.salesforce.com/content/learn/modules/change-data-capture https://developer.salesforce.com/docs/atlas.e…
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.234.0.apexref.meta/apexref/apex_methods_system_custom_metadata_types.htm https://trailhead.salesforce.com/en/content/learn/modules/platform-developer-i-certification-maintenance-winter-22/learn-…
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-from.html 群里面有个小伙伴询问了一个关于两个有Dependence关系的Picklist字段如何在Apex中通过control字段的值获取到Dependence字段的值,针对Salesforce配置来说,我们很好配置出两个Dependence字段的关系,通过点击设置一下include关系即可.…
看本篇之前可以相应阅读以下Trigger相关文章: 1.https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigger_Best_Practices 2.http://chrisaldridge.com/triggers/lightweight-apex-trigger-framework/ 3.http://www.sfdc99.com/2015/01/19/the-one-trigger-per-object…
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_class_Auth_SessionManagement.htm https://help.salesforce.com/s/articleView?language=en_US&type=1&id=000339386 机缘巧合下碰到了这种问题,还挺好玩,记录一下,方便以后再次遇见情况下快速解决.背景如下: 在某…
零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce:http://www.aboutyun.com/thread-7567-1-1.html mapreduce学习目录总结 MapReduce学习指导及疑难解惑汇总:http://www.aboutyun.com/thread-7091-1-1.html 什么是Map/Reduce:http://www.aboutyun.com/thread-5541-1-1.html Mapreduce 整个工作机制图:http://…
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_keywords_sharing.htm https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_with_security_enforced.htm 一. Currency 处理 我们在…
  此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结.五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:hadoop分为hadoop1.X.hadoop2.X,并且还有hadoop生态系统.这里只能慢慢介绍了.一口也吃不成胖子. hadoop 1.x分为mapreduce与hdfs 其中mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduce程序,但是还是摸不着头脑.我们不知道…
本篇内容只是本人简单的mark开发中常出现的一些疑问,方便后期项目使用时奠定基础,如果对Test零基础童鞋,欢迎查看Test官方的使用介绍: https://help.salesforce.com/apex/HTViewHelpDoc?id=testing_your_code.htm&language=zh_CN 编写Test类基本步骤可以分成4步: 1.创建测试数据; 2.调用Test.startTest()方法; 3.调用需要测试的方法(); 4.调用Test.stopTest()方法. 编…
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.bigobjects.meta/bigobjects/async_query_overview.htm https://trailhead.salesforce.com/content/learn/modules/big_objects https://developer.salesforce.com/docs/atlas.en-us.salesforce_large_da…
本篇参考:https://security.salesforce.com/mfa https://sfdc.co/bvtuQT  (MFA官方研讨会的文档) https://sfdc.co/iwiQK(MFA中华区研讨会视频) Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On 我们之前介绍过关于登录安全的 2fa,今天主要讲的是MFA. MFA 官方的介绍是到2022年2月1日起,salesforc…
在salesforce开发中,发送邮件是一个很常见的功能.比如在进入审批流以后的通过和拒绝的操作需要发送邮件给记录的owner,和其他系统交互以后更改了某些状态通知相关的User或者Contact等等.可以说,发送邮件在业务上是一个必不可少的环节. salesforce提供了多种发送邮件的方式,比如SingleEmail,MassEmail,这里主要说一下SingleEmail. SingleEmail操作位于Messaging.SingleEmailMessage类中,主要有两种方式发送邮件,…
本篇参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort salesforce开发过程中,数组在前端的使用中基本是不可避免,下面的demo大家猜一下输出结果. arraySortSample.html <template> <lightning-card title="integer item sort"> <ul>…
前两篇内容为栈和队列的顺序结构的实现,栈和队列都是特殊的线性表,线性表除了有顺序结构以外,还有线性结构. 一.线性表的链形结构--链表 使用顺序存储结构好处为实现方式使用数组方式,顺序是固定的.所以查询某个位置的元素特别容易,时间复杂度为O(1),但是当增加或者删除时,会需要将操作元素后面的元素整体向左或者向右平移.时间复杂度为O(n).所以当线性表查询操作多于增删操作,优先使用顺序存储结构的线性表:当线性表增删操作多于查询操作,则优先使用链式存储结构的线性表. 线性表的链式存储结构的特点是用一…
在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types允许在相同的object中为数据定义多个UI.用户通过Profile进行分组,不同的Profile可以设置不同的Page Layout 以及显示不同的PickList的item值. 简单需求描述如下(以Goods__c为例): 1.Profile为Admin的用户可以看到所有的字段,Profile为…
本篇参考链接:https://developer.salesforce.com/trailhead/project/salesforce_developer_workshop 本篇讲述的是最简单的APP的制作,涵盖的知识点包括以下内容: 1.Object的创建; 2.Tab以及App创建; 3.Trigger创建; 4.Permission Sets创建; 5.Validation Rules 使用; 6.Schedule Job使用; 7.Layouts创建/修改; 8.Test创建. 一.创…