Thursday Jul 21, 2016

Modernize Oracle Forms: Go Mobile! A Webcast You Won't Want to Miss!

As many of you know, Oracle Forms provides the backbone for hundreds of thousands of business applications. However, in today's modern work environment, employees want fast, flexible, easy-to-use mobile apps that can connect to their company's backend data infrastructure.  But how can you take your legacy Forms applications and convert them into what employees expect without rebuilding your entire system at a considerable cost?  

Join us for a live webinar, on Thursday, August 4th at 1pm EDT / 10am PDT, to learn how Oracle Gold Partner, AuraPlayer, can leverage your organization’s existing Oracle Forms systems and Oracle Mobile Cloud Service to create mobile API’s without redevelopment cost or risk.  With this solution, employees can be more more productive - anywhere, anytime!

Martin Jarvis, Oracle Sr. Director of Mobile Market Development, and Mia Urman, CEO of AuraPlayer, will cover the following:

  • How to extend your Oracle Forms applications without having to change a single line of code, while production systems remain untouched
  • How to deliver on a platform that's built on open standards and connects to any app and to any backend system
  • How to deliver modern, on-device apps that use native services (camera, GPS, etc.) for richer Forms capabilities
Sign up for this live webinar today!

Follow us: @OracleMobile

Join the conversation on LinkedIn

Monday Jul 04, 2016

A quick checklist for setting up your Android Studio application for Oracle Mobile Cloud Service

A few months back I wrote a post entitled A quick checklist for setting up your iOS application for Oracle Mobile Cloud Service. The goal being if you're familiar with the steps but you just need a quick reminder, you can use the checklist to ensure you've done everything you need too.

Yesterday somebody asked me for the Android Studio equivalent.  So here we go, a quick list of steps to load the Android MCS SDK into an existing Android Studio application.

Don't forget this is covered in more detail in our YouTube videos, and the Using Oracle Mobile Cloud Service documentation includes detailed instructions too.

  1. Download the Android SDK from MCS and unzip it.
  2. With your favourite file manager copy all the JAR's in the extracted SDK zip directory to your Android Studio project app/lib directory.
  3. Also within the SDK directory extract the IDMMobileSDK zip file.
  4. Returning to Android Studio select File -> New -> New Import, then in the dialog select the IDMMobileSDK subdirectory under the SDK directory you just extracted.  Ensure the Module Name starts with a capital letter I to avoid a bug in some earlier versions of Android Studio.
  5. Still in Android Studio, open the application's build.gradle file and add the following dependencies if not already present:
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':IDMMobileSDK')

  1. With your file manager copy oracle_mobile_cloud_config.xml to your app's app/src/main/assets directory.  If the assets directory doesn't exist create it first.
  2. In Android Studio update the oracle_mobile_cloud_config.xml settings and substitute the required values from the MCS MobileBackend.  An example file can be seen below.
  3. Still in Android Studio update the AndroidManifest.xml file to include the following permissions:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  1. In Android Studio sync the project with the gradle file. If no errors are raised you are done.

An example oracle_mobile_cloud_config.xml file:

<?xml version="1.0" encoding="utf-8" ?>

Friday Jun 24, 2016

Mobile in Chicago

Time flies! Summer is there, and ODTUG KScope is next week. This year, the conference is in Chicago and will run from Sunday June 26 to Thursday June 30. The agenda is full of great mobile sessions, and there’s even a two-hour lab where attendees will get to play with the brand-new Oracle Mobile Application Accelerator (MAX)!

Here is a comprehensive list of everything mobile at KScope 16.

 Day  Time Title Speaker
Sunday (06/26) 9:30 am - 10:30 am Rethink Mobile...for a Great User Experience Frédéric Desbiens, Oracle
Monday (06/27) 11:30 am - 12:30 pm Digital Transformation: Your First Steps with Oracle Mobility Mia Urman, AuraPlayer
Monday 3:15 pm - 4:15 pm Build a Mobile App in 60 Minutes with MAF John King, King Training Resources
Monday 4:30 pm - 5:30 pm Three's Company: Going Mobile with Oracle APEX, Oracle MAF, and Oracle MCS Frédéric Desbiens, Oracle
Tuesday (06/28) 3:30 pm - 4:30 pm Going Mobile: Mobile Application Design Principles for ADF Development Peter Koletzke, Quovera
Tuesday 4:45 pm - 5:45 pm Oracle Applications User Experiences: Trends and Strategy Noel Portugal, Oracle
Wednesday (06/29) 12:45 pm - 1:45 Give MAF a REST: Using REST/JSON Services in MAF John King, King Training Resources
Wednesday 3:15 pm - 5:30 pm Pedal to the Metal: How to Build Mobile Applications with Just a Browser (Hands-on lab) Frédéric Desbiens, Oracle
Wednesday 4:30 pm - 5:30 pm Customer Stories: Oracle Mobile Cloud in Action Mia Urman, AuraPlayer

Even if you can’t make it to Chicago, you should keep your eyes open. Many of the sessions above will likely become an ODTUG webinar in the next few months… And don’t forget that ODTUG members can playback past webinars whenever they like. Membership is affordable; you should consider it!

See you next week in the Windy City!

Thursday Jun 23, 2016

Oracle Mobile Solutions for Oracle E-Business Suite and JD Edwards

Enterprise mobility is here to stay, but many customers are still bound to their desktops due to the lack of a mobile solution. Either that, or existing mobile solutions cannot be easily extended or customized to satisfy unique and demanding business requirements, may also lack “mobile first” capabilities such as push notifications, offline/sync and location services, nor offer insights into the effectiveness of the mobile strategy.

To add to the complexity, ERP installations are often highly customized. As a result, upgrades to newer versions become difficult, very expensive and end up getting deferred. These customers still want to enhance their employee productivity as well as keep pace with technology trends, while planning the transition to a newer application version or perhaps even to a SaaS based offering. They would also like to create an abstraction layer which will help in the future transition by decoupling the mobile implementation from the backend application.

In keeping with the “Build Better Apps Faster with Oracle Mobile” theme, Oracle now offers fully extensible mobile solutions for E-Business Suite and JD Edwards that addresses these issues and more.

Mobile Self Service for Oracle E-Business Suite

B2C apps have set a very high bar for creativity and user experience; as a consequence, users have similar high expectations from the B2E apps that they use every day at work. This is especially important given today’s changing employee demographics and the expectation “there will be an app for that”. Many HR tasks (vacation requests and approvals, for instance) can be performed anytime, anywhere without being tethered to the desktop. Mobile enabling such tasks leads to real time decision making with quick turnaround. It is no surprise that studies have shown the use of mobile HR apps significantly improves job satisfaction and productivity, as well as aiding employee retention and recruitment.

Mobile Field Service for Oracle JD Edwards EnterpriseOne

The effectiveness of a mobile Field Service app increases exponentially when technicians have real time access to data hosted on multiple backend applications (customer provisioning, billing, inventory) at the point of service; are able to receive notifications and alerts in real time; be integrated with social networks to foster a collaborative process as well as having their schedules integrated with products such as Oracle Field Service Cloud to optimize the routing of service request. As Field Service technicians often work in remote locations with unreliable network coverage, a high performant offline experience is also critical for them to be successful.

Mobile Solution Details

The new Mobile Solutions are built using Oracle Mobile Cloud Service – an enterprise grade Mobile Backend as a Service (MBaaS) solution that provides a rich set of mobile platform and client development services to link mobile developers with enterprise data sources and empowers them to create engaging mobile experiences in a simple, intuitive manner.

Oracle is providing the solutions as near turnkey samples with full source code (JavaScript for Self Service Solution, Mobile Application Archives for Field Service Solution) as well as all the artifacts required to integrate with the backend application.

Key Benefits

  • Mobile access to key HR self-service (vacation requests, time cards, approvals, etc) and Field Service (manage service equipment, add incident, inventory availability, create/manage work orders, etc) tasks
  • Empower employees with modern mobile apps with intuitive user experience and self-service capabilities that allow them be more productive - anywhere, anytime, at their convenience.
  • Eliminate complexity of connecting to backend applications via pre-built connectors from Oracle. Backend applications do not require any special modifications or upgrades.
  • Extensible solution: Iteratively augment mobile application with additional services and data from multiple systems of records. Ability for enterprise to scale beyond first mobile app.
  • Mobile apps built can be reused even after backed apps are modernized.
  • End to end solution, provided and supported by Oracle.
  • As these solutions are built using Oracle Mobile Cloud Service, they can also use the built in Analytics support to: analyze adoption trends, measure how (and how often) mobile applications are used, what OS’s/devices are being used.

  • In addition, analytics can also be used to diagnose work flow patterns. This is especially useful in the Field Service scenario to discover impediments that prevent service orders from being completed. For instance, are too many work orders on hold because technicians don’t have the right parts? Or perhaps technicians are unable complete their work orders on time because customers aren’t at home.


All MCS customers have access (at no additional cost) via the “Solution Downloads” link in the MCS Console. In addition to the source code, there is documentation on the solution architecture, configuration and setup as well as information on how to customize the apps. Customers also have the option of working with an Oracle partner to build additional extensions specifically tailored for their business requirements using these solutions.

More Information

For details on how you can Simplify Enterprise Mobility using the Oracle Mobile Platform, see:

Get the latest on Oracle Mobile at @OracleMobile

Friday Jun 17, 2016

Simplify on-boarding experience for enterprise mobile users with EMM managed app configurations

Enterprise mobile app developers, and stake holders from specific line-of-businesses, work very hard to get mobile apps to their end-users very quickly.  The last thing they want to see is their users go through a terrible on-boarding experience . A simplified on-boarding experience for enterprise mobile users is not optional , but an absolute necessity.  Oracle Mobile Application Framework simplifies on-boarding for enterprise mobile users through it’s built in ability to support EMM managed app configurations. 

What are Managed App Configurations ?
Managed App Configurations are native APIs provided by iOS and Android, which provide the ability to dynamically set the properties of an application through an EMM console. This feature is extremely useful to manage the life cycle of an enterprise mobile application.

What are the benefits offered by Managed App Configurations ?
Managed App Configurations offer various advantages, and some of them are listed below.

1.Simplified on-boarding experience for enterprise mobile app users
Setup process for end users can be simplified , and help desk , documentation burden can be alleviated .For example, IT Administrators can leverage managed app configurations to pre configure the parameters of an enterprise mobile application, like Url, Email, Host, Port , Tenant Id etc so the end-users don’t have to enter them manually. This significantly improves the on-boarding experience for end-users.

2. End-Point Management
IT Administrators can change the API Endpoints, or any other backend connectivity related end-points which are used by the mobile application.

3. UI Customization
Change the look and feel of an application by loading different skins which are pre-seeded within the application.

Since Managed App Configurations provide a dynamic way to publish configuration related data to enterprise mobile apps, developers can use this for any use case which involves changing the behavior , look & feel , or functionality of the application dynamically. This feature can be used to support wide set of use cases related to enterprise mobile app lifecycle. 

Also, the community provides excellent best practices on how to leverage the native Managed App Configuration feature on iOS and Android (for Work) platforms.

How can enterprise mobile app developers , IT Administrators benefit from Managed App Configurations ?

Even though the Managed App Configuration is a native feature of iOS and Android, the process of leveraging this feature is a coordinated effort between an enterprise mobile app developer, and an EMM IT Administrator. 

  • Role of an enterprise mobile app developer:
Enterprise mobile app developers must define these configurations (examples : Url, Email, Host, Port ,Tenant Id etc) within their apps. Also, these configuration values must be read within the app during the lifecycle of the app to appropriately change the behavior of the app. For example, the mobile app developers can define the routing of their application in such a way that, if the Url,Email,Host values are already pre populated in the app, the application skips the configuration page and switches over to the login page. 

While handing over the app to the IT Administrator, the mobile app developer provides some documentation on the type of configurations which are supported by the app. IT Administrators need this information while uploading and configuring the apps in the enterprise app catalog.

  • Role of an EMM IT Administrator:
EMM IT administrators receive the mobile app, and the documentation on the app configurations which are supported by the app. The IT Admin then logs into the EMM console, uploads the app, and then sets these configuration values on the app. IT Admin can also import the  apps which are listed in the public app store like iTunes,  Google Play and set configurations on them.

How can developers define, and read, Managed App Configurations in Oracle Mobile Application Framework ?

 Developers can define the Managed App Configurations in maf-application.xml file by adding the <adfmf:emmAppConfig> element, as shown in the example below. Each property tag has name , type and description attributes. For more details on the supported data types, MAF developers, and IT Administrators must refer to the documentation from their EMM vendor.

<adfmf:property name=“remoteurl” type=“String” description=“URL of a remote web page“/>
<adfmf:property name="port" type="Integer" description=“Port number of the backend service”/>
<adfmf:property name=“enableEncryption" type=“Boolean" description=“Turn on app level encryption”/>
<adfmf:property name=“refreshDate" type=“Date" description=“Date on which application will be refreshed”/>

You can read the property values at any time in the application lifecycle of your MAF application using the #{EMMConfigProperties} EL expression. For example, write an EL expression as follows to read the value of the remoteurl property: .


You can also register your property change listener to listen to property changes by invoking the following code in a Java bean which implements the PropertyChangeListener interface. For a complete example, look at the snippet of code at the bottom of the blog.


After successfully reading the Managed App Configuration values, how can developers update the endpoints within the MAF application ?

After reading the configuration values, developers can invoke MAF ConfigService APIs to update the endpoints used by the MAF application. Endpoints used by MAF application are typically defined in connections.xml file which comes pre seeded with the application. The code snippet shown below uses the MAF ConfigService APIs to update the endpoint of a connection. In this specific example, line 1 is clearing the existing values of a connection called ‘RemoteURL’. Line 2 is updating the url attribute of a connection called ‘RemoteURL’.  Line3 is updating the application information without navigating away from the current feature. 

1. AdfmfJavaUtilities.clearSecurityConfigOverrides(“RemoteURL”);
2. AdfmfJavaUtilities.overrideConnectionProperty(“RemoteURL”, “urlconnection”, “url”, serverURL);
3. AdfmfJavaUtilities.updateApplicationInformation(false); 

Here is a complete snippet of code which reads , and updates the managed app configurations.

package application;

import javax.el.ValueExpression;
import oracle.adfmf.framework.EMMAppConfigScope;
import oracle.adfmf.framework.api.AdfmfContainerUtilities;
import oracle.adfmf.framework.api.AdfmfJavaUtilities;
import oracle.adfmf.util.Utility;

public class EMMBean implements PropertyChangeListener {

    public EMMBean() {


    // This method reads managed app configurations and updates the connection end points. 
    public void updateConnectionsEndpoints() {
        ValueExpression ve = AdfmfJavaUtilities.getValueExpression(“#{emmAppConfig.remoteurl}”, String.class); // reading a managed app configuration called ‘remoteurl’ which is defined in maf-application.xml
        String remotePageURL = (String)ve.getValue(AdfmfJavaUtilities.getELContext());
        if (!Utility.isEmpty(remotePageURL)) {
            AdfmfJavaUtilities.clearSecurityConfigOverrides(“RemoteURL"); // Clear the existing connection
            AdfmfJavaUtilities.overrideConnectionProperty(“RemoteURL”, “urlconnection”, "url", remotePageURL);// Set a new value (remotePageURL) to the connection

    // This method is invoked when the #{emmAppConfig.remoteurl} property changes
    public void propertyChange(PropertyChangeEvent evt)

    public void addPropertyChangeListener(PropertyChangeListener l)

    public void removePropertyChangeListener(PropertyChangeListener l)

    private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);

    public void setPropertyChangeSupport(PropertyChangeSupport propertyChangeSupport) {
        PropertyChangeSupport oldPropertyChangeSupport = this.propertyChangeSupport;
        this.propertyChangeSupport = propertyChangeSupport;
        propertyChangeSupport.firePropertyChange("propertyChangeSupport", oldPropertyChangeSupport,

    public PropertyChangeSupport getPropertyChangeSupport() {
        return propertyChangeSupport;

Which version of MAF supports the ability to read Managed App Configurations ?

MAF 2.3.1, and future releases.

Which EMM vendors are supported by MAF’s Managed App Configuration API  ?

This feature is certified and supported with AirWatch, MobileIron but it is expected to work with any EMM vendor which supports the native Managed App Configuration feature of iOS and Android.

What are the minimum iOS and Android versions required for Managed App Configuration support ?
iOS9, and Android5.0 (needs Android for Work environment)

MAF Documentation: (Resource for MAF developers )

AirWatch Documentation : (Resource for AirWatch IT Administrators)
Here is a link to AirWatch Mobile Application Management Guide which talks about how to create and apply managed app configurations in AirWatch console. Navigate to Chapter 4 : Internal Applications > Advanced section, which covers this information .

MobileIron Documentation: (Resource for MobileIron IT Administrators)
Here is a link to MobileIron CORE Device Management Guide which talks about how to create and apply managed app configurations in MobileIron CORE console (Resource for IT Administrators)
Look for the section on 'Managed app configuration settings'

Resources from
Here is a link to Managed App Configurations for App Developers guide which is created by the AppConfig community. This guide explains this topic in detail, and covered iOS and Android platforms. 

Tuesday Jun 14, 2016

Learn about Oracle MCS Location Based Services from these new videos

If you've been following the Oracle Mobile blog and our numerous social channels, you will know we've been making big noise about "location based services" recently.  We're pretty excited about this feature set, as "location" is an integral part of mobile user experience, and with the inclusion of the Location Based Services API in the latest MCS release we can now support you in making location a key feature of *your* mobile apps.

To support you moving forward the Oracle Mobile product management team is happy to announce 6 new YouTube videos to get you going, covering the key use cases, core concepts and how to integrate LBS into iOS and Android:

We hope you find these videos useful.  We've just cracked 78 videos on the YouTube channel, essentially free training for you and your business.

Like to keep up to date with more Oracle mobile announcements? Sign up to one of our numerous social media channels promoting including Twitter, LinkedIn, Facebook, YouTube and Google+.


This blog is is dedicated to announcements,tips and tricks and other items related to developing, integrating, securing, and managing mobile applications using Oracle's Mobile Platform. It is created and maintained by the Oracle Mobile product development team.

Archive of past entries

Even More Mobile Development Blogs

Oracle A-Team Site - Mobile Related Entries

Code samples from the Community

Fusion Middleware Blogs


« July 2016