I was trying to find out which fields from 1 Datastore Source are used in Dataflows. I tried to alias the table ALVW_MAPPING a few times and then link the ‘TRG_COL_ID’ in the first alias to ‘SRC_COL_ID’ from the original table.
This gives me a nice report which source fields are the target fields in previous Dataflow at column level.
At first sight , it seems that this works.
I thought this would be a helping hand to have control over all mappings in our environment.
But…
After checking manually in BODS (“View where Used” option) I found out that one very important flow is missing in my solution (as described above).
It seems that not every Dataflow is stored in ALVW_MAPPING!
So the manual version of grabbing this all together is the only solution that is left now! Which is not that nice! :?
I saved the table in excel and used Vlookup to do the flattening and quess what I found:
Many times the “Source Column ID” was equal to the “Target Column ID” (in the same row!!)
How is this possible?
With this info I now know why every time my query blew up the memory of the database!.
It goes round and round and round…!
The view ALVW_MAPPING is definitely not completely filled as you should expect.
Easy flows with only query transforms are well visible but if the dataflow becomes more complex (table comparison, mapping operator, merge, etc…) complete mappings are missing! Try yourself, I’d like to hear other experiences…
Finally, what most organizations wanted listed out in 1 row:
Dataflow name, source table, source column name, target table, target column name and then again for the next dataflow that uses the table as a source which was the target in the previous dataflow…and so on and on…