Updated : 09/10/2018
When it comes to data integrations, tools that provide drag-and-drop capabilities, and help with straight forward mappings are plentiful on the market. For example, various ETL tools come to mind, especially since they are strong on the “E” (extract) and on the “L” (load) but light on the “t” (transform).
It’s understandable that for more complex transformations, some tools offer an exit capability, to drop out of the process, leave the tool and call some type of coding function. This is done for various reasons. Sometimes, it’s a limitation and it’s not possible to do the transformation in the tool. Other times, the resources available have a stronger skillset with coding and feel they can create a capability faster in a one-off situation.
It’s human nature to lean toward a skillset that you are more comfortable with. But often, it’s important to overcome that comfort challenge because of a) repeatability, b) maintenance and c) performance.
Almost any function you are trying to create is most likely more than a one-off. It is logical to assume that it would be required repeatedly. Having the function written in code makes it more challenging to reuse. Using prebuilt IBM Transformation Extender functions should be able to get the job done for you.
Secondly, people/developers change, code goes undocumented, requirements change too, and when something is written in code, it is very challenging to maintain. Once, I was asked to write a transformation map once based on some SAP ABAP (proprietary) language. I did not know ABAP, so the company I was working with provided me with an ABAP programmer to interpret the code someone else wrote. Unfortunately, he was not able to follow the original logic. I recognized some fields, pulled up a similar map and could recreate most the interface in hours. I found out later that the original program took 30 days to write. Maintenance is a challenge of writing functions or even interfaces in code compared to a graphical tool.
Finally, performance might suffer when the program is forced to exit, call another program, and return the results. When using a pre-built function, it is designed to work in the most efficient manner with the interface you are building. It is tested, documented and easy to use. If there is a problem with the code that is written, it would take more effort to debug, and possibly not even have the resources available to debug it, depending on what program it was written in. Sometimes an IT department might write an exit in a quick manner, and then move on to something else. If a problem arises with the code, they might be backed up to have a resource to look at it and fix it.
In my many years of using the Transformation Extender product, there was only one case that I saw that required from using a coding exit rather than building a function. It was for Y2K requirement (yes, that’s how long I’ve been using the product), that a company had a policy that any data that contained a date had to be run through a very specific program (i.e. coding) that validated that the date was Y2K compliant. It was not that Transformation Extender couldn’t validate it, but just that a mandatory company-wide policy dictated that every date be processed through the code. That is understandable. There are always exceptions to the rule… And if you’re too young to understand what the Y2K problem is…. I’m sure that your parents will remember. ;-)
So, even though the capability is there to call an exit with Transformation Extender, the need very rarely comes up. If you get stuck not seeing a function that you require, let us know and we can probably recommend using two existing functions together to meet the requirement. Or the product could be enhanced with that function in the next release. So, please share your requirements with us. That is one of the ways that the product grows to meet the requirements of customers.
If you are thinking of calling an exit, think about the implications of a) repeatability, b) maintenance and c) performance as you are doing that. You may quickly realize that functions will be able to help you get the job done is a much more efficient way.
Transformation Extender is a trademark of IBM Corporation in at least one jurisdiction and is used under license.