JAVA技术文章

2019-11-07 关于打包的那些事

2019-12-11  本文已影响0人  古月的小七

Salesforce除了通过ChangeSet 或者Ant自动部署之外,还有一种形式就是以打包的方式交付。打包之后还可以通过Security Review,upload到AppExchange上让用户下载。Security Review和Upload APPExchange之后模块会单独写,本章只针对打包的流程加以说明。
包的类型
1.Unmanaged Package(代码可见,包括Apex Class,Workflow)
2.Managed Package(Beta Version & Release Version) (代码均不可见)
在Production环境只能安装Release版本。Managed Package一旦Upload成功,只能去添加新的文件而不能删除文件,所以在打成Managed包之前一定要对Unmanaged的包做好全面的测试。

然后就是我们打包过程中碰到的各种奇葩问题小结:

  1. Managed package是不能够在Sandbox打包的,Sandbox只能打包Unmanaged的包,如果想打Managed Package需要申请一个Developer Edition把打的Unmanaged Package安装到该Org中,然后在这个环境中去打Managed包。
  2. Managed包会出现一些在Unmanaged包中不出现的问题,例如我们碰到的一个比较奇特的问题,就是我们在component里面定义了一个空数组,在managed package里面被解析成了字符串导致我们的页面加载不出来。解决方案:我们在JS里面重新对数组做定义,可以解决。
 <aura:attribute name="ruleDelCriteriaList" type="PwC_Rule_Criteria__c[]" default=[]/>
  1. Name Space:为了避免你定义的Custome Object ect在target org有冲突,所以Salesforce会要求你打包的时候添加一个Name Space。对于Managed Package来说,如果你定义好了Name Space之后,Custom Object, Custom Field, Apex class 和Trigger里面会自动添加name space.但是在Lightning Component需要手动添加,包括 js files, 在attribute里面定义的Custom Object,对component的引用等等都需要修改。具体可以参考以下的链接。例子可以参考代码块,另外还需要注意需要手动修改 formula 字段,这个也不会自动添加Name Space。
    Name Space
<aura:component 
implements="flexipage:availableForAllPageTypes" 
controller="ABC_C.XYZ_GoalGaugeController"
extends="ABC_C:XYZ_UtilityComponent" access="global">
<aura:attribute name="ruleName" type="ABC_C__XYZ_Score_Rule__c"/>
<ABC_C:XYZ_ThresholdCalculationComponent  
thresholdRec="{!v.thresholdRec}" mode="{!v.mode}"/>

4.Managed package 还有一个需要注意的点是package一旦打成功,虽然你可以修改包里面的内容,但是不允许去删除文件,所以打包的时候一定要注意不要把多余的文件加到你的managed package里面。
5.另外一个奇怪的问题是,在标准的Object里面里面有一些custom field是自动创建的,比如Account里面的Active__c字段,它虽然是custom field,但却不是我们手动创建的,如果你把这些字段加到你的package里面,会报field duplicate错误,要手动的把这些字段remove掉。
6.还有就是你在install的时候有些prerequisites需要去做,比如,你需要enable your domain.
7.另外你需要确认你的target org metadata usage,
例如Metadata Usage: Before installation, please confirm your org has at least 1 Custom Tab, 1 Dashboard. Go to Setup screen, from the Quick Find Box, select System Overview, scroll down to the User Interface.


System Overview
上一篇下一篇

猜你喜欢

热点阅读