Data Transporter
This XrmToolBox tool allows you to transfer the data from one Microsoft
Dataverse environment to another for the selected columns and for specific
rows based on the filter XML (developed by
Bram Colpaert).
💡 New Version
FetchXML support was added to a new version of Data Transporter which allows filtering of the records with the filter conditions from the link entities.
FetchXML support was added to a new version of Data Transporter which allows filtering of the records with the filter conditions from the link entities.
It is important to keep the same GUID for some of the reference data in
multiple environments (especially those which are referenced in the
workflows, business rules, JavaScript, etc.).
To clone the data from tables and N:N association data, you can use this
tool to select the table/N:N relationship and specify the column/row
filter to transfer the data to the target environment.
Remark: Since the filtering of the rows is done based on the <filter> section of the FetchXML, the filter is limited to the selected table and it cannot be filtered based on the values in the linked tables. File column is not supported at the moment. For image column, only the primary image column can be selected for Create action and non-primary image columns needs to be transferred again with Update action.
- Tool Information
- Documentation
- Blog mention 1, Blog mention 2, Blog Mention 3
- Functionalities
- Migrate table data to the target environment (Fig. 1, Pt. 4)
- Load and refresh the list of tables from the source environment (Fig. 1, Pt. 1)
- Connect to the target environment (Fig. 1, Pt. 6)
- Select the table to be migrated (Fig. 1, Pt. 8)
- Filter the table by display/logical name (Fig. 1, Pt. 7)
- Select the columns to be migrated (Fig. 1, Pt. 9)
- Specify the actions to be performed
- Create if there is no row with the same GUID in the target environment (Fig. 1, Pt. 10)
- Update if there is an existing row with the same GUID in the target environment (Fig. 1, Pt. 11)
- Delete if the target environment has a row that does not exist in the source environment (Fig. 1, Pt. 12)
- Transform the GUID of the source data before migrating to the target environment with GUID mappings (Fig. 1, Pt. 17) (Fig. 5) - This feature is useful when the GUID of the referencing lookup values are different between the source and target environments (e.g. application User, default Team of the Business Unit)
- Filter the rows to be processed with FetchXML filter (Fig. 1, Pt. 18) (Fig. 6) - Only the <filter> section of the FetchXML is required
- Filter the rows to be processed or select the columns to be transferred with full FetchXML (Fig. 1, Pt. 18) (Fig. 7)
- Preview the list of rows to be processed based on the filter and the action(s) (Fig. 1, Pt. 3) (Fig. 2)
- Process multiple tables sequentially (Fig. 3, Pt. 2)
- Migrate N:N association data to the target environment (Fig. 4)
- Load and refresh the list of N:N associations from the source environment (Fig. 1, Pt. 2)
- Additionally, the tool can
- Process the rows in bulk (Fig. 1, Pt. 13)
- Automatically map and replace the GUID with the GUID of the target environment for
- Root business unit (Fig. 1, Pt. 14)
- Default transaction currency (Fig. 1, Pt. 15)
- Users (Fig. 1, Pt. 16)
- Automatically map and replace the GUID of the default transaction current with the GUID of the root business unit in the target environment (Fig. 1, Pt. 14)
- Save (Fig. 1, Pt. 19) the Mappings and Filters as .XML file and load it (Fig. 1, Pt. 20) in the next time to use the same Mappings/Filters.
- Similar Tool
- _n.EnvironmentComparer
- CDS Data Migrator
- Configuration Migration
- CRM Simple Record Cloner
- Data Migration Tool
Fig. 1 - Migrate Table Data
Fig. 2 - Preview the List of Rows
Fig. 3 - Playlist
Fig. 4 - Migrate N:N Association Data
Fig. 5 - Mapping List
Fig. 6 - FetchXML Filter
Fig. 7 - Full FetchXML
Hi Linn, I found another blog post on the Data Transporter that would be worth adding if you're happy with it https://blog.crimson.co.uk/reference-data-migration
ReplyDeleteThanks, I have added that link as Blog Mention 3 😊
DeleteOne limitation that's worth noting is that the filter is limited to the referenced table, so can't included linked tables.
ReplyDeleteThat's a good point. I have added that as a Remark. I also needed that feature quite a few times from time to time.
DeleteI will try to implement the feature to allow the whole FetchXML in the filter and create a pull request for that project.
Hi Linn, is the ability to filter with linked tables you mentioned now incorporated into Data Transporter, or would I need to download the pre-release version? And what format should the filter with the link be please?
DeleteI'm assuming along the lines of:
My FetchXML was was removed in the above. I'm assuming:
Deletefilter
condition
link-entity
filter
condition
end filter
end link-entity
end filter
Sorry, you still need to download the build from my repo since the tool author didn't respond to my email or LinkedIn message to allow merging the Pull Request.
Deletehttps://github.com/LinnZawWin/Colso.Xrm.DataTransporter/releases/tag/Latest
The format is the the whole FetchXML. I'll update it in the release notes.
does it support transferring files/image columns?
ReplyDeleteFile column is not supported at the moment. For image column, only the primary image column can be selected for Create action and non-primary image columns needs to be transferred again with Update action.
DeleteWhen I transfer a mix of Active and Inactive records, it makes all of them Active in the target environment. Is this a bug, or am I doing it wrong? Thank you
ReplyDeleteI guess it is not possible with the current version of the tool since it does not allow to select Status (StateCode) in the available attributes.
DeleteI will try to update it and raise a pull request for the tool.
Hi Linn, I hope you're well! Am I correct in understanding that your pull request has now been added? If so, would be worth updating your 'New Version' note at the top.
ReplyDeleteThanks for the reminder, Alex. I'm good, thanks. Hope you are well too. 😊
DeleteI have added the Fig. 7 for the new feature and updated the 'New Version' note at the top.