Oracle Transactional Business Intelligence (OTBI) is built on the power of Oracle’s industry-leading business intelligence tool Oracle Business Intelligence Enterprise Edition (OBIEE). This allows users to build powerful data visualization with real-time data that highlights data patterns and encourages data exploration instead of delivering static flat reports. OTBI provides users a wide variety of data visualization options from standard graphs to advanced visuals such as trellis, treemaps, performance tiles, KPIs and others.
Introducing a CI/CD Solution for OTBI
FlexDeploy has an innovative CI/CD solution for managing build and deployment of OTBI and Oracle BI Publisher WebCatalog objects across the pipeline. Using FlexDeploy’s partial deployment model, developers can assemble related catalog objects into packages, build them from source control or a development environment, and deploy into the target environments. Manage all WebCatalog objects, from OTBI Dashboards and Analyses to Oracle BIP Data Models and Reports.
Utilizing the FlexDeploy platform, you will enjoy the same benefits of full featured pipelines, toolchain integration, dashboards, reporting and visibility, and much more.
Additionally, FlexDeploy has a concept called Dynamic Packages. With traditional User Managed Packages, users pick and choose the objects which are required to migrate as part of a change. With Dynamic Packages, by virtue of include/exclude expressions, the packages can automatically calculate their content. For example, a “Payables” package could automatically add objects which belong to the “/shared/Custom/Financials/Payables” path. As new objects are populated in this path, they are automatically added to the package.
This is a powerful feature where artifacts are managed as a consistent set for a module or functional area. Dynamic Packages are available for any FlexDeploy partial deployment project, extending well beyond Oracle Transactional Business Intelligence. Other partial deployment project types, such as Oracle E-Business Suite, JDBC, and File can take advantage of the same features.
“I really like the additions. Really powerful statement of the partial deployment does not deploy ALL objects but rather only those that have changed. The other part I really like is the environment consistency it provides without deploying EVERYTHING but still ensuring that all objects are evaluated. It is a great addition to the product and something we will definitely leverage.”
– Technical Architect, Food Manufacturer
Exploring FlexDeploy’s OTBI Plugin
First, let us take a brief look at the plugin operations for OTBI. These operations are used to build very simple build and deployment workflows.
The build workflow extracts catalog objects for a package from source control or an OTBI development environment and assembles a versioned artifact. The deploy workflow deploys the artifact assembled by the build workflow into a target OTBI environment. Parameters such as the package being built or the target deployment environment are provided as context during the workflow execution, making these very simple workflows reusable across projects and environments.
These plugin operations expose environment properties which tell FlexDeploy how to connect to the OTBI environments. Since the underlying communication is performed using SOAP services, the endpoint can be any server you choose, including the FlexDeploy server itself.
FlexDeploy’s OTBI plugin operations expose a single project-scoped property to define the OTBI WebCatalog object path containing the objects it will manage. The default value is “/shared/Custom”.
The FlexDeploy project’s files are then populated from the environment mapped to the build (or from source control). The file names of the WebCatalog objects are augmented with a file extension mapping to the OTBI object type, enabling easier identification and filtering (e.g. Folder, Data Model, Analysis, Report, etc.).
The project files serve as a repository or catalog of the objects in the OTBI WebCat Object Path for the project. Files from this repository can now be added to User Managed or Dynamic Packages.
With user managed packages, developers can assemble specific files related to a change.
With dynamic packages, developers can configure include/exclude paths using regular expressions to have the package content managed dynamically based on the path of the files in the project catalog/repository. As new files are populated into the project catalog/repository matching the include/exclude paths, the files will be added to the dynamic packages accordingly. Similarly, if files are inactivated from the catalog/repository, or the dynamic include/exclude paths are modified, the content of the package will be dynamically adjusted.
Understanding the Differences Between User Managed and Dynamic Packages
There are use cases to support both user managed and dynamic packages. Dynamic packages are convenient when objects for a functional area move together, or when it’s uncommon that objects within the same path are modified for different delivery schedules. They eliminate the need to update the package whenever new files are populated into the catalog, making it a productivity boost.
The other advantage is that with consistency of how you organize your objects in OTBI with FlexDeploy’s plugin, you can ensure that all related objects are moved together as a collection. Keep in mind that FlexDeploy will only migrate the objects that have changed since the last deployment. Deploying the consistent set of files does not mean that all the files will get migrated each time, as a comparison is performed and any unchanged files will be skipped at execution time.
User managed packages give the ultimate control when you have large teams, or when objects within a functional area are being developed for different delivery schedules. While having to maintain the package content as new files are populated (or files inactivated) it does give the flexibility to move subsets of the changes when not all files in a module or functional area are ready to be deployed.
Building a Package and Delivering Through a Pipeline
Once the packages are created, they can be built and deployed across the environment the same as any other FlexDeploy project. Whether that be adhoc builds and deployments, orchestration through a toolchain integrated pipeline, the platform is at the ready. In the example below, I am building a package and associating it to a release that is tied to a three-stage pipeline. For this example, I have created an OTBI project which will manage the WebCatalog files in “/shared/Custom/Financials” folder.
First, I request to build the package.
Next, on the build request form, I choose to build the package for the February Release, which is bound to my three-stage pipeline.
The build execution begins.
The build execution is complete. The objects in my Payables package are archived from my OTBI development server, zipped, and stored as a versioned artifact (test.1.0.1 in image above) in FlexDeploy’s artifact repository.
Since the build request was tied to a release, when the execution completes the version generated from the build (test.1.0.1) is placed into a snapshot and sent to the pipeline for execution. In this pipeline, you can see that the deployment of the package(s) in the snapshot have completed in Test, and it’s now waiting for QA Manager approval in the QA stage. This pipeline has two manual approvals and two schedules, is integrated with ServiceNow for a gated production approval tied to a change request, and is integrated with Slack to publish a message to users who subscribed to an OTBI channel.
The sky is the limit for the simplicity or advanced integrations in your pipelines!
Continue Discovering the Possibilities with FlexDeploy
Oracle Transactional Business Intelligence is the latest of FlexDeploy solutions which can be rolled into an enterprise DevOps implementation, enabling faster software delivery and happy customers. Integration doesn’t stop at OTBI, FlexDeploy has out-of-the-box solutions for over 100 commercial and open source tools and technologies.