Thursday, October 11, 2012

Oracle Open World - Presentations

Now all presentations are available for download at this LINK.

Monday, October 8, 2012

Oracle Open World - Conclusions

If I should summarize this years conference in one word it will be CLOUD. They already talked about cloud last year but this year it was mentioned in all the sessions and key notes I attended.

Other observations:
  • Fusion Applications is really coming and it looks really good. Based on the latest technology and standards with the user experience in focus this looks like a fantastic product.
  • Exadata version 3 - this machine, packed with hardware and software from Oracle (the Red Stack) takes Exadata to the next level with 26 TB of  fast memory. 
  • New database version 12c - optimized to run in the cloud and have the new "pluggable" concept.
  • Big Data - term that popped up here and there. Big data is all the unstructured data found in social media. If we can collect and process this data we will find better opportunities and have a stronger posistion in the market place.

Sunday, October 7, 2012

Oracle Open World day 5

Personalize and extend eBusiness Suite with Rich Mashups

In this session the presenter described different ways to extend eBusiness Suite in a supported manner.
  • BC4J-substitution to external business logic.
  • OAF to build new components.
  • Web ADI to build custom integrators (included in the standard license).
  • Oracle Forms to build new extensions and applications.
  • ADF to build new extensions and applications (use EBS SDK to use specific EBS methods).
  • APEX to build new extensions and applications.
  • mod_plsql to build new extensions and applications (not recommended, does not work in R12)
  • Possible to plug in Endeca in 12.1.3 (license for Endeca needed).

Coming in 0-12 months
  • Model Personalizations: make it possible to create view objects (VO) within personalization
  • Support for undo personalization: today we need to delete them manually from the database using scripts
  • Support for copy personalization: make it possible to deploy the changes to other environment, today it needs to be setup manually
Mobile Enablement of Oracle Fusion Applications with Fusion Mobile Development

I expected this session to describe how you develop mobile applications within Fusion Apps but it was a demo of the ipad app Fusion Tap. Fusion Tap is available for download from Appstore today.

Some key features:
  • Only available for iOS, Android support is coming.
  • Personalizable
  • Is only working for clients that have deployed Fusion Apps in the cloud.
  • Included in the standard Fusion Apps license.
  • Fusion Tap will support certain processes that is suite for a mobile application.
  • Possible to use offline.
Even though this session was not what I expected Fusion Tap looks really promising and it will be very interesting to see this in a real environment in the future.

Web Service and SOA Integration options for eBusiness Suite

This session described how you can integrate EBS with external systems. It talked briefly about the more traditional methods and went into details about the possibilities to service enabled logic in EBS.

In R12 a new module were introduced, the Integrated SOA Gateway. It provides possibilities to web service enable a lot of interfaces in EBS but also lets you create your own. If you want to know more about the SOA Gateway please read my post Getting started with SOA Gateway.

New features coming in 12.2 and beyond
  • The underlying tech stack will be based on SOA Suite and Weblogic
  • Open interface tables/views will be service enabled
  • Transaction support in distributed processing
  • Support for Asynchronous Web Services
  • Monitor Service Invocations
  • Enhanced Service Invocation Framework UI
  • REST web services
Entry to the Appreciation event

Larrys boat in the Americas Cup

Saturday, October 6, 2012

Oracle Open World day 4

Fusion Applications: Functional Deep Dive

In this session the presenter talked about the highlights of Fusion Apps in the functional areas.

- FND_USER is no longer used; all security related actions will be performed in Oracle Identity Management.

- Business Groups are replaced by the new object Enterprise.

- Operating Units does not exist anymore; the new term is Business Unit. Some setup data that were before connected to the Operating Unit are now decoupled and no redundant set up is needed. One example is payment terms that are set up once and then copied to where it’s needed.

- Legal Entity Timezone; auto adjust the date to the correct timezone.

- Chart of Account:
- Separate the CoA structure from the value set.
- Using trees to separate hierarchies from value sets.
- Allow range of accounts to be specified using a node in a hierarchy.

- Date effectively:
- Allow users to change attributes of an object and store an older object version of that object

- Application Composers; as discussed in other posts all supported and upgrade safe customizations most be done using composers. They are browser based and performed during runtime. The composers are similar to the personalization’s that can be done in R12 but they are much more sophisticated.

- A Skin Editor lets you edit the look and feel of the application.

- Social; Fusion Apps is social enabled. This means that you can chat with your co-workers, tags objects for web 2.0 type searches and subscribe to RSS feeds from objects within the applications. It takes a while to get into this mindset but hopefully it will help the users to work with the application.

Coding Therapy for software Professionals

In this session the well known speaker Steve Feuerstein talked about how you can be a better programmer. Mr Feuerstein calls himself a PL/SQL evangelist and has been talking about PL/SQL for a long time. Below is the different kind of therapy he talked about.

- Game therapy; he exemplified especially one game that will help your brain to exercise and think more abstract. The game Mastermind (download from is a perfect way to start your day and get into the mood.

- Dream therapy; if you cannot find the solution to a problem go home and sleep on it. Many times the solution will present itself the next morning. I think all of us have been experience of this. Steve talked about that you should not be afraid of asking for help, if you have not solved a problem in 30 minutes you should go and ask someone. And, when you describe the problem to you co-worker you will probably find the solution yourself.

- Shock therapy; stop writing SQL and start writing PL/SQL. In this part he talked about hiding the SQL-statements and instead use functions for DML. Steve have been talking about this for many years, he talked about the same last time I heard him talk 6 years ago.

- Couples Therapy; improve the relationship with your DBA and your manager and you will deliver better solution in a more harmonic work environment.
Steve in action

Wednesday, October 3, 2012

Oracle Open World day 3

Optimize and Extend Oracle Applications: the path to Fusion Apps
In this session it was discussed what customers could do to make the transformation to Fusion as smoth as posssible. Three key areas where mentioned:

- keep you applications on the latest version
- optimize tools and technologies
- coexistence

If you follow the upgrade path and stays on the latest versions it will be much easier to upgrade. For example, in R12 the Financial architecture (with subbledger accouting etc) is the same as in Fusion.

What you also can do to make the road to Fusion less bumpy is to start use some of the tools and technologies already today. Example of this are Oracle Identity Management (OID, used in Fusion Apps for security), Oracle BI Apps and Oracle BI Publisher. It’s possible to use all of these tools already today in your R12 environment.

One other possibility to get ready for Fusion is to implement new modules using Fusion Apps. If you want to start use the HR module it’s recommended that you implement this is Fusion Apps and let it coexist with you current application version. Another example is Oracle Talent Management Solution, Taleo.

Oracle Fusion Applications: Technical Architecture Deep Dive
The technical architecture of Fusion Applications is still based on the three tier model.

- Client Tier
- Application Tier
- Database Tier

The client tier is what the end user is using to navigate the application. It’s all browser based using any browser or tablet.

The application tier is divided into two sections; Fusion Middleware Services and Fusion Middleware Infrastructure Services. The Fusion Middleware Services includes ADF, Identity Management, SOA etc; the standard technologies that Fusion Apps is built with. Fusion Middleware Infrastructure Services is the part that is Apps specific such as Applcore (way to set up flexfields, generic setup etc), Oracle Enterprise Crawl and Search Framework (used for searches throughout the system to give the user a google like search experience) and Enterprise Scheduler (used for scheduling jobs).

The database tier includes (obvious) the database which have two schemas; the Fusion Apps schema and the Fusion Middleware Schema. This is all stored in the same database.

Fusion Apps Technology Stack includes the following
- Oracle Database
- Oracle Weblogic Server
- Oracle Weblogic Communication Services
- Oracle Identity Management
- Oracle Webcenter
- Oracle Business Intelligence
- Oracle SOA Suite
- Oracle Data Integrator
- Oracle Application Development Framework - ODI
- Oracle Jdeveloper
- Oracle HTTP Server
- Oracle HTTP Server Webgate
- Oracle Web Services Manager Policy Manager
- Oracle Enterprise Content Management Suit
- Oracle Secure Enterprise Serach

One more thing to mention is the four different composers that make it possible to tailor the application in a supported and upgrade safe way. Data Composer (add new objects and attributes), Page Composer (add, remove, show or hide components on a page), Process composer (add or change process steps and rules - BPEL) and the Reports Composer (create and change reports).

PGA Migrates to Oracle Fusion Applications
In this session Oracle and their customer PGA described the experience with upgrading from 11.5.10 to Fusion Apps. PGA was included in the early adopter program as they had a straight forward implementation without any customizations.

- Financials (AP, AR, GL, PO, PA etc)
- 77 legal entities
- 283 companies
- The new solution includes scanning of invoices using the Integrated Imaging Solution
- 1 year project with a 12 people team (6 from Oracle, 6 from PGA)
- The client went live on pre-release 1 (current release is 5)
- On premise installation

Larry talking infront of 10.000 in hall D

View over SF

Example on BAD slide design...

Tuesday, October 2, 2012

Oracle Open World day 2

Today the conference was in full swing with 100s of sessions. Below you will find what I attended.

Keynote: Shift Complexity
On Mondays keynote they started to state that OOW is celebrating its 35th anniversary. The conference has 50.000 attendants and about 1 million views online, impressive. In this keynote Mike Hurd talked about simplify IT, Oracle offers complete stack and complete choice - the Red Stack. You can now run on servers from Oracle, Database from Oracle, Middleware from Oracle and Applications from Oracle, the complete red stack. With Oracle Engineered System you will get all the benefits of software and hardware.

It made me think, isn’t this exactly what Apple is doing? There target consumers are completely different but they also offer hardware and software in their products. When you can control both hardware and software you will have a better optimized product. As simple as that.

Oracle Fusion Applications: Overview, Strategy and Roadmap
Today 400 customers are running Fusion Apps, out of those 400, 100 are live. The majority of the 400 customers are running Fusion Apps in the cloud. The current version of Fusion Apps is 5, Oracle is right now releasing one new release every quarter.

Fusion Tap was demoed (, Fusion Tap is an app for the iPad which makes it possible to use Fusion Apps on a tablet. It looked really nice.

What Oracle is working on that could be interesting from a Swedish perspective is localization. Oracle is in the coming year releasing 10-15 countries, Sweden was not one of them so it’s still unclear when we this will be coming.

Understanding Oracle ADF and its role in Fusion
I thought this session was covering ADF and Fusion Apps and how it fits together but it was just a general session about ADF. It was stated (again) that ADF is the development framework for the future.
What was interesting is Oracle ADF mobile which will come out very soon. This framework will make it possible to develop apps for Apple and Android devices as it delivers HTML5 code.

Applications Strategy
In this session all of Oracles applications was represented on stage.

Fusions Apps
eBusiness Suite
Supply Chain Management (OTM, PLM etc)
BI Apps

The responsible for each system talked about the future of their systems and the general message was that Oracle is continuing to develop all of their current applications even though Fusion Apps is out.

Introduction to Oracle Data Integrator (ODI)
This was a hands on lab were we to some hands on testing of the product. As my current client is using ODI I wanted to get more understanding of the product. I also talked to one of the experts about some issues that we are facing and got some good tips.

Oracle Fusion Applications: Customizing and extending business processes
This session was late in the day but maybe the most interesting for me personally.  The presenter described how it’s possible extend Fusion Apps, he talked about three different ways:

- Extend functionality using custom attributes.
- Integration with legacy - on premise/external applications
- Build new Business Processes

Extend functionality using custom attributes
You can add attributes to all objects in Fusion Apps. These attributes are patch and upgrade safe and will be available where ever the object is used. It is like using flexfields in EBS.

Integration with legacy - on premise/external applications
You can build custom BPEL flows which can be called from Fusion Apps to be able to interact with external systems. To trigger a integration you set up a specific event which will trigger a web service. The web service endpoint is set up inside Fusion Apps and will be called when this event is triggered. An event can for example by insert or update to a table.

For inbound message we can use the web service repository to see what is available.

Build new Business Processes
If we want something other than standard to take place we can build our own flows using oracle technology such as Mediator and BPEL. The flows will be called from the application layer.

All of the things described above is very technical and will required more investigation to get in to.

Mike Hurd in action

Session starts soon

Fusion Tap

Oracle is taking over SF

Monday, October 1, 2012

Oracle Open World day 1

Today the conference started with alot of special interest group meetings and the welcome keynote.

The welcome keyknote was devided by some bigshot from Fujitsu and Larry Elison. I would guess that about 99% of the people were there to listen to Larry. The Japanese Fujitsu guy had a long uninspired talk about big data (all unstructured data from social media) and how there new chip Athena would be great to do all this processing. Oracle is working together with Fujitsu to optimize the usage of their technology.

Then Larry came on. Larry hade 4 announcements.

Announcement 1
Oracle will start to sell infrastructure as service (IaaS). IaaS is VM, OS Services etc. This together with what they already have, SaaS and PaaS will make them complete in the cloud business.

Announcement 2
Oracle Private Cloud. I think he talked about this last year so I was a little surprised that it came up again. With Orcale Private Cloud you can run the cloud behind your firewall with the same services as the external cloud. Good if you feel that you want to have full control of where your servers are located.

Announcement 3
A new database version will come out next year, version 12c, c for cloud. One of the biggest new features is that the database is multitenant. This means that it's possible to consolidate all other databases in to the same instance. "Manage many as one" as Larry put it.

Announcement 4
Exadata version 3 or the Database in memory machine as they called it. It has 22 TB of Flash disks and 4 DRAM, then 500 TB of normal disk. This means that it will do everything in memory and only store old (cold) data on the normal disk. All read and writes goes to the flash cache. It's about 10-20 times faster then the prevous version and costs the same.

Line to get in
Larry in action
Oracle stuff

Sunday, September 30, 2012

Oracle Open World day 0

After a 22 hour trip we finally reach our hotel in San Francisco last night. As expected we woke up early and went out to explore the city.
Open World starts first on Sunday but you can register and make yourself ready for the conferance already today. We pickuped our badge at Hilton Hotel in downtown SF. Tomorrow the fun will begin!

View of downtown San Francisco

Oracle is taking over the city

This years welcome pack

Tuesday, April 24, 2012


If you have a lot of events and other logic that triggers the use of the que WF_DEFERRED there could be a need of create an additional index on the que table. When you have many rows in WF_DEFERRED the deque process is so slow that it blocks other incoming messages.

Follow note CPU Intensive Querries Due To FTS on WF_DEFERRED [ID 463242.1].

Our scenario:
We had about 3.5 million rows in WF_DEFERRED that where dequeuing very slowly, about 2 per minute. After creation of the index all records where dequed in about 30 minutes.

Show message dialog

To show a message dialog in Oracle Forms (in EBS) use
fnd_message.debug('your message here')
By using this built-in there is no need to create your own alerts.

Tuesday, March 13, 2012

R12 AP Payments

In R12 the AP payments are completely redone. The logic is now using java to create a XML-file and XML Publisher to create the specific payment file which you send to the bank.
Some key information:
  • The table IBY_TRXN_DOCUMENTS includes the created XML in the column DOCUMENT.
  • Use the responsibility Payments Setup Administrator to setup the payments.
  • If you want to add XML tags to the standard XML file this could be done by using the package IBY_FD_EXTRACT_EXT_PUB (more info can be found at

Friday, February 10, 2012

Business Event - download/upload

Using FNDLOAD is possible to transfer a lot of objects between instances. It's also possible to transfer Business Events but not with FNDLOAD, to accomplish this we need to use a java program called WFXLoad.

Download - Event
java -d apps appspwd host:port:sid thin US download_file.wfx EVENTS event_name

java -d apps password bigboy:1521:demo thin US xx_demo_EVENT.wfx EVENTS

Download - Subscription
java -d apps appspwd host:port:sid thin US download_file.wfx SUBSCRIPTIONS event_name

java -d apps password bigboy:1521:demo thin US xx_demo_SUBSR.wfx SUBSCRIPTIONS

Upload - Event
java -u apps appspwd host:port:sid thin US upload_file.wfx

java -u apps password bigboy:1521:demo thin US xx_demo_EVENT.wfx

Upload - Subscription
java -u apps appspwd host:port:sid thin US upload_file.wfx

java -u apps password bigboy:1521:demo thin US xx_demo_SUBSR.wfx

  • If you want to down- or upload different languages you can control this by changing language in the command (the value after thin...)
  • Use -uf instead of -u if you want to force upload
  • Friday, February 3, 2012

    Sending concurrent request output by e-mail - part II

    If the database and apps.server are not installed on the same machine the first proposed solution may not work. The database user will not be able to read concurrent request output files if they are not located in a common directory which can be reached from both the servers. In my case no such common directory existed.

    There was one common directory which could be reached from both machines and the code below takes advantage by that. The code is a SQL-script which is fired by a concurrent request.
    --| FILENAME                                                              |
    --|     XXXFND_SUBMIT_AND_EMAIL.sql                                       |
    --|                                                                       |
    --| VERSION                                                               |
    --|     1.0                                                               |
    --|                                                                       |
    --| CUSTOMIZATION                                                         |
    --|     FND                                                               |
    --|                                                                       |
    --| DESCRIPTION                                                           |
    --|  Creates.                                                             |
    --|                                                                       |
    --|                                                                       |
    --| HISTORY                                                               |
    --| 26-01-2012    Daniel Borgstrom, Logica Created                        |
    VARIABLE g_exit_code       VARCHAR2(20);
    VARIABLE g_os_cp           VARCHAR2(1000);
    VARIABLE g_os_rm           VARCHAR2(1000);
    VARIABLE g_file_name       VARCHAR2(200);
    --| Submit request
      no_req                EXCEPTION;
      v_wait_status         BOOLEAN;
      v_request_id          NUMBER;
      v_request_phase       VARCHAR2(1000);
      v_request_status      VARCHAR2(1000);
      v_dev_request_phase   VARCHAR2(1000);
      v_dev_request_status  VARCHAR2(1000);
      v_request_status_mesg VARCHAR2(1000);
      v_file_directory      VARCHAR2(100)  :=  '$APPLCSF/$APPLOUT/';
      v_compl               BOOLEAN;
      v_request_id := fnd_request.submit_request('FND',       -- Application
                                                 'FNDSCARU',  -- Request (Active Responsibilities and Users)
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '', '', '', '', '', '', '', '', '',
                                                 '', '');
      -- Verify that the concurrent request was launched
      -- successfully.
      IF (v_request_id = 0) THEN
        raise no_req;
        fnd_file.put_line(fnd_file.log, 'Submitted request: '||v_request_id);
      END IF;
      -- wait for request to finish
      v_wait_status := fnd_concurrent.wait_for_request(v_request_id,
                                                       2,  -- interval in sec
                                                       60, -- total wait time in sec
      IF v_dev_request_phase = 'COMPLETE' AND v_dev_request_status = 'WARNING' THEN
        raise no_req;
      ELSIF v_dev_request_phase != 'COMPLETE' AND v_dev_request_status != 'NORMAL' THEN
        raise no_req;
      END IF;
      -- Generate scripts to send output file to a shared area
      fnd_file.put_line(fnd_file.log, 'Internal file commands');
      :g_file_name := 'Active_Resp_'||TO_CHAR(SYSDATE,'YYMMDD')||'.pdf';
      fnd_file.put_line(fnd_file.log, 'File name: '||:g_file_name);
      :g_os_cp := 'cp -p '||v_file_directory||'o'||v_request_id||'.out '||'/common/'||:g_file_name;
      fnd_file.put_line(fnd_file.log, :g_os_cp);
      :g_os_rm := 'rm /common/'||:g_file_name;
      fnd_file.put_line(fnd_file.log, :g_os_rm);
      :g_exit_code := 'SUCCESS';
      WHEN no_req THEN
        fnd_file.put_line(fnd_file.log, 'ERROR: Could not submit request');
        v_compl := Fnd_Concurrent.Set_Completion_Status('ERROR', 'Could not submit request');
        :g_exit_code := 'FAILURE';
      WHEN others THEN
        fnd_file.put_line(fnd_file.log, 'ERROR: '||SQLERRM);
        v_compl := Fnd_Concurrent.Set_Completion_Status('ERROR', 'ERROR: '||SQLERRM);
        :g_exit_code := 'FAILURE';
    --| Send host command:
    --|   Copy to a temporarily folder
    SELECT :g_os_cp os_cp
    FROM dual
    WHERE :g_exit_code = 'SUCCESS';
    HOST &os_cp
    --| E-mail file
      v_response            VARCHAR2(1000);
      v_compl               BOOLEAN;
      fnd_file.put_line(fnd_file.log, 'Sending e-mail');
      -- send the mail
      xx_send_mail_file('Sending the output of request Active Responsibilities and Users',
                        'Result is attached.'||chr(10)||'Sysadmin',
      IF nvl(v_response,'SUCCESS') = 'SUCCESS' THEN
        fnd_file.put_line(fnd_file.log, 'Mail response: '||nvl(v_response,'SUCCESS'));
        :g_exit_code := 'SUCCESS';
        fnd_file.put_line(fnd_file.log, 'Could not send e-mail: '||v_response);
        v_compl := Fnd_Concurrent.Set_Completion_Status('ERROR', 'Could not send e-mail: '||v_response);
        :g_exit_code := 'FAILURE';
      END IF;
      WHEN others THEN
        fnd_file.put_line(fnd_file.log, 'ERROR: '||SQLERRM);
        v_compl := Fnd_Concurrent.Set_Completion_Status('ERROR', 'ERROR: '||SQLERRM);
        :g_exit_code := 'FAILURE';
    --| Send host command:
    --|   Remove tmp file
    COLUMN v_os_rm NOPRINT NEW_VALUE v_os_rm;
    SELECT :g_os_rm v_os_rm
    FROM dual
    WHERE :g_exit_code = 'SUCCESS';
    HOST &v_os_rm
    --| Write exit code to list and concurrent manager                        |
    COLUMN exit_statement NOPRINT NEW_VALUE exit_statement;
    SELECT :g_exit_code exit_statement
    FROM dual;