技术笔记: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)

相关文章
|
自然语言处理 Java Go
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
358 0
|
消息中间件 缓存 Java
GitHub下载热榜,阿里技术官限时开源三份百亿级架构系统手册
在如今是属于高流量的时代,不知道各位了解高并发吗?今天给大家带来的是出自阿里大牛手写三份绝密手册,《百亿级并发系统设计》+《微服实战 +亿级流量网站架构核心技术》
307 0
|
7月前
|
缓存 算法 Java
首次公开!阿里巴巴最新高并发架构设计实录被我从Github扒下来了
前言 现在Java面试,问的是越来越底层。作为一名合格的Java程序员不仅要能“上天”,还要能“入地”!上天是指高并发,缓存,大流量,大数据量,能在更高的层面解决问题,入地是指从JVM,OS,算法,线程,IO这块刨根究底,对底层知识都能知其然还要知其所以然。 而本篇要跟大家探讨的就是“上天”这块的内容。据有关数据表明,现在基本工作年限超过5年的Java开发岗以及各大厂招聘岗位,对于这块内容是必定会考察的。这也就意味着,你想要在今年这个大环境下,找到一份薪水高且发展前景好的岗位,不关基础知识还要有良好的编码习惯和能力、排查问题、解决问题的能力以及整体系统的设计能力和架构能力。
159 1
|
设计模式 Cloud Native Java
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
又到了一年一度的备战秋招的时间,虽然这两年因为经济环境不太好,年初互联网行业的各大厂都再裁员,前半年的行业发展趋于平稳,随着经济形势正在复苏,今年秋招各个公司hc也逐渐开放,很多小伙伴也反馈面试机会变多了,想查缺补漏冲刺大厂,我软磨硬泡终于从阿里p8手里弄来了突击秘籍,分享给大家。 涨薪秘籍从Java核心并发开始,到经典的框架源码设计模式、分布式微服务架构设计、微服务NetFilx体系和Alibaba体系、微服务架构性能调优、云原生以及虚拟化、Spring Cloud Alibaba项目实战。
170 2
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
|
运维 Oracle 关系型数据库
后悔极了!GitHub开源爆火阿里「DBA攻坚指南」笔记,我竟没下载
Oracle和MySQL在国内市场的占有率高达60%以上,因此国内需要大量具有综合能力的数据库管理人才。市面上绝大多数的数据库相关书籍和资料只介绍了其中一类数据库,且大多只介绍基础原理或只阐述深奥的方法论,质量参差不齐,极少有同时涵盖Oracle和MySQL这两种数据库的书籍。
|
架构师 Java 程序员
同事开源我的微服务深度实践笔记到GitHub,短短3天竟吸粉10W+
说Spring成就了Java,Spring是Java程序员必修课之一,应该没人反对吧? 前几年面试最常问的且可以顺利拿到高薪的技能是Spring,随着Spring体系的壮大,除非你在简历上添加Spring Boot和Spring Cloud的技能,才可以打动面试官,而现在,除非是Spring架构的扎实经验,否则难以让面试官高看。 一名合格的Java后端工程师或架构师,至少微服务架构是必须牢牢掌握的,这里也整理了整套微服务架构学习路线,准备作为福利送给大家,可以先看一下重点简图。
|
安全 JavaScript 前端开发
腾讯开源的 3 个 GitHub 项目,足够良心!
腾讯开源的 3 个 GitHub 项目,足够良心!
腾讯开源的 3 个 GitHub 项目,足够良心!
|
安全 NoSQL Java
阿里内部技术专家撰写434页SpringBoot笔记,被恶意流传,已开源
什么是Spring Boot?有什么作用? Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程。目前SpringBoot已然成为中小企业构建web应用系统的标准工具,堪称快速开发神器。尤其是随着微服务的全面普及,SpringBoot更加成了服务化开发事实上的行业标准。
|
开发者
整理了很久之前在码云/Github/CSDN上收藏的嵌入式产品级项目分享开源
整理了很久之前在码云/Github/CSDN上收藏的嵌入式产品级项目分享开源
209 0
|
JSON 缓存 NoSQL
Github上线就星标120k!这份阿里独有的高并发实战笔记首次曝光
总有些小伙伴问当下最火的热门技术是什么?
167 0