Tuesday, October 11, 2016

Setting Up Employee Self Service V2 - Part 2 - The database data


Continuing our series on looking into the newest version of Oracle's EBS Mobile Applications,  we now move on to Part II - in which we upload the relevant database data.

We assume here you have an EBS instance you can use.  For our purposes we will use a Vision instance as it is well understood as the sample Oracle database for E-Business Suite.

Our steps are as follows

1. Load the database Data 

In order to do this : 
(copypasta from the tutorial information)
  1. Navigate to the selfservice-backend/EBS/seeded directory to access the necessary scripts.
  2. Open 01_seed_test_users.sql in a text editor and edit the username information in as needed.
  3. Run the following scripts as the APPs user:
    01_seed_test_users.sql
    02_create_person.sql
    03_create_user.sql
    04_add_resp.sql

OK so let's upload the files :
Done.

There doesn't look like there's any edits needed to the sample data


Insert into TEST_PERSONS (SL_NO,USERID, FIRST_NAME, LAST_NAME, EMAIL, SEX) values (1,'appsol1', 'Douglas', 'Smith', 'dsmith@oracle.com', 'M');
Insert into TEST_PERSONS (SL_NO,USERID, FIRST_NAME, LAST_NAME, EMAIL, SEX) values (2,'appsol2', 'Michael', 'Davis', 'mdavis@oracle.com', 'M');
Insert into TEST_PERSONS (SL_NO,USERID, FIRST_NAME, LAST_NAME, EMAIL, SEX) values (3,'appsol3', 'Patricia', 'Miller', 'pmiller@oracle.com', 'F');
Insert into TEST_PERSONS (SL_NO,USERID, FIRST_NAME, LAST_NAME, EMAIL, SEX) values (4,'appsol4', 'Linda', 'Williams', 'lwilliams@oracle.com', 'F');

so let's go with that.
Let's run these scripts as the APPS user ?


Sourcing the RUN File System ... [oracle@bd8bc7 ~]$


[oracle@bd8bc7 mobilesamp]$ sqlplus apps



SQL*Plus: Release 10.1.0.5.0 - Production on Tue Oct 11 13:06:41 2016

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> @01_seed_test_users.sql

Table created.


1 row created.


1 row created.


1 row created.


1 row created.


Commit complete.

SQL> @02_create_person.sql


PL/SQL procedure successfully completed.

No errors.


Part 3 fails wth 

SQL> @04_add_resp.sql
DECLARE
*
ERROR at line 1:
ORA-20001: APP-FND-02604: One or some of the following data is not valid:
APPLICATION_SHORT_NAME=PER, RESPONSIBILITY_KEY=EMPLOYEE_DIRECT_ACCESS_V4.0,
SECURITY_GROUP=202.
ORA-06512: at "APPS.APP_EXCEPTION", line 72
ORA-06512: at "APPS.FND_USER_PKG", line 3191
ORA-06512: at line 29

BUT 
select * from FND_SECURITY_GROUPS_VL
  2  ;


SQL> set linesize 32000
SQL> /

ROW_ID             SECURITY_GROUP_ID SECURITY_GROUP_KEY             CREATED_BY CREATION_DATE      LAST_UPDATED_BY LAST_UPDATE_DATE   LAST_UPDATE_LOGIN SECURITY_GROUP_NAME                                                            DESCRIPTION
------------------ ----------------- ------------------------------ ---------- ------------------ --------------- ------------------ ----------------- -------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AAAjqwAAeAAAATWAAA                 0 STANDARD                                1 09-OCT-98                      120 22-OCT-01                          0 Standard                                                                       Default Security Group
AAAjqwAAeAAAATWAAB                 1 GOVERNMENT                           1318 07-OCT-02                     1318 07-OCT-02                    1826651 Government                                                                     Government Security Group

SQL>

Let's try secgroup STANDARD instead ? Edit the scripts and now

[oracle@bd8bc7 mobilesamp]$ sqlplus apps/apps @03_create_user.sql

SQL*Plus: Release 10.1.0.5.0 - Production on Tue Oct 11 13:34:24 2016

Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


PL/SQL procedure successful

[oracle@bd8bc7 mobilesamp]$ sqlplus apps/apps @04_add_resp.sql

SQL*Plus: Release 10.1.0.5.0 - Production on Tue Oct 11 13:34:55 2016

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


PL/SQL procedure successfully completed.

No errors.
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@bd8bc7 mobilesamp]$

OK now we have it loaded in the next blog we will put in the OTL changes needed to have a good experience in EBS 


Setting Up Employee Self Service V2 - Part 1



Following my last post, it's time to start setting up our system so that we can implement E-Business Mobile Solutions !

To get up and running we follow the tutorial at http://www.oracle.com/webfolder/technetwork/tutorials/cloud/MCS_Packaged_Apps/EBS%20Self-Service%20Apps/ebs-self-service/ebs-self-service-v2.html#section5s2

Here's a generic picture from the tutorial of what it all looks like; we need to take all the pieces below and configure them


There are several steps to do and we will blog as we go.   The mobile application will call Mobile Cloud Service , which will in turn call an Integration back to  E-Business Suite which will invoke the relevant functions in E-Business Suite.

We will start from the left hand side and this will encompass four tasks

  1. Configure the EBS Instance
  2. Configure EBS to work with  ICS
  3. Set up ICS
  4. Configure ICS Users and Roles 
  5. Download and Install the ICS On-Premises Agent. 
Once that is done we will blog some more about setting up ICS and MCS, and then finally we will look at the UI.

There is a big zip file to download that has the code and data for the tutorial, so download and unzip it to a folder.
On to the next post, what to do with the database data 
Thanks for Reading 
Chris 

Oracle's new E-Business Mobile Cloud - Employee Self Service V2



Oracle have just released the latest version of their mobile solutions for E-Business Suite.

This takes a far more integrated and extensible approach to customization , using Oracle's own Mobile Cloud Service, and Integration Cloud Service.

Over the next few blogs I hope to be working through Oracle's own example to show how compelling this proposition is, and to demonstrate its extensibility and suitability to use as a candidate for RMAD tooling,  so we can enable some Citizen Developers via Oracle MAX

This is very exciting .

See

https://blogs.oracle.com/mobile/entry/mobile_solutions_employee_self_service


API Gateways



In this, the last of this little set of Blogs,  we'll talk about API Gateways

We have talked about Citizen Developers and RMAD Tools.  These processes, tools and people use API Gateways - but what services do these tools provide


this brings us almost immediately to a 'microservices conversation'  so let's talk about that for a minute .
We've seen many large and unwieldy SOA projects which have large goals.  Microservices approaches the same end goals as SOA , although from a different route.   Wikipedia says it very well indeed
'The philosophy of the microservices architecture essentially equals to the Unix philosophy of "Do one thing and do it well"' ( e.g. tools like grep, sed, - and pipeline them together ) 
https://en.wikipedia.org/wiki/Microservices

Some of the goals of Microservices

  • The services are small - fine-grained to perform a single function.
  • The organization culture should embrace automation of deployment and testing. This eases the burden on management and operations.
  • The culture and design principles should embrace failure and faults, similar to anti-fragile systems.
  • Each service is elastic, resilient, composable, minimal, and complete.


So in order to take advantage of Microservices we need tools that allow for them to be assembled into functionality.  Typically microservices are exposed as REpresentational State Transfer (REST) services returning JavaScript Object Notation (JSON)  

One class of tools that provides these services is known as an API Gateway 

What kind of functionality does a typical API Gateway provide 

There are two main types 
  • Functional enablement
  • Non-functional enablement. 
For Functional enablement, we are talking about assembling Microservices from other Microservices - so, for example, if we had to get a customer balance from one system(microservice), and a customer name and address from another (microsystem) , another Microsystem might be an aggregation of the two - this would be a functional difference that the Gateway might provide. 

For Non-functional requirements can can provide services that the Microservice may not be set up or even designed to handle, yet are necessary. 

For example : 
  • Throttling ( avoid too many requests to a microservice ) 
  • Developer enablement/Customer enablement ( API Keys to provide security )
  • Transport Level Security (TLS1.2 Endpoints ) 
  • Load Balancing 
  • Billing (in a service economy, more and more APIs are being charged for ) 


API Gateways are an important field 

What does the market look like 
You have the traditional vendors like Oracle who have a strong offering,  but in addition you have the main PAAS vendors - for example 




As more and more services are assembled from heterogenous cloud services these products will become super-critical in businesses' journey to the Cloud

Version1's experience is that these products will be critical and key. 

EU Cyber Security Directive 2016/1148/EU



For most people EU regulations can be a good cure for insomnia . However just recently directive 1148 was ratified which deals with Cyber Security
Directive Link

For the first time it places the onus on Member states to identify Essential Services ( Electricity, Air, water, rail etc ) and ensure that they have specific measures in place to mitigate against Cyber Attack

"Member States shall ensure that operators of essential services take appropriate and proportionate technical and organisational measures to manage the risks posed to the security of network and information systems which they use in  their operations. Having regard to the state of the art, those measures shall ensure a level of security of network and information systems appropriate to the risk posed. "

For other organizations like search engines an onus is placed on them to work in an "Entire Union" approach.

The Department of Communications notes that

"
Directive 2016/1148/EU will have direct implications for many firms and utilities in the State. Many of these firms and utilities are to be designated as 'operators of essential services' with security obligations and incident reporting requirements binding on them.  These will include:

electricity, gas and oil companies
airlines, shipping firms, ports and airports
rail and road authorities, traffic management authorities
banks, other credit institutions, some financial intermediaries
hospitals and clinics
water distribution and Internet based companies
This Directive will also result in Ireland having to regulate particular multinational corporations who have their European headquarters based in Ireland and provide digital services in Europe. These digital services are online/ecommerce marketplaces, online search engines and cloud computing services.
"
http://www.dccae.gov.ie/communications/en-ie/Internet-Policy/Pages/Directive-Implications.aspx




Rapid Mobile Application Development and Oracle MAX



In my previous post I discussed the rise of the Citizen Developer. The tools they use, though, cannot be code-oriented; they have to offer quick applications that meet the business need.

Most applications developed now, are either "Mobile-First", or "Mobile Only"

This plus the needs of the Citizen Developer has given rise to a class of tools known as Rapid Mobile Application Development or, RMAD  for short

( Sometimes also known as "Low-Code" )

So we have a couple of goals


  • Develop "Good Enough" applications rapidly
  • increase the pool of people who can develop for mobile 

So what does an RMAD Tool look like . Oracle offer a really compelling set of Mobile Cloud services, under the banner of Oracle Mobile Cloud Service (MCS)  and one component of this is the Oracle Mobile Application Accelerator - known as Oracle MAX


MCS lets you publish a structured set of REST services, which you can then leverage in MAX> 

MAX Requires no Code, and is developed entirely in the browser ; no Java, No javascript, No Objective-C , just drag and drop, and map services to forms 

This enables all of what we want to do as a Citizen Developer; when the time comes for deployment we can scan a QR Code on our phone and be up and running in seconds - no worrying about supporting infrastructure,  cross-platform development ( Max works for Android and IPhone ) and IT is reassured because they know you are only using the services they have provided through MCS or another API Gateway

We will talk some more in the later post about API Managers 

Here is a link to Oracle MAX Max Information and here is some  documentation on MCS https://cloud.oracle.com/en_US/opc/mobile/features


Thanks ! 

Chris 


Rapid Mobile Application Development and the rise of the Citizen Developer



As I work for a busy IT Services company we see projects after projects being done at our clients, and the users and IT department expected to provide applications, functionality and APIs to support an ever-more rapid business change.

At the moment we are seeing a strong drive towards

API Management,  RMAD , and Citizen Developers,

I will touch on the first two in the following posts but for now I want to talk about Citizen Developers



Citizen developers refers to users ( Not IT staff )  who creates applications.   This means that of and by their very nature they are not your average developer or IT administrator - and so they will have a very different outlook on what they are trying to do.  We have all seen the people who do all their work through Excel or home-grown Microsoft Access databases - these people are trying to solve a real business problem.  

Citizen developer attempts to mitigate some of this issue  by giving the users the right tools to do their job  

Gartner defines it as "citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT."

On first examination this looks a little like "Excel for everyone" or, worse "Everybody needs to learn Python"  - not, of course, to disparage either of those fine products. 

The key difference here is providing a scalable, proper, infrastructure, and a system of tools that the Citizen Developers can actually use and be productive with. 

This will normally be some type of API Manager/API Repository exposing structured JSON-based REST Services  ( e.g. AWS API Gateway,  Mashery, Apigee ) 

So they would be the services the Citizen developers would use.  But in order for the Citizen Developers to produce we must consider what they will develop in. 

What goals are we looking to fulfil

Well -
  • they need to be rapidly productive, 
  • They should NOT learn to code - remember they are not  IT folk 
  • Probably need to deal with channels beyond the traditional ( Mobile, Social ) 
  • they will likely be eager to deliver the process they own as an application or service 
This then tends to drive towards a rapid application development model using simple components that can be enhanced, as needed. 

What are the benefits : 
  • Functionality is delivered faster , exactly as the end user wants and can  be  easily refined
  • IT know that end users are delivering services from a curated, managed set of APIs ( no holes in the  wall ) 
  • Projects happen faster as the users develop and test themselves

In the next blog we will be discussing these toolsets, and mentioning a particular class , RMAD or Rapid Mobile Application Development, and showing some examples. 

Until then

Chris