Webinar: Quality, Safety, Knowledge Management with Oracle WebCenter Content and ControlCenter

DATE: THURSDAY, DECEMBER 8, 2016
TIME: 10:00 A.M. PST / 1:00 P.M. EST

Join Ryan Companies Vice President of Construction Operations, Mike Ernst, and Fishbowl Solutions Product Manager, Kim Negaard, to learn how Ryan Companies, a leading national construction firm, found knowledge management success with ControlCenter for Oracle WebCenter Content.

In this webinar, you’ll hear first-hand how ControlCenter has been implemented as part of Ryan’s Integrated Project Delivery Process helping them create a robust knowledge management system to promote consistent and effective operations across multiple regional offices. You’ll also learn how ControlCenter’s intuitive, modern user experience enabled Ryan to easily find documents across devices, implement reoccurring review cycles, and control both company-wide and project-specific documents throughout their lifecycle.

Register today.

Register

New to Zoom? Go to zoom.us/test to ensure you can access the webinar.

 

Integrating Android Applications with WebCenter Content Using RIDC

When I first started creating Android applications, I decided to create a demo application that allowed me to search WebCenter Content in order to find and display content from Fishbowl’s main Content Server.  Since Android applications are written in Java, an easy option was to use Oracle’s Remote Intradoc Client (RIDC) API to create the integration.  Fishbowl has used RIDC to integrate a number of our products with WebCenter Content, including our Intranet In A Box and Enterprise Batchloader products, so I had a solid codebase already to work from.  You can find more info on the RIDC API here.    In this post I will walk through the steps required to get RIDC integrated into an Android application as well as create a connection to the Content Server in order to execute a search and return data.

Start by creating a brand new Android application in Eclipse.  If you have not created an Android app before, Google has some really good tutorials that can be found here.  I named my new application WebCenter Search.

Since this new application will be using the internet connection of the phone to query the Content Server, make sure you add the proper permissions to your AndroidManifest.xml file.

<uses-permission android:name="android.permission.INTERNET" />

Next, download the RIDC client jar file from the Oracle WebCenter Content downloads page here.  The RIDC client jar file needs to be dropped into the libs folder of your Android application in order to use it in your app.  Additionally, RIDC requires the Jakarta Commons Http Client jar file in order to communicate over HTTP with the Content Server.  The Jakarta Commons Http Client jar file will need to be dropped into the libs folder of your Android application as well.  You can find more info on that jar file here.  Once those two jar files are in place, your application is ready to integrate with the Content Server.

In practice you will most likely want to create a login page and store a user’s credentials after successful login, and you may also want to have a way for the user to enter and store the Content Server URL to which they are connecting.  I won’t cover those topics here as there are a ton of examples of login pages and storing user preference data if you do a simple Google search.  I will hardcode that information for simplicity sake.

To create a search interface, start by creating a search input field and a search button in the main activity layout of your application.  The search button will have an onClick function (called doSearch in my case) that will perform the search.  I have also created an extra TextView in my layout to demonstrate displaying the results that come back from a search.  My sample layout XML file looks like this:

 

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:orientation=“vertical”>

<EditText

android:id=“@+id/search_field”

android:layout_width=“200dp”

android:layout_height=“50dp” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“50dp”

android:text=“Search”

android:onClick=“doSearch”/>

<TextView

android:id=“@+id/search_results”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”/>

</LinearLayout>

 

Next, initialize the connection to the Content Server in the onCreate method of your main activity by creating IdcClient and IdcContext objects.  The connection will need to be initialized with the CGI path to the Content Server in order to tell RIDC to connect over HTTP instead of over the socket.

public class MainActivity extends Activity {

 

private IdcClient idcClient;

private IdcContext userPasswordContext;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String contentServerURL = “https://myserver.mydomain.com/cs/idcplg”;

IdcClientManager manager = new IdcClientManager();

try {

this.idcClient = manager.createClient(contentServerURL);

this.userPasswordContext = new IdcContext(“weblogic”, “welcome1″);

} catch (IdcClientException e) {

e.printStackTrace();

}

}

}

Once a connection to the Content Server has been properly initialized, you are ready to implement the doSearch method.  Simply pass the required search parameters into a DataBinder object, and execute the GET_SEARCH_RESULTS service using the IdcClient and IdcContext objects created when initializing the Content Server connection.  The results can then be taken from the ServiceResponse object and displayed in your app.  The example below will take all the Content IDs from the search results that are returned and put them in to a comma separated string to be displayed in the app.  Note that since the doSearch method is making a connection over the network, best practice dictates that this process be run in a separate thread so that you don’t lock the main UI thread while the search is being run.  This is handled in the example below by creating a GetSearchResultsTask class to do most of the work.

public void doSearch(View v) throws IdcClientException  {

GetSearchResultsTask gsrt = new GetSearchResultsTask();

gsrt.execute();

}

 

private class GetSearchResultsTask extends AsyncTask<String, Integer, DataResultSet>{

protected DataResultSet doInBackground(String… queryText)

{

DataResultSet searchResults = null;

try {

EditText searchField = (EditText) findViewById(R.id.search_field);

String searchVal = searchField.getText().toString();

DataBinder binder = idcClient.createBinder();

binder.putLocal(“IdcService”, “GET_SEARCH_RESULTS”);

binder.putLocal(“QueryText”, “dDocType <MATCHES> `” + searchVal + “`”);

ServiceResponse response = idcClient.sendRequest (userPasswordContext, binder);

DataBinder serverBinder = response.getResponseAsBinder();

searchResults = serverBinder.getResultSet(“SearchResults”);

} catch (Exception e) {

e.printStackTrace();

}

return searchResults;

}

protected void onPostExecute(DataResultSet searchResults) {

TextView searchResultsView = (TextView) findViewById(R.id.search_results);

String allContentIDs = “”;

List<DataObject> searchResultsList = searchResults.getRows();

for(DataObject result : searchResultsList)

{

String contentId = result.get(“dDocName”);

if(allContentIDs.length() == 0) {

allContentIDs = contentId;

}

else{

allContentIDs += “,” + contentId;

}

}

searchResultsView.setText(allContentIDs);

}

}

When I run the app and do a search, the results look like this:

There is still a lot of work to be done to make this into a usable app, however these basic steps outline the minimum needed to integrate an Android app with the Content Server without having to write the integration pieces yourself.  The major drawback to this approach of course is that it is Android specific and will not work on iOS devices.  If you’re looking for WebCenter Content apps for both Android and iOS, check out the FishbowlToGo app.  The FishbowlToGo app uses Fishbowl’s proprietary JSON-based mobility API to integrate with the Content Server, and has some pretty cool features and functionality.

 

 

WebCenter Suite Real Time Chat – Mobile (Android, RIM, iOS, Windows)

As our continued drive to improve the WebCenter Suite I’m happy to announce that Fishbowl Solutions WebCenter Mobile Real Time Chat integration is soon to be released supporting Android, RIM, iOS and Windows Mobile Devices.

No true tablet application support yet but this is on the roadmap (you can use the mobile app on the tablets today or if your site has been optimised for tablets access chat via the integrated browser solution).

If you’re not familiar with our WebCenter Messaging and Presence integration here is a quick rundown of it’s features.

Supports browser messaging integration with the WebCenter Suite – Portal, Sites & Content. There are no requirements to have a messaging XMPP server ie MS Lync setup; however if you do our solution can integrate with a number of messaging solutions ie – MS Lync, gTalk, etc.

For a preview of our browser integration check out these earlier posts

Addon:: WebCenter Portal Spaces Real Time Chat Instant Messaging and Presence Integration Video.

WebCenter Portal Spaces – Real Time Messaging & Presence Solution.

Oracle ADF Mobile released today!!!!!!

Thats right the press release went out this morning (Here).

Overview
Oracle ADF Mobile is a HTML5 and Java-based framework that enables developers to easily build, deploy, and extend enterprise applications for mobile environments, including iOS and Android, from a single code base. Based on a next-generation hybrid mobile development architecture, Oracle ADF Mobile allows developers to increase productivity, while protecting investments, by enabling code reuse through a flexible, open standards-based architecture.

Oracle is committed to ADF Mobile driving innovating and delivering cutting-edge mobile capabilities across the enterprise, Oracle Applications are planned to be built with Oracle Application Development Framework (ADF), part of Oracle Fusion Middleware.

Check out the latest data sheet here to find out more on ADF Mobile.

Also hit  Oracles Mobile ADF site here to get the latest samples and info on ADF Mobile.