Hi,
I need to create a report from repository for getting the existing reports,the objects used in the reports and the classes to which those objects belong to.Which all rerpository tables I should look for this details ?
You could look forever, you won’t find that in the repository. Documents are stored as blobs in the obj_x_documents table. The only possible option is audtiing, but even that won’t give you the detail you want.
There may some 3rd party tools that will do this, but nothing out of the box.
Hi guys,
Thanks for the help.The Macro looks very complicated.
Myself I had a sql script,but need to link between the objects in report and classes to which the object belongs to.For a report,it is brining the entire class details.
SELECT
OBJ_M_DOCUMENTS.M_DOC_N_ID,
OBJ_M_DOCUMENTS.M_DOC_C_NAME,
OBJ_M_DOCATVAR.M_DOC_N_ID,
OBJ_M_DOCATVAR.M_SRC_C_NAME,
OBJ_M_UNIVERSES.M_UNI_C_FILENAME,
OBJ_M_UNIVERSES.M_UNI_N_ID,
UNV_CLASS.CLASS_ID,
UNV_CLASS.CLS_NAME,
UNV_CLASS.UNIVERSE_ID,
UNV_OBJECT.CLASS_ID,
UNV_OBJECT.OBJ_NAME,
UNV_OBJECT.UNIVERSE_ID
FROM
OBJ_M_DOCUMENTS,
OBJ_M_DOCATVAR,
OBJ_M_UNIVERSES,
UNV_CLASS,
UNV_OBJECT
WHERE
OBJ_M_DOCUMENTS.M_DOC_N_ID = OBJ_M_DOCATVAR.M_DOC_N_ID AND
OBJ_M_DOCATVAR.M_SRC_C_NAME = OBJ_M_UNIVERSES.M_UNI_C_FILENAME AND
OBJ_M_UNIVERSES.M_UNI_N_ID = UNV_CLASS.UNIVERSE_ID AND
OBJ_M_UNIVERSES.M_UNI_N_ID = UNV_OBJECT.UNIVERSE_ID AND
UNV_CLASS.UNIVERSE_ID = UNV_OBJECT.UNIVERSE_ID AND
UNV_OBJECT.CLASS_ID = UNV_CLASS.CLASS_ID AND
OBJ_M_UNIVERSES.M_UNI_C_FILENAME = @variable(‘Enter the universe name’)
AND UNV_CLASS.CLS_NAME IN @variable(‘Enter the class names’)
I have one query which I remember uses for the same request. Try the below query and see if that can help for your requirement. I am sure you might need to do some changes on the query.
Hope this helps!!!
SELECT
UNIVERSE.A_EVDET_C_OBJNAME “Universe”,
UNIVERSE.A_EVDET_N_OBJECTID “Universe - Object ID”,
OBJ_A_EVENT_DETL.A_EVDET_C_OBJNAME “Document”,
OBJECTS.A_EVDET_C_OBJNAME “Objects”
FROM
OBJ_A_EVENT_DETL,
OBJ_A_EVENT_DETL OBJECTS,
OBJ_A_EVENT_DETL UNIVERSE,
OBJ_A_OBJECT_TYPE,
OBJ_A_OBJECT_TYPE type_2,
OBJ_A_OBJECT_TYPE type_3
WHERE
(OBJ_A_EVENT_DETL.A_EVDET_N_OBJTYPID=OBJ_A_OBJECT_TYPE.A_OTYPE_N_ID) AND
(OBJECTS.A_EVDET_N_OBJTYPID=type_2.A_OTYPE_N_ID) AND
(UNIVERSE.A_EVDET_N_OBJTYPID=type_3.A_OTYPE_N_ID) AND
(OBJ_A_EVENT_DETL.A_EVDET_N_ID=OBJECTS.A_EVDET_N_ID) AND
(OBJ_A_EVENT_DETL.A_EVDET_N_ID=UNIVERSE.A_EVDET_N_ID) AND
(UNIVERSE.A_EVDET_N_ID=OBJECTS.A_EVDET_N_ID) AND – POSSIBLY TAKE OUT
(OBJ_A_OBJECT_TYPE.A_OTYPE_C_NAME IN (‘Document name’)) AND
(type_2.A_OTYPE_C_NAME IN (‘Object name’)) AND
(type_3.A_OTYPE_C_NAME IN (‘Universe name’)) AND
OBJECTS.A_EVDET_C_OBJNAME like
(
‘%Level’ --INSERT OBJECT NAME HERE
)
GROUP BY UNIVERSE.A_EVDET_C_OBJNAME, UNIVERSE.A_EVDET_N_OBJECTID,
OBJ_A_EVENT_DETL.A_EVDET_C_OBJNAME, OBJECTS.A_EVDET_C_OBJNAME
Hi Suntra,
I have an issue with “UNIVERSE” table.I am getting an error “table does not exist” when I am trying to access the same.Any issue/change with version.My BO is 5.1.6
Regards
Hari
The tables as shown are Auditor tables. They are not part of the standard repository structure. Specifically OBJ_A_EVENT_DETL is created / populated only by the Audit process.
Please review Steve Krandel’s reply from earlier. You cannot do what you want from the repository tables, no matter how creative your SQL is. The macro Andreas linked is a way to perform the analysis after retrieving the documents from the repository.
Alternatively you can look at 3rd party tools like Quality Manager.
I have another question regarding that macro.
In the universe there are objects with the same name in diff classes. Is there any way to show the class/subclass along with the object name from the universe.
Not sure whether this is the correct place to discuss about that macro.
Doesn’t seem to be a direct topic, so this works for now.
When I wrote the code, I did not see a way to determine the class that the object was pulled from. So I did not include that. If there is a way to determine a class by looking at the result objects in a query, then it could be added to the code.
The macro also skips looking at objects used for conditions, which is something that I have meant to add for quite a while.
SELECT
UNV_CLASS.CLASS_ID,
UNV_CLASS.CLS_NAME,
UNV_CLASS.UNIVERSE_ID,
UNV_OBJECT.CLASS_ID,
UNV_OBJECT.OBJ_NAME,
UNV_OBJECT.UNIVERSE_ID
FROM
OBJ_M_UNIVERSES,
UNV_CLASS,
UNV_OBJECT
WHERE
OBJ_M_UNIVERSES.M_UNI_N_ID = UNV_CLASS.UNIVERSE_ID AND
OBJ_M_UNIVERSES.M_UNI_N_ID = UNV_OBJECT.UNIVERSE_ID AND
UNV_CLASS.UNIVERSE_ID = UNV_OBJECT.UNIVERSE_ID AND
UNV_OBJECT.CLASS_ID = UNV_CLASS.CLASS_ID AND
OBJ_M_UNIVERSES.M_UNI_C_FILENAME = @variable(‘Enter the universe name’)
AND UNV_CLASS.CLS_NAME IN @variable(‘Enter the class names’)