Using many hours programming with my favorite Design Pattern “Surrogate Keys” I often need to know simple things that can be a little hard to find at times.
One of these is to know the Table ID of any record I might be handling at any given time.
All the tables that use the surrogate key pattern use a primary key based on “Table ID”, a “Surrogate Key Reference” & maybe a “Line No.” or “Code” depending on what the table is hosting of data. In other words I often need to know the Table ID to filter correctly based on the record I am calling from.
I handle this with the following Code:
The ReturnTableID function takes a Variant as Parameter and calls Variant2RecRef to get it transformed to a Record Ref no matter if a Record or a Record Ref was passed to it. After that the function Returns the RecRef.Number which is the Table ID of whatever was passed to it.
This way I can call the first function with any Record or RecordRef and get the Table ID returned.
This creates a completely generic function that always returns your Table ID.
This is a fixed part of my RecordRef Library Codeunit and now hopefully of yours too.