Oracle Business Intelligence (OBI) query generation and federation across different layers:
Oracle Business Intelligence (OBI) query generation and federation across different layers:
For Oracle BI 12c custom content such as images or pdf help files needs to be placed in the following directory:
where /../ is a dynamic folder name such as v-PLM12aFeu7Y.
Within a Report or Dashboard this path may be referenced using the following syntax:
fmap:foldername/file_name (if a subfolder “foldername” was created below /res)
the below links provide further information on using fmap or placing custom resources within Oracle BI:
Storing Custom Files Locally and Using the fmap Function to Reference Them
How to configure static content in OBIEE 12c
The following Error message was display when exporting the BAR file from Oracle BI 12c:
SEVERE: Error while reading application-role. apr 12, 2017 1:53:22 PM oracle.bi.jazn.bar.JaznFileExport ProcessApplicationRole SEVERE: Error while reading application-role. apr 12, 2017 1:53:22 PM oracle.bi.jazn.bar.JaznFileExport RemoveUnrequiredNodes SEVERE: Failed on removing unrequired node during export.com.sun.org.apache.xerc es.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 3-byte UTF -8 sequence. apr 12, 2017 1:53:22 PM oracle.bi.jazn.bar.plugin.JaznMetadataManagerGenericPlug inImpl exportServiceInstance SEVERE: Failed in modifying content of migrated jazn file D:\workDir\exportSICus tomization\ssi\metadata\authmodel\jazn\jazn-data.xml apr 12, 2017 1:53:22 PM oracle.bi.bar.si.framework.handler.JaznServiceInstanceHa ndler exportServiceInstance SEVERE: Failed running exportServiceInstance API of oracle.bi.jazn.bar.plugin.Ja znMetadataManagerGenericPluginImpl oracle.bi.bar.si.framework.plugin.MetadataPluginException: Failed in modifying c ontent of migrated jazn file D:\workDir\exportSICustomization\ssi\metadata\authm odel\jazn\jazn-data.xml at oracle.bi.jazn.bar.plugin.JaznMetadataManagerGenericPluginImpl.export ServiceInstance(JaznMetadataManagerGenericPluginImpl.java:359) at oracle.bi.jazn.bar.plugin.JaznMetadataManagerGenericPluginImpl.export ServiceInstance(JaznMetadataManagerGenericPluginImpl.java:66) at oracle.bi.bar.si.framework.handler.JaznServiceInstanceHandler.exportS erviceInstance(JaznServiceInstanceHandler.java:525) at oracle.bi.bar.si.framework.ServiceInstanceFrameWorkImpl.exportService Instance(ServiceInstanceFrameWorkImpl.java:370) at oracle.bi.bar.si.ServiceInstanceLifeCycleImpl.exportServiceInstance(S erviceInstanceLifeCycleImpl.java:665) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.python.core.PyReflectedFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject.invoke(Unknown Source) at org.python.pycode._pyx133.exportServiceInstance$4(/D:/Oracle/Obiee12c /bi/lib/bi-bar.jar!/wlstScriptDir/ServiceInstanceLifeCycle.py:84) at org.python.pycode._pyx133.call_function(/D:/Oracle/Obiee12c/bi/lib/bi -bar.jar!/wlstScriptDir/ServiceInstanceLifeCycle.py) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.pycode._pyx165.f$0(<console>:1) at org.python.pycode._pyx165.call_function(<console>) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyCode.call(Unknown Source) at org.python.core.Py.runCode(Unknown Source) at org.python.core.Py.exec(Unknown Source) at org.python.util.PythonInterpreter.exec(Unknown Source) at org.python.util.InteractiveInterpreter.runcode(Unknown Source) at org.python.util.InteractiveInterpreter.runsource(Unknown Source) at org.python.util.InteractiveInterpreter.runsource(Unknown Source) at weblogic.management.scripting.utils.WLSTInterpreter.runsource(WLSTInt erpreter.java:1095) at weblogic.management.scripting.WLST.main(WLST.java:227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at weblogic.WLST.main(WLST.java:47) apr 12, 2017 1:53:23 PM oracle.bi.bar.si.framework.ServiceInstanceFrameWorkImpl exportServiceInstance SEVERE: Error during export service instanceoracle.bi.bar.si.exception.ServiceIn stanceLifeCycleException: Failed running CreateServiceInstance API of oracle.bi. jazn.bar.plugin.JaznMetadataManagerGenericPluginImpl apr 12, 2017 1:53:23 PM oracle.bi.bar.si.ServiceInstanceLifeCycleImpl exportServ iceInstance SEVERE: Failed in running all the handlers during export service instance. Traceback (innermost last): File "<console>", line 1, in ? File "/D:/Oracle/Obiee12c/bi/lib/bi-bar.jar!/wlstScriptDir/ServiceInstanceLife Cycle.py", line 84, in exportServiceInstance at oracle.bi.bar.si.ServiceInstanceLifeCycleImpl.exportServiceInstance(S erviceInstanceLifeCycleImpl.java:669) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) oracle.bi.bar.si.exception.ServiceInstanceLifeCycleException: oracle.bi.bar.si.e xception.ServiceInstanceLifeCycleException: BAR-00005
To fix this error the special characters needed to be removed from the Application Role name, such as the following example:
After the removal of the special character from the Application Role name the BAR file could be created successfully.
to change the default format used by the Oracle BI EE 11g the following configuration file needs to be changed:
<dataFormat minDigits="2" maxDigits="2" commas="true" negativeType="minus" xsi:type="saw:number";
After saving and restarting the BI Server, the numbers are displayed with two digits behind the number separator.
After migrating from Oracle BI EE 11g to Oracle BI 12c the RPD consistency checker shows the following Error message with Error # 38197:
Data filter expression VALUEOF(NQ_SESSION.”variable”) for Applicaton Role is considered as non conditional, error: [nQSError: 23006] The session variable, NQ_SESSION.variable, has no value definition
Within OBI EE 11g consistency checker this was neither thrown as a Error message nor as a Warning.
Within the consistency checker of 12c, this is throwing as a error. To fix this a default value needs to be specified for each variable besides the Authorization Block. For this go to Manage| Variables | Session |Initialization Blocks and double click on a Name e.g. Business Groups.
And open “Edit Data Target” within the variable Target area and assure that the Default Initializer as a default value as shown below:
After running the consistency checker again, the error message disappears.
During the installation of Oracle BI 12c (Version 184.108.40.206.0) a Windows service called “Oracle Business Intelligence [bi]” is automatically created to start & stop the BI services (Weblogic + BI Domain) as a Windows service e.g. to auto startup the BI Services in case the complete windows server is re-booted.
For the current version 220.127.116.11.0 a bug exist which configures the Environment variables incorrectly when the Oracle BI installation is not done to the C:\ drive, but another hard drive within the server, such as D:\ . The issue only applies to starting and stopping the BI Services via the Windows Service method and not to starting/stopping via from the start.cmd command line (as the Windows service points to a different start script located in the oracle.bi.sysman directory and does not use the regular bitools/bin/start.cmd script). The incorrect setting of the Environment variables prevents the Windows service from starting the BI Services and the following error is written to the windows services log file:
BI_PRODUCT_HOME set as c:\windows\system32
ORACLE_HOME set as C:\Windows
The system cannot find the path specified
This is caused by an within the start.cmd script which is called from the Windows service “Oracle Business Intelligence [bi]” and located in the following directory:
The script uses the windows shell command pushd and popd to write the current working directory into the session, but doesn’t catch if the installation is done to a different drive from C:\ when performing a cd (change directory) command. This can be seen by the fact that the BI_PRODUCT_HOME and ORACLE_HOME are referencing (pointing) to the patch of the windows cmd tool C:\windows\system32 rather then the correct Oracle BI installation directory.
As a workaround the pushd and popd have been removed from the start.cmd script and the path has been specified for path Environment variables BI_PRODUCT_HOME & ORACLE_HOME.
SET BI_PRODUCT_HOME=D:\Oracle\Obiee12c\bi\ ECHO BI_PRODUCT_HOME set as %BI_PRODUCT_HOME% SET ORACLE_HOME=D:\Oracle\Obiee12c ECHO ORACLE_HOME set as %ORACLE_HOME% SET default_biDomainHome=%ORACLE_HOME%\user_projects\domains\bi
The Official Documentation for the 11g Oracle Business Intelligence (Security Guide) mentions the following key rules about the evaluation of the Presentation Service Privileges:
“Presentation Services privileges control the rights that users have to access the features and functionality of Presentation Services. Privileges are granted or denied to specific application roles, individual users, and Catalog groups using a privilege assignment table.”
The Presentation Service privileges can be access from the following URL: http://hostname:port/analytics/saw.dll?PrivilegeAdmin
“privileges are either explicitly set or are inherited through role or group membership, explicitly denying a privilege takes precedence over any granted, inherited privilege. Meaning that even if Application roles are nested and thus forming a hierarchy any denied privilege takes precedence over inherited grants or directly assigned grants.”
Additionally, the following example is provided within the D. Appendix section of the same Documentation page:
With the following statements regarding the evaluation:
The effective privileges from Executive Role are Denied Administration privilege […] the Sales’ Denied Administration privilege takes precedence over Executive’s granted privilege, as Deny always takes precedence.”
As a showcase, the above has example has been re-created in a simplified version with all Application roles and the Presentation Service privilege for “Access to Administration” within the 18.104.22.168 Oracle BI Version:
The five Application roles of the above diagram have been configured within the Enterprise Manager (EM) Application role configuration:
All five Application roles are also correctly displayed for the User1 within the Oracle Business Intelligence “My Account” view:
Afterwards, the privileges have been configured (with Granted and Denied) for the Application roles within the Presentation Service privileges Administration page:
However, contrary to the rule and the example the “Administration Page” privilege is not denied:
The “Administration Page” privilege is granted for User1 due to the Membership of the Executive Application Role.
For testing purposes the five Application roles of the example have been enhanced to the following six:
With the following test cases and results:
deriving the following rules for the determination of the Presentation Service privileges:
Links to the 11g Documentation:
important file locations for Oracle BI 12c:
|Managed Server logs||/opt/oracle/obiee/user_projects/domains/bi/servers/
|BI Server logs||/opt/oracle/obiee/user_projects/domains/bi/servers/obis1/logs|
|Presentation server logs||/opt/oracle/obiee/user_projects/domains/bi/servers/obips1/logs|
For starting and stopping of Oracle BI 11g the OPMN services was used. The usage of OPMN for starting and stopping the Oracle BI 11g services has also been described in a previous posting.
With Oracle BI 12c, OPMN is not used further anymore. The scripts to start Oracle BI can be found in the following directory:
To start the Oracle 12c instance the following command can be used:
Within linux a alias can be created to call the start script without navigating to the directory each time. To create the alias the bashrc needs to be edited using the following command:
this opens the bashrc file using the gedit editor to add the following lines at the bottom of the file:
alias bistart='/opt/oracle/obiee/user_projects/domains/bi/bitools/bin/start.sh' alias bipsstart='/opt/oracle/obiee/user_projects/domains/bi/bitools/bin/start.sh -i obips1' alias bistop='/opt/oracle/obiee/user_projects/domains/bi/bitools/bin/stop.sh' alias bipsstop='/opt/oracle/obiee/user_projects/domains/bi/bitools/bin/stop.sh -i obips1' alias bistatus='/opt/oracle/obiee/user_projects/domains/bi/bitools/bin/status.sh'
after this the file needs to be saved and the bashrc needs to be executed to take effect:
OPMN allows to control all BI 11g Services including starting and stopping.
The installer often installs two executables into the directory structure:
However only one is typically working right after the installation, the other will throw the following error message:
opmnctl: ORACLE_INSTANCE is not set. opmnctl status requires that ORACLE_INSTANCE be correctly set in your environment. Make sure you are using ORACLE_INSTANCE/bin/opmnctl, or set ORACLE_INSTANCE in your environment.
In this case the working opmn is installed in the following directory:
the status can be check with the following command:
To start an individual service the following command needs to be used:
./opmnctl startproc ias-component=coreapplication_obips1
After this, the Oracle BI Presentation Service is up alive.