Salesforce Migration Tool创建项目和更新metadata

由于通配置package.xml, 而后用eclipse同步metadata的方式太慢,并且影响正常的开发工作,偶尔还会遇到代码未同步成功造成代码覆盖的问题。所以通过migration tool 获取metadata的方式,理论上看应是可行。

配置package.xml文件的时候发现report,document, email template, dashbord等包含folder的metadata type是不能直接配置为星号(*)获取的,需要指明folder名称。这就造成了无法完成的获取所有的metadata数据。
通过搜索发现网上已经有人实现了拼接report,document的package.xml的方法。所以直接拿过来用。参考github:AutoGenerate_Package.xml_Ant。仔细阅读逻辑发现,在config目录中定义了package.xml的模板,而后获取report,document等的完整路径后,替换到模板中,而后将生成的package.xml复制到temp文件夹中。生成report,document完成路径的逻辑是可以复用的。但是有的org中的metadata 数量庞大,如果所有的medata都放在一个package.xml文件中,在获取metadata的时候,会造成超时。(即使将maxPoll设置为最大也会出现超时的情况),所以决定拆分package.xml
目前拆分的目录, 如果系统存的report量级很大,需要精细的拆分。
1. Package-apexcode-6.xml –正常的开发代码内容
2. Package-Config.xml –一般的配置内容
3. Package-Folder.xml—report, document, email template, dashboard
4. Package-object.xml – object, list view, validation rule.
5. Package-SharingRule.xml – sharing rule
6. Package-WorkflowApprovals.xml – workflow, field update, approval process.
修改build.xml的内容略过,感兴趣的话,可以研究一下。其实和写代码是一样的。
使用的时候将retrieveMetadata.zip包解压,文件目录

  1. AutoGenerate_Package.xml_Ant
  2. build.properties
  3. build.xml
    配置build.properties中的几个参数,如下:
sf.username = asdfasdf@adsfa.com
sf.password = asdfasdf
sf.projectName = testDev
sf.serverurl = https://test.salesforce.com

在retrieveMetadata目录中,打开cmd, 或者git bash,键入如下命令,metadata便会同步到本地。

新建项目
ant newProject
刷新项目
ant refreshProject

程序会自动获取最新的report,document,dashboard,email template信息,而后获取metadata。可以通过配置build.xml中target的depends,或修改packagexmlfolder文件中的pack.xml, 实现刷新特定组件。完成metedata的刷新后,可以提交到版本控制库中,或者实现CI CD等。
工具zip包 后续会更新到github上

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值