Thursday, June 11, 2009

RIDC - New Connector to Oracle UCM

As required sometime, you might need to access and interact with Oracle UCM externally.

Originally, Oracle UCM exposes two kinds of interfaces to be used:

1. SOAP Web Service

2. Content Integration Suite (CIS)

Remote Intradoc Client (RIDC) is new in latest release.

In contrast with both CIS and SOAP, the RIDC connector is very lightweight and simple to use. There's no WSDL or J2EE bloat at all; RIDC is just a "Plain Old Java Object" wrapper around UCM web services... so it's very easy to embed in a Java application.

To get started, download the most recent version of the Content Integration Suite from Oracle. This ZIP file contains two folders: one for the new RIDC connector, and one for the standard CIS connector. I'd suggest you take a look at the "ridc-developer-guide.pdf" before you go any further. The samples and JavaDocs are also very useful, but you can peruse them later.

Basically, it's a very simple API in which you create and open a connection with UCM, build up a dataset, and call a service. The data is then returned to you that you can map to java objects to act upon.

The hardest part is to figure out what services in UCM to call and what parameters to pass. You'd better to bookmark our Services Reference Guide for those information.

Before using it, copy the RIDC library "oracle-ridc-client-10g.jar" to the java project.

Here are some sample snippets:

(1) Create and Open a connection to UCM

//arguments needs to connect to UCM
String idcConnectionURL = "idc://localhost:4444";
String username = "sysadmin";
String password = "idc";

//Create the IdcClient
IdcClientManager clientManager = new IdcClientManager ();
IdcClient client = clientManager.createClient (idcConnectionURL);
IdcContext userContext = new IdcContext(username, password);

(2) Ping Server

//Create the DataBinder and populated it with needed information for
//the service call
DataBinder dataBinder = client.createBinder ();
dataBinder.putLocal ("IdcService", "PING_SERVER");

//Join the binder and the user context and perform the service call
ServiceResponse response = client.sendRequest (userContext, dataBinder);

//Convert the response to a dataBinder
DataBinder responseData = response.getResponseAsBinder ();

//Display the status of the service call
System.out.println (String.format("Ping Server response: %s", responseData.getLocal ("StatusMessage")));

UCM and WCI integration

Lots of customers are interested in the integration between UCM and WCI.

There are several ways to achieve it:

1. Deploying CPS portlets provided by UCM: you have to install the CIS before deploying those portlets

2. Gateway the UCM pages in WCI: there are always some problems especially on javascript, which disables some functions of it.

3. Embed the UCM pages in WCI through iframe

4. Developing the custom portlets for those UCM functions like check in, search etc.

Thursday, June 4, 2009

Unreadable data through Oracle SAP Adapter

When connecting to SAP through Oracle SAP Adapter in Oracle BPEL, the data of Chinese characters inserted into SAP from BPEL is unreadable. But those data in BPEL is correct.

After checking the whole environment, we noticed that the JVM of OC4J Container running SAP Adapter doesn't contain the encoding parameter.

Here we made the below changes on OC4J JVM settings:


Then it worked properly.