BOXI Grooming: Prune Your Input and Output FRS
Origin of a Cluttered FRS
Business Objects XI has a way of making more sub-folders than files. Seriously, take a close look at your Input and Output File Repository Servers, or rather your FRS on the disk. You will notice a crazy number of folders. As objects get deleted in Business Objects XI their corresponding files are removed from the FRS; however, their sub-folder is not. Since there is nearly a 1 to 1 ratio of files to folders this lack of folder clean-up leads to a lot of empty folders and an inefficient FRS (and any resulting file system back-up).
Keeping Your FRS House in Order
Since you see the most efficient system, you want to clean up this folder mess. Well, BO has a tool for that and you already own it. You can invoke it merely by putting the command-line parameter “-prune” on the Input FRS and the Output FRS.
Making -prune Work for You
I recommend that before you start you shut down your BOXI system’s web front-end. This will keep users from receiving errors or possibly impacting the prune activity. Yes, this requires downtime to do it properly and only experience will tell you how long it takes (depends on how much mess needs to be cleaned and how fast your servers are). Now in CCM shutdown your FRS servers.
Do the next steps one at a time unless you are in a rush. Modify the command-line parameters by appending the parameter “-prune”, be sure to include a space between it and the final parameter that was present before you started. Also you can add “-trace” as a switch to capture a log of the actions.
Completing your FRS Prune
Now start the FRS that you just modified and you will observe that it maintains a “starting” status until it finishes. You can watch it through your servers task manager, top, or other corresponding process manager. You could also watch it through the log file it creates with the included “-trace” parameter. When it finishes, remove the parameters you added and proceed to the next one. If both have completed the prune then you are done and as long as you removed the parameters that you added you are ready to roll.
Additional Information
I suggest counting sub-folders and files before and after. This will help you understand the impact of what you just did. Please keep in mind that the “PRUNE” command does not clean-up any dead pointers (objects in the CMS that lost the files the point to). Prune only cuts the dead branches and it doesn’t touch a single leaf or leafy branch. Enjoy the analogy
More FRS Prune Resources
Over at “let’s learn business intelligence” they have a good video walk-through of a real, live FRS prune on a BOXI system. Check it out: http://www.letslearnbi.com/2009/05/business-objects-prune-and-trace.html.
Archiving Historical Object Instances in Business Objects
I like to answer the really good and broad-focused emailed questions through articles on this site. The following is one such emailed question:
In Business Objects is there any way to archive historical object instances?
We need to keep objects for several years, but don’t want to keep so many objects available on the server as we are running out of space on our server. We only want to keep a years worth available to the users. We want to keep only a few of them and rest of the instances be archived. The instances are of all kinds.. Microsoft Excel, txt, Crystal, pdf…etc
BIAR File Backup
One of the cleanest ways to backup almost anything in Business Objects XI is to use a BIAR file backup (Business Intelligence Archive Resource, pronounced by most like the word “beer”). In Business Objects XIR2 this is easily accomplished using the Import Wizard tool. Essentially you set the source to be your source environment and the target to be the new BIAR file. Then you proceed to select the objects you desire to backup and don’t forget to check the checkbox for instances if you want to retain them.
BIAR files are compressed and they are generally not usable without Import Wizard. If you desire to restore a report from the BIAR file backup then you must be prepared for some consequences. Restoring from BIAR file backups will NOT create new instances of your objects unless you specify these options in Import Wizard (use MERGE and have duplicates renamed), otherwise your newer objects could get overwritten. Often, it is a safer idea to have a sandbox environment to which you restore the files you want. Please not you can pick and chose the objects you want, but the instances are an all or nothing option only.
Import Wizard Tricks
If you are familiar with Import Wizard there are some cool things you can do with it. For example, you can set the source and destination to the same environment and you can use the MERGE option (with rename duplicates) to create identical copies of your objects. Also you could use it to move copies to another “archive” environment.
Working the File Repository System
If you have played with Business Objects XI’s FRS at all then you know that it is a huge pile of sub-folders and finding a specific document is like finding a needle in a haystack. I recommend against trying to access the file directly as this will consume much time and it will usually be difficult to keep track of which document is which.
Scheduling Non-BO Delivery
As instances are created you could schedule them for delivery to email, FTP, or UNC (file shares). This may not be preferable for various reason, but I thought I should add it.
Really, these are the only archive methods that I have used or experimented with. Please leave any comments of other methods that you have successfully used. The question above is from a real person who needs our help.
Which Business Objects Auditing Activities or Events Capture BO Universe Name?
Some of us in the in the wide world of BO use universes as a method to segregate our reporting. This is logical since a universe is usually tied to a single database connection. Therefore little groups of reporting users tend to congregate around universes. Some of us have picked up on this little fact and we require a naming standard that allows us to identify those groups. Some may try to do this with report names, but most fail. Ok, let me get to the point…
In such a scenario you may want to track the activities of these groups. This is possible with Business Objects auditing services and the universe name recorded there; however, it does not work in every way you want it to. Universe is not a field in the auditing database tables as username or start_timestamp are. Universe will be found in the big melting pot that BO calls the Audit_Detail table. It is one of the many values that bless the detail_text field. Not bad news, but this will hurt your query performance.
So now that we know where to find the universe name in the auditing data, we need to talk about which Events or User Activities it accompanies. First the bad news: you won’t find it on any of the following BO Auditor event types: get page, edit document, or read document. This is bad news, but get over it, there is nothing you can do about it. So now for the good news: you will find it on Document Refresh and Generate SQL.
Just in case you are not already intimately familiar with these events let me tell you something about them:
Document Refresh: this is the interactive user refresh of a report, not the scheduled refresh
Generate SQL: this seems to be limited to saved changes to a query, or clicks on the “View SQL” button. Therefore, this may be an indicator of the amount of document editing and creation going on.
Please reply with your comments, I would love to hear them (especially if I have made a mistake).
Solving Business Objects XI R2 CMS Security Viewer’s Crashes
Business Objects XI R2 CMS Security Viewer is a useful administrative tool provided freely by Business Objects. It allows one to analyze your security models without having to actually alter user group membership or login as different users. The tool should not be need in Business Objects XI Release 3.0; however, it can be very useful in BO XIR2. We are still figuring out all of the uses for this tool since we recently got it up and running on our system after we got our hands on a functioning version.
Business Objects XIR2 CMS Security Viewer 2.1 Doesn’t Work
At the writing of this article, I believe that Security Viewer 2.1 is the latest version of this tool. However, we like so many others found that this tool crashed immediately, just as soon as the application opened. Through some research, testing, and BO-Support feedback it appears that BO XI R2 CMS Security Viewer 2.1 does not function with BO clusters which have installed the Productivity Pack. Apparently this little bug was planned for correction in Fix Pack 3.7, but I haven’t yet confirmed this rumor became reality.
Give BO Security Viewer a Try
The simple solution for most teams is to just use the 2.0 base version of BO Security Viewer. This version does not have any problems with the productivity pack. HOWEVER, obtaining a copy of BusinessObjects Security Viewer 2.0 can prove to be quite challenging as it seems that Business Objects does not distribute copies of previous versions on their website.
UPDATE – Business Objects Security Viewer 2.2 Available
I just added Security Viewer 2.2 to our server so you can download it from their directly. I hope I don’t upset the powers that be at SAP Business Objects. I had to navigate a lot through the SAP Support Portal web site to find the download so I thought I might save all of you just a little bit of time. Here is the link:
Business Objects XI R2 Security Viewer 2.2
Download BO Security Viewer 2.0
However, since I still have a copy BO Security Viewer 2.0, I feel obligated to share it with those who might stand in need of it. I haven’t altered the *.msi installation package in anyway, except to zip it up so as to prevent some recipients from unintentionally trying to install it directly from my web server. Believe me, just download the 10 MB zip file, extract it, and install.
Link to Download Business Objects XI R2 CMS Security Viewer 2.2
Link to Download Business Objects XI R2 CMS Security Viewer 2.0
A Hint on the JAVA_HOME Environment Variable
You may need to configure a JAVA_HOME path variable by setting creating one through Start > Control Panel > Settings > Advanced > Environment Variables, please see screenshot for an idea.
Query Builder: Improving Query Performance
Business Objects Query Builder is a free application provided with Business Objects Enterprise XI (BOXI). It is uses the BOE SDK to provide a simple web user interface for submitting queries against the CMS InfoStore and returning their results.
Query Performance Concerns: Indexed Properties
As you begin to experience the wonders of Query Builder you will find that certain queries run quickly and other run very slowly, or not at all. It is important to remember that you are still querying a database and certain portions of that database have been indexed for improved performance in Business Objects. Among the lucky indexed properties you should find the following. For improved performance use these in your query’s selection criteria (WHERE clause):
SI_CUID
SI_GUID
SI_HIDDEN_OBJECT
SI_ID
SI_INSTANCE_OBJECT
SI_KIND
SI_NAME
SI_NAMEDUSER
SI_NEXTRUNTIME
SI_OWNERID
SI_PARENTID
SI_PLUGIN_OBJECT
SI_RECURRING
SI_RUID
SI_RUNNABLE_OBJECT
SI_SCHEDULE_STATUS
SI_UPDATE_TS
SI_INSTANCE
Optimizing Query Builder Queries
Query performance is improved by using indexed properties in your selection criteria (WHERE clause); however, the order of these can additionally optimize your query’s performance. All selection criteria with indexed properties should be placed first in the WHERE clause. The BusinessObjects Enterprise CMS InfoStore, and therefore Query Builder, processes queries from top to bottom and left to right. Therefore the selection criteria should also be ordered from the most restrictive to the least restrictive. For example, SI_NAME = ‘My Report’ should be place before SI_KIND = ‘WebI’ in the query. It may not be the prettiest query but it will be the fastest.
For example:
SELECT
si_id,
si_name,
si_universe,
si_cuid
FROM
CI_InfoObjects
WHERE
si_name = '
si_kind = 'WebI' AND
si_instance = 0

