TACL- (Tool for Analyzing Column Lineage)
What does it do?
Would you like to know the column lineage of your SAP HANA information views all the way down to the database table layer? Or need insight in how view columns are related to other view columns? Then TACL is the tool for you! TACL stands for “Tool for Analyzing Column Lineage” and is a SAPUI5 application that provides you a super easy way to get the information you need.
How does it work?
When the application is initially loaded you start by providing the information view that you would like to have analyzed. This can be a calculation view, an attribute view or an analytic view. You can easily search for the view you need based on its name, its package, and its type. Once you have selected a view, you can select which columns you would like to include in your analysis. By default, all columns are selected, but if you would like to filter on just a couple of columns, this is also possible.
When you’re ready, just click the “Start Analysis” button and the app is working its magic. Once the analysis is completed, you are presented with a nice visual overview of all the information views and tables it has identified and what the relations between its columns are. This will help you understand dependencies at a glance! You can also have a look at the raw data the analysis has compiled and export this to Excel.
TACL is a self-contained SAPUI5 application, so by just storing it in your SAP HANA system, it is installed, and you are ready to go!
How does the magic work?
Column mappings, – the relationships of columns in various nodes within a single information view and various information views and tables – are stored in the XML definitions of said information views. These XML definitions are stored in the CDATA column of the _SYS_REPO.ACTIVE_OBJECT system table. When TACL is processing your request, it’s taking your selected view to load this XML definition. Various XSJS services will then help to parse the XML using the SAP HANA built-in xml parser $.util.SAXParser to identify the required column mappings. A column mapping can reference a column from a different node in the same information view or a column from a different information view altogether. In the latter, the XML definition of this new information view is retrieved and parsed, until no column mappings reference information views but only database tables.
Thank you Gerd Altmann from Pixabay for the picture.