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.

Transpose in CMS Query Builder 1.3

In a standard database, each field of a row contains a single value. This is not the case for BO CMS database. A property can have a quite complex structure. A simple example is SI_DSL_UNIVERSE property for Web Intelligence documents that indicate what Unx universes are used by the document.

SELECT si_name, si_universe, si_dsl_universe
FROM ci_infoobjects
WHERE si_kind = 'Webi'
AND si_instance = 0
AND si_name = 'Customer Profitability Comparison, by Customer'

The result in the SAP BO Query Builder will look like:

Exporting metadata for such object using “Include containers” in Biclever CMS Query Builder will create a single row and the fields for the property will be SI_DSL_UNIVERSE.1, SI_DSL_UNIVERSE.2, SI_DSL_UNIVERSE.3, SI_DSL_UNIVERSE.SI_TOTAL

The wide format is sometimes inconvenient. “Transpose” will create a row for each value of each array.

CMS Query Builder 1.3

This version includes the following improvements:

  • Undo with Ctrl-Z, Redo with Ctrl-Y.
  • Execution of the query in the selection.
  • Possibility to create new, edit and delete templates from the Template menu.
  • Corrections in the default templates.
  • Tool tip for column names.
  • Perceiving of the value type in Excel (previously dates were exported as strings)
  • Possibility to select Name when selecting an object (previosly ID and CUID were only possibilities. Name is useful for names of groups and users etc)
  • A new transpose feature for exporting containers.

How to Enable Semantic Layer Java SDK

The prerequisite to using Unx Documenter is to have Semantic Layer Java SDK enabled. However it is not enabled during default installation of SAP BusinessObjects client tools. Here is how you can enable it:

Open Program and Features:

Find the client tools and double click on them (or right click and select Uninstall/Change):

Note that the option Uninstall/Change is only available on the base installer (it is not available on patches). When you run Uninstall/Change on the base installer, it will detect the current patch level and modify according to the current level of patch of the platform.

Also note that on Windows 10, the option Modify is grayed out. You need to click Uninstall. This will start setup program. (Double check that you selected full/base installer and not patch)

In the client tools setup, select Modify:

Click Next on language selection. Add Semantic Layer Java SDK and complete installation with Next.

You are ready to go.

SAP BI Platform Support Tool

If you are a SAP BO administrator or a consultant, you will find the following SAP tool very helpful.

SAP BI Platform Tool is designed for supporting BI Platform administration. It simplifies the process of reporting on the landscape configuration, performing root cause analysis tasks, and delivering performance optimization and go-live services.

This tool is free of charge and is maintained by SAP.

You can find more details and download the tool from the tool’s page on SAP Community Wiki

Unx Universe Documentation

You can quickly create PDF documentation of a Unx universe from IDT (Information Design Tool). But PDF is not good if you need to analyze universe in some way. For this purpose, it is better to have Unx metadata in Excel spreadsheet. You can use Biclever Unx Documenter (UnxDoc) to extract Unx information to Excel spreadsheet. In this post we will describe both ways of documenting Unx universe.

Creating PDF documentation from IDT

You can create separate PDFs for business layer, data foundation, and connection.

Open IDT and login.

Retrieve Unx universe to IDT.

Right click on the item you want to document (for instance, business layer), and select Save as.

Creating PDF documentation of UNX in IDT

After this, you will be able to select the destination and metadata elements to be exported:

Selection of elements for PDF documentation of UNX in IDT

The documentation looks good and ready for printing. If you need to create some documentation of your universes quickly, this is the easiest way.

PDF documentation of UNX created in IDT

However if you need to use the documentation for any practical purpose, you will need a more structured format.

Creating XLSX documentation using Biclever Unx Documenter

Download Biclever Unx Documenter from Software > Unx Documenter. Unpack it to a preferred folder. Check if you have Semantic Layer SDK enabled.

Start the tool using unxdoc.bat and log in.

Select a universe

Click Process and then Export result. Select destination XLSX file.

The universe metadata will be exported to Excel spreadsheet. Now you can easily filter, search and analyze the information in Excel.