BusinessObjects Board

Audit Tables (again)

All,

I have just created an ad-hoc report using Audit universe that came up with Installation CD. The results were not correct. I verified the joins between OBJ_A_EVENT_LOG and OBJ_A_EVENT_DETL tables and it showed many-to-many relationship which suppose to be one to many relationship as per the document.

The join is OBJ_A_EVENT_LOG.A_EVLOG_N_ID=OBJ_A_EVENT_DETL.A_EVDET_N_ID

Is that a bug? Any idea?

I would like to have the following info on the report.
User Name, Event Name , Event Start Time.

Thanks in Advance
Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

Try this version of audit. I have an outer join between those tables because not every event creates details. It also handles the session start and end with a database view. More discussion is here.


Cindy Clayton :us: (BOB member since 2002-06-11)

Cindy! Thanks for the info.

I used that universe and I am getting the same results. For an example, I refreshed a report ‘Report1’. I never touched and refreshed the report ‘Report2’ but it showed that I refresed that report many times. Then I found out that somebody refreshed the ‘Report2’ and the user-id and event-id got messed up.

It still shows many-to-many relationship when I checked the cardinality.
I manually flushed the cache from WebI admin tool. It looks like none of the tables have primary keys.

Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

Do you have more than one cluster auditing to the same tables? Have you done a reinstall? Those will cause duplication. There is definitely a 1-N relationship between obj_a_event_log.a_evlog_n_id (1) and obj_a_event_detl.a_evdet_n_id (N). but you should never see duplication of the obj_a_event_log.a_evlog_n_id. If this query returns anything, you’re hosed!

select a_evlog_n_id, count(*)
from obj_a_event_log
group by a_evlog_n_id
having count(*) > 1

I’ve had duplication once due to a server upgrade without a purge of the tables. The upgrade started the numbers over again.


Cindy Clayton :us: (BOB member since 2002-06-11)

We recently upgraded our server from SQL Server 7x to 2000.
I checked the following tables and saw duplicate records and thats why it showed n to n relationship.

OBJ_A_EVENT_LOG
OBJ_A_EVENT_NAME
OBJ_A_APPLICATION
OBJ_A_EVENT_DETL
OBJ_A_OBJECT_TYPE

Is it better purge all the records or recreate all the tables as we are going to start over again?

Thanks
Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

You can truncate the tables. You don’t have to delete and recreate them. I don’t recommend trying to put Humpty Dumpty together again once you’ve gotten duplication. Too complicated. :nonod:


Cindy Clayton :us: (BOB member since 2002-06-11)

Cindy is right. Just truncate the tables and move on. We learned this the hard way too…

Auditor that is not well documented…each time you reinstall BO/Auditor, it resets the A_EVLOG_N_ID and A_STLOG_N_ID sequences since it stores it in the registry settings as LogSiteIndex and LogUserIndex if you’re using Windows or in boconfig.cfg if you’re using Unix. Next time if you reinstall be sure to change the registry values so that your ID’s are not reset back to 1 (and thus preventing duplicate records).

Although the whole doc doesn’t apply to your situation, ask Tech Support for their document named “Auditing Multiple WebIntelligence Clusters”. It describes where the ID’s are set. And if you ever move to multiple clusters, it provides an easy way to integrate all Auditor data.


Lynne (BOB member since 2003-05-20)

Okay. I purged all the data from the tables and added master data to Application and Event name tables. I refreshed a report from WEBI and it stored all the events and looked perfect. I freshed a report through ZABO, but, it didn’t store all the information. I didn’t get the report name that I refreshed through ZABO. Is it only for WEBI?

Any suggestions?

Thanks
Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

I definitely saw Zabo refreshes. In fact, I saw too much data about a Zabo report retrieved from Corporate Docs. This post has useful info and read the entire thread to learn more. I never have seen Zabo refresh times. Those I can only get from Webi refreshes.


Cindy Clayton :us: (BOB member since 2002-06-11)

Yes…I saw the ZABO event logs in OBJ_A_EVENT_LOG table, but I didn’t see the report name which suppose to be stored in OBJ_A_EVENT_DETL table. It has WebI refreshed report name, but, not the ZABO refreshed report name. Any problem with master tables OBJ_A_APPLICATION, OBJ_A_EVENT_NAME?

Here is the data on these tables:

OBJ_A_APPLICATION has

1 Unknown
2 WEBINTELLIGENCE 2.7
3 BO Manager via WEBINTELLIGENCE
4 BUSINESSOBJECTS 5.0
5 BO Manager via BROADCAST AGENT
6 Zero Admin BUSINESSOBJECTS
7 WEBINTELLIGENCE 2.7

OBJ_A_EVENT_NAME has

1 Logon
2 Failed logon
3 Log off
4 Get list of inbox documents
5 Get list of corporate documents
6 Get list of universes
7 Send to users
8 Publish
9 Save
10 Read inbox document
11 Read corporate document
12 Read personal document
13 Selection of universe
14 Generation of list of values
15 Execution of query
16 Refresh of query from HTML
17 Login successful
18 Compute result
19 Refresh document
20 Compute result after drill
21 List of values
22 Edit document
23 Get document generated by reporter
24 Get a CSV document
25 Refresh document after a prompt
26 Reserved range limit
27 Get list of personal documents
28 Apply format
29 N/A
30 Open report from cache
31 Execute macro (VB)
32 Execute script (4.1)
33 Download agnostic document
34 BusinessObjects Zero Admin started
35 Delete inbox document
36 Delete corporate document
37 Delete personal document
38 Delete scheduled document
39 Upload agnostic document

Could some one verify with your data? I would appreciate it.

Thanks
Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

I’ll look tomorrow. Do you have my universe and reports?


Cindy Clayton :us: (BOB member since 2002-06-11)

SELECT
  OBJ_A_EVENT_DETL.A_EVDET_C_OBJNAME,
  OBJ_A_OBJECT_TYPE.A_OTYPE_C_NAME
FROM
  OBJ_A_EVENT_DETL,
  OBJ_A_OBJECT_TYPE,
  OBJ_A_APPLICATION,
  OBJ_A_EVENT_LOG
WHERE
  ( OBJ_A_EVENT_LOG.A_EVLOG_N_ID=OBJ_A_EVENT_DETL.A_EVDET_N_ID(+)  )
  AND  ( OBJ_A_EVENT_DETL.A_EVDET_N_OBJTYPID=OBJ_A_OBJECT_TYPE.A_OTYPE_N_ID(+)  )
  AND  ( OBJ_A_EVENT_LOG.A_EVLOG_N_APPID=OBJ_A_APPLICATION.A_APPLI_N_ID  )
  AND  (
  OBJ_A_OBJECT_TYPE.A_OTYPE_C_NAME  =  'Document name'
  AND  OBJ_A_APPLICATION.A_APPLI_C_NAME  =  'BusinessObjects ZA'
  AND  OBJ_A_EVENT_LOG.A_EVLOG_D_STARTIME  >  '19-08-2003 00:00:00'
  )

Cindy Clayton :us: (BOB member since 2002-06-11)

Yes, I do have your universes and reports.
I tried to execute your query, but I didn’t see any records in the table OBJ_A_OBJECT_TYPE. The query brought back some records since there was a outer join. Is OBJ_A_OBJECT_TYPE one of the master tables?

Thanks
Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

Here are the records in mine. I don’t remember how they were populated originally. Must have been done by turning on auditing. You’ll need other reference data as well.

INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
1, 'Repository name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
2, 'Universe name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
3, 'Object name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
4, 'User name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
5, 'Group name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
6, 'Number of lines'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
7, 'Number of elements'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
8, 'Document name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
9, 'Document size'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
10, 'Browser IP'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
11, 'Browser OS'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
12, 'Browser name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
13, 'Total size of documents in list'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
14, 'Description'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
15, 'Category Name'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
16, 'Keywords'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
17, 'Refresh Options'); 
INSERT INTO OBJ_A_OBJECT_TYPE ( A_OTYPE_N_ID, A_OTYPE_C_NAME ) VALUES ( 
18, 'Overwrite'); 

Cindy Clayton :us: (BOB member since 2002-06-11)

Thanks Cindy! I got the data from ZABO Admin guide and entered into a excel sheet and exported to the table.

Now, I am seeing all the ZABO activities. Another issue, When I refreshed the report thru WebI, it stored the report name with extension .rep, but not for ZABO reports. Any idea?

Ravi.


Ravi_Pazhani (BOB member since 2002-08-20)

I noticed that too. In fact, if you look at my report I think I have a variable that strips off the .rep to make things consistent. I was also experimenting with writing a report of repository documents versus user created/owned documents and in order to do that, I was going to need to strip off the .rep for dp linking.


Cindy Clayton :us: (BOB member since 2002-06-11)

All,

I have one extra value in my obj_a_object_type table:

19 SQL Value

Not sure if this is a WebI 2.7.3 addition or what…


craigpeters :us: (BOB member since 2003-05-09)

What does it seem to hold?


Cindy Clayton :us: (BOB member since 2002-06-11)

What does value 19 hold? Don’t know. I just did a scan, and that event detail type hasn’t occurred anywhere yet. Not sure if this is because we aren’t using a specific feature or if this is a future value or what…

If you’re populating this table manually, I just wanted to make sure you knew BO is populating a new value.


craigpeters :us: (BOB member since 2003-05-09)