Feed aggregator

New Fluid Training Classes, Live and Virtual

Jim Marion - Thu, 2017-09-07 04:16

On December 31, 2017, just a couple of months from now, Oracle will decommission the first set of Classic pages to be fully replaced by Fluid. Support document 1348959.1 contains a list of Classic pages, sorted by date, that are slated for retirement every year over the next few years. Customers interested in retaining a supported PeopleSoft implementation should familiarize themselves with this document and prepare to implement Fluid. This document contains important Manager and Employee self-service features that will no longer be supported in Classic form. Is your team trained and ready to adopt Fluid?

During my tenure at GreyHeller, I had the opportunity to lead several customer-specific Fluid workshops. The purpose of these workshops is to give customers hands-on experience with Fluid. These workshops are a starting point, a Fluid experience. As humans, we are often afraid of the unknown and these workshops provide practical, real-world experience.

I have expanded these workshops into a multi-day two-part series and am offering them in two formats:

  • Remote, but live virtual classes (LVC) hosted by GoToTraining or
  • By request on-site live instructor-led training.

Both courses (and formats) are two full days. The first course, Fluid 1, is a course designed for developers, architects, designers, and system analysts, and focuses on the basics of Fluid development. The point is to make students productive as fast as possible. Through hands-on activities, students will learn the basics of Fluid development including Fluid user interface configurations and best practices for page development. There is no extra fluff in this course. Students will learn how to build Fluid pages without having to become web development experts.

The second course, Fluid 2, teaches developers the techniques used by Oracle and modern web developers to build both responsive and adaptive user experiences through Fluid. This course is definitely level 2. Students will learn advanced topics such as how to use modern CSS frameworks for responsive design and how to create dynamic tiles for intelligent homepages.

Prerequisites? Experience. The entry requirements for Fluid 1 are intentionally low. The first half, day one, will be in the browser. No PeopleTools experience is required to use a browser. System analysts will benefit greatly from this half of the course. The second half, day two, is exclusively in Application Designer. In day two, students will build Fluid pages using Application Designer. Experience building Classic pages, records, and components is required. I have found there are a lot of non-developers with experience building and examining Classic pages, records, and components. That qualifies.

Students attending Fluid 2 are expected to have experience building Classic and Fluid pages in PeopleTools as well as experience working with Records, Fields, and PeopleCode.

Normally PeopleTools 1, PeopleTools 2, and PeopleCode would be prerequisites for learning Fluid. This is true. Anyone learning Fluid should have this experience. But often I find that people with relevant experience avoid registering for courses because they haven’t checked a specific training requirement box. Do not discount your on the job training experience.

I have scheduled two multi-day events and I encourage you to register as soon as possible. To ensure a quality experience, class size is limited. There has never been a more important time to learn Fluid!

Are you interested in hosting on-site training for your organization? For more information on these or other courses, please feel free to send a request to info@jsmpros.com.

Here are the full course abstracts:

Fluid 1Technology Overview
  • Why Fluid? Learn the history and purpose of Fluid
Hands on: Reviewing elements of Fluid
  • Fluid banner
  • Navigation bar
  • Fluid homepages (also known as Landing pages)
  • Tiles
  • Transaction pages
Working with Fluid Homepages and Dashboards
  • Understanding Fluid homepages
  • Hands on: Personalizing Fluid homepages
  • Hands on: Creating and managing personal and public Fluid homepages
  • Hands on: Managing Fluid system settings
  • Hands on: Creating and managing Fluid dashboards
  • Understanding the role of the Portal Registry in Fluid homepages
Working with Tiles and Tile Wizard
  • Understanding Tiles and the Tile Repository
  • Hands on: Creating tiles
  • Hands on: Managing Fluid Attributes of Content References
  • Hands on: Creating tiles with the Tile Wizard
  • Understanding the role of the Portal Registry in Fluid tiles
Creating Fluid Pages
  • Understand the differences between Classic and Fluid
  • Learn key design concepts such as Phone-first, Responsive, and Adaptive design and how they relate to Fluid
  • Hands on: Creating Fluid page definitions (standard and two-column)
  • Hands on: Using page and field Fluid-specific attributes
Working with Fluid Components
  • Understanding Fluid components
  • Hands on: Creating Fluid components
  • Hands on: Configuring Fluid Content References
Working with Search Pages
  • Understand Fluid search options
  • Hands on: Implement real-time Component search through Pivot Grids
  • Hands on: Implement real-time Component search through custom search Pages
  • Hands on: Implement keyword Component search through the Search Framework

Fluid 2Advanced Fluid Page Design
  • Understand the role of CSS in Fluid and responsive design
  • Hands on: Working with different Fluid page types
  • Hands on: Using Oracle-delivered Fluid CSS classes
  • Understanding CSS Flexbox
  • Hands on: Creating custom CSS classes
  • Hands on: Using CSS frameworks
  • Hands on: Using Fluid adaptive design with subpages
Using PeopleCode in Fluid Applications
  • Learn about and use Fluid-specific PeopleCode functions, design patterns, and best practices
Advanced Tiles and Tile Wizard
  • Hands on: Creating static and dynamic tiles using a variety of technologies
  • Hands on: Dynamic tiles and the Tile Wizard
Understanding Fluid Definitions and Metadata
  • Understand delivered Fluid managed definitions, the building blocks of Fluid
  • Understand Fluid metadata such as Tile Wizard metadata
Event Mapping in Fluid
  • Hands on: Learn how to extend delivered Fluid components without changing Oracle’s code

Restricting Production access while granting Read-only Access to Replica DB (Data guard)

Tom Kyte - Thu, 2017-09-07 01:26
Hello Experts, We replicate our critical Production Databases using Data guard, which implies that all the security user roles are as well replicated in both the environments. As such what techniques one can follow to GRANT READ ONLY Access to Rep...
Categories: DBA Blogs

What overhead (if any) do pipelined functions have?

Tom Kyte - Thu, 2017-09-07 01:26
I have some situations where I have a report built in Apex with a huge query in the application. Ideally we like to keep as much code as possible on the database (for dependency checking purposes etc) however the reason these have been left in Apex i...
Categories: DBA Blogs

How to retrigger an external remote Job

Tom Kyte - Thu, 2017-09-07 01:26
TITLE: How to retrigger an external remote Job Oracle external Job fires only once (an External, Remote, and Recurrent job): INTRODUCTION: My External, Remote, and Recurrent Oracle Job fires only once, and then it remains RUNNING. Then, ?I...
Categories: DBA Blogs

Checkpoint processing

Tom Kyte - Thu, 2017-09-07 01:26
My Question: 1. When there is check point, data is written on Disk even if the transaction is not committed yet, when roll back issued, how does it happen..? I Mean end up with physical delete insert and update or logical operation like if ? Ins...
Categories: DBA Blogs

Error while sending the attachment using UTL_SMTP mail

Tom Kyte - Thu, 2017-09-07 01:26
Dear Tom, We are getting error Sqlcode : -29279 - Sqlerrm :ORA-29279: SMTP permanent error: 554 Transaction failed: Missing start boundary while sending the attachment using UTL_SMTP. please help us on this issue. Thanks in advance. ...
Categories: DBA Blogs

ORDS 17.3 Beta - Introducing REST enabled SQL

Kris Rice - Wed, 2017-09-06 16:49
Download Got get it on the normal ORDS download page http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html Versioning  First and most obvious is ORDS is now on the same versioning scheme as SQL Developer, SQLcl and Oracle Cloud.  That is <year>.<quarter>.<patch> and the same tail we've always had which is <julian day>.<HH24>.<MI>.  That makes this beta

impdp content=metadata_only locks the stats

Yann Neuhaus - Wed, 2017-09-06 15:20

With Oracle you can learn something every day. Today, preparing a migration to 12.2, I found all tables had locked statistics. I learned that it is the expected behavior since 10.2 when importing metadata_only including statistics, to avoid that the automatic job gathering comes and replaces the stats by ‘0 rows’.

It is documented in DataPump Import Without Data Locks Table Statistics (Doc ID 415081.1) but as I was really surprised about that (and also frustrated to learn a 10.2 thing when migrating to 12.2) that I wanted to test myself.

I create a table DEMO with statistics:

SQL> connect sys/oracle@//localhost/pdb1 as sysdba
SQL> create table demo.demo as select * from dual;
Table created.
SQL> create index demo.demo on demo.demo(dummy);
Index created.
SQL> exec dbms_stats.gather_table_stats('DEMO','DEMO');
PL/SQL procedure successfully completed.
SQL> create or replace directory TMP as '/tmp';
Directory created.
SQL> select count(*) from DEMO.DEMO;
SQL> select object_type from dba_objects where owner='DEMO' and object_name='DEMO';
SQL> select owner,table_name,last_analyzed,stattype_locked,num_rows from dba_tab_statistics where owner='DEMO' and table_name='DEMO';
---------- -------------------- -------------------- -------------------- ----------

I export it:

Connected to: Oracle Database 12c Enterprise Edition Release - 64bit Production
Starting "SYS"."SYS_EXPORT_TABLE_01": "sys/********@//localhost/pdb1 AS SYSDBA" tables=DEMO.DEMO directory=TMP
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "DEMO"."DEMO" 5.054 KB 1 rows
Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
Dump file set for SYS.SYS_EXPORT_TABLE_01 is:
Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at Wed Sep 6 19:14:44 2017 elapsed 0 00:00:09

And drop it:

SQL> connect sys/oracle@//localhost/pdb1 as sysdba
SQL> drop table demo.demo;
Table dropped.

Now import metadata only (for example because I want to change NLS semantics before importing the data)

Import: Release - Production on Wed Sep 6 19:21:28 2017
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release - 64bit Production
Master table "SYS"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_TABLE_01": "sys/********@//localhost/pdb1 AS SYSDBA" tables=DEMO.DEMO directory=TMP content=metadata_only exclude=index
Processing object type TABLE_EXPORT/TABLE/TABLE
Job "SYS"."SYS_IMPORT_TABLE_01" successfully completed at Wed Sep 6 19:21:39 2017 elapsed 0 00:00:11

If I check the statistics:

SQL> select owner,table_name,last_analyzed,stattype_locked,num_rows from dba_tab_statistics where owner='DEMO' and table_name='DEMO';
---------- -------------------- -------------------- -------------------- ----------

Stats are locked. I suppose that the idea is that you have the tables with same statistics as production for example, and you can load them with a subset of data but expect the same execution plans as in production. But this is not what I want for a migration.

One possibility is to unlock the stats once you have imported the data.

The other possibility is to import metadata without the statistics:

Connected to: Oracle Database 12c Enterprise Edition Release - 64bit Production
Master table "SYS"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_TABLE_01": "sys/********@//localhost/pdb1 AS SYSDBA" tables=DEMO.DEMO directory=TMP content=metadata_only exclude=index exclude=table_statistics
Processing object type TABLE_EXPORT/TABLE/TABLE
Job "SYS"."SYS_IMPORT_TABLE_01" successfully completed at Wed Sep 6 21:11:03 2017 elapsed 0 00:00:03

Then the table statistics are not locked:

---------- -------------------- -------------------- -------------------- ----------

Once you have changed what you want on the tables, you import the data (table_exists_action=truncate) and then you import the remaining: indexes, ref_constraints, triggers.
This is where you can also add include=table_statistics:

Starting "SYS"."SYS_IMPORT_TABLE_01": "sys/********@//localhost/pdb1 AS SYSDBA" tables=DEMO.DEMO directory=TMP table_exists_action=truncate include=index include=table_statistics

So that you have the statistics from the source, unlocked.

---------- -------------------- -------------------- -------------------- ----------


Cet article impdp content=metadata_only locks the stats est apparu en premier sur Blog dbi services.

Adding the game, the importance of the APEX Advisor, a lot of JavaScript and adapting for mobile

Dimitri Gielis - Wed, 2017-09-06 13:48
This post is part of a series of posts: From idea to app or how I do an Oracle APEX project anno 2017

Over a year ago I developed the game to practice the multiplications. I quickly created an Oracle APEX page, added a bunch of JavaScript and that was about it. The last weeks you could read I've redeveloped the entire app from the ground up but I still have to add the game to it.

I thought to just copy the page I developed before with all the JavaScript in the new app.

How do you copy a page from one Oracle APEX environment to another? 

Export the app from the first environment and import the app in the second environment. Once both apps are in the same workspace, you can copy a page from another app by going to the Create button:

Click the Page as Copy option and follow the wizard:

So I followed the wizard to copy the page to my new app.

Now the tricky bit was that I changed page numbers, so all my references (in JavaScript, Processes etc.) to page items were wrong. To quickly identify the issues I used the APEX Advisor.

The APEX Advisor you find in App Builder > Utilities : Advisor

The Advisor checks for best practices, errors, security issues etc. I really like the Advisor as it will give your application some kind of quality control. And it's very fast to identify issues and navigate to them. Here's a screenshot what the Advisor found:

I would always run the APEX Advisor, even when you start from a Blueprint application as you will most likely modify the app, add pages, make changes etc. and it's easy to forget for example to put an authorization scheme.

A few years ago I also wrote an extension to the APEX Advisor that would check for our own standards. You can query an Oracle APEX application with SQL, so it's easy to check if naming conventions where followed, if deployments went fine or anything else you find important. Here's a screenshot of some of the checks in one of the projects:

In the community some other people did something similar, for example Oliver Lemm wrote a Quality Assurance plugin.

So back to my application - I fixed those issues and was able to play the game :)
(screenshot from the browser)

To build the table/grid of the game I programmatically generate the APEX items by using the API apex_item.

All the rest is build in JavaScript. I'm not going to put all the source code in this blog post, but if you right click on the page where the game is, and you look at the source, you see all the JavaScript that is used.

Whenever the Start button is clicked, a Dynamic Action is fired which calls some other JavaScript functions. The fireworks and stopwatch are libraries I found on the internet which I integrated in the APEX app. If you have any question on the JavaScript side, feel free to ask in the comments section.

A few weeks ago I released the app to test. Some people sent me an email with their feedback, but many also used the build-in feedback mechanism that came with our Blueprint app.

I typically leave a feedback mechanism in every app I build (yes, even in production), it's a great way to communicate with your users.

The result of the feedback was, it didn't run great yet on mobile devices. Except from using Universal Theme, I didn't really pay attention to mobile devices, as I thought it would be too small anyway, but apparently people were trying it on there. So I decided to make sure it would work on at least a tablet, for example I saw a use case for myself to let my son play on my iPad.

In the next section I will go in a bit of detail of things that I had to adapt to make it more user friendly on a mobile device and some other things that might be interesting to know in other applications.

So here's how the app looks like on an iPad:

Compare this image with the image before taking in the browser and you will see some differences.

I added some JavaScript library to check if we run on a mobile device and when so, we add some extra CSS to make the table fit on the screen. The breadcrumb will always be shrunk and the padding is less. Here's the code:

When starting the game the keyboard comes out. One of the first things I had to do, was to make the number keyboard the default and not the normal keyboard with the letters. The way you do that is in your input text item, you define a pattern and give it a type of numeric (see the PL/SQL code where we do the call to apex_item).

The keyboard that slides out hides a part of the table, so it's not ideal. I've an external keyboard for my iPad, so hooking that up, makes it a really nice experience:

Another issue on the iDevice was that the fireworks at the end of the game didn't work well. So I decided to add a setting, so you can choose what you want to see at the end when you finish the game and when you run on an iDevice, the Fireworks is hidden.

The other settings are based on feedback. Some people don't want to play all numbers yet, so you can now pick the numbers. Some others wanted to see the time or countdown, and for some others they got stressed by it. So I decided to make it customizable per player.

Those preferences are all normal APEX items, but the difference is the way they get stored. I only use one field (preferences column in the mtl_player table) to store all preferences. The way I do that was inspired by the APEX Multi-language translate plugin (JTL Item) from my friend Jorge Rimblas, who stored all translations in one field by using JSON. So, all the settings of the game are stored in one JSON object.

On page load I use following JavaScript to set the items:

There's also a save button in the settings section. There's a straight forward dynamic action to do the update. But once saved I show a notification which is done by adding a call to the APEX JavaScript API:

apex.message.showPageSuccess("Player settings saved.")

This results in:

While you play the game on every switch of the number, the timing is saved by calling an AJAX Callback process by apex.server.process (see the source on the page when you play the game). For now I've done it this way, but maybe in the future I might cache the results and only do a callback at the end.

The last thing I want to cover is the overlay you get when you end the game. You have the fireworks, an image or a message as on the below screenshot.

The overlay is done by adding a div on the page and some CSS.

By default it has display set to none, but once the game is complete it's set by some JavaScript.

Hopefully this gives you more insight how the game was created and some things I cover are also useful in your own project.

If you want to play the game, surf to http://mtable.online.

Happy playing!

Categories: Development

New OA Framework 12.2.5 Update 15 Now Available

Steven Chan - Wed, 2017-09-06 13:33

Web-based content in Oracle E-Business Suite Release 12 runs on the Oracle Application Framework (also known as OA Framework, OAF, or FWK) user interface libraries and infrastructure. Since the initial release of Oracle E-Business Suite Release 12.2 in 2013, we have released a number of cumulative updates to Oracle Application Framework to fix performance, security, and stability issues.

These updates are provided in cumulative Release Update Packs, and cumulative Bundle Patches that can be applied on top of the Release Update Packs. In this context, cumulative means that the latest RUP or Bundle Patch contains everything released earlier.

The latest OAF update for Oracle E-Business Suite Release 12.2.5 is now available:

Where is this update documented?

Instructions for installing this OAF Release Update Pack are in the following My Oracle Support knowledge document:

Who should apply this patch?

All Oracle E-Business Suite Release 12.2.5 users should apply this patch.  Future OAF patches for EBS Release 12.2.5 will require this patch as a prerequisite. 

What's new in this update?

This bundle patch is cumulative: it includes 44 fixes in total, including all fixes released in previous EBS Release 12.2.5 bundle patches.

This latest bundle patch includes fixes for following bugs/issues:

  • ISUPPORT HTML page alignment issues after upgrading to 12.2.5 from 12.1.3.
  • Popup within an Advanced Table under a sub-tab layout rendered partially.
  • ‘Skip navigation elements to page contents’ link is gaining focus temporarily on clicking LOV

Related Articles

Categories: APPS Blogs

How to – Incremental ETL

Dylan's BI Notes - Wed, 2017-09-06 13:11
This is a very basic topic.  An ETL 101 question come up a lot in interview. Even we are moving to a different storage and different processing framework, the concepts are still important. The idea is simple – you do not need to keep extracting and updating all data in the data store that are […]
Categories: BI & Warehousing

A Primer For Finance Professionals- Blockchain

OracleApps Epicenter - Wed, 2017-09-06 12:02
Blockchain technology has created waves around the World, bringing transparency and massively reducing costs in sectors like Banking, Finance, Logistics and Manufacturing, among others. And this is only the beginning... What is blockchain? And what are the potential implications for finance? Great primer What is blockchain? A primer for finance professionals
Categories: APPS Blogs

More packages for Oracle Linux to make life easier.

Wim Coekaerts - Wed, 2017-09-06 11:13

A lot of development work we do for Oracle Linux is focused around Oracle Cloud. Work with the infrastructure team to provide the best OS for them, work on new features that can help in various areas (NVMe, kvm, GPU, security, containers...) and so on. But we also put a lot of effort into making Oracle Linux run extremely well for customers on Oracle Cloud. Pre-built images which we try to make as efficient as possible and configured out of the box to just work seamlessly. For instance, a few weeks ago we added the Oracle Ksplice package to the base image and pre-configured them so that Ksplice works without any additional steps. Want to use it? Just type uptrack-upgrade. The latest kernel version is typically installed, latest fixes for drivers. Anything that every customer would have to do themselves we try to pre-emptively take care of.

Another aspect of running Oracle Linux in Oracle Cloud is providing the right packages and make it easy to get to them. We are working on a mirror of  yum.oracle.com  and the Oracle Container Registry inside the Oracle Cloud regions for super highspeed access to packages without having to go outside of the datacenters. And we are building packages that are not part of the base Oracle Linux but are certainly very useful and frequently asked for by customers. For instance, we released RPMs for Terraform with the Oracle Bare Metal cloud provider so that you don't have to manually download binaries, but just use a local pre-configured yum repo.

We also released fluentd and collectd packages here and here . Oracle Managed Cloud works with collectd for instance for its data collection to do analytics. While customers or developers can certainly go and download these packages elsewhere, it would require extra steps. We're just doing it to ensure that they're all in the same place. They're mirrored inside the datacenters, they're signed by our key, preconfigured yum.repo files, and all the dependencies have been verified to ensure we don't break anything when they are published. Of course all the source code is also available in the usual place. As we get more requests to add more packages these _developer, _preview and _developer_epel channels will get more content. The biggest focus area here will be developers, container services and providing all the packages to easily get going.

And remember, all this is included with every instance of Oracle Linux you run in Oracle Cloud, no additional charges. Oracle Ksplice, full support, everything we have is out of the box, included.


Building a digital dashboard for small business

Nilesh Jethwa - Wed, 2017-09-06 09:32

You take pains to make the most out of every dollar you earn. Do you have the same attitude for data?

Data that are used optimally for small businesses are great tools to help their owners come up with better decisions.

Digital reporting and performance dashboards can improve a business’ performance dramatically, but that’s only possible in your own situation if you use the right tools and strategies.

Here we will be taking up what it takes so that you can build an effective dashboard for your small business.

It’s easy to build a dashboard and a few questions to answer

Creating a dashboard for performance tracking is not difficult. There are plenty of free resources out there, which we will mention in the next sections.

There are a few questions that you need to answer though before deciding which type of dashboard fits your business best.

  • Who is your audience – It is important that you know who your dashboard’s viewers are. Also, what metrics matter to them?
  • What are the most important metrics – Not only that you determine your audience and the important metrics for them, but you also pinpoint the most important metrics for them.

The most important metrics should appear larger and on the top left hand corner of the dashboard.  That’s the primary part of the screen of your digital dash.

  • When thinking about the metrics to include, you also want to know to which these metrics should be compared.


Read more at http://www.infocaptor.com/dashboard/what-it-takes-to-build-a-digital-dashboard-for-small-business

Exploring connect by

Tom Kyte - Wed, 2017-09-06 07:06
Hi Tom, I am new here, so if i ask wrong ques or not following the guidelines, apologizes. Suppose i have a table like this: <code>COL1 ---- A B C D E F G</code> I have to transform this columns in a single cell like this A,B,C,D,E,...
Categories: DBA Blogs

Performance issue.

Tom Kyte - Wed, 2017-09-06 07:06
we are in the process of performance tuning , the below program is taking time, Please guide us to tune further or can we write any other way to improve the performance, <code>CREATE OR REPLACE TYPE "RECO_FE" FORCE AS OBJECT ( o_o_id ...
Categories: DBA Blogs

Upper bound length constraint for list partitioned tables (ORA-14116)

Tom Kyte - Wed, 2017-09-06 07:06
Dear Tom, We do have some table where partitions will be created frequently: <code>CREATE TABLE partitioned_table ( someUsefulPartitionIndicator NUMBER (*,0), someData varchar2(4000) ) partition by list (someUsefulPartitionIndicato...
Categories: DBA Blogs

How to optimize query for multiple joined tables

Tom Kyte - Wed, 2017-09-06 07:06
Hi TOM, I have this simplified version of a query. I would just like to check if there are other ways to further optimize the query especially on the subqueries. I'm limited to SQL only. Reason for me thinking that this can be further optimized...
Categories: DBA Blogs

mutating table

Tom Kyte - Wed, 2017-09-06 07:06
hello, i've got a table MRC and a trigger on it (AFTER INSERT) thus, after an insert in the table MRC, this trigger has to determine if a new line must be inserted into an other table PLAN : for that, it does compare the :new values with the MO...
Categories: DBA Blogs

Tuning Question

Tom Kyte - Wed, 2017-09-06 07:06
Hi I have the following query: <code> SELECT cust_id, cosmos_cust_id, prot_id, customer_name, protocol_name, dist_order_no, cust_ivr_ref_no, ship...
Categories: DBA Blogs


Subscribe to Oracle FAQ aggregator