摘要:
项目中通常有些需求为需要将某个sObject的数据列表按照某种规则排序显示到前台页面上,但是list上面的sort远远满足不了复杂的功能,此种情况需要自定义比较两个object大小的方法,所以需要创建Compare相关的类实现Comparable接口。 需求:实现Goods__c列表排序,Goods 阅读全文
摘要:
本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github.com/abhinavguptas/Multi-RecordType-Sobject-Pickli 阅读全文
摘要:
有的时候,我们项目有可能有类似需求:做一个简单的图像轮转播放功能,不同的VF页面调用可以显示不同的图片以及不同的图片描述。这种情况,如果在每个页面单独处理相关的图像轮转播放则显得代码特别冗余,此种情况下适合使用apex:component实现,将图像轮转的功能做成一个组件,图像的URL以及图像的描述 阅读全文
摘要:
项目中表之间关联关系特别多,比如三个表中A,B,C C作为主表,A,B作为从表,有时候C表需要创建数据时,同时需要创建A,B两个表的数据,这种情况下,使用Wizard样式会更加友好。 以Goods__c表和Goods_Vendor__c表为例,Goods__c为主表,Goods_Vendor__c为 阅读全文
摘要:
做web项目难免要从一个页面传参数,解析参数中的值进行相关处理以后跳转到其他页面,VF中也不例外。使用传参的标签为apex:param。 apex:param标签不可以单独使用,需要作为子标签嵌套在相关父标签内,可以使用此标签的标签如下: apex:param主要有两个用法: 对文本进行相关格式转换 阅读全文
摘要:
项目中有时候会要求通过sObject的Field的type类型返回其对应的基本类型,然后对其进行相关的处理,创建sObject的field可以选择的type类型是固定多的。 上述类型可以转换成几种基本类型:Boolean、Date、Datetime、Double、Integer、String、Tim 阅读全文
摘要:
我们写Test Class的时候往往都需要指定一个uesr去run test method。 TestUserHelper类如下: 里面有两个静态方法,一个是创建一个Profile为Admin,指定的Permission Set的User,一个是指定Profile,指定Permission Set的 阅读全文
摘要:
本来想通过template封装DAO中的getById,结果template中无法选择$(object_name),所以此种想法打消了,直接封装成一个Helper类,方便以后项目中如果有类似需要可以使用。 运行代码: 结果展示: 总结:简单的helper类以及方法,篇中有问题的欢迎指出,不懂得欢迎留 阅读全文
摘要:
项目源码:https://github.com/zhangyueqidlmu/SOAP-Access-SFDC.git 项目背景:salesforce端相关数据需要其他系统提供,其他系统可以提供相关数据的CSV文件。使用SOAP方式java代码定时将文件读取解析并插入到salesforce相关数据表 阅读全文
摘要:
异常或者error code汇总:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_concepts_core_data_objects.htm 做项目的时候有很多异常是我们经常遇到的: 1 阅读全文
摘要:
此篇参考git代码:https://github.com/pdalcol/Zippex 学习salesforce可以访问一个朋友的网站:https://www.xgeek.net 首先感谢git上提供代码的大神,学到了新的知识。salesforce不像java提供生成Zip文件的类库,通过git上c 阅读全文
摘要:
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰。 十七篇链接:salesforce 零基础学习(十七)Trigger用法 有的时候对于sObject的 阅读全文
摘要:
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environment_tipsheet.pdf salesforce提供了多种API和外部交互,常用的有REST A 阅读全文
摘要:
salesforce给我们提供了标准的页面,比如标准的页面包括标准的列表和标准的详细页视图。有的时候我们想要自定义视图,比如做一个项目的时候不希望使用者直接通过ID查看到标准的详细页,而是跳转到指定处理过的详细页,这个时候做法如下: 1.创建相关详细页的Controller,此Controller的 阅读全文
摘要:
上篇内容为Pagination基类的封装,此篇接上篇内容描述如何调用Pagination基类。 首先先创建一个sObject,起名Company info,此object字段信息如下: 为了国际化考虑,setup中输入框输入translate对字段的label进行国际化处理,此处只处理中文。 sob 阅读全文
摘要:
我们知道,salesforce中系统标准列表页面提供了相应的分页功能,如果要使用其分页功能,可以访问http://www.cnblogs.com/zero-zyq/p/5343287.html查看相关实现。 现在很多的sfdc项目都是重构页面进行开发,所以很多系统分装的功能用不上,但是很多确实很常见 阅读全文
摘要:
对于一个项目来说,除了稳定性以及健壮性以外,还需要有较好的安全性,此篇博客简单描述salesforce中关于安全性的一点小知识,特别感谢公司中的nate大神和鹏哥让我学到了新得知识。 项目简单背景: 假设有两个sObject,分别是A和B。B是A的子sobject。表单中元素显示的是B的相关字段,这 阅读全文
摘要:
项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样。 以Goods__c表为例,申请者申请的一些采购以前需要得到批准,申请者列表需要显示所有的申请记录,状态(Status__c)有以下情况: 直线经理审批; 阅读全文
摘要:
我们都知道,当一条记录进入审批流程以后会自动加锁,apex提供Approval类的lock和unlock方法可以让我们使用代码对记录进行加锁和解锁。 项目中遇到一个需求,需要当某种情况下对记录进行先解锁,然后update相关数据,然后再加锁。此种方式不影响审批流程。 主要大概代码如下所示 这段代码写 阅读全文
摘要:
现在做的项目代码是原来其他公司做的,要在原来基础上业务进行适当调整加上一些CR,其中有一个需要调整的需求如下: 原来使用apex:selectCheckboxes封装了一个checkbox列表,因为数据太多导致显示起来比较丑,用户希望改进一下UI。 apex:selectCheckboxes作用原理 阅读全文
摘要:
工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数。 习惯java的我毫不犹豫的写下了代码 提交代码发现竟然提交不上?? 后来查看API发现apex中没有直接的%取余运算,所以如果想要取余以及判断是否整除需要其他方式,代码如下: 调用结果显示: 通过上述代码可以看出,我们运算 阅读全文
摘要:
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文件上传到Document对象中。 一.文件上传功能 apex代码 这里Blob对象用来绑定前台的in 阅读全文
摘要:
salesforce中,有的时候我们需要将一组用户放进一个Group,用来实现以下主要功能: 1.通过sharing rule设置默认的共享访问; 2.将记录分享给其他用户; 3.指定同步的联系人,这些联系人的onwer属于其他user; 4.分配Group中用户到指定的动作,比如审批流程等。 Gr 阅读全文
摘要:
有时候,项目中我们需要设置类似白名单的功能,即某些用户或者某种Profile的用户不走一些校验或者走一些校验,这时,使用Custom Settings功能可以很好的解决这一需求。 Custom Settings创建类似于Custom Object,但是两者用法上有一些区别:Custom Settin 阅读全文
摘要:
在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己另外设计。 一. 聚合函数 常用的聚合函数有如下几种: AVG():求平均值 COUNT():求记录 阅读全文
摘要:
本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf 做项目一般需要考虑国际化问题。在salesforce中,当我们自定义一个Custom label情况 阅读全文
摘要:
在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法。 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见。对于数据库常见的操作:增,删,改,查,通过DML语句和Database类的方法实现如下所示: DML语句: 查找:[quer 阅读全文
摘要:
上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件判断写起来可能很麻烦,有些逻辑通过Apex写起来很容易,此篇内容为通过Process Builder 阅读全文
摘要:
有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们就的需要锁定记录(Lock Record)。 锁定记录(Lock Record)可以通过Proces 阅读全文
摘要:
custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message。有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信息。 步骤如下: 一.创建custom label 我们创建名为Show Message Dynam 阅读全文
摘要:
本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_services/apex_integration_rest_callouts 有的时候我们需要在s 阅读全文
摘要:
有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式。 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStreamWriter。 XmlStreamReader:此种读取方式的读的特点为从上而下读,下图是根据re 阅读全文
摘要:
今天在群里大概遇到了这样一个问题,明明这个User存在,但是save的时候提示信息说Value不存在,大概的意思如下图所示,目前认为这种问题常见的可能情况有两种。 一.此字段设置Validation Rule 此字段设置Validation Rule,判断条件为当User1的值与Owner相同情况下 阅读全文
摘要:
开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示。假设你开发使用chrome浏览器,并且可以访问chrome商城,则使用步骤如下: 1.选择扩展程序项; 阅读全文
摘要:
在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值。这个时候,使用Record Types可以很便捷的搞定需求。 Record Types允许在相同的object中为数据定义多个UI。用户通过Profile进行分组,不同的Profile可 阅读全文
摘要:
之前的一篇介绍过关于salesforce手动配置关联关系实现PickList的联动效果,但是现实的开发中,很多数据不是定死的,应该通过ajax来动态获取,本篇讲述通过JavaScript Remoting 方式实现联动效果。 一、JavaScript Remoting简单介绍 上图为PDF中基本介绍 阅读全文
摘要:
进行查询的情况下,显示友好的等待效果可以让用户更好的了解目前的状态以及减少用户消极的等待,例如下图所示。 VF提供了<apex:actionStatus>标签,,此标签用于显示一个AJAX请求更新的状态。一个AJAX请求状态可以显示为进展或完成。 实现上述效果的主要步骤如下: 1.创建一个Compo 阅读全文
摘要:
chart在报表中经常使用到,他可以使报表结果更加直观的展现给用户。salesforce支持VF和apex代码来更好的展示chart。 chart分类:常用的图表样式有饼状图,柱状图,折线图,条形图,表盘图,雷达图,及线性系列图表等。 图表根据样式不同显示的内容不同,大概包含以下部分: 1. X,Y 阅读全文
摘要:
有的时候,项目需要一些联动的操作,比如省和市之间的联动,不同的省应该显示不同的城市。 操作步骤如下: 1.新建provice字段,并且初始化相关的值 2.新建city字段,并且初始化相关的值 3.在Province的Field Dependencies 处点击New按钮,将其与city字段关联 4. 阅读全文
摘要:
salesforce中支持对csv格式的内容批量导入,可以使用dataloader,然而有些情况下,当用户没有相关权限使用dataloader导入情况下,就的需要使用VF和apex代码来搞定。 基本想法: 1.通过<apex:inputFile>标签弹出选择文件对话框,选择相应的csv文件; 2.将 阅读全文