For the default installation of BOE XI 3.1, the following command opens Tomcat properties
"C:\Program Files\Business Objects\Tomcat55\bin\tomcat5w.exe" //ES//BOE120Tomcat
For the default installation of BOE XI 3.1, the following command opens Tomcat properties
"C:\Program Files\Business Objects\Tomcat55\bin\tomcat5w.exe" //ES//BOE120Tomcat
There are a number of undocumented parameters of BIAR Command Line Tool. You might find some of them interesting.
Documented | Parameter | Default | Comment |
yes | action | null | importXML/exportXML |
yes | userName | null | |
yes | password | null | |
yes | CMS | null | |
yes | authentication | null | |
yes | includeSecurity | true | |
yes | exportBiarLocation | null | |
yes | exportDependencies | false | |
yes | importBiarLocation | null | |
yes | exportQuery | ||
yes | exportQueriesTotal | ||
no | exportFileLocation | null | ? |
no | importFileLocation | null | ? |
no | importXmlLocation | null | ? |
no | exportXmlLocation | null | ? |
no | exportXsdLocation | null | ? |
no | rootFolderCUID | null | ? |
no | useLegacyEngine | false | ? |
no | token | null | |
no | resolveDuplicateNames | false | ? |
no | importFileToFRS | true | ? |
no | exportFileFromFRS | true | ? |
no | exportStrict | true | ? |
no | exportWSStrict | false | ? |
no | includeHash | false | ? |
no | importRelationsNotDelta | false | ? |
no | xsdDelta | false | ? |
no | validateXML | false | ? |
no | enforceUnimportable | false | ? |
no | exportCallPlugins | false | ? |
no | importCallPlugins | false | ? |
no | outputIds | false | |
no | twoStepImport | false | ? |
no | validateParents | true | ? |
no | printEvents | false | ? |
no | stacktrace | false |
Export to File Path invalid. (FWM 04005)
Export to File Path invalid. (FWM 04005) com.businessobjects.sdk.biar.BIARException$IOException: Export to File Path invalid. (FWM 04005) at com.businessobjects.sdk.biar.utility.XSDUtility.performAction(XSDUtility.java:541) at com.businessobjects.sdk.biar.utility.XSDUtility.main(XSDUtility.java:901)
The error "CMS operation timed out after 9 minutes" (see below) means that the BO was not able to complete a query to a CMS database. This could be the case when the CMS database became too large (e.g. if the system is affected by the issue described on the SAP note 1448881). A workaround is to increase the timeout in the registry from 9 minutes (which is the default value) to, say, 60 minutes.
HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\CMS\Instances\<instance name>.cms
For 64bit machine:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Business Objects\Suite 12.0\CMS\Instances\<instance name>.cms
com.crystaldecisions.sdk.exception.SDKServerException: CMS operation timed out after 9 minutes. cause:com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2detail:CMS operation timed out after 9 minutes. The server supplied the following details: OCA_Abuse exception 7710 at [.\exceptionmapper.cpp : 79] 48022 {9} …CMS operation timed out after 9 minutes. Thread timeout has expired. at com.crystaldecisions.sdk.exception.SDKServerException.map(SDKServerException.java:107) at com.crystaldecisions.sdk.exception.SDKException.map(SDKException.java:196) at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.queryHelper(InternalInfoStore.java:736) at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.query(InternalInfoStore.java:566) at com.crystaldecisions.sdk.occa.infostore.internal.InfoStore.query(InfoStore.java:167) at org.bukhantsov.javatool.Program.main(Program.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) Caused by: com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2 at com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuseHelper.read(oca_abuseHelper.java:106) at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAi._InfoStoreEx4Stub.queryEx3(_InfoStoreEx4Stub.java:209) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.crystaldecisions.enterprise.ocaframework.ManagedService.invoke(ManagedService.java:425) at com.crystaldecisions.sdk.occa.infostore.internal._InfoStoreEx4Proxy.queryEx3(_InfoStoreEx4Proxy.java:364) at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.queryHelper(InternalInfoStore.java:708) … 8 more
The error in BO XI 3.1 SP3 causes millions of failed instances generated (SAP note 1448881 "Multiple instances spawned after daylight savings time change"). If the problem is not solved timely, the BO is getting slow, services is starting to fail often. It is usually possible to remove the instances programmically (SAP note 1568718 "How to delete all failed instances in XI3.1 programmatically"), however this script does not work if the number of the failed instances large – millions of records.
SAP note 1654183 "How to delete all the failed instances in SAP BusinessObjects Enterprise manually" is not that clear and more over it is incorrect. The correct script (for Oracle) is given below.
1. Stop SIA.
2. Make backup of CMS database and FileStore folder.
3. Execute the following script:
CREATE TABLE cms_infoobjects6_temp AS ( SELECT * FROM cms_infoobjects6 WHERE schedulestatus != 3 OR schedulestatus IS NULL); TRUNCATE TABLE cms_infoobjects6; INSERT INTO cms_infoobjects6 SELECT * FROM cms_infoobjects6_temp; COMMIT; DROP TABLE cms_infoobjects6_temp;
4. Start SIA and test the system.
See the SAP documentation for details.
It is not possible to login to BusinessObjects using Internet Explorer when the report is embedded into another web page using IFRAME and OpenDocument link.
<iframe width=100% height=100% src="http://SERVERNAME:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocName=Balance+Sheet">
You get the login screen but nothing happens when you try to login (you are staying on the same page). The OpenDocument link works when it is opened in the browser directly.
This happens because Internet Explorer gives lower level of trust to IFRAME pages. IE calls this "third-party" content. If the page inside the IFRAME doesn't have a Privacy Policy, its cookies are blocked (which is indicated by the eye icon in status bar, when you click on it, it shows you a list of blocked URLs). The cookies are used to store BO session. As the session cannot be saved, the user cannot login.
1. Create folder w3c in
[Business Objects]\Tomcat55\webapps\
2. Create file p3p.xml in the folder with the following code:
<META> <POLICY-REFERENCES> <POLICY-REF about="/w3c/policy.xml"> <INCLUDE>/</INCLUDE> <COOKIE-INCLUDE/> </POLICY-REF> </POLICY-REFERENCES> </META>
Starting from BusinessObjects XI SP5, SAP Sybase SQL Anywhere is used as default database for BusinessObjects system databases (CMS and Audit). This post describes steps how to add a new database and provides some information about SQLAnywhere tools.
By default on 64bit Windows, SQLAnywhere will be installed in folder:
C:\Program Files (x86)\Business Objects\SQLAnyWhere12
The executables and database files are located in the folder:
C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin
CMS database is stored in two files BOE120.db and BOE120.log (log here is database log not a text file). Audit database is stored in BOE120_AUDIT.db and BOE120_AUDIT.log.
The databases are running on SQLAnywhere server which is represented by Windows service BOE120SQLAW. BO gets access to the databases through ODBC system data sources BOE120 and BOE120_AUDIT.
We want to add another database TEST. Add the database to server and create a new ODBC data source.
Before trying this out, you must be aware that you might need to roll back if some step fail. This post may contain mistakes; your configuration may be different from the one that used here; you can make a mistake. Make sure that you made backup, ideally snapshot of your VM etc.
First we need to create the database files. This can be done with DBINIT tool. You can get the list of all parameters exectuting the tool without parameters. The simplest form for creation database is
dbinit -dba <uid>,<pwd> <database>
dbinit -dba sa,xxxxxx test.db SQL Anywhere Initialization Utility Version 12.0.1.3436 CHAR collation sequence: 1252LATIN1(CaseSensitivity=Ignore) CHAR character set encoding: windows-1252 NCHAR collation sequence: UCA(CaseSensitivity=Ignore;AccentSensitivity=Ignore;PunctuationSensitivity=Primary) NCHAR character set encoding: UTF-8 Creating system tables Creating system views Setting option values Database "test.db" created successfully |
The files test.db and test.log are created in the current folder.
To adjust the SQL Anywhere server setting, you need to stop the corresponding service as well as Server Intelligence Agent service. You can do this windows NET command:
net stop "Server Intelligence Agent (WINPC)" The Server Intelligence Agent (WINPC) service is stopping. The Server Intelligence Agent (WINPC) service was stopped successfully. |
Now we can stop SQL Anywhere service using tool DBSVC. To find the name of the service, you can run dbsvc -l. It is most likely BOE120SQLAW. To stop the service, use dbsvc -x <name>. To start the service, use dbsvc -u <name>
dbsvc -x BOE120SQLAW SQL Anywhere Service Utility Version 12.0.1.3436 Service "BOE120SQLAW" stop pending. Service "BOE120SQLAW" was stopped successfully. |
You can get the command that was used to create the service using dbsvc -l -cm
dbsvc -l -cm dbsvc -t Network -s Automatic -as -sn "BOE120SQLAW" -y -w "BOE120SQLAW" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\Bin\dbsrv12.exe" -x tcpip(PORT=2638) -n BOE120SQLAW_sa "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\BOE120.db" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\BOE120_AUDIT.db" |
Let's add the path to the new database in the end
dbsvc -t Network -s Automatic -as -sn "BOE120SQLAW" -y -w "BOE120SQLAW" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\Bin\dbsrv12.exe" -x tcpip(PORT=2638) -n BOE120SQLAW_sa "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\BOE120.db" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\BOE120_AUDIT.db" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\TEST.db" SQL Anywhere Service Utility Version 12.0.1.3436 Service "BOE120SQLAW" was created successfully. |
Starting the services again.
dbsvc -u BOE120SQLAW SQL Anywhere Service Utility Version 12.0.1.3436 Service "BOE120SQLAW" start pending. Service "BOE120SQLAW" was started successfully. net start "Server Intelligence Agent (WINPC)" The Server Intelligence Agent (WINPC) service is starting. The Server Intelligence Agent (WINPC) service was started successfully. |
If the service BOE120SQLAW fails, check the paths to the databases.
Now let's create the ODBC data sources. You can use dbdsn -ls to list all system data sources, and command dbdsn -ls -cm to see the commands used to create those data sources.
dbdsn -ls SQL Anywhere Data Source Utility Version 12.0.1.3436 SQL Anywhere System Data Sources: BOE120 BOE120_AUDITC:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin>dbdsn -ls -cm dbdsn -y -ws "BOE120" -c "UID=sa;DBN=BOE120;ServerName=BOE120SQLAW_sa" dbdsn -y -ws "BOE120_AUDIT" -c "UID=sa;DBN=BOE120_AUDIT;ServerName=BOE120SQLAW_sa" |
So we can use the following command to add our data soure dbdsn -y -ws "TEST" -c "UID=sa;DBN=TEST;ServerName=BOE120SQLAW_sa"
dbdsn -y -ws "TEST" -c "UID=sa;DBN=TEST;ServerName=BOE120SQLAW_sa" SQL Anywhere Data Source Utility Version 12.0.1.3436 System Data Source "TEST" written to registry. |
You will also see the data source in the list of system data sources.
Now is the time to test connection. This can be done with DBPING command.
dbping -c UID=sa;DBN=TEST;PWD=xxxxxx;ServerName=BOE120SQLAW_sa -d SQL Anywhere Server Ping Utility Version 12.0.1.3436 Connected to SQL Anywhere 12.0.1.3436 server "BOE120SQLAW_sa" and database "TEST". Ping database successful. |
Starting from BusinessObjects XI SP5, SAP Sybase SQL Anywhere is used as default database for BusinessObjects system databases (CMS and Audit). This post describes basics how to connect to the system databases using iSQL.
The default location of iSQL is folder
C:\Program Files (x86)\Business Objects\SQLAnyWhere12\bin\dbisqlc.exe
To connect to database, you need connection parameters such as server and the database. The default name of the server is BOE120SQLAW_sa, the name of database is BOE120. You can find these parameters in the parameters of ODBC data source.
After this, you will able to run SQL queries against CMS database.
List of BO tables
select * from systable where creator=(select user_id from sysuser where user_name='sa')
Query CMS_InfoObjects6 table
select * from CMS_InfoObjects6 where ObjectID=12
Determine the size of table CMS_InfoObjects6 in bytes
select db_property('pagesize')*(systable.table_page_count+systable.ext_page_count) from systable join sysuser on systable.creator=sysuser.user_id where systable.table_name='CMS_InfoObjects6' and sysuser.user_name='sa'
Here are some simple templates for OpenDocument links
http://localhost:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&iDocID=00000
http://localhost:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sIDType=CUID&iDocID=AAAAAAAAAAAAAAA
http://localhost:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sPath=[Folder],[Subfolder]&sDocName=Document
http://localhost:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sIDType=CUID&iDocID=AAAAAAAAAAAAAAA&sInstance=Last
Problem
A Webi document has a query based on Excel (Excel data source). The document can be refreshed in Web Intelligence Rich Client, but it fails in Infoview with WIS 30270 error. The following errors appear in the log:
ExtensionFactoryImpl.cpp:201:void __thiscall WICDZExt::ExtensionFactoryImpl::createRemoteExtension(const class WICDZExt::ExtensionDescriptor &,struct WICDZExt::IExtension **): TraceLog message 24650 2014/10/17 09:02:31.474|>>|E| |13916|15036| |||||||||||||||ExtensionFactoryImpl::createRemoteExtension has failed : ExtensionFactoryImpl.createExtension has failed : java.lang.Exception: extension creation failed : null object ExtensionFactoryImpl.cpp:202:void __thiscall WICDZExt::ExtensionFactoryImpl::createRemoteExtension(const class WICDZExt::ExtensionDescriptor &,struct WICDZExt::IExtension **): TraceLog message 24651 2014/10/17 09:02:31.474|>>|E| |13916|15036| |||||||||||||||java.lang.Exception: extension creation failed : null object at com.businessobjects.cdz_ext.ExtensionFactoryImpl.createExtension(Unknown Source) at com.businessobjects.cdz_ext.server.ExtensionFactoryServant.createExtension(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invoke(CommonTransportInterceptor.java:93) at com.businessobjects.framework.servers.common.proxy.cglib.MethodInterceptorChain.intercept(MethodInterceptorChain.java:136) at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.WICDZExtensions.ExtensionFactoryPOA$$EnhancerByCGLIB$$9792817d.createExtension(<generated>) at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.WICDZExtensions.ExtensionFactoryPOA._OB_op_createExtension(Unknown Source) at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.WICDZExtensions.ExtensionFactoryPOA._invoke(Unknown Source) at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.ServantDispatcher.dispatch(ServantDispatcher.java:234) at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._OB_dispatch(POA_impl.java:1917) at com.crystaldecisions.thirdparty.com.ooc.OB.DispatchRequest_impl.invoke(DispatchRequest_impl.java:75) at com.businessobjects.framework.servers.platform.adapters.ebus.orb.ThreadPoolDispatchStrategy$Dispatcher.run(ThreadPoolDispatchStrategy.java:124) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) at java.lang.Thread.run(Thread.java:595) kc3dsxls.cpp:276:long __thiscall tbXlsDS::xtDSExcel::CreateXDS(void): TraceLog message 24652
Solution
AddNode.bat -name LOCALHOST -update -cms LOCALHOST:6400 -user Administrator -password "" -siaport 6410
These steps describe the procedure for re-deploying web applications for BO XI 3.1 with Tomcat 7. Re-deploying is required, for instance, if you uninstall a language pack from Business Objects.
To avoid error
"Version check failed. The source system or source BIAR file must be of an older version. The destination system system must be of the current version. (UMT 20012)"
you can use (at own risk) the option
-internal_use_only_noversioncheck
BO BI 4 Tomcat generates some logs in the root folder such as SBOPWebapp_BIlaunchpad, SBOPWebapp_CMC, SBOPWebapp_Mobi_Server:
To move the logs to another folder, add Tomcat Java option
-Duser.home=C:\Program Files (x86)\SAP BusinessObjects\BO Logs
The Refresh button in 4.1 looks quite anonymous. It is possible to get the "Refresh" text back.
You can edit file
C:\Program Files (x86)\SAP BusinessObjects\tomcat\webapps\
and change the line
,{actionId:"refreshDPMenu", text:"}
to
,{actionId:"refreshDPMenu"}
The button has actually text but it is overriden with empty string.
You will also need to update this file in tomcat work folder.
C:\BO\SAPBusinessObjects\tomcat\work\Catalina\localhost\
(The users might need to clear temporary files in order to see the change)
PS. This is probably not the right way to do this but it seems to be the most straightforward.
This is a quick and dirty solution to change the banner in LaunchPad.
Do not forget to backup the files before any change. See SAP note 1659690 for a better solution.
HTTP Status 500 – com.wedgetail.idm.sso.ProtocolException: com.wedgetail.idm.spnego.server.SpnegoException: com.dstc.security.util.asn1.Asn1Exception: Bad tag encountered: 78
Use:
http://localhost:8080/BOE/BI/logonNoSso.jsp
Below is the list of all relations in BusinessObjects 4.1 SP7. The relations are useful if you need to find dependent objects in Query Builder. A relations have a type and a name. Here is how to use it.
The relation Webi-Universe is Parent-Child, so Webi is Parent and Universe is Child. If you want to find all Webi documents (parents) that use a specific universe (child), you need to use query:
SELECT SI_NAME FROM CI_INFOOBJECTS, CI_APPOBJECTS, CI_SYSTEMOBJECTS WHERE PARENTS("SI_NAME='Webi-Universe'","SI_NAME='{the name of the universe}'")
If you want to find all universes (children) that are used by a specific Webi document (parent), you need to use the query:
SELECT SI_NAME FROM CI_INFOOBJECTS, CI_APPOBJECTS, CI_SYSTEMOBJECTS WHERE CHILDREN("SI_NAME='Webi-Universe'","SI_NAME='{the name of the webi document}'")
TYPE | SI_NAME |
Child-Parent | ActionSet-Action |
Child-Parent | ActionUsage-Action |
Parent-Child | AlertNotification-User |
Child-Parent | Application-Action |
Parent-Child | Application-DependencyRule |
Parent-Child | Application-Relationship |
Child-Parent | Category-Document |
Parent-Child | CommonConnection-AOPresentation |
Parent-Child | CommonConnection-AOWorkbook |
Parent-Child | CommonConnection-Document |
Parent-Child | CommonConnection-MDAnalysis |
Parent-Child | CommonConnection-pQuery |
Child-Parent | Container-ActionUsage |
Parent-Child | CrystalReport-BusinessView |
Child-Parent | CustomRole-Object |
Parent-Child | DataConnection-Universe |
Child-Parent | DefaultObject-Application |
Child-Parent | Document.discussion |
Parent-Child | Document-BIVariant |
Parent-Child | Document-DSL.Universe |
Parent-Child | Document-Excel |
Parent-Child | Document-Follower |
Parent-Child | Document-PersistenceQuery |
Parent-Child | Document-UnFollower |
Child-Parent | DSL.DataSecurityProfile-SecuredConnections |
Child-Parent | DSL.SecurityProfile-Principal |
Child-Parent | DSL.Universe-BusinessSecurityOptions |
Child-Parent | DSL.Universe-BusinessSecurityProfile |
Child-Parent | DSL.Universe-DataSecurityOptions |
Child-Parent | DSL.Universe-DataSecurityProfile |
Child-Parent | DSL.Universe-SecuredConnections |
Parent-Child | EnterpriseData-Flash |
Parent-Child | EnterpriseNode-MON.ManagedEntityStatus |
Parent-Child | EnterpriseNode-Server |
Parent-Child | Event-AlertNotification |
Parent-Child | Event-Principal |
Parent-Child | Event-Principal-Exclusion |
Parent-Child | EventSource-AlertNotification |
Parent-Child | EventSource-Event |
Parent-Child | Folder-MON.ManagedEntityStatus |
Child-Parent | InfoObject-Shortcuts |
Child-Parent | Install-EnterpriseNode |
Parent-Child | Install-Service |
Parent-Child | Install-ServiceContainer |
Parent-Child | Manifest-ReplicableObject |
Parent-Child | MON.ManagedEntityStatus-MON.MonitoringEvent |
Parent-Child | MON.ManagedEntityStatus-MON.Subscription |
Parent-Child | PlatformSearchContainer-PlatformSearchObject |
Child-Parent | Plugin-Action |
Parent-Child | Profile-Principal |
Parent-Child | PublicationArtifacts-SourceDoc |
Parent-Child | Publication-ExcludedPrincipal |
Parent-Child | Publication-FC |
Parent-Child | Publication-Principal |
Parent-Child | Publication-PrincipalReRun |
Parent-Child | Publication-Profile |
Parent-Child | PublicationScopeBatch-Artifact |
Parent-Child | PublicationScopeBatchDoc-Artifact |
Parent-Child | QAAWS-WEBI |
Child-Parent | ReferringDoc-SharedDoc |
Parent-Child | RelationalConnection-CrystalReport |
Parent-Child | Relationship-Application |
Child-Parent | RemoteCluster-ConflictingObjects |
Parent-Child | ServerGroup-MON.ManagedEntityStatus |
Child-Parent | ServerGroup-Server |
Parent-Child | Server-MON.ManagedEntityStatus |
Parent-Child | ServiceCategory-MON.ManagedEntityStatus |
Parent-Child | ServiceCategory-Service |
Parent-Child | ServiceContainer-Server |
Parent-Child | Service-Server |
Parent-Child | Service-ServiceContainer |
Parent-Child | Service-ServiceDep |
Parent-Child | ServiceUsedBy-Service |
Child-Parent | Tenant-ServerGroup |
Child-Parent | Universe(Core)-Universe |
Child-Parent | Universe-UserGroup |
Parent-Child | UpgradeManagementTool-LogicalGroup |
Parent-Child | UpgradeManagementTool-Plugin |
Parent-Child | User-BIVariant |
Parent-Child | User-CommonConnection |
Child-Parent | User-Favorites |
Parent-Child | User-FavouriteMEStatus |
Parent-Child | UserGroup-Folder |
Child-Parent | UserGroup-User |
Child-Parent | User-Inbox |
Parent-Child | User-MON.ManagedEntityStatus |
Parent-Child | User-MON.Subscription |
Child-Parent | User-PersonalCategory |
Parent-Child | User-VisualDiffComparator |
Parent-Child | VISI.Lums-ManagedConnectionRel |
Parent-Child | VISI.Lums-UniverseRel |
Parent-Child | WebiFHSQL-DataConnection |
Parent-Child | Webi-Universe |
Parent-Child | XL.XcelsiusEnterprise-DataSource |
Parent-Child | XL.XcelsiusEnterprise-XL.Query |
BO 4.x has a possibility to customize the user interface of Web Intelligence for specific groups of users. For instance, you may want to hide "Design Mode" interface elements for report viewers who are not supposed to edit reports.
This can be done in Central Configuration Management in Groups:
The problem is that the change will be applied for all users who belong to the group. If a report designer belongs to the group, it will not be able to see the disabled interface elements even if the user belongs Administrators group.
A solution is to create a group of non administrators group (say Others) and apply user interface customization for this group.
However it is a tedious work to maintain two groups Administrators and Others. I have created a tool which allows to maintain the Others group. If a user is not Administrators group (e.g. new user) or if it is removed from Administrators group, the tool will add the user to Others group. If a user is added to Administrators group, it will be deleted from Others groups.
Here is the link to archive: othersgroup-1.0.zip
The archive includes executable and source code:
The batch file has the following parameters you may need to change.
The location of BusienssObjects:
set BO=C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0
BO Administrator credentials:
set BOADMIN=Administrator set BOPASS= set BOSERV=localhost set BOAUTH=secEnterprise
The groups names:
set EVERYONE=Everyone set ADMIN=Administrators set OTHERS=Others
This post describes the steps to repair CMS database and Filestore using SAP BusinessObjects reposcan.exe.
Note that this may delete some items from CMS or Filestore if the dependencies are not found. Make sure that you have made necessary backups before applying reposcan.
You can run the tool without repairing option (or with -repair off). This will scan the environment and make the report of inconsistencies which will be saved to the output folder.
1. Create folder C:\Reposcan
2. Create file reposcan.ini in the folder
-dbdriver sqlanywheredatabasesubsystem -connect "UID=dba;PWD=1-Password;DSN=BI4_CMS_DSN" -dbkey "[[qoNXDD3yCYuHLyTpqyj9Cw]]" -inputfrsdir "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\FileStore\Input" -outputfrsdir "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\FileStore\Output" -outputdir "C:\Reposcan" -repair on
For Oracle, the first two line should be:
-dbdriver oracledatabasesubsystem -connect "UID=<user>;PWD=<password>;DSN=<dsn>"
For SQL Server:
-dbdriver sqlserverdatabasesubsystem -connect "UID=<user>;PWD=<password>;DSN=<dsn>"
The value for dbkey can be found in Central Configuration Manager under CMS Cluster Key Configuration:
Here you can also see DNS under CMS System Database Configuration.
3. Create file reposcan.bat
"C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\reposcan.exe" -optionsfile "C:\Reposcan\reposcan.ini" pause
4. Run the file reposcan.bat
Sometimes a connection cannot be promoted by Promotion Management with the error:
Resolution Status=Copied, Dependency Status=All the required dependencies are included., Commit Status=Commit attempted and failed., Promotion Status=Failure : Relationship would not be a tree after update so bailing.
It may help to promote connection using BiarEngine. This can display a better message explicitly saying object's ID causing the dependency issue, for instance: