一个项目从开始到发布大概分为以下几个步骤。
当然前期会有很多准备,市场调研,功能技术可行性分析等等,
需要能够掌控全局的人来做,需求分析,前期的规划至关重要,
直接影响后面项目能否顺利进行下去。
1,项目启动(Kick Off)
2,项目创建(Create)
3,项目开发(Dev)
4,项目测试(Test)
5,用户验收(UAT)
6,项目发布(Release,sandbox到production)
7,项目维护(Maintenance,现有功能维护,新功能追加)
这次主要想介绍一下,项目Release的过程,是如何准备以及发布时遇到的问题,如何解决,最后发布完了的对应。
主要是要做好Release的手顺书,因为操作相对较多的时候,我能们记忆有限,不可能凭空想象这操作,
相反,如果我们有可以参考的手顺,一步一步来,那不是更好吗,也避免遗漏一些设置等。
最近项目形式类似敏捷开发,基本测试内容做的很少,主要通过两个人Double Check,(W Check)为主,
也就是两个人同时进行动作确认,如果基本业务流程没有问题,那也就是通过了。
为什么说是敏捷开发类型呢?先看一下敏捷开发的基本概念:
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
与个人互动,而不是与流程和工具互动
可以运行的软件,而不是综合文档
与客户合作,而不是合同谈判
响应变化,而不是遵循计划
这次基本满足上面四种情况。
与一起开发的人,或者上面的PM,Leader多次沟通交流,不只是看业务流程与现有工具。
做出来的系统可以运行,每一次变更,客户都可以操作,不只是让客户查看文档,当然文档也必不可少,在符合业务的前提下,稍后也可以整理。
与客户合作,柔软性的变化,不只是通过合同交流,过于生硬。
虽然事先会做好一些预设的功能,但是随着时间的推移,业务需求,甚至客户喜好,也会有所变化,这样的情况,也是需要即使更换计划,灵活对应。
接着说准备手顺书,手顺书大概包含的内容,也就是这次需要Release的内容,
有一部分可能是需要事先设定的在Production中,
有一部分可以通过Change set发布到Production中(或者需要开发IDE,用metadata API形式发布),
还有一部分,比如Profile中的部分设定,Change set不能发布的问题,需要手动设定在Production中(或者Ant 移行ツール可以发布Profile中的部分设定,需要谨慎操作)。
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_deploying_ant.htm
当然也许我们会有新增加的部分功能,忘记记录了,那么确实是一件麻烦的事情,需要用工具在sandbox和production中进行对比。
找出其中不同的部分,在增加到手顺书中。我这次用的是WinMerge比较工具。可以比较文件夹和文件,会用颜色标出两个文件之间的差异。
这次也是比较sandbox和production的Metadata API,
首先可以获得两个环境的Metadata API,方法很多了。
可以通过VSCode获取,也可以用google插件下载。
VSCode获取Metadata API可以参考下面
VSCodeでSFDC環境構築、複数の方法でメタデータを取得ーVSCode(利用できるPackage.xmlをアップロード)
google插件:
Salesforce inspector
https://chrome.google.com/webstore/detail/salesforce-inspector/aodjmnfhjibkcdimpodiifdjnnncaafh
下载即可。
WinMerge
Object的不同。
上面可以发现,Production中缺少一个字段。
可以对比确实也很困难,但是事先没有做好手顺,遗漏的问题,也没有办法,如果大家有更好的办法,请评论留言,互相讨论。
顺便推荐几个SFDC相关的插件,
Boostr for Salesforce
– Ability to search when adding items to a change set
– Filtering by type when adding to a change set
– Showing all items of a given type on one page when adding to a change
在追加change set时,非常方便,可以根据类型检索需要的Component,
Salesforce DevTools
・Exporting Objects Field Definition to Excel file.
・Exporting Objects Page Layout to Excel file.
・Salesforce data modal (ERDs) generator.
・Display fields API name on Salesforce object detail page.
可以导出Object定义书等等。
还有很多很实用的工具,配合着使用可以提高效率,毕竟可以说【时间就是金钱】。
接着说稍微具体点的手顺书内容,
Release前的准备,比如环境的设定,
需要事先设置好,产品环境可以接收开发环境发送过来的Change set。
一些Package等,也需要提前安装在Production中,
Files connect for Salesforce
Box for Salesforce
OUTLOOK for lightning
Email-to-Case Settings
API名变更等,如有特殊需要。
Change set做成也是在Release前需要准备好的,因为当天需要直接发布。
关于Change set的一览列表内容,需要知道哪些组件可以加,哪些不可以追加:
比如Profile中的Field的FLS访问相关的设置是无法通过Change set过去的。
更改集中可用的组件:
https://help.salesforce.com/articleView?id=changesets_about_components.htm&type=5
做好分类,方便添加。
以本次追加的Component为例,
Action
Apex Class
Apex Trigger
Button or Link
Compact Layout
Custom Field
Custom Object
Custom Report Type
Dashboard
Dashboard Folder
Flow Definition
Global Value Set
Group
Lightning Page
List View
Page Layout
Permission Sets
Record Type
Report
Report Folder
Role
Sharing Criteria Rule
Tab
Validation Rule
Visualforce Page
Workflow Field Update
Workflow Rule
Profile
Profile也可以追加,但是如果Profile很多,也有许多新增加的Field,那么后期的Field的FLS工作,会很繁琐。
所以这时候建议在Production中去复制一个基本完整的Profile,然后再一个一个复制更名名称,再去更改Field。
会节省很多时间。
关于Report和Dashboard的发布,稍微有一点问题,就是正常都会存储在相对应的文件夹下面,
所以可能还需要自己事先创建对应的文件夹,否则会提示,不存在的文件夹之类的问题。
然后就是一些手动设定部分了,需要直接在Production中设置。
我们设置的部分,手顺书上的内容都要和客户说好,告诉他们进行的状态等,因为可能会与客户有一些交互。
可能细致到每一分做了什么样的操作,最好都留下证据,截图也许很值直接。
简单看一下,本次手动设定的内容有什么
アプリケーション設定
Mobile Only非表示
プロファイル設定
Sharing Settings
標準項目設定
Convert機能(マッピング)
検索レイアウトの設定
Sales Processesの設定
History Trackingの設定
Feed Trackingの設定
不要Roleの手動削除
Hierarchy Columnsの設定
Opportunity Contact RoleのRole PickList
ProcessBuilder有効化
等等。
其实每一部分的手动设定都要做好手顺,或是文本说明,或是图片表示。这些先后顺序,也是根据项目不同,有所不同,只要合理不产生冲突即可。
手动设定部分就一步一步来吧,关键是change set部分不出问题。
我们在sandbox中做好了change set,
需要upload到Production中,
然后在Production中,
Inbound Change Sets
进行Validate,成功之后,才可以Deploy。
如果
比如,遇到了下面的问题,
说明没有对应的文件夹。
下面的问题,是原来的类和测试类出现了问题,测试类的覆盖率要求达到75%以上,基本上也给出了具体错误位置。
其实上面的问题,是在项目正式发布的前一天发生的,当时只是做了验证的过程,所以在发布之前最好做到验证的步骤。
最后看一下,Deployment Succeeded的画面。
之后会有一些数据移行,这些更需要谨慎操作,数据真的太重要了。
上面写了关于Release的大致过程,当然项目不同,准备作业会不同。
如果有疑问的地方,可以留言,希望大家多多指教。
我在故我思,我思故我在。
Latest posts by zchao (see all)
- Auraでアクションボタン作成して画面のチェックボックス項目一括処理 - 2021年4月12日
- デフォルト項目値を含むレコード作成実例説明(defaultFieldValues) - 2021年1月9日
- Salesforce のノーコード・ローコード開発 - 2020年12月31日
转载请注明:zchao博客之家 » 一次项目Release(リリース)的过程