Error when running UnxDoc on BO 4.1 SP7 (LocalResourceServiceImpl.load)

Early versions of BusinessObjects Semantic Layer SDK has an error that may cause failure of UnxDoc on importing universe. A typical error looks as follows:

Importing [.unx]
Error
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=0, size=0
at org.eclipse.emf.common.util.BasicEList.get
at java.util.Collections$UnmodifiableList.get
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsSdkLovPromptConverter.convertLovColumn
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsSdkLovPromptConverter.convertLovColumn
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsSdkLovPromptConverter.convertAssociatedLovs
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsSdkLovPromptConverter.convertAssociatedLovs
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsSdkLovPromptConverter.convertAssociatedLovs
at com.sap.sl.sdk.authoring.businesslayer.internal.services.MdsToSdkBusinessLayerConverter.createSdkModel
at com.sap.sl.sdk.authoring.businesslayer.internal.services.BusinessLayerModelToModel.createSdkModel
at com.sap.sl.sdk.authoring.local.internal.services.LocalResourceServiceImpl.createSdkBusinessLayer
at com.sap.sl.sdk.authoring.local.internal.services.LocalResourceServiceImpl.loadInternal
at com.sap.sl.sdk.authoring.local.internal.services.LocalResourceServiceImpl.load
at com.biclever.gui.unxdoc.UnxMetadataExtractor.extract
at com.biclever.gui.unxdoc.UnxTool.run
at com.biclever.gui.GuiProcessProcessingTask.doInBackground
at com.biclever.gui.GuiProcessProcessingTask.doInBackground
at javax.swing.SwingWorker$1.call
at java.util.concurrent.FutureTask$Sync.innerRun
at java.util.concurrent.FutureTask.run
at javax.swing.SwingWorker.run
at java.util.concurrent.ThreadPoolExecutor.runWorker
at java.util.concurrent.ThreadPoolExecutor$Worker.run
at java.lang.Thread.run

The exact error trace may be different but the common line is the following:
at com.sap.sl.sdk.authoring.local.internal.services.LocalResourceServiceImpl.load

The error occurs on loading universe by the BO SDK before the universe is imported to the tool. Therefore there is nothing we can do in UnxDoc to avoid the issue.

The issue is fixed by SAP in higher version of BusinessObjects (e.g. BO 4.2 SP6).

The issue is most likely caused by some internal universe issue. Usually it is not possible to find it by Information Design Tool. The log above corresponds to an issue with list of values based on business layer query with missing query. Unfortunately the only way to find such objects is to review all list of values manually from IDT.

Error when running UnvDoc on BO 4.1 SP12, 4.2 SP6 (The RPC server is unavailable)

If you use UnvDoc for BO 4.1 SP12, 4.2 SP6, you may encounter the following errors.

“Unable to cast COM object of type ‘Designer.ApplicationClass’ to interface type ‘Designer.IApplication’.”

“The RPC server is unavailable”

“QI for IEnumVARIANT failed on the unmanaged server”

The issue is caused by an error in Universe Designer Tool API introduced in some of Service Packs
of SAP Business Objects. We are not able to fix it on our side. Hopefully it will be resolved in future Service Pack or Patch.

We do not know yet the exact Service Pack when the issue was introduced. UnvDoc should fully work for BO 4.1 SP7, 4.2 SP3.

Workaround

As workaround, you should avoid importing universes using UnvDoc tool. Instead follow the following steps:

  1. Login to Universe Design Tool and import universes that you want to export to Excel. Close UDT.
  2. Open UnvDoc and login. Open the universes using the button “Open…”
  3. Export metadata to excel using “Quick View” or “Save to Excel”

Unx Documenter with Windows AD

First you need to make sure that you can run Information Design Tool with Windows AD.

1) Make sure that you have c:\winnt\bscLogin.conf and c:\winnt\krb5.ini files. They may also be located under c:\Windows. If you do not have these files on your PC, they should be available on BO server.

2) Add the following lines to the end of C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\InformationDesignTool.ini

-Djava.security.auth.login.config=c:\winnt\bscLogin.conf
-Djava.security.krb5.conf=c:\winnt\krb5.ini

3) Try to login with Windows AD credentials. If any issue, resolve them before proceeding with unxdoc.

To setup UnxDoc, perform the following steps:

1) Open the batch file unxdoc.bat

2) Find the line

START "" %JAVA%\bin\javaw.exe -Dbusinessobjects.connectivity.directory="%CD%" -cp "%CP%" com.biclever.gui.Program

3) Add the parameters after javaw.exe (in one line, separated by space. There should be no spaces in the path. There should be no space before or after =. E.g.

START "" %JAVA%\bin\javaw.exe -Djava.security.auth.login.config=c:\winnt\bscLogin.conf -Djava.security.krb5.conf=c:\winnt\krb5.ini -Dbusinessobjects.connectivity.directory="%CD%" -cp "%CP%" com.biclever.gui.Program

4) Save the file

5) Start unxdoc.bat and try to login with your Windows AD credentials.