14

Currently in the latest BC release (BC23.x) it is not easy to correlate a Table object to the App where that table is declared.


While there are fields in table 2000000041 "Field" for "App Package ID" and "App Runtime Package ID" to correlate a field against the app where that field is declared, there are no such fields exposed in system table 2000000136 "Table Metadata".


Normally, one would simply query either table AllObj or AllObjWithCaption where "Object Type" = table, but neither of these tables contain objects where ObseleteState = Removed.


Because of this, we have to query table 2000000207 "Application Object Metadata" as a RecordRef (recordref is used because "Application Object Metadata" is an onprem table and thus inaccessible from a target=cloud app if it's declared as a Record variable).


I suggest the following changes to the BC application+platform:


table 2000000038 AllObj, table 2000000058 AllObjWithCaption:

  • ALL installed objects should be in these two tables regardless of ObseleteStatus
  • Add fields ObseleteState, ObseleteReason, ObseleteTag


system table 2000000136 "Table Metadata":

  • "App Package ID" and "App Runtime Package ID"


With these changes we can easily query any table schema to correlate every table to its app "Owner" (something the Field system table already does in BC23)

Category: Development
STATUS DETAILS
New

Comments

S

please put some priority on this. after some further universalcode testing, I concluded its not possible to query onprem table 2000000207 "Application Object Metadata" from a target=cloud app (not even when using recordrefs).


Because of this, we have a gap with the capabilities in table 2000000038 AllObj, table 2000000058 AllObjWithCaption, and table 2000000136 "Table Metadata" that I'm hoping this BC Idea will address

Category: Development

S

typo in this submission:


system table 2000000136 "Table Metadata":

  • ADD FIELDS "App Package ID" and "App Runtime Package ID"


Category: Development