Search This Blog

Saturday, May 28, 2011

How to uncluster Business Objects servers?

Here I'm illustrating a scenario where your Business Objects servers get clustered accidently. Many times we want to replicate the Business Objects environments. We want to make our TEST or DEV environment as same as production, so that we can perform the tests on either TEST or DEV and if the tests are successful, we apply the changes to Production system.
In order to achieve this, we need to use the copy datasource Wizard through CCM. Using the database copy gives us exact replica of the source environment.

Consider you have copied the database of your PROD system to a new box (let's consider this one as TEST). When you start the TEST system (SIA) and login to the Central Management Console (CMC), you will find the servers of PROD box in the "Servers" area. As we are copying the database, it will also bring the servers of PROD to your TEST box and it will make a cluster.

You'll need to perform following steps to uncluster these two environments.

We'll need to delete the entries of PROD servers from the CMS DB of TEST environment.
Stop the SIA of TEST environment, login to the DB server and execute following queries against CMS DB of TEST environment.

For XI R2:
delete from cms_infoobjects5 where typeid in (16,17);
delete from cms_infoobjects5 where objectid=4;

For XI 3.1:
delete from cms_infoobjects6 where typeid in (16,17);
delete from cms_infoobjects6 where objectid=4;


Once you execute the queries, commit the statements.
Here,
typeid 16 is for servers
typeid 17 is for servergroups
objectid 4 is for cluster

Now goto the CCM >> Properties of Server Intelligence Agent (SIA) >> Configuration tab.
Here, select the checkbox for "Change Cluster Name to" and provide a new cluster name.
For Unix, you can execute cmsdbsetup and reset the clustername.
Once you change the cluster name, you can start SIA. This time you'll not find the servers of PROD in your TEST environment. You may need to recreate SIA on the TEST box so that it can add default servers in the node.

How to avoid such accidental cluster?

Considering the above scenario, once you copy the DB of your PROD system to TEST system, change the cluster name for your TEST system (through CCM) before you start SIA. This will avoid clustering of PROD and TEST. You may still find the servers of your PROD system in the TEST system. For that, you can use the queries mentioned above to get rid of them.

Wednesday, May 18, 2011

How to schedule to SharePoint Document Library


Steps to Schedule reports to Sharepoint’s Directory using UNC path:

1) Make sure you can browse to the Sharepoint location using UNC path. So if your URL is http://Servername/SiteDirectory/Title, equivalent UNC path would be \\Servername\SiteDirectory\Title. We need the Webclient Service running on the box to access this UNC path.
2) If the URL is accessible you should be able to schedule the report to \\Servername\SiteDirectory\Title\SharedDocuments. The Shared Documents folder is created because we had used “Document Workspace” as a template. The folder structure will wary as per the template you select.
3) Go to the Business Objects Server running Crystal Reports / Web Intellignce / Desktop intelligence / Destination Job Servers (whichever report type is applicable).

4) Click on Start >> Run.
5) Type services.msc and hit ENTER. .
6) Enable and start the service Webclient.
7) Click on Start >> Control Panel >> Add or Remove Programs >> Add/Remove Windows Components.
8) Uncheck the box with the label Internet Explorer Enhanced Security Configuration >> Click Next.
9) Logon to Business Objects Server computer using the service account which is being used to Authenticate against the Sharepoint Server.
10) Open Internet Explorer >> Tools >> Internet Options >> Security >> Local Intranet >> Sites >> Advanced.
11) Add the hostname and hostname.domain.com of the SharePoint Server to the Trusted Sites. Do NOT prefix the name with http(s) .
12) Open Internet Explorer >> Tools >> Internet Options >> Security >> Local Intranet >> Custom Level >> User Authentication >> Logon
13) Choose the radio button with the option Automatic logon with current username and password. >> Ok >> Ok.
14) Create a registry entry AuthForwardServerList of type Multi-String Value at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\. Type the names of the computers hosting the SharePoint service as a list in the Value Data, one name on each line. Click OK.
15) Reboot the Business Objects Server.
16) Schedule Documents through Business Objects and browse to http://Servername/SiteDirectory/Title and click on Documents on the left pane to view it in Sharepoint site.


Please Note:- 
1) If you create a schedule with default name it will contain ‘~’ in the file name which is not allowed on the Sharepoint by default. You will get error:

“destination directory error.[CrystalEnterprise.DiskUnmanaged]: [The parameter is incorrect. ]” Or “destination directory error. [C rystalEnterprise.DiskUnmanaged]: [The file type being saved or retrieved has been blocked. ]” 

So make sure you configure the instance to you any valid name by adding the place holder in the schedule e.g. %SI_NAME% 
2) Webclient Service is not enabled by default on Windows Server 2008. Please follow the below steps for same.

a. Open Server Manager and click the Features node.
b. If "Desktop Experience" in not already listed under Features, click "Add Features".
c. Select the "Desktop Experience" item and then click Next followed by Install.
d. Reboot the PC as instructed.


Some usuful information:

BusinessObjects Server makes a simple ping request to the sharepoint server. If this succeeds and the sharepoint server replies back, then the Job Server tries to make a connection on port 445 (microsoft-ds) to the sharepoint server. If it does not get a reply back, it tries a couple times unsuccessfully and then tries to make a connection to the sharepoint server on port 139 (netbios-ssn). If it does not receive a reply after a few tries, if we get a response back from another IP (Not SharePoint) stating Destination Unreachable. It could be a firewall.

Port 445 is the new Microsoft file sharing port and port 139 is the older Microsoft sharing port. The Job Server tries to make connections on both and never receives any reply back. Typically ports 445 and 139 are used by virus/trojan/worms to spread viruses so these are common ports for a firewall to block.


References: SAP KB article # 1373496.

Monday, May 16, 2011

How to schedule a particular server to restart in BOE XI 3.1?

Many times there is a need to restart a particular service (server) to clean the cache / temporary data on file system / release memory. Please find below steps on how to achieve it on Windows and Unix.


WINDOWS

Workaround 1:

Create a different node either through CCM or CMC and add only those particular servers in this node which you would like to restart on a regular basis. For Ex. we'll name as CRPROC

Go to Start >> Run >> services.msc

Look for Server Intelligence Agent (CRPROC) >> right click and go to properties of this service.

On the General tab, look for Service Name. In this case, it should be BOE120SIACRPROC.

Open up notepad and copy-paste the below lines in it.

sc stop BOE120SIACRPROC
sc start BOE120SIACRPROC

Save this notepad as Restart_CRPROC.bat

Now you can use the Windows Task Scheduler or BO's Program Job Server service to start / stop these particular servers. If you are going for BO's Program Job Server service, you'll need to upload this program object (Restart_CRPROC.bat) to Enterprise and set a recurring schedule.

Note: You can create two different files if you just want to stop / start a particular service.

Workaround 2:

Open a notepad and add the following lines to it:

"<PATH TO CCM.EXE>\ccm.exe" -managedstop/managedstart SIANAME.SERVERNAME -cms CMSNAME:PORT -username <Admin user> -password <PASSWORD> -authentication <Authentication being used>

Eg.
To Stop:

"C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\ccm.exe" -managedstop SIA.WebIntelligenceProcessingServer -cms servername:6400 -username Administrator -password password123 -authentication secEnterprise

To start:

"C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\ccm.exe" -managedstart SIA.WebIntelligenceProcessingServer -cms servername:6400 -username Administrator -password password123 -authentication secEnterprise


UNIX:
Create a .sh file as below.

To Stop:
/apps/boxi31/bobje/ccm.sh -managedstop SIA.WebIntelligenceProcessingServer -cms servername:6400 -username Administrator -password password123 -authentication secEnterprise

To start:
/apps/boxi31/bobje/ccm.sh -managedstart SIA.WebIntelligenceProcessingServer -cms servername:6400 -username Administrator -password password123 -authentication secEnterprise


You can save this .sh file as Restart_WEBIPROC.sh

You can create a daemon service for this Restart_WEBIPROC.sh file and use it for scheduling the restart for selected services.

Note: You can create two different files if you just want to stop / start a particular service.

Hope this helps!!

You may refer to CCM help or SAP KB Article # 1286926 - How to start/stop or enable/disable individual XI3.x servers from command line

~The One

Publication in SAP BusinessObjects XI 3.1


What is Publishing?
"Publishing” is the process of making documents such as Crystal reports, Web Intelligence documents, and Desktop Intelligence documents publicly available for mass consumption. The contents of these documents can be distributed automatically via email or FTP, saved to disk, or managed through the BusinessObjects Enterprise platform for web viewing, archiving, and retrieval, and automated through the use of scheduling. From within InfoView or the CMC, you can take documents and tailor them for different users or recipients; schedule a publication to run at specified intervals; and send it to a number of destinations, including recipients' Business Objects inboxes and email addresses.

System prerequisites

The following servers must be installed, configured, and running:
• Publication Job Server, especially: Publication Scheduling Service
• Adaptive Processing Server, especially: Publishing Service, Publishing Post Processing Service
• Destination Job Server
• Crystal Reports Job Server
• Report Application Server

Usuful Terms:


Report bursting
During Publishing, the data in documents is refreshed against data sources and personalized before the publication is delivered to recipients. This combined process is known as “report bursting”.

Enterprise and Dynamic recipients:
There are two types of recipients. "Enterprise recipients" and “Dynamic recipients”. "Enterprise recipients" are managed by BusinessObjects system. Users who can login to BOE systems using their IDs and are listed under "Users and Groups" area in Central Management Console can be marked as "Enterprise recipients". On the other hand "Dyanamic recipients" are publication recipients who exist outside of the BusinessObjects Enterprise system. Dynamic recipients already have user information in an external data source, such as a database or an LDAP or AD directory, but do not have user accounts in BusinessObjects Enterprise.

To distribute a publication to enterprise recipients you have to create either a "Global Profile" or "Local Profile". Profiles are objects in the BusinessObjects Enterprise system that let you classify users and groups. They work in conjunction with publications to personalize the content that users see. Profiles link users and groups to profile values, which are values used to personalize data within a report. Profiles can also use profile targets, which describe how a profile is applied to a report. Whereas for dynamic recipients, you can use a “dynamic recipient source”. A dynamic recipient source is a document or custom data provider that provides information about publication recipients outside of the BusinessObjects Enterprise system.

When to use Dynamic or Enterprise recipients?


Enterprise Recipients:
For example, a publication is created based on a report which captures Annual Sales of an organization. for all the regions. There are BusinessObjects users created for the employees who belong to each of those regions. To burst this report based on differnt regions, we will have to create a Profile and add the groups/users for whom we want to burst the data and apply the region filter for them.

Dynamic recipients:
Consider a situation in which a billing company distributes bills to customers who are not BusinessObjects Enterprise users. The customer information already exists in an external database. The publisher creates a document based on the external database and uses the document as a dynamic recipient source for a publication. The customers receive the billing publication, and the dynamic recipient source allows the publisher and the system administrator to maintain up-to-date contact information. Dynamic recipient list could a Crystal Report or a Webi/Deski document which has Dynamic Users related information such as Username, Email-ID etc.

Publication process

The publication process consists of various tasks that can be divided roughly into the following categories:
• Creating and designing basic publications.
• Improving performance with advanced features.
• Using design options for specific source document types.
• Post-design publication tasks.

Creating and designing basic publications
All publications require you to perform the following basic tasks:
1. Create a new publication object.
2. Select source documents to publish.
3. Specify recipients (Enterprise or dynamic).
4. Personalize the source content.
5. Specify formats and destinations.
6. Specify recurrence (scheduling) information.
7. Set delivery rules.
8. Specify a profile resolution method.
9. Specify a report bursting method.

To select source documents
After you enter general properties for the publication, you select source documents to include. Subsequent options vary depending on the dynamic content document type.
1. On the navigation list, click Source Documents.
2. Click Add.The "Select Source Documents" dialog box appears.
3. Browse for the source documents you want to include and select them.
4. Click OK. The "Select Source Documents" dialog box closes. The source documents that you selected appear in the Selected list.
5. Select or clear the Refresh At Runtime check boxes that are next to the source documents. Your selections determine whether a particular source document is refreshed against the data source when the publication runs.

Selecting recipients and personalizing recipient content
To select Enterprise recipients:
1. On the navigation list, click Enterprise Recipients.
2. In the "Available" area, browse for the users or groups that you want to include or exclude as recipients.
a. On the navigation list, click User List to display a list of all users in BusinessObjects Enterprise, or click Group List to display a list of all groups.
b. Select the users and groups in the details pane.
3. If you want to include the recipients you selected, move them to the Selected list.
4. If you want to exclude the recipients you selected, move them to the Excluded list.

To specify dynamic recipients
To specify dynamic recipients, you must have a dynamic recipient source already designed and ready for use. The dynamic recipient source contains recipient data and can be a Crystal report, Desktop Intelligence document, Web Intelligence document, or custom-coded data provider.

1. On the navigation list, click Dynamic Recipients.
2. On the Choose the source for the dynamic recipients list, choose the format of the dynamic recipient source.
3. In the right-hand pane, browse for the object you want to use as a dynamic recipient source, select it, and click OK.
4. If you chose to use a Web Intelligence or Desktop Intelligence document as a dynamic recipient source, on the Select the datasource name for the document list, select a query that appears in the document.
5. On the Recipient Identifier list, select a field that contains the recipient identity values.
6. If necessary, on the Full Name list, select a field that contains the full names of recipients.
7. If you intend to deliver the publication to email addresses, on the Email list, select a field that contains the recipient email addresses.
8. Decide whether you want to distribute the publication to all dynamic recipients listed by the dynamic recipient source.
• If you want to distribute the publication to all dynamic recipients, ensure Use entire list is selected.
• If you want to include or exclude some dynamic recipients:
a. Clear Use entire list.
b. On the Available list, select the check boxes next to the recipients you want to include or exclude.
c. If you want to include the recipients you selected, move them to the Selected list.
d. If you want to exclude the recipients you selected, move them to the Excluded list.

To specify formats for a Crystal report
1. On the navigation list, click Formats.
2. On the Title list, select a Crystal report. The "Format Options" area appears and lets you select the publication formats for the Crystal report you selected.
3. Select a format on the Format Options list, and click Add. The format you selected appears in the selected formats list underneath.
4. Select the format on the selected formats list.
5. Enter additional information to customize the appearance of the format
you chose.
6. Repeat steps 4 to 6 for each format in which you want to publish the Crystal report.

To specify formats for a Desktop Intelligence or Web Intelligence document:
1. On the navigation list, click Formats.
2. On the Document list, select a document.
3. On the Output Format list, select the check boxes for the format or formats in which you want to publish the document.
4. With the format option highlighted on the Output Format list, in the "Output Format Details" area, choose whether to publish the entire document or one report tab in the document.
• If you want to publish the entire document, leave All reports selected.
• If you want to publish a single report tab, click Select one report and choose a report tab on the list.
5. Repeat step 4 for every format in which you want to publish the document.

To specify a destination for the publication
1. On the navigation list, click Destinations.
2. In the "Select Destinations" area, select the check box next to the destination that you want.
3. On the Show options for selected destinations list, click the destination option that you selected.
4. Enter additional information to customize the delivery of the publication to the destination.

To specify a profile resolution method
The profile resolution method you specify determines whether instances will be merged or delivered as separate documents if a profile conflict occurs.
1. On the navigation list, expand Additional Options and click Advanced.
2. Under Profile Resolution Method, click Merge or Do not merge.

To specify a report bursting method
The report bursting method you specify determines how the source documents are personalized, processed, and delivered.
Note:
• If your publication is intended for dynamic recipients only, One database fetch per recipient is unavailable.
• If your publication contains Desktop Intelligence documents for which Refresh At Runtime is disabled, you cannot use One database fetch per recipient or One database fetch for each batch of recipients.
• For Desktop Intelligence documents, expression profile values are only compatible with the report bursting method One database fetch for all recipients.
1. On the navigation list, expand Additional Options and click Advanced.
2. Click one of the options under Report Bursting Method.

Personalizing Crystal Reports

To personalize a Crystal report using parameter values
The "Personalization" section lets you personalize a Crystal report for recipients based on the predefined parameter values for each recipient.

1. On the navigation list, click Personalization.
2. In the "Parameters" area, ensure the default values for the listed parameters are correct. If you want to change a default value, click the Edit button that is next to the parameter value. Select or enter the parameter value, and click OK.
3. If you want to override the default parameter personalization with Enterprise recipients' profile values, choose a profile from the list in the Enterprise Recipient Mapping column.
4. If you want to override the default parameter personalization with dynamic recipients' personalization values, choose a dynamic recipient source column from the list in the Dynamic Recipient Mapping column.

To personalize a Crystal report by filtering fields
Perform this task if you want to personalize a Crystal report by filtering a field in the Crystal report.

1. On the navigation list, click Personalization.
2. In the "Filters" area, choose a Crystal report field from the list in the Report Field column. The list of available fields includes all database fields and recurring formulas in the main report or non-on-demand subreports.
3. Choose a profile from the list in the Enterprise Recipient Mapping column.
4. Choose a dynamic recipient source column from the list in the Dynamic Recipient Mapping column.
5. Repeat steps 2 to 4 for every report field that you want to filter.

To set a global delivery rule on a Crystal report
Global delivery rules determine whether a publication will be processed and delivered for all recipients. You can set a global delivery rule on any Crystal report in the BusinessObjects Enterprise system.
1. On the navigation list, expand Additional Options and click Delivery Rules.
2. In the "Global Delivery Rule" area, click Browse.
A dialog box appears and lets you select the Crystal report on which the global delivery rule will be set.
3. Browse for the Crystal report, select it, and click OK. The dialog box closes.
4. On the Condition list, select the alert value that the report must have for the global delivery rule to be met.

To set a recipient delivery rule on a Crystal report
Recipient delivery rules determine whether a publication is delivered to a particular recipient after processing and personalization.
1. On the navigation list, expand Additional Options and click Delivery Rules.
2. In the "Recipient Delivery Rule" area, click Deliver individual document when condition is met or Deliver all documents only when all conditions are met.
3. On the list next to each report, specify a condition that must be met for the publication to be delivered.

PDF merging for Crystal reports
You can merge PDF instances of Crystal reports and static PDF documents into a single PDF for the convenience of your recipients. Static source documents that are not PDF files are excluded from the merged PDF. All static PDF source documents are included in the merged PDF.
You can also do the following with a merged PDF:
• Add and format a table of contents.
• Insert running page numbers.
• Add user and owner passwords that are required to view and edit the PDF.
• Set restrictions on what recipients can do with the PDF.

To format the merged PDF
The options in the Merged PDF Options section let you customize the merged PDF instance generated from a Crystal report publication.
1. On the navigation list, expand Additional Options and click Merged PDF Options.
2. Create and format a table of contents for the merged PDF.
a. Select Create Table of Contents. The format options for the table of contents are available.
b. In the Title field, enter a title for the table of contents.
c. Format the font, font size (in points), and font color that the title and the items in the table of contents will have.
3. Set the page number format options for the merged PDF.
a. Select Apply Running Page Numbers. The format options for page numbers are available.
b. In the Number Format field, enter the format in which you want the page numbers to appear.
c. On the Number Location list, choose the page number orientation for the merged PDF.
d. Format the font, font size (in points), and font color that the page numbers will have.
e. If you want the table of contents to have page numbers, select Apply page numbers to Table of Contents pages.
4. Set recipient logon credentials and permissions for recipient actions.
a. In the User Password field, enter a password that recipients must enter to view the merged PDF.
b. In the Owner Password field, enter a password that recipients must enter to edit the merged PDF.
c. Set permissions for user actions by selecting or clearing the appropriate check boxes.

To personalize a Desktop Intelligence document using a global profile target
The "Global Profiles" area of the "Personalization" section lets you personalize a Desktop Intelligence document for Enterprise recipients by filtering a global profile target.
1. On the navigation list, click Personalization.
2. In the "Global Profiles" area, choose a profile from the list in the Enterprise Recipient Mapping column. This setting maps the Desktop Intelligence document to the universe field (the global profile target) that is filtered for Enterprise recipients.

Personalizing Desktop Intelligence Reports


To personalize a Desktop Intelligence document by filtering fields
1. On the navigation list, click Personalization.
2. Click Add, and type a field name in the field in the Report Field column.
Note:
You must type the field name exactly as it appears in the Desktop Intelligence document; otherwise, personalization will fail.
3. Choose a profile from the list in the Enterprise Recipient Mapping column. This setting maps the field to the profile values that are defined for Enterprise recipients.
4. Choose a dynamic recipient source column from the list in the Dynamic Recipient Mapping column. This setting maps the field in the Desktop Intelligence document to a column in the dynamic recipient source that contains corresponding values.
5. Repeat steps 2 to 4 for every field that you want to filter

To set a global delivery rule on a Desktop Intelligence document
1. On the navigation list, expand Additional Options and click Delivery Rules.
2. In the "Global Delivery Rule" area, click Browse. A dialog box appears that lets you select a Desktop Intelligence document on which the global delivery rule will be set.
3. Browse for the Desktop Intelligence document, select it in the right-hand pane, and click OK. The dialog box closes.
4. In the Condition field, enter a Desktop Intelligence formula expression that must be valid for the global delivery rule to be met.

To set a recipient delivery rule on a Desktop Intelligence document
1. On the navigation list, expand Additional Options and click Delivery Rules.
2. In the Condition field, enter a Desktop Intelligence formula expression that must be valid for the global delivery rule to be met

Personalizing Web Intelligence Reports


To personalize a Web Intelligence document using a global profile target
1. On the navigation list, click Personalization.
2. In the "Global Profiles" area, choose a profile from the list in the Enterprise Recipient Mapping column. This setting maps the Web Intelligence document to the universe field (the global profile target) that is filtered for Enterprise recipients.

To personalize a Web Intelligence document by filtering fields
1. On the navigation list, click Personalization.
2. In the "Local Profiles" area, choose a field from the list in the Report Field column.
3. Choose a profile from the list in the Enterprise Recipient Mapping column.
This setting maps the report field to the profile values that are defined for Enterprise recipients.
4. Choose a dynamic recipient source column from the list in the Dynamic Recipient Mapping column. This setting maps the field in the source document to a column in the dynamic recipient source that contains corresponding values.
5. Repeat steps 2 to 4 for every field that you want to filter.

References:

SAP BusinessObjects XI 3.1 SP3 Publisher Guide:

SAP BusinessObjects XI 3.1 SP3 Admin Guide:
Chapter 26 on Pg # 929

Wednesday, May 11, 2011

PrintControl ActiveX download box appears everytime the users try to print the Crystal Report

Hey folks,

This is something I have faced after installing FP 3.2 on SAP BusinessObjects XI 3.1 SP3. The users started complaining that they are being asked to download the PrintControl everytime they tried to print the Crystal Report.

Here is some information you might be interested in.

Cause:ActiveX PrintControl is a part of a cab file, which is downloaded from the Web Application Server. SAP BusinessObjects compares the version of the PrintControl.dll which is installed on the users machine with the version mentioned in crv.js file. If the version of the plugin mismatches it tries to download the PrintControl.cab file to the client machine and install the plugin. The problem appears if the version mentioned in the crv.js is different than the version of the PrintControl.dll. (Note: There are two dlls with the same name, one of them is inside the cab file which the BusinessObjects server is interested in).

Resolution:
1. Open C:\Program Files\Business Objects\Tomcat55\webapps\CrystalReports\crystalreportviewers\js\crviewer\crv.js in notepad.
2. Identify the line similar to this: bobj.crv.ActxPrintControl_Version= #12,3,2,XXX#;
3. Open C:\Program Files\Business Objects\Tomcat55\webapps\CrystalReports\crystalreportviewers\ActiveXControls\PrintControl.cab
4.Extract the PrintControl.dll to desktop (temporary); right click on it, select Properties and go to version tab to check its version.
5. Compare the two versions - they should be identical. If not, adjust the value in crv.js to reflect that of the PrintControl.dll.

!~Thinker

Tuesday, May 10, 2011

Why can't we disable CMS Server?

Central Management Server (CMS) is the heart of Business Objects. We cannot disable CMS by any means. However, we can stop it.

In a standalone environment, if we disable CMS [it's not possible though :)], we'll not be able to login to the system to enable it again, either through CCM / CMC.

If we stop the CMS server in a clustered system, all the sessions will be redirected / transferred to another CMS. Once we stop the CMS, it will not accept any new request even if it is enabled. It also serves as a name server with which all other servers / services in the cluster register.
We can disable every other server in BO but CMS.

How To Delete A Report And Its Instances Through CMS Database In BOE XI R2

Points to be taken into consideration:

- Before proceeding with the following steps, I’d like to inform you to take the back up of your system database (CMS DB) as well as reporting database (FileStore) to be safe if accidentally any other reports or instances get deleted.

- Also, I’d like to prefer you to do these steps on a test machine, on a test report with instances.

- If you get successful in this work around, then you can go ahead and do the same steps on the actual database.


General Overview:

- Find the report’s SI_ID and ParantID in the database.

- Find all the instances associated with the report along with their SI_ID and the actual location in the database.

- Delete the entries through database.


Actual Steps:

Step 1. Find the report’s SI_ID and ParantID in the database.

Step 2. Find all the instances associated with the report along with their SI_ID and the actual location in the database.

Step 3. Delete the entries of instances through system database.

Step 4. Delete the entries of instances through FileStore

Step 5. Delete the empty folders in the database left behind by the instances.

Step 6. Delete the report object.

Step 1. Find the report’s SI_ID and ParantID in the database.

Open Query Builder and run following command,

SELECT

SI_ID, SI_PARENTID, SI_NAME, SI_LAST_SUCCESSFUL_INSTANCE_ID

FROM

CI_INFOOBJECTS

WHERE

SI_NAME = ‘Report Name’ AND SI_INSTANCE = 0 AND SI_KIND = ‘CrystalReport’

The query provides the following information:

SI_ID: This ID is used as the SI_PARENTID value for each report instances it creates beneath it.

SI_PARENTID: The parent ID of the Report. The value is usually the Folder unique SI_ID it resides in.

SI_NAME: The report name.

- Make a note of report’s SI_ID and its ParentID to use further.

Step 2. Find all the instances associated with the report along with their SI_ID and the actual location in the database.

Open Query Builder and run following command,

SELECT

SI_FILES

FROM

CI_INFOOBJECTS

WHERE

SI_PARENTID = ParentID AND SI_INSTANCE = 1

ORDER BY SI_ID DESC

The query provides the following information:

SI_FILES: The physical location and name of Report Instance in FRS.

SI_PARENTID: The main Report Objects SI_ID value.

SI_INSTANCE: Used to confirm that the object is an instance rather than report template. Value should be True or 1.

- If you have a large number of instances and if the Query Builder is being hang out, then modify the query to give minimal outputs and perform the delete operation for these instances first and retrieve next.

Step 3. Delete the entries of instances through system database.

- Now you have to query to the database through DB client tool and delete these instances by querying to the database. Here, I’d like to mention that, we can’t use ‘Delete’ command through Query Builder.

1. Delete the instances by querying to the database. It will delete all the instances associated with the report.

Ex. Query For MySQL database,

DELETE FROM cms_infoobjects5 WHERE ParentID=’ParantID’;

Where,

‘ParentID’ is the main Report Object’s SI_ID value.

Step 4. Delete the entries of instances through FileStore

Copy the output of Step 2 and paste it in a file on the local drive.

- Create and use a batch file to get only “frs://Output/” locations aside in the file and leave all other content.

- Replace “frs://Output/” with “FileStore\Output\”.

- Also, replace all ‘/’ with ‘\’ in the file to reach to actual file location.

Ex. Query Builder output: “frs://Output/a_096/005/000/1376/”

Replace this with the following,

“FileStore\Output\a_096\005\000\1376\”

- Create and use another batch file to delete these entries through the FileStore at a time.

Step 5. Delete the empty folders in the database left behind by the instances.

A simple way to clean the database with empty folders is by removing these folders using following command line switch.

-prune

- Stop the Input and Output FRS through CCM and add this switch to the command line.

- This instructs the FRS to delete the empty folders and then start the server.

- The server shuts down automatically when the empty folders are deleted.

- You can use the –trace command to get a log file for the number of folders visited and number of objects deleted.

- Remove the switch after completion.

- Start the servers again.

Step 6. Delete the report object.

- Now you can simply go ahead and delete the report through CMC.

Or

- Use the following query through the database client.

DELETE FROM cms_infoobjects5 WHERE ObjectID=’ObjectID’;

where,

ObjectID is the main Report Object’s SI_ID value.

Sunday, May 8, 2011

Redirect default url for InfoView (when using tomcat hosted with BOE installation) in XI 3.1


If you want to shorten the InfoView url to just the machine name, here are a few steps:


· Create a file named index.html or default.html and open it in a text editor and copy the below text to the file.

##################################################
<HTML>
<HEAD>
<SCRIPT language="javascript">
location.href="http://boserver:8080/InfoViewApp/logon.faces";
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
##################################################

· Keep the file in "ROOT" folder of your tomcat instance and restart tomcat.

For Windows:
<path to Business Objects>\Tomcat55\webapps\ROOT
Eg. C:\Program Files\Business Objects\Tomcat55\webapps\ROOT

For UNIX:
/apps/bo31/bobje/tomcat/webapps/ROOT
· Restart Tomcat
Access the following URL and it will open up InfoView for you. Eg. http://boserver:8080

To change the port on which tomcat is running. Eg. from 8080 to 80.

You can do it by modifying the server.xml file located at <Tomcat home>\conf\server.xml.
Search the server.xml file and look for:

"<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->"
<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>

Modify port="8080" to port="80".
Save the server.xml file and restart tomcat.

Now you can open InfoView with url, http://boserver

To change the Tomcat URL to listen http://bi-reporting.domain.com instead of http://boserver

Many times company policies don't allow domain users / public (external) users to view the actual machine names in the urls. After installing SAP BO, you have to use your machine in the url to open up CMC / InfoView. In order to do that, you have to create a DNS alias for your BO server on the DNS server. Your DNS admin / Network admin can do it for you in just a few clicks.
To use the URL http://bi-reporting.domain.com you can create a DNS alias/CNAME for your Tomcat server.

Please follow the below Microsoft article in order to create a DNS alias for your server.

DST issues with SAP BusinessObjects XI 3.X

Foe those who face DST issues every other year, here is some relevant information:


- What is Extended DST?
A. Starting in 2007, most of the United States and Canada observe DST from the second Sunday in March to the first Sunday in November, almost two-thirds of the year. The 2007 U.S. change was part of the Energy Policy Act of 2005; previously, from 1987 through 2006, the start and end dates were the first Sunday in April and the last Sunday in October, and Congress retains the right to go back to the previous dates now that an energy-consumption study has been done.


- What is the impact of the change on SAP BusinessObjects XI 3.1?
  • An unending series of failed instances
  • Swelling of CMS Database.
  • Abnormal growth of Audit Database
  • Delay of an hour in the reports.
  • Instance Manager either does not come up or takes a very long time to come up.
  • Slow response from CMS while browsing CMC/InfoView
- How to Fix the above mentioned issues?
A. SAP has released a couple of KB Articles to address the issues mentioned above. here are the list of most important ones:
  • 1448881 - Multiple instances spawned after daylight savings time change
  • 1568239 - After DST change Schedules fail in Business Objects Enterprise XI 3.1 with: Object could not be scheduled within the specified time interval
  • 1568718 - How to delete all failed instances in XI3.1 programmatically

To update JRE:
  • Java TimeZone updater tool needs to be downloaded and installed form the Java vendor. Eg. For Sun Java http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Extract the tzupdater.jar
  • Run the tzupdater.jar using the java command from the JDK in the Business Objects folder
  • In this example Business Objects Enterprise XI3.1 and tzupdater are on the C drive:
  • C:\>"C:\Program Files\Business Objects\javasdk\bin\java" -jar tzupdater.jar -v -u
To fix existing recurring schedules:
  • Refer to SAP KB - 1448881 to download the script developed by SAP to fix the 1 hr time difference observed in the instance time.
  • Stop the Job Servers.
  • Double click on the .hta file.
  • Change the System Name to that of your CMS name.
  • Add the Administrator's password.
  • Click Logon.
  • Click List All Recurring Instances.
  • Select All.
  • Make note of what it says in: Schedule Selected Recurring Instances: Should be 1 hr earlier.
  • Click Reschedule Selected Recurring Instances.
  • Choose All instances again and change Schedule Selected Recurring Instances to 1 hour Later.
  • Click Reschedule Selected Recurring Instances.
  • Now start your Job Servers.
  • The issue should not occur again.
To Delete excessive failed instances:
- SAP has provided a couple of scripts to delete failed instances generated by the issue. The script queries for all instances that have a SI_SCHEDULE_STATUS = 3 (3 being failed). It then loops through all the found instances and deletes them in batches of 100/1000 objects. The script outputs to the browser the instances names and ids of what it is deleting.
  • Download the script from the SAP KB - 1568718 and extract the jsp into the ”/<tomcat>/webapps/InfoViewApp/” directory.
  • Open the file in a test editor and modify the following as per your requirements:
String userName = "Administrator";
String password = "<PASSWORD>";
String CMSName = "CMSNAME:6400";
int batchSize = 1000;
  • Save your changes.
  • The script can be run by calling: http://<servername>:8080/InfoViewApp/deleteFailedInstancesV3.jsp
To delete Audit logs of Failed instances deletion:


Note: Take backup of your Auditing database before making the below mentioned changes. The steps provided below are for Oracle database and needs to be modified as per your requirements:

//To check the number of failed jobs
select count(Event_Type_ID)
from audit_event
where (start_timestamp between 'dd-MON-yy' and 'dd-MON-yy') and Event_Type_ID = 327682

//To delete the number of failed jobs

delete
from audit_event
where (start_timestamp between 'dd-MON-yy' and 'dd-MON-yy') and Event_Type_ID = 327682

delete
from audit_detail d
where not exists (select 'x'
from audit_event e
where e.event_id = d.event_id
and e.server_cuid = d.server_cuid)

- Is there a permanent fix available for these issues?
A. EDST affects only BOE XI 3.1 SP3 and FP 3.1-FP 3.5. As per SAP the issue is scheduled to be fixed in SP4 and FP 3.6 which is to be released shortly. A Limited Availability Fix (LAFIX) is available to stay away from the issue if DST has not occurred in your region. Links to download the fixes are mentioned below:



Installation Instruction:

For Windows:
  1. Unzip the install package.
  2. For Windows deployments, open a cmd window and invoke the installer using:

  • "setup.exe SKIP_PATCH_VERSION_CHECK=1"
  • If prompted to redeploy the web applications, choose NO.
For Unix:
  1. "./install.sh <install dir> INSTALLMODE=silent,install REDEPLOYWEBAPPS=false CMSNAMESERVER=<cmsname> CMSPORTNUMBER=<cms port> CMSPASSWORD=<password>"
The fix will update the problematic SchedulerSubsystem.dll.