our solution consists of five projects that are linked to each other, with apps that draw resources from different projects. When transferring the solution to a new instance via “Project Transfer”-tool you can only transfer one project at a time and have to repeat it for all projects. During the import all resources obtain a new ID. To keep the ID references, the old IDs in the resources are replaced with the new ones automatically. Unfortunately, this only works for resources within the same specific project. Shared resources or data tables in apps, that are drawn from other projects, won’t be automatically adjusted and need therefore manual labor.
current situation after transferring the projects:
- Backend: sharing ~40 data tables to other projects & adjusting ~5 WF IDs in API calls
- Frontend: adjusting ~30 data tables and endpoint IDs
- Is it possible to fully automate this process of sharing and adjusting the resources?
- If not possible: what is the best solution to reduce the manual effort in this process?
there is currently no good way to achieve this. Data product transfer in its current state assumes that all resources are in the same project.
I am sorry for not having better news for you.
@stefan.ganser, isn’t there the possibility to include a “importSettings.json” file in the ZIP archive and you can specify IDs in there that should not be replaced or be replaced with a certain ID?
@lucas.graeff this would still only lower your effort potentially but not automise this completely but it could help and would be less error-prone than manual substitution I would assume. If Stefan confirms that this option still exists I could explain you further what it does.
@magdalena.murr yes, I also remember that such a thing exists. I am not sure though, how much this helps with the Apps.
@stefan.ganser well this is unfortunate but thank you anyway for answering
@magdalena.murr could this be used to give pre-defined IDs to the new resources? As soon as there are new IDs, i think you can’t avoid mapping the values between front end and back end
@lucas.graeff exactly and I think it should work across all resources (also Apps) but you would have to test to be sure.
In order to make use of this you would basically have to follow a strict procedure:
- Keep a list of original IDs from shared resources per project
- First export and import the project which has no dependencies (or the least if you don’t have one that has none)
- Get all new IDs from resources of this project and add them to the importSettings.json file
- Add this importSettings.json file to your next export (which should then in the best case only have shared resources from your first project)
- Go on like this for all other projects
We can also have a call about it if you think this might help you Like I said - it is most likely still considerable effort but it might facilitate it a bit and should be less error-prone (given it works for all resources).
@magdalena.murr thank you for your explanation! I will try it out and will contact you in case anything is still unclear