salesforce中支持对csv格式的内容批量导入,可以使用dataloader,然而有些情况下,当用户没有相关权限使用dataloader导入情况下,就的需要使用VF和apex代码来搞定. 基本想法: 1.通过<apex:inputFile>标签弹出选择文件对话框,选择相应的csv文件; 2.将相关csv文件转换成字符串并加以解析; 3.将解析的字符串通过相关分隔存储到列表中,并插入到数据库. 储备知识: 1.csv:具有以下特征: 纯文本; 由记录组成(典型的是每行一条记录): 每条记录…
本篇内容只是本人简单的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/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系统或者切换app后,默认第一个看到的就是home页面.home页面简单的来说可以包括左侧(narrow component)和右侧(wide component)两部分. 左侧包含Recent View,Custom Link,Create New等快捷入口等组件,右侧包括tasks,item to approval,calendar,dashboard snapshot等等. 有时,不同简档的用户需要看到不同的Home页面中的组件或者显示不同的custom li…
之前的一篇介绍过关于salesforce手动配置关联关系实现PickList的联动效果,但是现实的开发中,很多数据不是定死的,应该通过ajax来动态获取,本篇讲述通过JavaScript Remoting 方式实现联动效果. 一.JavaScript Remoting简单介绍 上图为PDF中基本介绍,在VF中调用格式如下: Visualforce.remoting.Manager.invokeAction ( '{!$RemoteAction.MyController.myFunction}',…
chart在报表中经常使用到,他可以使报表结果更加直观的展现给用户.salesforce支持VF和apex代码来更好的展示chart. chart分类:常用的图表样式有饼状图,柱状图,折线图,条形图,表盘图,雷达图,及线性系列图表等. 图表根据样式不同显示的内容不同,大概包含以下部分: 1. X,Y坐标; 2. 标题; 3. 内容及所含数量(data); 4.移入上面显示的相关提示信息(tip); 5.说明(legend). 注:这里只是总结大概的部分,显示的部分因图表样式而有相应的差距,cha…
有的时候我们往往会遇到此种类似的需求:用户在访问某个详细的记录时,需要记录一下什么时候哪个用户访问过此页面,也就是说进入此页面时,需要插入一条记录到表中,表有用户信息,record id,sObject name以及vf page name.但是对于salesforce,不允许在controller的构造函数中进行DML操作,此种情况推荐采用两种方式实现此功能: 一.使用apex:page的action属性 1. DetailGoodsUseAjaxToolkitController:实现数据的…
异常或者error code汇总:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_concepts_core_data_objects.htm 做项目的时候有很多异常是我们经常遇到的: 1.空指针异常: 2.死锁或者超时: 3.级联删除时无级联表操作权限导致删除失败: 4.一次请求查询超过50000条数据: 5.查询时偏移量超过2000: 6.不满足Validation Rule条件:…
custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信息. 步骤如下: 一.创建custom label 我们创建名为Show Message Dynamic的label,value值通过{item}来动态展示信息. 二.使用custom label实现动态显示 为了方便显示,将custom label显示在trigger中处理错误信息. trigge…
在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types允许在相同的object中为数据定义多个UI.用户通过Profile进行分组,不同的Profile可以设置不同的Page Layout 以及显示不同的PickList的item值. 简单需求描述如下(以Goods__c为例): 1.Profile为Admin的用户可以看到所有的字段,Profile为…