Thursday, August 6, 2009

Confusing Error Messages

There are many types of error messages in BusinessObjects Enterprise and other Business Objects products that are misleading. Misleading in a way that when you read the error message you start searching at the wrong place for an solution.

One example of such an error message in Crystal Reports is: "The report could not be opened from BusinessObjects Enterprise.", "Possibly the report is on a different BusinessObjects Enterprise system than the one you are currently logged onto. If the problem persists, please contact your administrator.".



It also depends which version of Crystal Reports you are using. The error message above is for version 11, 11.5 and 12. If you are using version 10 you get another error message. That message is much better at describing the cause of the error.

The cause for this error message was that the user lacked a security permission for Crystal Reports report objects. Not that obvious when you study the error message, or what do you think?!?

Wednesday, July 15, 2009

.NET SDK Development Error

I have a strange issue while developing a .NET application with the BusinessObjects Enterprise XI 3.1 SDK/API.

I am trying to delete users from the repository which is a fairly straightforward task. The problem is that I receive an error message with the following text:

ERROR: User.RemoveUsers():System.Runtime.InteropServices.COMException (0x80041E09):Failed to commit objects to server :Delete operation failed.
at CrystalDecisions.Enterprise.ISInfoStore.Commit(ISInfoObjects InfoObjects)
at CrystalDecisions.Enterprise.InfoStore.Commit(InfoObjects infoObjects)
...

Here are an excerpt of the C# source code lines causing the error:

...
IObjects.Delete(IObject);
IStore.Commit(IObjects);
//IObject.DeleteNow();
...

First you make an delete of the InfoObject (which is a User object in this case) by using the Delete() method of the InfoObjects collection. The next source code line commits the deletion back to the repository (database) using the Commit() method of the InfoStore object. The error occurs when trying to commit.

I have also tried to use the commented source code line, the DeleteNow() method of the InfoObject object, but with the exact same problem.

For the fun of it I translated the source code to VBScript using COM SDK in WSH instead with the exact same source code lines. This worked without any problem. VBScript source code excerpt shown below:

...
oInfoObjects.Delete(oUser)
oInfoStore.Commit(oInfoObjects)
...

To make it even more interesting I translated the code to Java. The code for deleting users in Java is the very same. And it also worked without any issues. Java source code excerpt shown below:

...
infoObjects.delete(infoObject);
infoStore.commit(infoObjects);
...

I have also tried to compile and run the .NET version of my application in a BOE XI R2 environment but with no luck, the same error message occured.

So my question is: There must be something I am missing here - can someone explain what I am doing wrong?

Tuesday, June 2, 2009

Thursday, January 22, 2009

Authentication And Scheduling Problems

We have had strange issues in BusinessObjects Enterprise XI R2 and 3.0 where;

  1. Log in with AD Authentication stops working. A timeout occurs after a while. Users without AD aliases can log on without any problems.
  2. When scheduling reports the report job gets stuck in status Pending.

These two issues started at the same time but we interpreted them as separate issues. That was a wrong assumption.

After a lot of investigation and testing we isolated the problem to the BOE DB repository. The problem was due to changes in the availability of one of the AD groups that was registered under AD Authentication in CMC/Authentication. The same problem would occur if a NT group would be removed or made unavailable.

The solution for this problem was to remove the group that caused the system to hang. After that, it all worked again.

We have had these issues a number of times now in different systems and it's mind-boggling how the functionality in the system can be designed in this way. This function is a core part of the system and should not have this behavior!

Why does the scheduling stop working if there are verification problems against a domain? Well, when the CMS starts a scheduled job it checks to see if the user has the rights to run the report. At that point the system does a verification against the group and if that group are unavailable the session is hung until timed out.

Does anyone else had similar issues?

Monday, January 19, 2009

Wednesday, January 7, 2009

BOXIr2 Version Numbers - Update

Version number for SP5 has been added to the list.

http://boinshort.blogspot.com/2007/05/boxir2-version-numbers.html

Update Objects

When migrating from one BusinessObjects Enterprise XI version to another you need to perform an update of the CMS repository. This step is started via the Update Objects button in Central Configuration Manager (CCM).



What does this step exactly do? Well, difficult to say, but what I know through documentation
and SAP Support is this:

  • Adds properties to the objects in the CMS that the new BOE version requires.
  • Updates the internal representation of the CMS if that has changed in the new BOE version.
  • All the pointers to reports will be created. If any pointers are corrupted they will be
    restored.
  • All server objects will be recreated and the communication is restored between servers.- The activity Universe will be loaded in the repository.
  • Updates the sample reports and Universes.

Have I missed something?