技术笔记:Salesforce学习之路(八)一次拉取多个文件或全部文件至本地

简介: 技术笔记:Salesforce学习之路(八)一次拉取多个文件或全部文件至本地

在开发中,经常会遇到本地工程错乱或者误操作导致本地本地项目被删除,此时利用SFDX: Retrieve Source from Org只会拉取新建并且名称相同的组件,若通过创建一个个文件,然后再拉取的方式,不免显得过于笨拙。


本人便踩过这个坑,这里分享一下个人的解决方案。


在我看来,从Org中一次拉取多个组件文件或者全部组件文件,有三种解决方案,下面一一叙述:


1. 利用manifest新建工程


1)打开Vs Code,进入命令行模式(shift+cmmand+p/F1), SFDX: Create Project with Manifest


直接创建标准模式即可,当然可根据自身实际选择。这里直接创建工程:sample


在sample/manifest目录下,可发现名为package.xml的文件,标准内容如下:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


[/span>Package xmlns=""

[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>version


从packge.xml文件中可以看出,主要分为一下标准类型:


ApexClass: Apex类文件


ApexComponent: Apex组件


ApexPage: Visualforce组件


ApexTestSuite: Apex测试类


ApexTrigger: Apex的触发问价


AuraDefinitionBundle: Apex的自定义Aura组件


LightningCompentBundle: Apex的自定义LWC组件


StaticResource: 项目中的静态文件


2)认证Org并设置为默认Org


# 认证Org


SFDX: Authorize an Org


# 设置默认Org


SFDX: Set a Default Org


查看Org列表


【kaiwu3@localhost:~/sample】$sfdx force:org:list


=== Orgs


ALIAS USERNAME ORG ID CONNECTED STATUS


─── ──────────── ──────────────────────── ────────────────── ────────────────


(U) k_Reset kaiwu3@*.com 00D2v000001Xk5DEAS Connected


No active scratch orgs found. Specify --all to see all scratch orgs


3) 利用pacakge.xml拉取文件


右击sample/manifest/pacakge.xml,选择SFDX: Retrieve Source in Manifest from Org


19:55:16.740 sfdx force:source:retrieve --manifest /Users/kaiwu3/Works/Code/sfdcTmp/sample/manifest/package.xml


=== Retrieved Source


FULL NAME TYPE PROJECT PATH


──────────────────────────────────────────────────────────────────────── ──────────────────────── ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────


heatmapmock StaticResource force-app/main/default/staticresources/heatmapmock.resource-meta.xml


heatmapmock StaticResource force-app/main/default/staticresources/heatmapmock.js


heatmap StaticResource force-app/main/default/staticresources/heatmap.resource-meta.xml


heatmap StaticResource force-app/main/default/staticresources/heatmap.js


......


此时,你会发现package.xml中定义的标准组件,都已经成功拉到本地工程。


2. 利用Package Manage方式自由拉取文件


1) Org中创建Package包


上述manifest方式拉取的文件,仅限于创建工程是自动生成的package.xml中定义的几种类型,有时并不能满足我们的需求(比如Org迁移或者备份,此时不仅需要上述的组件文件,还需要保留在Org中创建的Object等信息)。此时,你会发现Package Manager可以满足你的一切需求。


在Org中,【Setup】-->【Package Manager】-->【new】


点击Add按钮,添加所需组件。


返回Package Maneger界面可见Package列表存在sample的包。


2)本地工程下载smaple包


【kaiwu3@localhost:~/Works/Code/sfdcTmp/sample】$mkdir pacakge


# 下载包命令:sfdx force:mdapi:retrieve -s -r { {pathToCreatePackageFile}} -u { {sandboxUsername}} -p { {packageName}}


【kaiwu3@localhost:~/Works/Code/sfdcTmp/sample】$sfdx force:mdapi:retrieve -s -r package/ -u kaiwu3@*.com -p sample


Retrieving source...


=== Status


Status: InProgress


jobid: 09S2v000006nL64EAE


=== Result


Status: Succeeded


jobid: 09S2v000006nL64EAE


# 产生的zip包路径


Wrote retrieve zip to /Users/kaiwu3/Works/Code/sfdcTmp/sample/package/unpackaged.zip.


3)转换package为工程文件


# 解压下载包(下载包一般命名为:unpacakge.zip)


【kaiwu3@localhost:~/sfdcTmp/sample/package】$unzip unpackaged.zip


Archive: unpackaged.zip


inflating: staticresources/leaflet1.resource


inflating: staticresources/leaflet1.resource-meta.xml


inflating: aura/SmartLocks/SmartLocks.css


inflating: aura/SmartLocks/SmartLocksHelper.js


inflating: aura/SmartLocks/SmartLocksController.js


inflating: aura/SmartHome/SmartHome.css


inflating: aura/SmartHome/SmartHomeController.js


......


inflating: package.xml


# 将解压文件转换匹配到对应工程中


# 转换命令:sfdx force:mdapi:convert -r {pacakge.xml所在目录}


【kaiwu3@localhost:~/Works/Code/sfdcTmp/sample】$sfdx force:mdapi:convert -r package/


=== Converted Source


STATE FULL NAME TYPE PROJECT PATH


───── ─────────────────────────────────────────────────────── ───────────────── ────────────────────────────────────────────────────────────────────────────────────────────────────────────


Add CCTG CustomApplication force-app/main/default/applications/CCTG.app-meta.xml


Add Companyc-Company Layout Layout force-app/main/default/layouts/Companyc-Company Layout.layout-meta.xml


Add Employeec-Employee Layout Layout force-app/main/default/layouts/Employeec-Employee Layout.layout-meta.xml


......


细心的同学应该发现了,package manager方式中也存在package.xml文件,区别在哪呢?


<?xml version="1.0" encoding="UTF-8"?>


[/span>Package xmlns=""

[/span>fullName


[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

[/span>members

...


[/span>name



[/span>types

[/span>members

[/span>members

...


[/span>name



[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

...


[/span>name


...



[/span>types

[/span>members

...


[/span>name



[/span>types

[/span>members

[/span>name


[/span>types

[/span>members

[/span>name


[/span>version

<span style="color: rgba(0, 0, 255, 1)

相关文章
|
9月前
|
自然语言处理 Java Go
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
200 0
|
10月前
|
消息中间件 缓存 Java
GitHub下载热榜,阿里技术官限时开源三份百亿级架构系统手册
在如今是属于高流量的时代,不知道各位了解高并发吗?今天给大家带来的是出自阿里大牛手写三份绝密手册,《百亿级并发系统设计》+《微服实战 +亿级流量网站架构核心技术》
260 0
|
2月前
|
缓存 算法 Java
首次公开!阿里巴巴最新高并发架构设计实录被我从Github扒下来了
前言 现在Java面试,问的是越来越底层。作为一名合格的Java程序员不仅要能“上天”,还要能“入地”!上天是指高并发,缓存,大流量,大数据量,能在更高的层面解决问题,入地是指从JVM,OS,算法,线程,IO这块刨根究底,对底层知识都能知其然还要知其所以然。 而本篇要跟大家探讨的就是“上天”这块的内容。据有关数据表明,现在基本工作年限超过5年的Java开发岗以及各大厂招聘岗位,对于这块内容是必定会考察的。这也就意味着,你想要在今年这个大环境下,找到一份薪水高且发展前景好的岗位,不关基础知识还要有良好的编码习惯和能力、排查问题、解决问题的能力以及整体系统的设计能力和架构能力。
105 1
|
2月前
|
监控 安全 Java
腾讯T4大牛整理的SpringBoot文档,覆盖你认知中的所有操作
SpringBoot目前的使用已经很普遍了,实际的项目中,我们需要集成各种的插件支持,不仅如此,还有很多可能我们平时不知道,但是很方便的操作。pdf里面的东西还是比较全面的。
|
9月前
|
Kubernetes 监控 Devops
大厂直通车!GitHub独一份的Jenkins+k8s核心知识笔记(全彩版)
随着容器的兴起和迅速发展,Kubernetes(K8s)应运而生,现在不仅京东、阿里、谷歌、百度等大公司在使用,就连中小型企业也开始把业务迁移到了k8s上。 K8s在如下图的领域中占据了重要的地位,数万的企业和用户都选择使用K8s。任何一个招聘网站上和K8s相关的职位,月薪都是2w以上,或者更多。
|
10月前
|
安全 NoSQL Java
阿里内部技术专家撰写434页SpringBoot笔记,被恶意流传,已开源
什么是Spring Boot?有什么作用? Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程。目前SpringBoot已然成为中小企业构建web应用系统的标准工具,堪称快速开发神器。尤其是随着微服务的全面普及,SpringBoot更加成了服务化开发事实上的行业标准。
|
10月前
|
JSON 缓存 NoSQL
Github上线就星标120k!这份阿里独有的高并发实战笔记首次曝光
总有些小伙伴问当下最火的热门技术是什么?
100 0
|
11月前
|
运维 安全 Linux
GitHub点击量已破千万!世界级运维专家手写:793页Linux实战笔记
我们知道Linux这玩意儿是在计算机上面运行的,所以说Linux就是一组软件。问题是这个软件是操作系统还是应用程序? Linux可以在哪些种类的计算机硬件上面运行?而Linux源自哪里?为什么使用Linux还不用花钱?这些我们都得先来谈—谈! 免得下次人家问你,为什么复制软件不会违法时,你会答不出来!
|
人工智能 中间件 程序员
冰河指南技术社区基于ChatGPT正式启动运营!
大家好,我是冰河~~ 最近ChatGPT真的太火了,科技圈几乎都在争相报导这个黑科技,它能够通过学习和理解人们的语言来和人类进行对话,能够与人们进行交流,甚至可以对你提出的问题进行分析,尽可能给出你想要的答案。还能够自动写论文、写代码等等,真的挺强大的,说到这里,不禁心里会感慨一声:AI都可以写代码了,难道程序员真的要失业了吗?
127 0
|
Cloud Native 安全 Java
「开源人说」第二期重磅上线!一起走进《从开源中来,到开源中去》
你是否思考过开源的意义?是获取免费种子用户?还是技术贡献社会价值? 开源意义千人千面,最重要的是参与进来和分享出去。贯彻开源精神,龙蜥社区从Linux开源而来,CentOS替换出发,捐赠给开放原子这样的第三方中立开源基金会,到开源中去,最后落地千行百业中去产生实际价值。从开源中来,到开源中去,龙蜥社区曾走过一条怎样的开源之路?
181195 11
「开源人说」第二期重磅上线!一起走进《从开源中来,到开源中去》