I’m trying to generate a simple list of all the objects in my universe (preferably with class and sub-class names as well) with the SQL definition of each. Any ideas? I don’t think there’s an easy way to do this out of designer, but could I find it in the repository database? (I know in designer I can get a detail description of each object, but that’s a little too much information…)
In a message dated Tue, 11 Dec 2001 3:25:58 PM Eastern Standard Time, “Fisher, Jennifer” Jennifer_Fisher@DFCI.HARVARD.EDU writes:
I’m trying to generate a simple list of all the objects in my universe (preferably with class and sub-class names as well) with the SQL definition
You can write SQL by hand, or you can use Designer to set up a universe based on the repository tables. What you are asking for is fairly easy to do. You will need to reference the following tables:
UNV_UNIVERSE
UNV_CLASS
UNV_OBJECT
UNV_OBJECT_DATA
The first table gets you the name of the universe and the universe ID which you will need to join. The UNV_CLASS table, as you would expect, contains the class name, description, and order it appears in the universe. It also contains the parent class if it is a subclass.
The UNV_OBJECT table contains the universe ID and class ID for a key. It also has the object name, its position in the class, and whether it is visible or hidden.
The UNV_OBJECT_DATA contains the actual description (for OBJ_DATATYPE = ‘H’) and SQL code (OBJ_DATATYPE = ‘S’). It also contains where clause and formatting information… the formatting in formation is coded.
There is good documentation on the repository tables on the BusObj cdrom. It’s in the /freeware directory.
The options for printing are such that you can just print out the object names in each class just seemingly what you require. In Designer module go to Tools then Options then select the print tab. Just tick the List Componenents > Objects de-select all others and this will do what you want.
<----------------------------------------------------------------------- -->
Paul Baird
Rabobank International
tel. : (+44) (0) 20 7809 3408
email : bairdp@rabo-bank.com
<----------------------------------------------------------------------- -->
I don’t see a parent Class In the UNV_CLASS table. Am I missing something. I am creating report with Class, Subclass, Object Name and Object SQL (Select and Where). But in the classes column, I get all classes and Subclasses in one column. How do I distinguish between them. Any Ideas?
You need to link from the UNV_CLASS table (using CLS_BASECLASSID) to an alias of the UNV_CLASS table (CLASS_ID) to get the parent class. It gets really fun with sub-sub-sub-classes.
I was going to oh-so-helpfully include my SQL (which is for SYBASE so maybe it’s not so helpful), but my network connection just went down and I can’t get to any of my files!
This is Sybase, not MS SQL, so your outer joins may be different
SELECT
bus_obj.dbo.UNV_OBJECT.OBJ_NAME,
bus_obj.dbo.UNV_OBJECT_DATA.OBJ_DATAVALUE,
bus_obj.dbo.UNV_CLASS.CLS_NAME,
UNV_CLASS2.CLS_NAME,
UNV_CLASS3.CLS_NAME,
UNV_CLASS4.CLS_NAME
FROM
bus_obj.dbo.UNV_OBJECT,
bus_obj.dbo.UNV_OBJECT_DATA,
bus_obj.dbo.UNV_CLASS,
bus_obj.dbo.UNV_CLASS UNV_CLASS2,
bus_obj.dbo.UNV_CLASS UNV_CLASS3,
bus_obj.dbo.UNV_CLASS UNV_CLASS4,
bus_obj.dbo.UNV_UNIVERSE
WHERE
( bus_obj.dbo.UNV_CLASS.CLASS_ID=bus_obj.dbo.UNV_OBJECT.CLASS_ID and bus_obj.dbo.UNV_CLASS.UNIVERSE_ID=bus_obj.dbo.UNV_OBJECT.UNIVERSE_ID )
AND ( bus_obj.dbo.UNV_OBJECT.OBJECT_ID=bus_obj.dbo.UNV_OBJECT_DATA.OBJECT_ID and bus_obj.dbo.UNV_OBJECT.UNIVERSE_ID=bus_obj.dbo.UNV_OBJECT_DATA.UNIVERSE_ID )
AND ( bus_obj.dbo.UNV_CLASS.UNIVERSE_ID*=UNV_CLASS2.UNIVERSE_ID and bus_obj.dbo.UNV_CLASS.CLS_BASECLASSID*=UNV_CLASS2.CLASS_ID )
AND ( UNV_CLASS2.UNIVERSE_ID*=UNV_CLASS3.UNIVERSE_ID and UNV_CLASS2.CLS_BASECLASSID*=UNV_CLASS3.CLASS_ID )
AND ( UNV_CLASS3.UNIVERSE_ID*=UNV_CLASS4.UNIVERSE_ID and UNV_CLASS3.CLS_BASECLASSID*=UNV_CLASS4.CLASS_ID )
AND ( bus_obj.dbo.UNV_CLASS.UNIVERSE_ID=bus_obj.dbo.UNV_UNIVERSE.UNIVERSE_ID )