首页 > 解决方案 > 如何将 Salesforce 报表从一个 .org 批量传输到另一个干净的 .org?

问题描述

我的任务是将旧 .org 的所有报告上传到全新的 .org

我发现可以通过 .xml-files 从旧的 .org 检索报告,并通过 workbench将其上传到新的 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 中拥有完全相同的结构?

我将不胜感激任何反馈!

已经提前谢谢你了!

标签: xmldatabasesalesforcedata-migration

解决方案


完全自动化地做到这一点有点混乱。您需要了解文件夹名称,然后调用元数据 API listMetadata,您可以在其中提供文件夹名称(报告、仪表板、电子邮件模板......),它会告诉您里面有什么。有办法让它自动化(旧的开发工具 Force.com IDE 能够做到,如果你有一个使用 VSCode 的开发人员,那么有一个不错的插件来构建 package.xml ......)如果你只需要一个工具,可能需要太多的投资一次性。

看看这个查询是否给你有希望的结果

SELECT FolderName, DeveloperName
FROM Report
ORDER BY FolderName, DeveloperName

将结果放入 Excel、一些公式、批量搜索替换,您应该能够<member>...</member>为您的包创建行吗?


推荐阅读