Continuous Integration with Apiary, Dredd, and Wercker

There are many tools in the market to design, develop, and test API’s. Some of these tools could be used separately. Some others could be combined. Every time a change is introduced in the design or implementation of an API, it would be nice to have tests and builds run automatically. Continuous Integration (CI) is a software […]

Extracting Data from Oracle Analytics Cloud using REST

Introduction This post provides a simple method of extracting data from Oracle Analytics Cloud (OAC) using Business Intelligence Publisher (BIP) REST web services. Refer to REST API for Oracle BI Publisher for details. It builds upon and uses the analysis from the post ‎Extracting Data from Oracle Analytics Cloud using SOAP A key differentiator in OAC and OBIEE […]

API Platform Cloud Service REST API scripts and REPL using Python

Introduction This blog introduces a few useful Python scripts written to repeatedly perform common administrative tasks and development operations on an API Platform Cloud Service instance. The scripts are written in Python and can be executed on all Python 3.6+ supported platforms Why These scripts are written keeping in mind a few real life use […]

Loading Data from Oracle Field Service Cloud into Oracle Analytics Cloud using ODI and REST – Part III

Introduction In December, 2016 Oracle announced Oracle Data Integrator (ODI) release 12.2.1.2.6 which contains significant new features including RESTful services. This three-part series details a method of extracting and loading data from Oracle Field Service Cloud (OFSC) into Oracle Analytics Cloud (OAC). It is a companion to the A-Team post Loading Data from Oracle Field Service Cloud […]

Loading Data from Oracle Field Service Cloud into Oracle Analytics Cloud using ODI and REST – Part II

  Introduction In December, 2016 Oracle announced Oracle Data Integrator (ODI) release 12.2.1.2.6 which contains significant new features including RESTful services. This three-part series details a method of extracting and loading data from Oracle Field Service Cloud (OFSC) into Oracle Analytics Cloud (OAC). It is a companion to the A-Team post Loading Data from Oracle Field Service […]

Loading Data from Oracle Field Service Cloud into Oracle Analytics Cloud using ODI and REST – Part I

Introduction In December, 2016 Oracle announced Oracle Data Integrator (ODI) release 12.2.1.2.6 which contains significant new features including support for RESTful services. This three-part series details a method of extracting and loading data from Oracle Field Service Cloud (OFSC) into Oracle Analytics Cloud (OAC). It is a companion to the A-Team post Loading Data from Oracle Field […]

Loading Data from Oracle Field Service Cloud into Oracle BI Cloud Service using REST

Introduction This post details a method of extracting and loading data from Oracle Field Service Cloud (OFSC) into the Oracle Business Intelligence Cloud Service (BICS) using RESTful services. It is a companion to the A-Team post Loading Data from Oracle Field Service Cloud into Oracle BI Cloud Service using SOAP . Both this post and […]

Loading Data from Oracle Identity Cloud Service into Oracle BI Cloud Service using REST

Introduction This post details a method of extracting and loading data from Oracle Identity Cloud Service (IDCS) into the Oracle Business Intelligence Cloud Service (BICS). It builds upon the A-team post IDCS Audit Event REST API which details the REST API calls used. One use case for this method is for analyzing trends regarding audit events. […]

Loading Data from Oracle Field Service Cloud into Oracle BI Cloud Service using SOAP

Introduction This post details a method of extracting and loading data from Oracle Field Service Cloud (OFSC) into the Oracle Business Intelligence Cloud Service (BICS). A compelling reason to use such a method is when data is required that is not in the standard daily extract. Such data might be planning (future) data or data […]

Loading Data into Oracle BI Cloud Service using OTBI Analyses and SOAP

Introduction This post details a method of loading data that has been extracted from Oracle Transactional Business Intelligence (OTBI) using SOAP into the Oracle Business Intelligence Cloud Service (BICS). The OTBI instance may either be Cloud-Based or On-Premise. This method may also be used to load data from Oracle Business Intelligence Enterprise Edition (OBIEE). It […]

Loading Data into Oracle BI Cloud Service using BI Publisher Reports and REST Web Services

Introduction This post details a method of loading data that has been extracted from Oracle Business Intelligence Publisher (BIP) into the Oracle Business Intelligence Cloud Service (BICS). The BIP instance may either be Cloud-Based or On-Premise. It builds upon the A-Team post Extracting Data from Oracle Business Intelligence 12c Using the BI Publisher REST API. […]

Custom Message Data Encryption of Payload in SOA 11g

Introduction This article explains how to encrypt sensitive data (such as ssn, credit card number, etc ) in the incoming payload and decrypt the data back to clear text (or original form) in the outgoing message. The purpose is to hide the sensitive data in the payload, in the audit trail, console and logs. Main […]

How to Recover Initial Messages (Payload) from SOA Audit for Mediator and BPEL components

Introduction In Fusion Applications, the status of SOA composite instances are either running, completed, faulted or staled. The composite instances become staled immediately (irrespective of current status) when the respective composite is redeployed with the same version. The messages (payload) are stored in SOA audit tables until they are purged. The users can go through Enterprise […]

How to emulate 10g Adapter start/stop behaviour by manipulating the InboundThreadCount parameter

Introduction In 10g, there was a mechanism for suppressing consumption of messages at the Adapter level. That mechanism can not be used in 11g. But there is a way… Main Article The way to do this is to set the InboundThreadCount in the appropriate MBean to zero. This will effectively suppress consumption of messages – […]

Loading unique passwords with OIM bulk load

Introduction Using Oracle Identity Manager’s bulk load tool is a great way to load large numbers of user records into OIM in an efficient and performant way. The standard and documented usage of the tool does not make provision for the loading of unique user passwords, though. This article describes an approach that can be […]

Encapsulating OIM API’s in a Web Service for OIM Custom SOA Composites

Introduction This document describes how to encapsulate OIM API calls in a Web Service for use in a custom SOA composite to be included as an approval process in a request template. We always recommend customers to follow this approach when trying to invoke OIM’s APIs inside SOA composites used as approval processes for the […]

Updating a task from .Net

In this previous post I showed how to use the TaskQueryService to query tasks.  In this post, I am going to take this one step further and update the task payload and process the task.  In order to do this, … Continue reading

OIM 11g Notifications

Notifications are one of the multiple features that were improved in OIM 11g release. The previous limitation of sending text based emails (out-of-the-box emails) only is gone.Out-of-the-box templates for events like ‘Reset Password’, ‘Create User…

Example Using the WebCenter Native Page Service API

Recently I received a request to create a task flow, which would be able to programmatically set security permissions to a (Spaces) group space page.  Of course WebCenter Spaces OOTB already has a supporting UI (from the Manage Page Link) for this task.  However, whatever the requirement is for enabling this functionality, it is good to know that there is a public API to code against.  You can view the documentation here.  In this example, since I need to interact with the Page Service, I need to create an instance of the Service:

Scope mScope = ServiceContext.getContext().getScope();
String scopeToUse = “defaultScope”;
if (mScope != null){
    scopeToUse = mScope.getName();
}
PageService mPageService =
PageServiceFactory.createInstance(new PageServiceConfig((MDSSession)ADFContext.getCurrent().getMDSSessionAsObject(), scopeToUse));

In this code fragment mScope contains the MDS based information of the particular group space.  For example, in this example:

Scope[name=MyGroupSpace, guid=s6dbba758_c69f_4602_af4d_0834b84b3dde]

There are also 2 methods that will enable the extraction of useful information about the scope itself. One is the getName(), which return the group space name, and the other getGUID(), which returns the unique id of the group space location in MDS.  These methods are great for deriving code, which can be use to pass as parameters of certain methods. Later on I will give an example of this to find the “path” of the page I want to add security on.  Once I have established the page service, I can now create code to complete my use case:

mPageService.invalidateUserCache(getUserName());
String grantee = “martin”;
String permisssions = “edit, view”;
String initPath = “/oracle/webcenter/page/scopedMD/”;
String testPath = initPath + mScope.getGUID() + Page2.jspx;
PageDef pageDef = mPageService.getPage(testPath);

// This get page in MDS at location:
// oracle/webcenter/page/scopedMD/s6dbba758_c69f_4602_af4d_0834b84b3dde/Page2.jspx

mPageService.changePagePermission(CustomPagePermission.class.getCanonicalName(),pageDef.getContentMRef(), true);
mPageService.grantPagePermission(pageDef.getContentMRef(), grantee, permissions);
mPageService.saveChanges();
mPageService.invalidateScopeCache();

There are 2 steps actually in getting this to work correctly.  The first step is that the page permission must be set to use “CustomPagePermission” page security.  The default is “PagePermission”.  This is achieved by using the changePagePermisssion().  The next step is to set the new grants by using the grantPagePermission().  This method takes as its parameters, the page “path” (notice how I use the scope methods to help me create the page path), and grantee name (either a user or group, which has been defined in ldap provider, for example) , and the new permission(s), a String that has the values separated by commas.  Valid values are: manage, update, delete, personalize, view.
After invoking the code, I can query the PageSecurity Manager to check my policy updates:

page policy oracle.webcenter.page.model.security.PagePolicy@137fa30
Page : /oracle/webcenter/page/scopedMD/s6dbba758_c69f_4602_af4d_0834b84b3dde/Page2.jspx granted to martin with permission(s) [edit, view]

Well there you have it.  A simple example showing how easy it is to use the WebCenter APIs!