Using the API, I am unable to move/copy the reports in the system folder 'Public Report' en masse. In workbench I find all folders except the 'Public Folder', can anyone help me?
1 Answer
Following the guidance listed here: Bulk Move Reports or Dashboards with Metadata API
Identify your scope of reports and include the DeveloperName of the report in the extract. You can do this with the DataLoader. Once you have the information, wrap it in a member tag using a formula to build the path to the report:
=concat("<members>unfiled$public/",report_cell,"</members>") From there you can paste it into a package.xml
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> --paste here-- <name>Report</name> </types> <version>61.0</version> </Package> Retrieve the package.xml. You can use a command like
sf project retrieve start --manifest customPackage.xml --target-org yourOrgAliasOnce the information has pulled down, rename the containing folder of the report metadata from "unfiled$public" to the API name of your new folder.
Update your package.xml to use the API name of the new folder instead of the unfiled$public report.

Then deploy with the new package.xml and metadata structure.
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>renamedFolder/View_Campaign_Influence_Report</members> <name>Report</name> </types> <version>61.0</version> </Package> This will move all of the reports from the public folder to the renamedFolder. Thankfully, updating the xml of the actual report data is not required.


unfiled$public