I tend to embed (not link) custom transformers whenever possible.
That way I have the benefits of both a generic custom transformer in my repository and the ability to tailor the transformer to the needs of that particular workspace.
And when I feel the need to change my custom transformers I don't have to worry about all the workspaces that are linked to it, and that might stop working after the change.
I tend to embed (not link) custom transformers whenever possible.
That way I have the benefits of both a generic custom transformer in my repository and the ability to tailor the transformer to the needs of that particular workspace.
And when I feel the need to change my custom transformers I don't have to worry about all the workspaces that are linked to it, and that might stop working after the change.
Does that not mean though that if you have 5 workspaces which use that custom transformer that you have go through all the workspaces and make the same change 5 times?
Yes, I would have to open and change those 5 workspaces. But only if the change affects those workspaces, and that hasn't happened to me (yet???).
In that case it may be faster to remove the old version of the custom transformer and add the new version. Or, depending on the changes, just some copy-paste of the affected transformers within the custom transformer.
I really support the idea of having a centralised location of custom transformers; for a couple of reasons:
- Ability to share repeatable logic throughout an organisation
- Modularising common tasks
- Centralising business logic, so when it changes, an update only need to be done in one place.
I can also see scenarios where it might not be appropriate, such as hyper specific processing that needs to be done multiple times in one workspace. I have seen cases where initially this was the case, then that logic needed to be used elsewhere, so was copied, then one copy was updated, and the other wasn’t, and results were different and caused a real headache.
For custom transformers that are a shared resource, my view is that the should be specific and do a discrete task. If you’re having to change one part of a custom transformer for each process then maybe the custom transformer is too broad and you should look at narrowing down the purpose of the custom transformer
I have seen cases where initially this was the case, then that logic needed to be used elsewhere, so was copied, then one copy was updated, and the other wasn’t, and results were different and caused a real headache.
This is exactly the situation I’m facing.
I developed and deployed a prototype to meet the initial requirements - initially a lot of stuff was hard coded for each use case. Bits were copied from one and moved into the next, which was moved into the next etc etc.
The expanding requirements means that my initial structure mean that the number of workspaces would blow up, so instead I made the processes much more generic meaning I could reduce the number of processes I needed to create/maintain.
The parts around handling the generic stuff is all pretty much just copies. But of course each time I find a new thing I want to change in these areas I need to also make the changes to the the other 4 workspaces. It’s driving me nuts haha.
Would be super nice if I was able to apply changes to a linked CustomTransformer from within a workspace using it. As it is I’m just not quite ready to move to linked custom transformers and will just stick with copy and paste but if feels like a lot of overhead at the moment