] CHARAN MARWAH [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2003 RAECHAL MARTIN [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2004 SYLVIE GAUTHIER [ ASUG INSTALLATION MEMBER MEMBER SINCE: 1999 User License Auditing Using the .NET SDK Dell Stinnett, BOCP-BOE XIr2 Reporting Manager Ryla, Inc.
24
Embed
] CHARAN MARWAH [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2003 RAECHAL MARTIN [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2004 SYLVIE GAUTHIER [ ASUG INSTALLATION.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
]
CHARAN MARWAH[ASUG INSTALLATION MEMBER MEMBER SINCE: 2003
RAECHAL MARTIN[ASUG INSTALLATION MEMBER MEMBER SINCE: 2004
SYLVIE GAUTHIER[ASUG INSTALLATION MEMBER MEMBER SINCE: 1999
User License Auditing Using the .NET SDK
Dell Stinnett, BOCP-BOE XIr2
Reporting ManagerRyla, Inc.
Real Experience. Real Advantage.
[
2
Learning Points
It is fairly simple to access user license and security information through the SAP BusinessObjects SDK query language.
Data from multiple CMS queries can be combined to provide meaningful insight into user and security setup in SAP BusinessObjects.
There are easy ways to use in-memory data sets as a data source for Crystal Reports
Real Experience. Real Advantage.
[
3
Agenda
1. Introduction2. User Auditing Requirements3. In Memory Dataset4. Load Data5. View Data in Crystal6. Conclusion7. Q&A
Real Experience. Real Advantage.
[
4
Introduction
Ryla, Inc is a leading domestic provider of Customer Contact Solutions to Fortune 500 companies, government agencies and nonprofit organizations Atlanta Business Chronicle's #1 Fastest Growing Firm in
2009 On Inc. 5000’s Fastest Growing Private Companies list
for four consecutive years, with a 2010 rank of 520. SAP BusinessObjects Edge 3.1
@240 total users 20 Named User licenses 20 Concurrent User Licenses
@700 active reports Most reports delivered by e-mail InfoView login required for on-demand reports and
some on-demand drill-down reports.
Real Experience. Real Advantage.
[
5
Auditing Requirements Quarterly Audits User Audit
Identify license type – Named or Concurrent Get the timestamp of most recent activity in
InfoView Validate that all users are current Ryla Employees
Group Audit Validate user groups against current project
assignment Validate the reports to which each group has access
Real Experience. Real Advantage.
[
6
Why Not Use the CMC or Query Builder?
No hard-copy or historical views. No ability to see the “big picture”
Can see all users assigned to a single group Can see all groups assigned to a single user Can see last logon for a single user Can’t combine it all into a single view of the data
Real Experience. Real Advantage.
[
7
BOECommon Class
Common functions for interacting with BusinessObjects CMS Login Translate Name to SI ID and vice versa Build InfoView path to a report Get all reports in a folder And much more!
Reusable so that the same code doesn’t exist in multiple places It made the upgrade from XI r2 to XI 3.1 much less
complicated.
Real Experience. Real Advantage.
[
8
In Memory DataSet
Four tables in an ADO.NET DataSet
Real Experience. Real Advantage.
[
9
Load Data
Data comes from two places CMS Audit Database
Three types of reports By User By Group By Report
User and Group data is always loaded Report data is only loaded if required
Real Experience. Real Advantage.
[
10
Load Data Logic
Real Experience. Real Advantage.
[
11
Get User Data from CMSstring query = "Select SI_NAME, SI_USERFULLNAME, SI_ID, SI_NAMEDUSER, " + "SI_LASTLOGONTIME, SI_DESCRIPTION " + "From CI_SYSTEMOBJECTS " + "Where SI_KIND='User' and SI_NAME!='Administrator' " + "and SI_NAME!='Guest' " + "and SI_NAME!='PMUser' and SI_NAME!='QaaWSServletPrincipal' " + "Order by SI_NAME";
using (InfoObjects users = _common.BOEInfoStore.Query(query)){ for (int i = 1; i <= users.Count; i++) { using (User userData = (User)users[i]) { loadUserInfo(userData); } }}
Real Experience. Real Advantage.
[
12
Get User Data from CMS (continued)private void loadUserInfo(User userData)