本篇参考: https://developer.salesforce.com/blogs/2022/01/preparing-your-components-for-the-removal-of-alert-confirm-prompt https://help.salesforce.com/s/articleView?id=release-notes.rn_lc_alert_confirm_prompt.htm&type=5&release=238 https://developer.s…
我们在做项目时经常会使用changeset作为部署工具,但是某些场景使用changeset会比较难操作,比如当我们在sandbox将apex class更改名字想要部署到生产的org或者其他环境的org,使用changeset是没法实现的,这个时候我们需要使用Ant Migration Tool还是更好的. salesforce基于metadata进行管理,Ant Migration Tool 是一个基于 Java/Ant的命令行工具用于将metadata从本地迁移至Sales Org. Mig…
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上操作而不是手工做这些工作. 一. WorkFlow配置 点击setup-->build-->create-->Workflow & Approvals-->workflow Rules或者在搜索栏中搜索workflow 然后选择workflow Rules.选择后会出现下图的引…
上一篇介绍的内容为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…
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Profile但是对于某个表,某个字段,或者某个Apex类等却可以有不同访问权限,这个时候就要用到Permission sets.  Permission sets 配置 1.点击setup->Administer->Manage Users->Permission Sets进入Permissio…
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. 十七篇链接:salesforce 零基础学习(十七)Trigger用法 有的时候对于sObject的trigger处理复杂的情况下,比如一个sObject的before update要实现功能1,2.....n功能情况下,Handler中需要在before update写实现功能1--n的代码.然而…
项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随便的取一个审批人了,有以下方式针对不同的场景可以获取到当前记录的最终审批人以及审批意见. 邮件内容使用以下几种方式实现: 1.代码里面实现邮件发送 2.email template(text/html/custom) 3.visualforce emailTemplate 对发送邮件方式不清楚的,可…
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的autoComplete实现. 此篇需求为在输入框中输入检索词对数据库中User表和Contact表的Name字段进行检索,符合条件的放在联想列表中,当用户选择相应的名称后,输入框中显示此名称对应的邮箱地址. 实现此功能可以整体分成三步: 1.通过输入内容检索相关表中符合条件的数据: 2.对检索的数据进…
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的使用此标签进行解析附件内容,后台只要声明String类型变量用来存储附件名称,Blob类型变量用来存储附件的内容即可. 但是当我们的项目整体使用第三方的前端框架,例如VUE或者angular等前端框架时,有时使用apex:inputFile反而不是很方便,需要用到html的原生的附件上传的标签<inpu…
此篇可以参考: 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…
本篇参考: 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…
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-from.html 群里面有个小伙伴询问了一个关于两个有Dependence关系的Picklist字段如何在Apex中通过control字段的值获取到Dependence字段的值,针对Salesforce配置来说,我们很好配置出两个Dependence字段的关系,通过点击设置一下include关系即可.…
本篇参考: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…
看本篇之前可以相应阅读以下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.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-…
本篇参考: 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 机缘巧合下碰到了这种问题,还挺好玩,记录一下,方便以后再次遇见情况下快速解决.背景如下: 在某…
1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第…
上次的博文零基础学习Linux(一)环境搭建中我们已经将Linux环境搭建完毕了,接下来我们就可以进行相关的操作了,在进行操作之前,我们先来看一下大家可能遇到的中文网页乱码问题. 1.问题演示 a)输入我们之前配置的用户名和密码,进入Linux操作界面 b)打开我们的浏览器 c)在打开的浏览器中输入网址会看到中文乱码问题 2.检查字体库 a)标定位桌面右键选择 [Open Terminal],打开命令行窗口 b)首先查看是否安装有中文的字库,命令如下 c)通过查看我们并没有找到中文的字库,所以接…
本篇参考: 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 处理 我们在…
本篇内容只是本人简单的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()方法. 编…
数据结构中,针对线性表包含两种结构,一种是顺序线性表,一种是链表.顺序线性表适用于查询,时间复杂度为O(1),增删的时间复杂度为O(n).链表适用于增删,时间复杂度为O(1),查询的时间复杂度为O(n). 栈可以说是特殊的线性表,因为栈拥有线性表的基础特征基础上,有一些特殊的要求,比如后进先出,即每次插入的元素只能放在栈顶,每次弹出值也只能弹出栈顶.同样的,栈分成顺序栈和链栈.本篇内容为顺序栈的实现以及简单应用. 顺序栈可以应用到很多的地方,比如递归运算,语法检查(比如括号匹配问题),数值转换(…
本篇参考: 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://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创建. 一.创…
之前的一篇介绍过关于salesforce手动配置关联关系实现PickList的联动效果,但是现实的开发中,很多数据不是定死的,应该通过ajax来动态获取,本篇讲述通过JavaScript Remoting 方式实现联动效果. 一.JavaScript Remoting简单介绍 上图为PDF中基本介绍,在VF中调用格式如下: Visualforce.remoting.Manager.invokeAction ( '{!$RemoteAction.MyController.myFunction}',…
通过做项目以及群里面的一些大神的聊天,总结一下关于项目中的两个知识点,以后当做参考. 一. 在custom setting中配置集成接口信息后刷sandbox的问题 我们做项目时,经常会遇见和其他平台集成,比如和SAP等系统平台进行集成.因为salesforce开发模式大部分是dev -> full -> production.  所以当我们做类似callout等操作时,集成的账号密码或者Endpoint等通常要动态的配置.这种操作通常会配置在Custom Setting或者custom me…
本篇参考: https://trailblazer.salesforce.com/issues_view?id=a1p4V0000003znDQAQ https://salesforce.stackexchange.com/questions/223766/lightning-new-case-action-override https://www.lightningdesignsystem.com/utilities/alignment/ 本篇主要总结项目中的两个知识点,分别是关联列表的new…
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文件上传到Document对象中. 一.文件上传功能 apex代码 public with sharing class FileUploadUsedTransientController { public transient Blob fileUploadBody{get;set;} public S…
有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式. 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStreamWriter. XmlStreamReader:此种读取方式的读的特点为从上而下读,下图是根据reader的EventType自上而下的运行步骤. 我们将此xml读取后封装到一个Goods的List中,Goods包括item,name以及type属性,代码如下: /* * 假定目前XML数据样式为…
在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types允许在相同的object中为数据定义多个UI.用户通过Profile进行分组,不同的Profile可以设置不同的Page Layout 以及显示不同的PickList的item值. 简单需求描述如下(以Goods__c为例): 1.Profile为Admin的用户可以看到所有的字段,Profile为…