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ā)