在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己另外设计. 一. 聚合函数 常用的聚合函数有如下几种: AVG():求平均值 COUNT():求记录个数 COUNT_DISTINCT():求不重复记录个数 MIN():求记录中最小值 MAX():求记录中的最大值 SUM():求和 这些聚合函数通常和group by fieldName 一起用,达…
开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示.假设你开发使用chrome浏览器,并且可以访问chrome商城,则使用步骤如下: 1.选择扩展程序项: 2.在搜索框中输入Apex Debugger; 3.添加至Chrome并且在扩展程序中启用即可. 显示效果如下: 总结:安装此插件后,不同的操作可以显示不同的样式,可以更加方便找到所需要的信息,有需…
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的使用此标签进行解析附件内容,后台只要声明String类型变量用来存储附件名称,Blob类型变量用来存储附件的内容即可. 但是当我们的项目整体使用第三方的前端框架,例如VUE或者angular等前端框架时,有时使用apex:inputFile反而不是很方便,需要用到html的原生的附件上传的标签<inpu…
上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件判断写起来可能很麻烦,有些逻辑通过Apex写起来很容易,此篇内容为通过Process Builder 和Apex代码实现锁定记录. 需求:对Opportunity表进行判断是否加锁或者解锁.当Delivery/Installation Status这一项的值为'Completed'情况下加锁,为其他…
salesforce开发中,我们会对object进行很多的操作,比如对object设置字段的必填性唯一性等,设置validation rule实现一下相关的字段的逻辑校验,设置workflow实现某个字段的更改或者发送邮件等,设置trigger实现before和after的数据相关逻辑处理,设置sharing setting实现数据share,设置master detail的rollup summary字段等.当这些操作铺天盖地的上来时,你还搞得清楚当新增/修改一条记录以后到底怎么运行的吗?有了…
我们在程序中经常需要对数据列表进行排序,有时候使用SOQL的order by 不一定能完全符合需求,需要对数据进行排序,排序可以有多种方式,不同的方式针对不同的场景.篇一只是简单的描述一下选择排序,插入排序以及插入排序优化版--希尔排序. 一.选择排序 选择排序的中心思想为第一轮找到数组中最小的值,将最小值和第一个元素交换位置,第二轮找到剩余数组的最小值,将其和第二个元素交换,以此类推. 选择排序的特点如下: 1.比较次数:n * (n-1) / 2 2.交换次数:N 4.运行时间和输入无关 5…
做web项目难免要从一个页面传参数,解析参数中的值进行相关处理以后跳转到其他页面,VF中也不例外.使用传参的标签为apex:param. apex:param标签不可以单独使用,需要作为子标签嵌套在相关父标签内,可以使用此标签的标签如下: apex:param主要有两个用法: 对文本进行相关格式转换 传递参数 一.对文本进行相关格式转换:此种方式主要是apex:outputText的value支持和java中的MessageFormat同样的语法. java api 的MessageFormat…
本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf 做项目一般需要考虑国际化问题.在salesforce中,当我们自定义一个Custom label情况下,他就可以选择需要translate的语言,如下图所示. 但是当我们new一个PickList字段或者当我们validation写错误信息情况下,便只能通过一种语言写,那如何实现PickList,v…
有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们就的需要锁定记录(Lock Record). 锁定记录(Lock Record)可以通过Process Builder以及Approval Processes实现功能.本人最开始用的自己申请的免费帐户使用Custom Object来进行测试,发现的尴尬的事情就是Profile为System Admi…
上篇内容为Pagination基类的封装,此篇接上篇内容描述如何调用Pagination基类. 首先先创建一个sObject,起名Company info,此object字段信息如下: 为了国际化考虑,setup中输入框输入translate对字段的label进行国际化处理,此处只处理中文. sobject创建好之后,我们便要进行设计.首先要有一个helper类,对相关查询方法进行封装,然后controller层进行调用以及和page页面交互一个page页面显示. MyPaginationEnh…