Querying the Repository Tables

There seems to be 5 tables in the XI Repository:

CMS_Aliases4
CMS_IdNumber4
CMS_Infoobjects4
CMS_RELATIONS4
CMS_VersionInfo

Does anyone know how to query these tables and extract a list of Groups, Users, etc??? (Like we could with previous versions of BO)

We need to be able to extract a list of Users and Groups they belong to (or have access to) as we have some dynamic objects in 6.5 universe that use the Supervisor security hierarchy, and naturally we would want to migrate this to XI or XIr2.


webiworx :uk: (BOB member since 2005-02-21)

As I understand the XI Repository, you can’t query it like you could the BO 6.x (or earlier) repository. The information in XO is stored in XML files, which are then stored as blobs in the repository.


MichaelWelter :vatican_city: (BOB member since 2002-08-08)

Hi,
Do you know where those xml’s are located?
Thanks
Raya


rayazax (BOB member since 2005-02-09)

As I said, I believe they are stored as BLOBS in the repository database.


MichaelWelter :vatican_city: (BOB member since 2002-08-08)

I am currently attending the BO XI server administration class and the instructor informed us that the repository is now encrypted thus no longer directly accessible through SQL :reallymad: . In order to access the information in the repository you must use the SDK. Although I just got done looking at the documentation available on the Business Objects Tech support site and could find nothing in the object model that would allow me to get information out of the repository. The fact that the repository is now hidden is a huge impediment to our organization upgrading to XI. I will be contacting my bo account rep to let him know what a problem this will be to us. If you find out any additional information please post it.


bbenishe (BOB member since 2002-09-03)

Here’s an alternative point of view. Is there any specific information that you need that you can’t get through the Administrative Tools, CMC, etc? One of the Administrative Tools is actually called Query Builder that lets you query Enterprise system properties.

I’m just learning BOE myself, so I have no bias or knowledge one way or the other. Us “BusObj Classic” users resorted to direct repository queries, because there was no other option. Clearly that’s not the case with BOE. Is it different? YES! Is it better or worse? I think that remains to be seen.

Again, just an alternative point of view.


Dwayne Hoffpauir :us: (BOB member since 2002-09-19)

Thanks for the info I will check out the Query Builder Tool at class.

I frequently need to go to the repository to get reports on what universes or reports a given user has access to or to get counts of how many users had a given license type or which reports are used by which universe, ecta… Over the years I have developed quite a library of repository SQL and it was very helpful. It will be painful to no longer have that ability but if BOE can provided me that same information in an even more accessible way I will be willing to adapt.


bbenishe (BOB member since 2002-09-03)

There is a beta version of a tool called Repository Explorer where you can see the users, servers, categories, folders, events,…and the XML estructure of each object of the repository. It’s supossed to appear in the release 2 of the product.

I think that with this tool and the SDK you could query all the information of the repository. I show you the XML estructure of a user object:

<?xml version="1.0" encoding="utf-8" ?> 
- <plugin xmlns="http://www.crystaldecisions.com/CrystalEnterprise_pin.xsd">
- <propertybag name="CrystalEnterprise.User" type="InfoObject">
  <property name="SI_DESCRIPTION" type="String">Cuenta de invitado</property> 
  <property name="SI_ID" type="Long">11</property> 
  <property name="SI_NAME" type="String">Guest</property> 
  <property name="SI_TABLE" type="Long">2</property> 
  <property name="SI_HIDDEN_OBJECT" type="Bool">false</property> 
  <property name="SI_FLAGS" type="Long">2070</property> 
  <property name="SI_OBTYPE" type="Long">19</property> 
  <property name="SI_SYSTEM_OBJECT" type="Bool">true</property> 
  <property name="SI_OBJECT_IS_CONTAINER" type="Bool">false</property> 
  <property name="SI_RUID" type="String">AQyP8QcS_XBGtW6.9KEnQ64</property> 
  <property name="SI_CHILDREN" type="Long">0</property> 
  <property name="SI_OWNER" type="String">Cuenta del sistema</property> 
  <property name="SI_RUNNABLE_OBJECT" type="Bool">false</property> 
  <property name="SI_PARENT_FOLDER" type="Long">19</property> 
  <property name="SI_COMPONENT" type="Bool">false</property> 
  <property name="SI_APPLICATION_OBJECT" type="Bool">false</property> 
  <property name="SI_INSTANCE_OBJECT" type="Bool">false</property> 
  <property name="SI_GUID" type="String">AQyP8QcS_XBGtW6.9KEnQ64</property> 
  <property name="SI_INSTANCE" type="Bool">false</property> 
  <property name="SI_CUID" type="String">AcgOFGfhCzJEg.VjnPaidmI</property> 
  <property name="SI_PARENTID" type="Long">19</property> 
  <property name="SI_PLUGIN_OBJECT" type="Bool">false</property> 
  <property name="SI_OWNERID" type="Long">10</property> 
  <property name="SI_UPDATE_TS" type="Date" flags="268435456">2005-05-25T11:51:35.4370000+02:00</property> 
  <property name="SI_CREATION_TIME" type="Date">2005-05-11T18:56:38.1870000+02:00</property> 
  <property name="SI_KIND" type="String">User</property> 
  <property name="SI_PROGID" type="String">CrystalEnterprise.User</property> 
  <property name="SI_PARENT_CUID" type="String">AXhmigik4CBKra9ZYzR2ezE</property> 
  <property name="SI_PARENT_FOLDER_CUID" type="String">AXhmigik4CBKra9ZYzR2ezE</property> 
- <propertybag name="SI_ALIASES" type="Array">
  <property name="SI_TOTAL" type="Long">1</property> 
- <propertybag name="1" type="Bag">
  <property name="SI_ID" type="String">secEnterprise:#11</property> 
  <property name="SI_NAME" type="String">secEnterprise:Guest</property> 
  <property name="SI_DISABLED" type="Bool">true</property> 
  </propertybag>
  </propertybag>
  <property name="SI_NAMEDUSER" type="Bool">false</property> 
  <property name="SI_CHANGEPASSWORD" type="Bool">true</property> 
- <propertybag name="SI_USERGROUPS" type="Array">
  <property name="SI_TOTAL" type="Long">1</property> 
  <property name="1" type="Long">1</property> 
  </propertybag>
  <property name="SI_PASSWORDEXPIRE" type="Bool">true</property> 
  <property name="SI_USERFULLNAME" type="String" /> 
  <property name="SI_FAILEDLOGONCOUNT" type="Long">0</property> 
  <property name="SI_LASTLOGONTIME" type="Date" flags="268435456">2005-05-25T11:51:15.6090000+02:00</property> 
  <property name="SI_FORCE_PASSWORD_CHANGE" type="Bool">false</property> 
  <property name="SI_EMAIL_ADDRESS" type="String" /> 
  <property name="SI_IS_SCHEDULABLE" type="Bool">false</property> 
  <property name="SI_SENDABLE" type="Bool">false</property> 
  </propertybag>
  </plugin>

I have no idea about XML but perhaps you could help me to know the posibilities of the tool.

Regards


boa_spain (BOB member since 2004-05-12)

Thanks for all the replies.

The reason for asking the initial question was because in 6.5 we have custom views that flatten out the Group and User security profiles. We can then use these to look up the BOUSER profile when the SQL is run. If the User belongs to a particular Group then the measure displays a value, otherwise it does not. This has been implemented because some users are able to see values for certain measures only for their organisations, but other measures they are able to see for all organisations, etc.

I was hoping we could access the XI Repository tables through SQL and create our custom views/tables.

Having said that, from one of the replies it seems we should still be able to do this via SDK. If anyone has had some success then please do let us know.

Thanks.


webiworx :uk: (BOB member since 2005-02-21)

Hi BOA_SPAIN

You are talking about a REPOSITORY EXPLORER. Where can I get this tool?

Thanks
Wolfgang


wprankl :de: (BOB member since 2005-04-20)

I would be also heavily interested in such a a tool.
Never seen it in the BO catalog.


Deme (BOB member since 2006-06-15)

Any news about this tools yet? I am also highly interested to get this tool or other third party tools that can provide me the repository information such as how many groups are there, users listed under each groups, list of universe belong to each group. etc.


imran1997 (BOB member since 2006-01-26)

if you go to the Business Objects Website ->Developer Zone->Developer Library ->BusinessObjects XI R2 -> Web Services SDK you will see a ZIP file regarding the “Business Objects Platform Web Services Repository Explorer Application”

you can also build a query i nthe query builder to get users:

select * from ci_systemobjects where SI_KIND =‘User’
select * from ci_systemobjects where SI_KIND =‘Usergroup’


cduey :us: (BOB member since 2002-09-05)

I agree with Dwayne.

As I am seeing it, and exploring the XI r2, the SDK provided is good, and IMHO it is definitely better and you’ll find a lot of information what you want and more…

The Clients who directly used to query the repository using SQL in 6.5 and prior versions, Now in XI r2 they have to use .NET or Java (J2EE) to get the same information… write there own routines…and integrate them.

and also BOE repository explorer is there.


BO_Chief :us: (BOB member since 2004-06-06)

I been trying to follow directions but I can’t figure out how to install “Business Objects Platform Web Services Repository Explorer Application” I believe I got the SDK working. Any suggestions?

Thanks! :hb:


jcbeckwith (BOB member since 2006-04-26)

What is your version of BO XI ? And if you have installed All the compenents ?

Check, when you logon to Administrator Launchpad… you will see it on the FIRST SCREEN…on the left.

One of the link points to “Repository Explorer”… that is it…!!


BO_Chief :us: (BOB member since 2004-06-06)

I am using XIR2. The problem I am having is that I have downloaded the zip file and extracted it. It contains a bunch of CS and RESX file and another folder “icons”. However, I don’t know where I need to place all these files within the Apache Tomcat (assuming if I even do it that way). Is there another program I am supposed to use to upload it?

Thanks!!


jcbeckwith (BOB member since 2006-04-26)

found this thread while searching for something else. What we did was build a database to contain all of the stuff we wish we could see in the CMS database (folders, reports, instances, etc) and then use VB.Net and the SDK to load it. It’s big, ugly, and slow to run, but now we have a metadatabase that we can run sensible queries from, like “what groups have ‘full control’ on a folder in our system?” “Where is DB uid XYZ used with a report?” When we asked our sales rep when we were evaluating the product if we could see who had access to what, he said “yes”, meaning apparently that we could go to the CMC and click around. Now we can more universally but only after quite a bit of development…

Also, we downloaded that repository explorer and it only works with TomCat - does us no good with IIS…


sbroam (BOB member since 2006-08-24)

I have written a utility to extract the XI application metadata, normalize, and load to RDBMS for reporting. Having this metadata available and behind a developed set of canned reports and ad-hoc universe provides very powerful reporting / system auditing capabilities.

BOBJ Metadata Manager will also provide similiar metadata analysis and lineage, so you may want to bring this product up with your BOBJ sales rep.


crystal01 :us: (BOB member since 2006-08-30)

why not use query builder?

form adminlaunchpad page >> Right on the query builder.

Just got to the following :

http://devlibrary.businessobjects.com/BusinessObjectsXIR2/en/devsuite.htm

Right side click on Business Objects enterprise SDK>> COM developer guide and API reference >> Query language reference

This will give you an idea about what fields to query and if you want to develop SDK solution you can use this reference manual to develop that.

:smiley:


XXX :madagascar: (BOB member since 2007-09-04)