copyright © 2007 business objects s.a. user auditing using the businessobjects.net sdk dell...
TRANSCRIPT
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.
User Auditing Using the BusinessObjects .NET SDKDell Stinnett, ZC Sterling
SLIDE 3 COPYRIGHT © 2007 BUSINESS OBJECTS S.A.
AGENDA
1. Introduction
2. User Auditing Issues
3. In Memory Dataset
4. Load Data
5. View Data in Crystal
6. Conclusion
7. Q&A
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. SLIDE 4
INTRODUCTION
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 5
ZC SterlingA leading provider of mortgage outsourcing services
Hazard Insurance
Real estate tax servicing
Voluntary products
Customer care
Best Shores
BusinessObjects XI R2Migrated from Seagate Info 7.5 in 2006
Custom programs
Named user licensing
INTRODUCTION
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. SLIDE 6
USER AUDITING ISSUES
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 7
Quarterly audit
User AuditGroup users by business line or department
Identify last time a user logged on to InfoView
Send report to department managers for review
Group AuditGroup by user group
Users in a group
Reports to which the group has access
Report AuditSame report title can be in multiple folders
Group by title and then by folder
REQUIREMENTS
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 8
Limited access to CMC
No hard-copy reports
No ability to see “big picture”
WHY NOT USE THE CMC?
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. SLIDE 9
IN MEMORY DATASET
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 10
IN MEMORY DATASET
Four tables in an ADO.NET dataset
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. SLIDE 11
LOAD DATA
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 12
Data comes from two placesCMS
Audit Database
Three types of reportsBy User
By Group
By Report
User data is always loaded.
Report data is only loaded if required.
LOAD DATA
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 13
LOAD DATA
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 14
string query = "Select SI_NAME, SI_USERFULLNAME, SI_ID " + "From CI_SYSTEMOBJECTS " + "Where SI_KIND='User' and SI_NAME != 'Administrator' " + " and SI_NAME != 'Guest'" + "Order by SI_NAME";
using (InfoObjects users = _common.BOEInfoStore.Query(query)){ User userData = null; try {
for (int i = 1; i <= users.Count; i++) {
using (userData = (User)users[i]) { loadUserInfo(userData); } if ((i % 10) == 0) Application.DoEvents();} //users.count
} finally {
if (userData != null) userData.Dispose();
} getLoginInfo();} //using users
GET USER DATA FROM CMS
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 15
private void loadUserInfo(User userData){ AddUserRow(userData.Title, userData.FullName, true);
//get groups user is assigned to query = "Select SI_ID, SI_USERGROUPS " + "from CI_SYSTEMOBJECTS where SI_ID=" + userData.ID.ToString(); using (InfoObjects userInfo = _common.BOEInfoStore.Query(query)) { if (userInfo.Count > 0) AddGroupRow(userInfo[1]); }}
GET USER DATA FROM CMS (continued)
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 16
string query = "SELECT DISTINCT AUDIT_EVENT.User_Name, " +"max(AUDIT_EVENT.Start_Timestamp) " +"FROM AUDIT_EVENT " +"WHERE AUDIT_EVENT.Event_Type_ID In (65538)"+"AND AUDIT_EVENT.User_Name Is Not Null " +"GROUP BY AUDIT_EVENT.User_Name";
GET LAST LOGIN FROM AUDIT DATABASE
Query based on “Last Login for All Users” report that comes with the Auditing package.
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 17
string query =
"Select SI_ID, SI_NAME, SI_PARENTID, SI_KIND " +
"From CI_INFOOBJECTS " +
"Where SI_KIND in ('CrystalReport','Webi','Excel'," +
"'PDF','Rtf','Txt','Universe','Word') " +
" and SI_INSTANCE_OBJECT<1 " +
"order by SI_NAME, SI_ID";
GET REPORT INFO FROM CMS
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 18
using (InfoObject rpt = rpts[i])
{
dsAuditInfo.reportTable.AddreportTableRow(rpt.ID, rpt.Title, rpt.Kind, _common.GetPathFromFolderID(rpt.ParentID));string role;using (SecurityInfo si = rpt.SecurityInfo){ for (int j = 1; j <= si.ObjectPrincipals.Count; j++) { if (si.ObjectPrincipals[j].Role != CeRole.ceRoleNoAccess) { switch (si.ObjectPrincipals[j].Role) { case CeRole.ceRoleAdvanced: role = "Advanced"; break; …
GET REPORT INFO FROM CMS (continued)
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. SLIDE 19
VIEW DATA IN CRYSTAL
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 20
Select tables from Project Data\ADO.NET DataSets
Six reportsUsers with Groups
Users with Reports
Users by Group
Reports by Group
Users by Report
Groups by Report
Report Creation
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 21
REPORT CREATION
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 22
Single form with overloaded constructor.
Pass ADO.NET DataSet as parameter in constructor.
Load report based on selections in GUI.
Report Viewer
COPYRIGHT © 2007 BUSINESS OBJECTS S.A.SLIDE 23
BOEUserAudit Application - Demo
SLIDE 24 COPYRIGHT © 2007 BUSINESS OBJECTS S.A.
CONCLUSION
The SDK provides the means to retrieve data for user auditing.
It is not difficult to extract data from the CMS to use in reports.
CMS data can be combined with data from other sources, such as the Auditing database, for reports
“Project Data” in an ADO.NET DataSet can be used as a data source for Crystal reports.
SLIDE 25 COPYRIGHT © 2007 BUSINESS OBJECTS S.A.
Q&A
QuestionsDell Stinnett, Sr. Software Engineer, ZC Sterling
I will repeat questions to ensure everyone can hear
Contact [email protected]
http://www.geocities.com/geekgurl7/ Intro.html