经过 Akshay. | 2017年6月21日 | Salesforce开发
嘿伙计们,我已经解决了一些问题,我认为对我来说真的很有帮助,所以我想分享他们会为你们的帮助,这是我的 第一系列Salesforce触发器。
所以让我们开始解决以下一些要求。
要求1:

让’看看一个方案,其中2个人约翰和爱丽丝想用公司命名的公司预订蜜月之旅‘Travel Agency’这是基于Salesforce CRM。
他们计划进行以下位置访问:
- 纽约
- 新泽西州
- 乔治亚州
- 加利福尼亚州
- 德克萨斯州
- 弗吉尼亚州
从管理员角度来看,这种特定的方案需要登录CRM:
使用两个必填字段创建自定义对象计划。
- 旅行时间(整数)
- Travel Location (纽约,新泽西州,佐治亚州,加利福尼亚州,德克萨斯州,弗吉尼亚州)Multipicklist。
(一世) 编写脚本以获取仅选择多匹克单纽约或弗吉尼亚的所有计划记录的总时间或与其他值。
(ii) 写一个触发器以停止使用位置创建任何计划记录‘纽约‘如果我们有“旅行时间”超过 100小时 任何特定位置‘纽约‘. Example:
如果'约翰和爱丽丝'想要在纽约花时间,并为所有计划提供总数的人'纽约' 是 90小时, 为了 '新泽西州' 是 70小时 和'乔治亚州' 是 100小时。遵循一些给定的步骤:
- 一个新的计划正在创建'纽约“除此之外,John和Alice除此之外还有5 小时。然后触发不会停止,总时间将成为95小时。
- 一个新的计划正在创建'新泽西州'小时45小时。触发器应该停止,总为105小时 小时.
解决方案1:
(一世) 脚本
public class GetHours{
// To get The Required Data
public static void gethrs(){
List Plist=new List< Plan__c>();
Plist=[select Travel_Hours__c from Plan__c where Travel__c='A' OR Travel__c='F' OR Travel__c includes('B,C,D,E;A') OR Travel__c includes('B,C,D,E;F')];
//Getting ALL THE from Plan__c Object
Decimal hrs=0;
for(Plan__c pc:Plist){
hrs=hrs + pc.Travel_Hours__c;
}
System.debug('TOTAL HOURS-->'+hrs);
}
}
(ii)扳机
List pcList=Trigger.New;
List pcListnew= [select Travel_Hours__c from Plan__c where Travel__c ='A'];
// or Travel__c includes('A')];
System.debug('get list---------'+pcListnew);
Decimal totalHr=0;
for(Plan__c pchr:pcListnew){
totalHr= totalHr + pchr.Travel_Hours__c;
}
for(Plan__c pc:pcList){
if(totalHr + pc.Travel_Hours__c >100 && pc.Travel__c=='A')
pc.addError('YOU CAN NOT ADD MORE WITH LOCATION ----> A');
}
}
要求2:

一个组织的活动组委会 大河Handi Event. 他们组织了在社会,团体和不同公司的大海手节。
从管理员角度来看,这种特定的方案需要登录CRM:
“Create an Object “”事件“”(名称默认字段和“”Event Date”” Date time field).
另一个交叉对象““Event Participant“” with 3 fields
1.查找联系人
2.Lookup活动
3.与会者多匹票列表(“”与会者联系“”,””主持人联系“”,””组织者联系人“”)
(一世) 写一个脚本来创建10“”Event Participant”” 4 with “”Attendee Contact””, 4 with “”Presenter Contact””, 2 with “”Organizer Contact””.”
(ii) “请先解决脚本问题。
写一个触发器以确保没有任何事件与参加者一起注册的相同联系人两次。
解释 : 不允许用户命名的用户在相同事件下创建具有相同联系人查找值的两个事件参与者。”
解决方案2:
(一世) 脚本
public with sharing class CreateEventParticipent{
public static void eventCreate(){
List ConList=new List();
for(Integer i=1;i<=10;i++){
Contact con=new Contact();
con.LastName='TEST cont'+i+' F';
ConList.add(con);
}
if(ConList.size()>0)
insert ConList;
/system.debug(con);
Event__c even=new Event__c();
even.Name='Salesforce meeting';
//even.Event_Date__c=6/02/2017 3:25 AM;
insert even;
System.debug(even);
List PcList=new List();
Integer i=0;
for(Contact con:ConList){
Event_Participant__c evenpc = new Event_Participant__c();
if(i >0 && i <=4){
evenpc.Name='INDIA CRICKET '+i;
evenpc.Participent__c='Attendee Contact';
evenpc.Event__c=even.Id;
evenpc.Contact__c=con.Id;
}
else if(i>4 && i<=8){
evenpc.Name='INDIA HOCKEY '+i;
evenpc.Participent__c='Presenter Contact';
evenpc.Event__c=even.Id;
evenpc.Contact__c=con.Id;
}
else{
evenpc.Name='INDIA MEN RACE '+i;
evenpc.Participent__c='Organizer Contact';
evenpc.Event__c=even.Id;
evenpc.Contact__c=con.Id;
}
PcList.add(evenpc);
System.debug('ADDDED------------------>'+evenpc);
i++;
}
if(PcList.size()>0){
insert PcList;
System.debug('ADDDED------------------>'+PcList);
}
}
}
(ii)扳机
trigger PreventContactForMultipleEvents on Event_Participant__c (before insert, before update){
List EvPList=Trigger.New;
for(Event_Participant__c epc:EvPList){
for(Event_Participant__c cc:[select Id,Contact__c,Participent__c from Event_Participant__c where Contact__c!=NULL AND Participent__c !=NULL]){
if(epc.Contact__c == cc.Contact__c && cc.Participent__c==epc.Participent__c){
epc.addError('YOU CAN NOT ADD A SINGLE CONATCT WITH MORE THAN ONE EVENT !!!');
}
}
}
}
要求3:

一个名叫的Salesforce公司 ABC 并计划在全球范围内推出在不同地区(亚洲,EMA,NA,SA)的产品。他们还希望将产品销售给亚洲,EMA,NA和SA的客户。
从管理员角度来看,这种特定的方案需要登录CRM:
- 在帐户对象中创建多个选项列表名称“Working in”
拾取价值观:
- 亚洲
- ema.
- NA.
- SA
(一世) 编写脚本以获得仅账户销售的产品总量 在工作 = 亚洲.
(ii) 编写触发器以停止创建或更新具有帐户的机会 “Working in = ASIA” 在相同的账户下,已经2岁赢得了机会。
解决方案3:
(一世) 脚本
public class GetProQtywithAcc{
public static void GetToatlPtoQty(){
List AccList=[select id,Name from Account where Working_In__c='ASIA'];
//system.debug('ACCCC---->'+AccList);
if(AccList.size()>0){
List oppList =[select id,TotalOpportunityQuantity,AccountId from Opportunity where AccountId IN:AccList AND StageName='Closed Won'];
//system.debug('opp--->'+oppList);
for(Opportunity opp:oppList){
System.debug('ACCOUNT---->'+opp.AccountId+'Number Of Product Sol--->'+opp.TotalOpportunityQuantity);
}
}
}
}
(ii) 扳机
public class PreventCreateOppOppCLoseWon_Trigger{
public static void PreventOppCreate(List OppList){
//new List();
List AccList=[Select Name,Id from Account Where Working_In__c includes('ASIA')];
//Getting all the account which is working in ASIA
System.debug('ACCC-->'+AccList);
List OppCloseWonList=[Select Id, AccountId From Opportunity Where StageName='Closed Won' and AccountId IN:AccList];
//getting id and accountid of all the opportunity where accountid is in AccList and stageName is Closed won
System.debug('opp-->'+OppCloseWonList);
for(Opportunity Opp:OppList){
Integer add=0;</span>
for(Opportunity opp1:OppCloseWonList){
if(opp1.AccountId==Opp.AccountId){
add++;
}
}
if(add>1){
Opp.addError('CAN NOT ADD OR UPDATE NEW OPPORTUNITY !!');
System.debug('AFTER MATCH------------------------>'+Opp.AccountId);
}
}
}
}
享受编码!!
经过 Akshay. | 5月29日2017年5月29日 | Salesforce安全, Salesforce工具
Salesforce CRM旨在向客户提供优质数据。在这个实时,世界数据质量很重要。它有助于保持您的组织干净整洁。没有人想看到具有相同信息的大部分数据。想象一下,一个图书馆具有相同类型的书籍和同样的故事概念。你愿意再去那里吗?一个大的。同样,它是一种最佳做法,可以从时间删除重复数据,并使您的疏忽具有大部分不需要的数据。
根据我的多个复制工具的经验,我发现一些令人敬畏,值得使用它们。在这里短熟,这是值得花时间的工具:
cloudingocloudingo
它是一个基于云的应用程序,并有助于清理您的数据库。它提供了一个仪表板要显示重复。它有自己的过滤器,我们也可以自己创建它。其用户界面(拖动n滴)非常简单。它提供了停止插入重复记录的工具。可以轻松配置其中多个过滤器。它在组织层面很便宜和定价。它可以大规模更新和质量删除记录。它允许您根据应用的过滤器合并数据。它具有自动合并和质量合并数据的功能。使用此工具的最佳部分是以我们自己的方式定制它。您可以创建过滤器并合并记录。由于基于当前功能的质量和自动合并,此工具具有如此多的嗡嗡声,并且在默认情况下会在截止上删除重复通知。它有一个很好的批处理副本功能,清洁帐户,联系人和领导
需求工具
它是一个桌面工具,专为系统管理员提供数据质量。它提供数据清理,数据维护,导入,导出和数据复制的数据验证。它具有拖动n删除功能,并提供详细的成功和错误日志文件。它将外部文件与Salesforce数据进行比较。 IT质量更新字段,执行重复记录的质量合并,质量备份数据。如果知道它需要时间,那么它是强大的。它使用内置逻辑根据公司名称,地址,邮政编码和手机推断。它只是欺骗联系人。由于桌面基础设施,它可以缩小大量数据。如果您的数据量很高,并且您定期执行数据加载,那么这对您来说是完美的。
dupechatcher.
它是一个很棒的免费工具,可以实时防止在系统中输入重复。它充当重复数据的盾牌,并识别,块和块和副本领导,帐户,联系人和人员帐户。这不会让您检查批量记录,因为它不支持批量保留。它只能停止插入重复的记录,但我们无法为现有重复记录做任何事情。它首先识别,然后阻止重复的引导,联系人,帐户和人员帐户。它使用标准和自定义Salesforce字段来删除重复项。它有助于将重复记录合并并转换为单个记录。它保留了对记录的阻塞和合并的完全控制,从而消除了任何损失的恐惧。
Dupeblocker.
Dupeblocker停止用户能够实时创建重复,以及Web Lead Dupes,SFDC到SFDC Dupes等。它支持所有Salesforce对象,包括机会和自定义对象。还与自定义对象一起,它也支持自定义字段以删除重复项。它具有双滤波器选项,其允许将哪个对象的规范与哪个对象进行比较。自动合并自动转换功能允许使用与匹配的现有记录自动合并新的传入记录,并且合并基于可自定义的映射。它建立在“旁路和插入”选项中。
环铅
它是一个基于Web的工具,非常易于使用。它具有很大的合并功能。如果合并有问题,它有一个撤消功能,可以解决合并问题。如果您的数据卷是媒介,并且希望在云中处理云中的所有内容,则戒指引线可能是一个很好的契合。它将时间节省为“唯一条目”提醒您在键入中的现有重复项时。此应用程序显示一次抢先警告’ve进入了一小部分记录,允许您暂停并与现有记录一起工作,而不是创建重复,解析,最终向前移动。
每个重复工具都有自己的优点和缺点。让我们更清楚地了解它们,并尝试根据提供的功能相互比较。
标准 |
Cloudingo. |
需求工具 |
dupechatcher. |
Dupeblocker. |
环铅 |
应用类型 |
基于Web的 |
桌面工具 |
基于Web的 |
基于Web的 |
基于Web的 |
有薪酬的 |
是的 |
是的 |
自由 |
是的 |
是的 |
支持对象 |
帐户,联系人,领导和人员帐户和自定义对象 |
帐户,联系人,领导和人员帐户和自定义对象 |
帐户,联系,领导和人员账户 |
帐户,联系人,机会,主导和自定义对象 |
帐户,联系人,领导和人员帐户和自定义对象 |
独特的功能 |
在插入数据之前导入Dedupe。 |
在更少的时间内延长大量数据 |
一个人可以停止插入重复的记录,但只允许合并现有记录 |
它具有自动合并和自动转换功能。它有双滤波器选项。 |
如果合并完成,它有一个撤消功能 |
速度设置和运行 |
中等的 |
快速地 |
中等的 |
中等的 |
中等的 |
使用方便 |
便于使用 |
需要时间加载,但如果学会了很强大 |
便于使用 |
便于使用 |
便于使用 |
支持的数据量 |
中等的 |
大 |
中等的 |
中等的 |
中等的 |
经过 Akshay. | 2017年4月6日 | Salesforce社区
社区介绍:
Salesforce Community是与可以帮助公司提升业务的人共享信息和合作的伟大平台。使用Salesforce社区。所有对于完成由组织设定的业务目标至关重要的人都可以相互协作。
使用Salesforce社区的好处:
提高服务: Salesforce社区将帮助组织与客户联系。因此,理解客户会更容易’要求这将导致为他们提供更好的服务。
加强销售: 因为通过使用Salesforce社区,员工,经销商和经销商将彼此沟通更容易,因此它将推动更多的销售额,最终将导致组织更具利润。
Salesforce中的社区类型
Salesforce中有两种类型的社区如下:
- 内部社区
- 外部社区
在我们进入员工社区的细节之前,如果我们对合作伙伴社区的基本知识以及员工社区与伙伴社区之间的显着差异,这将是伟大的。
内部社区介绍: 内部社区用于代表,该成员是直接组织的一部分。员工。
外部社区简介: 为不直接部分组织的用户创建外部社区。

外部通信的类型y:
1)合作伙伴社区: 众所周知,合作伙伴不是直接组成的一部分,但它们仍然是加强组织业务至关重要。因此,Salesforce提供了这个合作伙伴社区的平台,您可以根据您的要求与您的伴侣进行互动,并根据您的要求提供有限的访问。
2)客户社区: 就像合作伙伴一样,Salesforce也为客户提供了平台。使用此平台组织可以与客户互动。
- 这有助于他们解决客户的问题。
- 它还有助于他们了解客户的要求。
因此,总而言之,它将协助组织加强业务。
社区用户许可证:
每个团队都需要拥有创建社区的有效许可证。组织可以创建的社区类型取决于他们拥有的许可证。它还定义了组织可以创建的社区数量。
社区用户许可证的类型
Salesforce将社区用户许可证分为两个部分如下:
内部用户许可证: 员工社区是一个内部用户许可,可以访问10个自定义对象和标签。它还可以访问帐户和联系人。
外部用户许可证: 有三种类型的外部用户许可证如下:
Customer Community: 该社区最适合拥有大量外部用户的组织。客户社区最多可容纳7000万用户。
客户社区加上: 当有一个无限数量的登录以管理客户支持时,该社区最适合。
笔记: 客户社区和客户社区加上都适用于B2C社区,即。,。客户社区的业务。
合作伙伴社区: 合作伙伴社区最适合B2B社区。合作伙伴社区的用户可以读取,创建和编辑Salesforce标准对象,如帐户,联系人和资产。合作伙伴社区用户还可以访问发送电子邮件和工作流批准。
限制用户数量: 社区不得超过的用户数量有限制。如果确实如此,那么组织将不得不支付额外费用。
社区类型 用户数量
合作伙伴或客户社区300,000
Plus
客户社区1000万
笔记: 如果用户数量超过此限制,则不仅会导致额外的费用,但它也会降低Salesforce性能。因此建议不超过用户限制。
创建Salesforce社区
对于在Salesforce中构建社区,您需要遵循以下步骤:
1)去设置
2)在快速查找框中输入社区
3)输入所有社区
4)点击新社区
5)选择模板
6)给您的社区名称
7)为您的社区提供独特的网址
8)点击创建社区
一旦它’完成后,您将在屏幕上看到以下消息。
现在单击“转到社区管理”按钮,您也可以在屏幕上看到。单击此按钮后,它将带您到Salesforce社区预览页面。在此页面中,您可以管理所有功能和您社区的设计。此页面称为社区管理页面。从此页面中,您可以向您的社区添加主题。您还可以添加您认为应该访问您的社区的成员。
注意:如果要更改您在开头中添加的模板,那么您也可以执行此操作。
向您的社区添加主题:
通过向您的社区添加主题,所有这些社区的用户都可以与特定启用有关的讨论。这将有助于员工快速解决问题吗?
以下是您需要遵循的步骤,以便向社区添加主题:
1)单击主题下的主题管理选项卡
2)单击“新建”按钮
3)为您的主题提供名称
4)为您的主题提供一些描述
5)单击“创建”
您的主题将创建。但是,您仍然无法在您的社区中查看主题。
注意:要使您的主题在社区中可见,您将不得不将它们添加到 精选主题列表。
添加主题 Featured List 按照以下步骤操作:
1)单击特色主题
2)选择一个主题
3)点击添加
4)单击“保存”按钮
一旦保存预览您的社区,现在您会注意到您的主题已添加到您的社区中,它将看起来像这样:

现在,一旦可以添加到您的社区,您可以向您的主题添加缩略图,这将使您更令人愉快。因此要将缩略图添加到主题,请按以下步骤操作:
1)。单击特色主题
2)。现在点击您主题旁边的铅笔(更改属性)
3)。单击上传缩略图
4)。选择缩略图
5)单击“保存”
向社区添加成员
在Salesforce用户社区中,组织可以根据其需求将成员或用户列表添加到社区。该组织还可以为他们提供对Salesforce Org的一定程度的访问权限。访问级别取决于用户所属的简档或权限集。因此,以下是向Salesforce用户社区添加用户或会员的过程:
1)转到社区管理
2)点击管理

3)点击成员

4)选择所需的配置文件或权限集

5)点击添加
6)单击“保存”

成功保存了设置后,您在社区中添加的相应配置文件或权限集的用户将自动获得对Salesforce用户社区的访问权限。如上所述,这些用户的访问级别将取决于它们所属的配置文件和权限集。
查看管理选项卡下的所有选项
有时会发生什么是默认情况下,您无法在Salesforce用户社区中查看管理选项卡的所有选项。例如,如果您在第一次转到“管理”选项卡时,则无法查看管理下的选项卡选项。所以问题是我们如何看到所有管理选项。要查看“管理”选项卡的所有可能性,请按以下步骤操作:
1)首先单击“管理”
2)然后单击“首选项”
3)选中“在”社区管理“选项卡中的”显示所有设置“

4)在最后一步中,单击“保存”。
现在,您会注意到您可以看到您之前无法看到的所有选项。
向Salesforce用户社区添加标题徽标
如果要将新标题徽标添加到Salesforce用户社区,请按以下步骤操作:
- 单击管理下的登录名和“注册”选项卡
- 单击选择文件
- 选择具有合适尺寸的文件
- 点击保存
现在,一旦所有的更改都已保存并发布到您的社区,请预览社区,您将注意到您的社区上的不同标题徽标。
更改登录页面
就像社区标题一样,我们也可以更改登录页面,对我们的Salesforce用户社区。要修改登录页面,请按照以下步骤操作:
- 单击“管理下的登录和注册”
- 在登录部分登录社区时选择要查看的页面类型
- 单击“保存”
保存更改后,您将能够查看社区的不同登录页面。
在社区中添加标签
如果要将标签添加到社区以访问Salesforce Records,则按照
以下步骤:
1)去你的社区
2)单击“构建器”按钮
3)现在在左侧您有四个选项:
- Branding
- Page Editor
- Page Manager
- Settings
4)单击页面编辑器选项
5)现在您将有以下两个选项
- 闪电组件(这是默认的组件)
- Page Structure
6)单击“页面结构”选项
7)单击模板标题下可用的导航菜单
8)现在在右侧,您将看到编辑导航菜单的选项
9)点击它
10)为它提供名称
11)选择“类型为Salesforce对象”
12)在您想要向您展示的对象类型下选择对象
13)选择默认列表视图
14)勾选复选框
15)单击发布更改
16)将弹出一条消息
17)只需单击确定即可
18)现在在最后一步发布您的更改
通过快照演示:



现在发布您的更改并预览您的社区。

更改头部颜色
在Salesforce用户社区中,可以选择在社区管理中的管理选项卡下的品牌,我们可以从哪里改变社区标题的颜色。
要更改头部颜色,请按照以下步骤操作:
1)转到社区管理
2)点击管理
3)点击品牌
4)选择标题背景复选框
5)选择标题背景的颜色
6)单击“保存”
一旦更改已保存预览您的社区并查看更改。
更改页面背景颜色
就像标题背景一样,我们也可以更改页面背景颜色。更改页面背景颜色的过程非常类似于更改头颜色的过程。 Procession.so之间存在非常微妙的差异,以便更改页面背景颜色按照以下步骤操作:
1)转到社区管理
2)点击管理
3)点击品牌
4)选择页面背景复选框

5)选择页面背景的颜色
6)单击“保存”
添加公司徽标和标题图像
通过使用社区构建器,我们还可以将公司标识和标题图像添加到我们的社区。添加公司徽标和标题图像的过程非常相似。因此,让我们首先了解向社区添加公司徽标的过程。
1)转到社区建设者
2)单击品牌编辑器
3)单击公司徽标部分下的上传图像
4)单击选择图像

5)选择图像
6)上传图像
要将图像添加到标题按以下步骤操作:
1)转到社区建设者
2)单击品牌编辑器
3)单击“上载”标题图像部分下的图像
4)单击选择图像
5)选择图像
6)上传图像
现在发布您的更改并预览社区以查看更改。
查看全球标题
Salesforce提供了此功能的查看全局标题,我们可以直接从我们的Salesforce org切换到我们的社区。在ORG中使用全局视图标题按以下步骤操作:
1)去设置
2)在快速查找框中输入配置文件
3)单击配置文件
4)转到系统管理员配置文件
5)单击“编辑”
6)转到行政部门
7)检查查看全局标题复选框

8)单击“保存”
通过快照的全球视图演示

激活Salesforce用户社区
现在,即使我们为我们的社区添加了用户,但他们仍然无法访问它,因为我们没有启用我们的社区。因此,要确保我们在社区中添加的所有用户都可以查看它,我们将首先激活它。启用Salesforce用户社区的过程非常简单。只需遵循以下内容即可激活您的社区。
1)转到社区管理
2)点击管理
3)单击设置
4)单击激活社区

5)只需在弹出消息时单击确定
完成上述步骤后,您的Salesforce社区将被激活,所有相关用户现在都能够访问社区。
经过 Akshay. | 2017年3月18日 | Salesforce Aura组件, Salesforce Lightning.
我最近在Salesforce Lightning框架上工作了很多,并在将Salesforce Classic Apps转换为使它们准备好了,完成了超过5个大型小型项目。让我总结我最近学到的内容。
什么是光环?
Aura是一个用于开发移动和桌面设备的动态Web应用程序的UI框架。AURA支持桥接客户端和服务器的分区多层组件开发。它使用客户端的javascript和服务器端的Java。
下面的屏幕截图只是给你一个暗示Aura应用程序的外观:

What is an APP?
截图上方的线“一个光环的外观和感觉 应用程序“。 Word App(粗体)就像在Aura中的容器,即它包含具有其字段和按钮的组件。让我们对以上屏幕截图进行一点技术说明。组件文件将具有 .cmp. 扩展名为应用程序将有。应用程序 扩大。
组件aura_basic(aura_basic.cmp)
<aura:component >
<!-- Below div is used for header designing -->
<div class="slds-page-header" role="banner">
<div class="slds-grid">
<div class="slds-col">
<p class="slds-text-heading--label">Aura</p>
<h1 class="slds-text-heading--medium">Component</h1>
</div>
</div>
</div>
<!-- this form is being design so as to create complete input form -->
<form class="slds-form--stacked">
<div class="slds-form-element slds-is-required">
<div class="slds-form-element__control">
<ui:inputText aura:id="expname" label="Input Text Field" class="slds-input" labelClass="slds-form-element__label"/>
</div>
</div>
<div class="slds-form-element slds-is-required">
<div class="slds-form-element__control">
<ui:inputNumber aura:id="amount" label="Number Field" class="slds-input" labelClass="slds-form-element__label"/>
</div>
</div>
<div class="slds-form-element">
<div class="slds-form-element__control">
<ui:inputDate aura:id="expdate" label="Date Field" class="slds-input" labelClass="slds-form-element__label" displayDatePicker="true"/>
</div>
</div>
<div class="slds-form-element">
<ui:inputCheckbox aura:id="reimbursed" label="Checkbox" class="slds-checkbox" labelClass="slds-form-element__label"/>
</div>
<div class="slds-form-element">
<ui:button label="Submit" class="slds-button slds-button--brand" />
</div>
</form>
</aura:component>
<!– “force: slds” attribute is used to give the page as lightning effect–>
<aura:application extends=”force:slds”>
<c:aura_basic />
</aura:application>
闪电捆绑:
现在让我向你介绍一下这个词 雷击。 闪电捆绑基本上,以下文件的协作名称:
- 成分
- 控制器JS文件(客户端javascript文件)
- 帮手 JS文件(服务器端JavaScript文件)
- 样式文件(CSS文件)
- 渲染器
- 文件
- SVG(折旧)
我们基本上在前四个文件(粗体)上工作。 SVG用于图标,但它已经过时,现在Salesforce正在引入闪电图标。
让’s talk about Component, Controller JS, Helper JS and Style file individually.
成分: 组件是应用程序的独立和可重复使用的单位。它们代表UI的可重复使用部分,可以从单一文本到整个应用程序的粒度范围。
组件可以包含其他组件,以及HTML,CSS,JavaScript或任何其他支持Web的代码。这使您可以构建具有复杂UI的应用程序。

控制器JS: 客户端控制器处理组件内的事件。它是一个JavaScript资源,用于定义所有组件的函数’行动。客户端控制器被括号和卷曲括号包围,以表示包含名称值对地图的JSON对象。
({
myAction : function(component, event, helper){
// add code for the action
}
})
每个动作函数需要三个参数:
- 组件 - 控制器所属的组件。
- 事件 - 动作正在处理的事件。
- 助手 - 组件的助手,可选。帮助程序包含可以通过组件包中的任何JavaScript代码重用的函数。
帮手JS: 辅助资源是组件捆绑的一部分,并通过命名约定自动接线,<componentName>Helper.js。要使用Developer控制台创建帮助程序,请单击组件侧栏中的Helper。此辅助文件在范围内有效 它是自动连线的组件。
以下代码向您展示了如何调用Controller中的Updatileem Helper函数,该函数可以与自定义事件处理程序一起使用。
控制器JS文件:
({
newItemEvent : function(component, event, helper){
helper.updateItem(component, item, callback);
}
})
帮手 JS文件:
({
updateItem : function(component, item, callback){
//Update the items via a server-side action
var action = component.get(“c.saveItem”);
action.setParams({“item” : item});
//Set any optional callback and enqueue the action
if (callback){
action.setCallback(this, callback);
}
$ a.EnqueueAction(行动);
}
})
CSS文件: 使用CSS拟合您的组件。让’查看样本hellohtml.cmp组件。 CSS位于Hellohtml.css中。
组件来源:
<aura:component>
<div class=”white”>
Hello, HTML!
</div>
<h2>Check out the style in this list.</h2>
<ul>
<li class=”red”>I’m red.</li>
<li class=”blue”>I’m blue.</li>
<li class=”green”>I’m green.</li>
</ul>
<br/>
</aura:component>
CSS来源:
.THIS {
background-color: grey;
}
.THIS.white {
background-color: white;
}
.THIS .red {
background-color: red;
}
.THIS .blue {
background-color: blue;
}
.THIS .green {
background-color: green;
}

完成示例:
让’s have a glimpse of Aura where on submitting the Account Name you will get all the contacts related to that Account.
应用:
<aura:application extends=”force:slds”>
<c:GetContactList />
</aura:application>
成分:
<aura:component Controller=”ContactListAura”>
<aura:attribute name=”contList” type=”Object[]” />
<div class=”slds-page-header” role=”banner”>
<div class=”slds-grid”>
<div class=”slds-col”>
<p class=”slds-text-heading–label”>Aura</p>
<h1 class=”slds-text-heading–medium”>Component</h1>
</div>
</div>
</div>
<form class=”slds-form–stacked”>
<div class=”slds-form-element slds-is-required”>
<div class=”slds-form-element__control”>
<ui:inputText aura:id=”accName” label=”Input Text Field” class=”slds-input” labelClass=”slds-form-element__label” placeholder=”Enter Account Name”/>
</div>
</div>
<div class=”slds-form-element”>
<ui:button label=”Submit” class=”slds-button slds-button–brand” press=”{!c.getSubmit}” />
</div>
<table class=”slds-table slds-table_bordered slds-table_cell-buffer”>
<thead>
<tr class=”slds-text-title_caps”>
<th scope=”col”>
<div class=”slds-truncate” title=”Name”>Name</div>
</th>
</tr>
</thead>
<tbody>
<aura:iteration items=”{!v.contList}” var=”item”>
<tr>
<td>{!item.Name}</td>
</tr>
</aura:iteration>
</tbody>
</table>
</form>
</aura:component>
控制器:
({
getSubmit : function(component, event, helper){
Helper.getContactListhelper(组件,事件,助手);
},
})
帮手:
({
getContactListHelper : function(component, event, helper) {
var action = component.get(“c.getContactLists“);
action.setParams({
“nm” : component.find(“accName“).get(“v.value”)
});
action.setCallback(this, function(a){
component.set(“v.contList“, a.getReturnValue());
console.log(‘v.contList ‘+component.get(“v.contList”));
});
$ a.EnqueueAction(行动);
}
}
})
APEX类:
public class ContactListAura {
@AuraEnabled
public static List<Contact>getContactLists(String nm){
system.debug(‘nm–> ‘+nm);
if(!String.IsBlank(nm)){
return [SELECT ID,Name FROM CONTACT WHERE Account.Name=:nm];
}
return null;
}
}


页面流程:
<aura:attribute name=”contList” type=”Object[]” />
第一行之后 <aura:component> 将用于显示组件上的数据。 W.母鸡我已将帐户名称输入到输入文本中,然后单击“提交“。它诱发了 getsubmit. 客户端JS的方法I.。 Controller JS method.
在控制器JS中。
帮手.getContactListhelper(组件,事件,助手);
会打电话给 帮手JS. 方法i.E. 服务器端JS。 在Helper JS线路中
var action = component.get(“c.getContactLists”);
在APEX类中授予AUREENABLED方法的引用 (我们设置了Aura的Controller属性:组件 标签名称 ApexClass Name.)
action.setParams({
“nm” : component.find(“accName”).get(“v.value”)
});
将设置Apex方法的SET参数,其中包含我们在输入文本中插入的值 Aura ID. as 录音。
action.setCallback(this, function(a){
component.set(“v.contList”, a.getReturnValue());
console.log(‘v.contList ‘+component.get(“v.contList”));
});
此行将设置我们将在组件上使用的变量来显示数据。
在上面的赛段中,“这“关键字用于引用已调用完整执行的当前组件。
$ a.EnqueueAction(行动);
此行最为重要,因为它负责获取Apex类的返回结果,并将其设置为我们将要使用该组件的属性/变量。
注意:字母v用于访问变量,而C用于访问控制器。
经过 Akshay. | 2017年2月23日 | Salesforce Aura组件, Salesforce Lightning.
我们都知道 闪电 最近已被添加到Salesforce,这是Salesforce的未来。所以很多人都有新的闪电,但有好奇心,有时会发现很难理解。我意识到最佳启动方法是通过描述Salesforce雷电设计系统和Salesforce Lightning组件框架之间有什么差异。所以在这个博客中,我将尝试解释Salesforce Lighting Design System和Salesforce Lightning Components框架之间的主要差异是什么,希望它将清除新开发人员对雷电框架的大多数疑问。
Salesforce Lightning.设计系统简介
它是一个CSS框架,用于创建动态Web应用程序。通过使用SLD,我们可以响应我们的应用程序,也可以提供类似于闪电体验的外观。
安装SLD的步骤Unmanaged Packaged:在我们的Salesforce Org中使用SLD。首先,我们需要安装未被托管包装为静态资源ZIP文件的最新Salesforce Lightning设计系统。
- 登录您的开发人员组织。
- 在单独的窗口中打开Salesforce Lightning设计系统。
- 转到下载部分。
- 单击最新的非托管包
- 现在单击“安装”。
完成上述步骤后,程序包将安装到您的组织中。
使用Salesforce Lightning设计系统的好处:
- 通过使用SLDS,更容易构建响应的应用程序,也有类似的应用程序
闪电体验。
- 它与谷歌Chrome,最新的Mozilla Firefox,最新的Safari最新Internet Explorer 11及以上等多种浏览器兼容。
- 它提供了一种强大的网格系统,因为它更容易构建响应性布局,响应于不同屏幕尺寸优雅地工作。
- CSS与SLDS-前缀完全命名为避免CSS冲突。
闪电组件框架简介
它是使用开源Aura框架建造的。通过使用Aura框架,我们可以完全构建应用程序,完全独立于Salesforce Org中存在的数据。
闪电组件框架的好处:
- 它为构建应用提供了一组开箱组组件
- 当我们使用闪电组件框架时,我们不需要担心我们对不同设备的应用程序优化,因为组件通过自己处理这一点。
- 它使用的状态客户端和无状态服务器体系结构,该架构在客户端上使用JavaScript来管理UI组件元数据和应用程序数据。
- 它使用事件驱动架构,增强了组件之间的解耦。
- 它支持最新的浏览器技术,如HTML5,CSS3。
使用开发人员控制台:
开发人员控制台为我们提供了这些工具 用于开发组件和应用程序。通过使用开发人员控制台,我们可以执行以下功能
- 我们需要使用文件选项来创建或打开以下闪电资源:
- 我们需要使用侧边栏来创建或打开客户端资源。
- 成分
- 控制器
- 帮手
- 风格
- 文件
- 使成为
SLD和Aura之间的差异
框架:
- 首先,Salesforce Lightning设计系统是基于CSS的框架。
- 用于在另一个手中创建动态应用程序,闪电组件框架使用Aura组件来创建动态应用程序。
控制器:
- 在闪电组件框架的情况下,我们需要为客户端编写两个控制器,另一个用于服务器端。在Salesforce闪电设计系统的情况下,我们需要只编写一个控制器,该控制器将成为服务器侧控制器。
注意:Java Script客户端控制器我们将写入闪电组件框架将使用JavaScript编写,而服务器侧控制器将使用顶点写入。
Salesforce数据:
- 通过使用闪电组件框架,我们可以构建一个应用程序,该应用程序将完全独立于Salesforce数据,而在Salesforce Lightning设计系统(SLD)中需要一些Salesforce数据,可以使用JavaScript远程对象访问。
客户中心:
- 闪电组件框架是客户端为中心的,而Salesforce Lightning Design System是服务器侧中心。
表现:
- 因为闪电组件是客户端以中心为中心,因此它们更好。
- 配备创建动态Web应用程序,然后是Salesforce Lightning设计系统。
手机友好:
- 如上所述,闪电组件是客户端中心,因此与Salesforce Lightning设计系统(SLD)相比,它们更加移动友好。
事件驱动的编程
- 在闪电组件框架事件中,诸如JavaScript和Java Swing等诸如JavaScript和Java Swing的诸如当时Salesforce设计系统发生但在Salesforce设计系统中的响应界面事件的帮助者中的写作者则不会用于编写效果事件的帮助程序。
复杂
- 因为在闪电组件框架中,我们需要创建两个控制器,并且它也使用事件驱动的编程语言,如JavaScript,因此,与Salesforce Lightning设计系统(SLD)相比,复杂很多
最近的评论