问题描述
我的任务是将旧 .org 的所有报告上传到全新的 .org
我发现可以通过 .xml 文件从旧的 .org 检索报告并将其上传到新的组织通过工作台。像这样
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/Metadata">
<types>
<members>FOLDERA/REPORTA</members>
<members>FOLDERB/REPORTB</members>
<name>Report</name>
</types>
<version>43.0</version>
但是
旧的 .org 包含数以千计的报告,一次浏览每个文件夹会很烦人,每次都自定义 .xml 文件。
调用 * 只是检索了一个名为“unpacked”的空文件夹,其中包含名为“packaged”的 .xml 文件,但不幸的是仅此而已。
<?xml version="1.0" encoding="UTF-8"?>
<Package
xmlns="http://soap.sforce.com/2006/04/Metadata">
<types>
<members>*</members>
<name>Report</name>
</types>
<version>43.0</version>
有没有办法一次性批量下载、传输和上传所有报告和文件,以便我在新的但“干净”的 .org 中拥有完全相同的结构?
我很感激任何反馈!
提前致谢!
解决方法
完全自动化的操作有点麻烦。您需要了解文件夹名称,然后是对 listMetadata
的元数据 API 调用,您可以在其中提供文件夹名称(报告、仪表板、电子邮件模板...),它会告诉您里面有什么。有办法使其自动化(称为 Force.com IDE 的旧开发工具能够实现,如果您有使用 VSCode 的开发人员,则有 decent plugin for building that package.xml...) .
看看这个查询是否给你有希望的结果
SELECT FolderName,DeveloperName
FROM Report
ORDER BY FolderName,DeveloperName
将结果输入 Excel、一些公式、批量搜索替换,您应该能够为您的包创建 <member>...</member>
行吗?