Question

How do I use lists inside a custom transformer

  • 9 April 2014
  • 4 replies
  • 14 views

Userlevel 4
Badge +13
Hi,

 

I'm trying to create a custom transformer (2014 SP1). Unfortunately ListBuilder fails to expose _list - but it does so just fine when it's part of a regular workspace. This in turn means that later things that rely on _list can't be set up because the interface won't let me type in the list name.

 

 

If I cheat (as I have in the attached) and set it all up outside of the custom transformer and then copy it in then what happens is that I get a "incomplete transformer" warning.

 

 

I've tried using "attributeExposer" but that doesn't allow exposing of Lists as best I can tell and I can't see any other form of exposing a list inside a transformer.

 

 

So, how do I use a list I need to create within the custom transformer?

4 replies

Userlevel 4
Hi,

 

 

I cannot reproduce this problem, my list is properly exposed also outside of the custom transformer. Have you tried setting the output port properties of your custom transformer?

 

 

 

 

This is something that changed quite a bit in FME 2014.

 

 

David
Userlevel 4
Badge +13
Hi David,

 

Sorry, I wasn't clear enough.

 

 

The list needs to be available within the transformer itself!

 

See the below image.

 

"List attribute" is empty and impossible to fill despite having gone through "List Builder". The ListIndexer has the same problem.

 

 

 

 

All of this is happening within the custom transformer.

 

 

----

 

 

However after fiddling around, it seems the solution is to use an attributeCreator before the listBuilder. This should expose whatever attributes you want listBuilder to use and in turn these will be available later as a List.

 

 

Very convoluted.
Userlevel 4
Hi,

 

 

thanks for clarifying, I was able to reproduce it now, both with FME 2014 SP1 and FME 2013 SP4.

 

 

To me, this looks like a bug. Consider sending a report to your reseller or directly to Safe support (https://safecommunity.force.com/knowledgeSubmitCase).

 

 

David
Badge +3
You also might want to take into account that changing a custom transfomer after it has been created , fails to pass or make available attributes.

 

 

 

It is better to change a custom by embedding it. When doen save as custom again.

 

Or remove custom form main (or whatever nested level) and then reinsert.

 

 

Nested attributes are more hellish, you need to pass it trough all levels to get it to its target...

 

 

I had some feedback stating they are trying to change/improve these behavioral quirks.

 

 

Gio.

Reply