Skip to main content

I have a workspace that is using an embedded custom transformer. I have made a change to this custom transformer (in the fmx file) and saved it as a new version or I have overwritten it. In this case I normally get a prompt when opening my workspace to update the custom transformer to its latest version. However, I don't always get prompted - sometimes the embedded transformer stays unchanged and I can't see a way to update it to the latest version without removing all instances of it and replacing them all with the latest version (replacing one by one does not work either as the transformer definition is retained until I have removed all instances).

Hence my question: How can I update my custom transformer manually to its latest definition which is saved in my shared FME folder?

 

Only linked transformers will offer you the option to update them. An embedded transformer is essentially unrelated to the .fmx file, if you want to be able to update it you'll have to keep it as a linked transformer.

If it's already embedded and you can't switch back to linked anymore you can place a new instance of the linked transformer and connect that in place of your embedded one, then remove the embedded one.


Ekki,

In your fmx file, confirm what type of custom transformer you are using as well. Sounds like you might want "Linked Always" so that it updates across all workspaces without prompting.


or close the workspace using it after updating . then reopen.

is what i do often.(sometimes even forced to close all open instances of the fme wb).

Wether fmx linked or embedded. (using fme 2015 btw)


Only linked transformers will offer you the option to update them. An embedded transformer is essentially unrelated to the .fmx file, if you want to be able to update it you'll have to keep it as a linked transformer.

If it's already embedded and you can't switch back to linked anymore you can place a new instance of the linked transformer and connect that in place of your embedded one, then remove the embedded one.

I don't quite agree with this. I regularly get prompted on embedded transformers if I have changed the fmx. But sometimes the prompt doesn't pop up and I can't tell why that is.

 

 


or close the workspace using it after updating . then reopen.

is what i do often.(sometimes even forced to close all open instances of the fme wb).

Wether fmx linked or embedded. (using fme 2015 btw)

That's what I normally do and most of the time I get the notification if the fmx was changed, even on embedded transformers.

 

 

I have the impression that the notification will not come up if anything was changed in the embedded transformer within the workspace. E.g. moved a transformer within it or similar.

 

 


That's what I normally do and most of the time I get the notification if the fmx was changed, even on embedded transformers.

 

 

I have the impression that the notification will not come up if anything was changed in the embedded transformer within the workspace. E.g. moved a transformer within it or similar.

 

 

That's probably it because then the embedded custom transformer is no longer the same as the one saved in the .fmx. Basically from that point on FME regards it as a completely different one (which just happens to have the same name)

 

 


when i change aan embedded custom transformer, i export it again as custom transformer under its original name (unless i want a new name of course)

Then i don't need to close and reopen the workspace.

You indeed don't get a prompt to do so when embedded, upon changing it.


Ekki,

In your fmx file, confirm what type of custom transformer you are using as well. Sounds like you might want "Linked Always" so that it updates across all workspaces without prompting.

Thanks Todd. This is probably the cleaner way to handle changes in custom transformers but it has the disadvantage that I can't easily move my workspace between different machines without copying the fmx files as well.

 

 

I think it would be good to have a manual way to update the embedded transformer to the latest version. Similar to how it can be done to default transformers - right click - update to latest version.

 

 


Created an idea from this.


I'm not sure why this is (I can test this or look into it if you want) and I do think that there's a fundamental difference between linked and embedded and you are trying to get the best of both!

But, a couple of things I don't think have been noted in other answers...

- The Transformer Gallery has a refresh button on it. Click that and it will check exported transformers for updates. Maybe that's something you could try to see if you get prompted for updates.

- A quick way to delete an embedded definition is to find the transformer in the gallery (under Embedded Transformers) right click on it and choose Delete Definition.

I think it's worth filing an idea, but as far as I know, right now you can't update an embedded transformer with the content of a linked one, because embedded transformers don't have a version number.


I'm not sure why this is (I can test this or look into it if you want) and I do think that there's a fundamental difference between linked and embedded and you are trying to get the best of both!

But, a couple of things I don't think have been noted in other answers...

- The Transformer Gallery has a refresh button on it. Click that and it will check exported transformers for updates. Maybe that's something you could try to see if you get prompted for updates.

- A quick way to delete an embedded definition is to find the transformer in the gallery (under Embedded Transformers) right click on it and choose Delete Definition.

I think it's worth filing an idea, but as far as I know, right now you can't update an embedded transformer with the content of a linked one, because embedded transformers don't have a version number.

You are right, I want to make use of the advantages of the embedded transformers while being able to keep them synced. Now that I am trying to switch some to linked transformers, I noticed that debugging becomes quite difficult - I can't see what's happening within the linked transformers if anything fails.

 

 

Thanks for your tips. I've been using the refresh button to update the transformer definitions. Especially when creating a new fmx, that avoids closing and re-opening the workspace. However, it doesn't help with my issue (I'm not getting prompted).

 

 


I'm not sure why this is (I can test this or look into it if you want) and I do think that there's a fundamental difference between linked and embedded and you are trying to get the best of both!

But, a couple of things I don't think have been noted in other answers...

- The Transformer Gallery has a refresh button on it. Click that and it will check exported transformers for updates. Maybe that's something you could try to see if you get prompted for updates.

- A quick way to delete an embedded definition is to find the transformer in the gallery (under Embedded Transformers) right click on it and choose Delete Definition.

I think it's worth filing an idea, but as far as I know, right now you can't update an embedded transformer with the content of a linked one, because embedded transformers don't have a version number.

As mentioned above, the prompt to update the embedded transformer probably does not come up if anything was amended within it in the workspace.

 

 

Deleting all definitions probably won't help much, as I need to ensure to replace them all with all their individual parameters settings. So at the moment, I can only create annotations wherever the transformer is used, then delete them all and then bring in the latest version and use my annotations to bring them back to their settings. Quite a workaround!

 

 

I think the idea would be to give the user an option to select the appropriate fmx file in order to update the embedded transformer, including selecting the version if the fmx has any.

 

 


I've been having this issue - I think it's caused by how we edit the custom transformer.

If you right-click and Edit... the transformer, then File -> Export As Custom Transformer, it always seems to get exported as "Version 1".

Instead, if you open the Custom Transformer's .fmx file, when you save it you get prompted whether to save it as a new version - as described here:

http://docs.safe.com/fme/2017.1/html/FME_Desktop_Documentation/FME_Workbench/Workbench/custom_transformers_versions.htm


I've been having this issue - I think it's caused by how we edit the custom transformer.

If you right-click and Edit... the transformer, then File -> Export As Custom Transformer, it always seems to get exported as "Version 1".

Instead, if you open the Custom Transformer's .fmx file, when you save it you get prompted whether to save it as a new version - as described here:

http://docs.safe.com/fme/2017.1/html/FME_Desktop_Documentation/FME_Workbench/Workbench/custom_transformers_versions.htm

This is true. However, the better way to think of it (from my view as an FME trainer) is that the transformer is "unversioned". ie it's a plain transformer with no versioning. So "Version 1" means an unversioned transformer.

When you open an unversioned transformer, you are prompted with a dialog that is basically saying "You're about to make edits to an unversioned transformer. Do you want to turn on Versioning?" (that's what the doc you link to means by "Creating Version 2")

Once your transformer is versioned, each new time you open it you are prompted with a dialog which is basically saying "You're about to make edits to a versioned transformer. Do you want to create a new version or edit an old one?" (that's what the doc means by "Creating Version 3+")

What it doesn't do is prompt you to create a new version every time you click the save button. That would be pretty problematic I think.

So you could well be right: there might be a difference between an existing version being updated, and a newer version being available, that triggers a workspace to see if there is anything new to use. I haven't tested that idea, though I think I will give it a go later.

Ironically I'm just about - in the next half hour - to start teaching the chapter on Custom Transformers for our advanced training course! You can find the relevant section of manual here: https://s3.amazonaws.com/gitbook/Desktop-Advanced-2018/DesktopAdvanced5CustomTransformers/5.09.CustomTransformerVersioning.html


Reply