I have a module that works out accruals & prepayments by contracts and when each contract gets added it is mapped to an organization parent. The issue I have is that the organization list constantly changes each year and therefore needs to be remapped. I know if i delete and import a new organization list, i will lose the data so just wanted to know the best way to update a changing organization structure. To give an e.g. I have a contact CA123456, it was created as AB-123 CA123456 (AB-123 being the business unit it belongs to) but now the contract has moved business units as part of a restructure and is now CD-123 business unit. I am able to change the parent to point from AB-123 to CD-123 but I am not able to rename the child to say CD-123 CA123456. So i am wondering, because the structure changes every year, is there a way to mass upload an organization hierarchy without losing the data?
Hope this makes sense and if it's better to schedule a call to show someone, that would be great.
If your source data has some kind of unique identifier that remains consistent between restructures, then you can use that as the code. If you use the code, then you can use it in module imports to identify items too. If the unique identifier clashes with the name, then you could create a property and use that to identify items in the list import, but you won't be able to use it in module imports, which is ok as long as the name is valid. Also you become responsible for making sure they are unique. If you don't have a unique identifier, then life gets more complicated - you'll need the source data to provide both the previous and the new name, and assign the previous name to a property beforehand using either a formula or import. Use that property to match the previous name and rename the items and/or reassign parent in the import. You may also need to think about item removal - the delete action may be useful for this, but needs to be driven by a Boolean line item which could be supplied by an import.
I would suggest staging the metadata loads for Business Units first in a module. You can then create a concatenation of "current BU - Contract #", which will always show the most current contract and BU combination. You could use this as the code of your contract list, so that you would essentially have multiple occurences of that contract once it moves BUs. This would allow you to view and track data related to a contract before and after it changes BU (similar to an effective dataing concept).