Feed aggregator

Using CSS Frameworks with Fluid

Jim Marion - Tue, 2017-05-23 23:35

Unlike PeopleTools Classic, which used almost-pixel-perfect layout, Fluid uses CSS for layout. The benefit of this pattern is flexibility. Unlike Classic pages, which only allowed for one layout, Fluid allows us to manipulate layout with CSS. I like CSS, so I see this as a positive. The more content Oracle development delivers in CSS, the more we can configure and transform the user experience. While I may love what I can do with CSS, it isn't the easiest language/technology to use. As a PeopleSoft developer with a significant amount of front-end development experience, I had this thought:

Could PeopleSoft developers avoid learning and writing CSS by using common, modern CSS frameworks to enhance PeopleSoft pages?

As with anything, the answer is, "Yes," but it isn't that easy. Here is the reason: PeopleSoft stylesheets apply style rules to HTML elements. And this makes sense. Review the most common CSS frameworks and you will see that they do the same thing (honestly, I would despise a CSS framework that didn't apply rules to HTML elements, but that is another story). Here is the problem: since both Fluid and and the framework style HTML elements, there are bound to be conflicts, and those conflicts often cause layout and display problems. Normally this would be fine, because selector specificity and order dictate who wins. The real problem is where the two frameworks have different, but related CSS declarations. The solution? A reset stylesheet. A reset Stylesheet will either reset conflicting Fluid CSS properties or conflicting your-favorite-CSS-framework properties. Now we have a solution. But, this solution has a serious problem: the point of using a CSS framework was to avoid writing CSS. After working through all of these conflicts, it is highly possible that you will write more CSS than you would have without the CSS framework. CSS frameworks are highly powerful and have value, but be careful to pick a CSS framework that uses class selectors only; no element selectors.

I have reviewed many CSS frameworks and it is hard to find one that just uses classes, no element styling. Oracle JET is a CSS framework that supports class-only styling. Oracle JET's Alta CSS stylesheets come in two flavors:

  • HTML element selectors
  • Class-only selectors

To incorporate Oracle JET with PeopleSoft Fluid:

  1. Download the latest class-only oj-alta-notag-min.css file (you can download the uncompressed version if you prefer). It is important that you grab the *-notag-*.css version. This is the one that uses class name selectors rather than HTML element selectors.
  2. Create a new Stylesheet definition and paste the contents of the oj-alta-notag CSS file into the new Stylesheet definition.
  3. Use the AddStylesheet PeopleCode function in a Page Activate event to add the new free form stylesheet to a page.
  4. Add Oracle JET class names to fields on your page.
1. Download the latest oj-alta-notag-min.css file

You don't need to "download" the file, just access its content. We will copy and paste the content into PeopleSoft in the next step. The file is available in raw form on GitHub here.

2. Create a new Stylesheet definition

After logging into your PeopleSoft development instance as an administrator, navigate to PeopleTools > Portal > Branding > Branding Objects. Switch to the Stylesheet tab and select the Upload Style Sheet Object. This will open a dialog where you can paste the CSS from step 1. Be sure to give the Stylesheet an appropriate name. I chose ORACLEJET_FF. Uploading a Stylesheet in this manner creates a managed Stylesheet definition that is accessible from Application Designer, and mixed with all of the other App Designer Stylesheet search results, so naming is important. Be sure to use your site-specific prefix. PeopleTools best practice recommends using the _FF suffix as well to denote this Stylesheet as a Free Form Stylesheet, which differs from the more traditional structured PeopleTools Stylesheet.

3. Use the AddStylesheet PeopleCode function in a Page Activate event

To any page that will use Oracle JET styling, open the PageActivate event and add PeopleCode that looks something like:

4. Add Oracle JET class names to fields on your page

Now open your Fluid page in Application Designer and identify the field that is supposed to use an Oracle JET class. Open the field's properties and switch to the Fluid tab. In the Fluid tab, set the Default Style Name to an Oracle JET style class. My favorite Oracle style classes to use with Fluid are oj-flex and oj-flex-item because they allow me to use CSS Flex Layout with Groupbox containers to ensure proper responsive design across a variety of form factors.

I think it is safe to say the most popular CSS framework in the world is Bootstrap. A common question developers ask me is, "Can I use Bootstrap with PeopleSoft Fluid?" The answer, of course is, "Yes." While I prefer Oracle JET because of its no-tag alternative, I have friends that successfully use Bootstrap with PeopleSoft Fluid pages. With PeopleSoft, all things are possible!

ACE Alumni

Tim Tow - Tue, 2017-05-23 23:08
Today, I asked Oracle to move me from Oracle ACE Director status to Oracle ACE Alumni status.  There are a number of reasons why I decided to change status.  When I started answering questions on internet forums years ago, I did it to share what I had learned in order to help others.  The same goes for this blog which I originally started so that I could give better and more complete answers to questions on the forums.

After the Hyperion acquisition by Oracle, I was contacted by Oracle who asked if I would be interested in becoming an "Oracle ACE".  It was an honor.  But over time, things have changed.  As more people found out about the ACE program, more people wanted to become an ACE.  If you have ever monitored the OTN Essbase and Smart View forums, they have become cluttered with copy and paste posts from people obviously trying to increase their points.  As the ACE program grew, it also become harder for the OTN team to manage and now require a formal activity reporting - a time report if you will - to track contributions to the community.  As I am already extremely pressed for time, I decided that tracking my contributions to the community - in exchange for a free pass to Open World, just didn't make sense.

All of that being said, just because I have moved to Oracle ACE Alumni status doesn't mean that I will stop contributing to the community.  My company will continue to provide free downloads and support for the Next Generation (Essbase) Outline Extractor and the Outline Viewer along with free downloads of Drillbridge Community Edition.  And maybe, just maybe, I will finally have time to write some new blog posts (maybe even some posts on some new Dodeca features inspired by our work with Oracle Analytics Cloud / Essbase Cloud!)

Categories: BI & Warehousing

Guidance on UTL_SMTP

Tom Kyte - Tue, 2017-05-23 22:06
Hi Team, I just read the post on "Sending HTML using UTL_SMTP". I am a beginner in pl/sql. I need your assistance on how to run the "select * from v$session" thru the below code, which in turn send the output as mail in HTML format. <code> c...
Categories: DBA Blogs

Bind variable does not exist error for an sql after migration from to

Tom Kyte - Tue, 2017-05-23 22:06
Hi Guys, I ran into some errors after migration to version. In the older version , i got 'ORA-00604:error occured at recursive SQL level 1 CURSOR expression not allowed' error whenever the application tried to execute many inline ...
Categories: DBA Blogs

more specific error message with bulk insert save exception

Tom Kyte - Tue, 2017-05-23 22:06
When I do a Bulk insert with save exceptions, I get a generic error message like ORA-01400: cannot insert NULL into () Is there a way to capture the specific exception (like include column name which we get on a regular insert)
Categories: DBA Blogs


Tom Kyte - Tue, 2017-05-23 22:06
Greetings!!! I am trying to create a materialized view based on a FACT and 3 Dimension tables, all IOT. As per my requirement to handle complex scenarios, I need to create multiple with clauses in the materialized view. My question is: 1, As I ...
Categories: DBA Blogs

Is there a way to avoid result_cache invalidation on updating parent table for which I have a FK in cached table

Tom Kyte - Tue, 2017-05-23 22:06
Hi, Tom! I have two tables T1 and T2 and a FK from T2 to T1 with "no action" on delete. I use a cached function (RESULT_CACHE) to return records from T2. Everything works fine until some change in T1 occurs. Even if this change do not influence on...
Categories: DBA Blogs

Read XML and store it in local temporary table and select data from temp table for operation

Tom Kyte - Tue, 2017-05-23 22:06
I need to read xml in stored procedure and need to store data to table after validating data. Please suggest how will I do it
Categories: DBA Blogs


Tom Kyte - Tue, 2017-05-23 22:06
Hi, I have Oracle 11g Database Server. I have tried to to use DRCP. SQL> conn / as sysdba Connected. SQL> execute dbms_connection_pool.start_pool(); PL/SQL procedure successfully completed. It has the following error. SQL> conn cagmi...
Categories: DBA Blogs

Subquery execution

Tom Kyte - Tue, 2017-05-23 22:06
Hello, I have sql like this: <code> SELECT CASE a.x WHEN 'b' THEN (SELECT b.y FROM b WHERE b.id = a.b_id) WHEN 'c' THEN (SELECT c.y FROM c WHERE c.id = a.c_id) WHEN 'd' THEN (SELECT d.y FROM d WHERE d.id = a.d_id) ...
Categories: DBA Blogs

Executing ddl statements with triggers in batch mode

Tom Kyte - Tue, 2017-05-23 22:06
We generate in our application a ddl script, which we execute later on, wrapping it by jdbcTemplate (calling from java). Everything was great until we added some triggers into the ddl script. The execution fails with the error message: "...error...
Categories: DBA Blogs

Summarising Huge tables

Tom Kyte - Tue, 2017-05-23 22:06
Hi TOM Team, I am having a Huge table containing more the 100 Billion Records . The table is containing the transactions of more than 6 years and the table Structure is as follows : Table Name : FCT_TRANS Table Structure : ACID varchar(2...
Categories: DBA Blogs


Pete Finnigan - Tue, 2017-05-23 22:06
I was not in the beta program for Oracle database 12c release 2 but when I was discussing security changes in the new release with some people who were in the beta they told me that O7_DICTIONARY_ACCESSIBILITY and utl_file_dir parameters....[Read More]

Posted by Pete On 23/05/17 At 04:17 PM

Categories: Security Blogs

REST Support clarifications

Anthony Shorten - Tue, 2017-05-23 19:10

In the Oracle Utilities Application Framework V4. release, the support for REST has been enabled for use as a complementary interface method adding to the SOAP support we already have in the product.

The REST support in the Oracle Utilities Application Framework was originally developed to support our new generation of the mobile connection platform we used for the Oracle Utilities Mobile Workforce Management platform and limited to that product initially. Subsequently, we have decided to open up the support for general use.

As the REST support was originally designed for its original purpose, the current release of REST is limited to specific aspects of that protocol but it is at a sufficient level to be used for general purpose functions. It is designed to be an alternative to SOAP integration for customers who want to a mixture of SOAP and REST in their integration architectures.

In the initial release, the REST support has been implemented as part of the online channel to take advantage of the Oracle WebLogic facilities and share the protocol and security setup of that channel. In a future release, we have plans to incorporate enhanced REST features in a separate channel dedicated to integration.

For more information about the REST platform support, including the limitations of this initial release, refer to the Web Services Best Practices whitepaper from My Oracle Support (Doc Id: 221475.1).

Log Buffer #511: A Carnival of the Vanities for DBAs

Pythian Group - Tue, 2017-05-23 09:50

This Log Buffer Edition covers Oracle, SQL Server, MySQL.


A Sneak Peek at Oracle’s Chatbot Cloud Service and 5 Key Factors Necessary for Bot ROI

Oracle JET Hybrid – NavDrawer Template Menu/Header Structure

Oracle Enterprise Linux 6.6 AMI Available on AWS

Datascape Podcast Episode 9 – What’s Up with Oracle These Days?

Sequential Asynchronous calls in Node.JS – using callbacks, async and ES6 Promises

SQL Server:

Fixing an SSRS Password Error while Changing Credentials

Azure DWH Part 8: Accessing Azure SQL Data Warehouse with C#

Personal Data, Privacy, and the GDPR

Performance Myths : Truncate Can’t Be Rolled Back

Troubleshooting CPU Performance on VMware


MySQL Shell: eye candy for a future release !

MySQL 8.0: It’s doxygen time for MTR

How to login in MariaDB with OS user without password

MySQL Enterprise backup : How to setup a slave for a standalone server with zero downtime?

Command Line Aficionados: Introducing s9s for ClusterControl

Categories: DBA Blogs

255 Again!

Jonathan Lewis - Tue, 2017-05-23 07:10

There’s so many things that can go wrong when you start using tables with more than 255 columns – here’s one I discovered partly because I was thinking about a client requirement, partly because I had a vague memory of a change in behaviour in 12c and Stefan Koehler pointed me to a blog note by Sayan Malakshinov when I asked the Oak Table if anyone remembered seeing the relevant note. Enough of the roundabout route, I’m going to start with a bit of code to create a table, stick a row in it, then update that row:

rem     Script: wide_table_4.sql
rem     Author: Jonathan Lewis
rem     Dated:  May 2017
rem     Last tested
rem             11.2.0,4

set pagesize 0
set feedback off

spool temp.sql

prompt create table t1(

        'col' || to_char(rownum,'fm0000') || '  varchar2(10),'
where   rownum <= 320

prompt col0321 varchar2(10)
prompt )
prompt /

spool off


set pagesize 40
set feedback on

insert into t1 (col0010, col0280) values ('0010','0280');

update t1 set col0320 ='0320';

column file_no  new_value m_file_no
column block_no new_value m_block_no

        dbms_rowid.rowid_relative_fno(rowid)    file_no,
        dbms_rowid.rowid_block_number(rowid)    block_no,
        dbms_rowid.rowid_row_number(rowid)      row_no

alter system flush buffer_cache;
alter system dump datafile &m_file_no block &m_block_no;

So I’ve written one of those horrible scripts that write a script and then run it. The script creates a table with 320 columns and inserts a row that populates columns 10 and 280. That gets me two row pieces, one consisting of the 255 columns from columns 26 to 280 that goes in as row piece 0, the other consisting of the first 25 columns that goes in as row piece 1; the remaining 40 columns are not populated so Oracle “forgets” about them (“trailing nulls take no space”). The script then updates the row by setting column 320 to a non-null value.

For convenience I’ve then generated the file and block number (and row number, just to show its head piece went in as row 1 rather than row 0) of the row and done a symbolic block dump. The question is: what am I going to see in that block dump ?

Answer, and lots more, coming some time in the next 48 hours.

Oracle Utilities Unveils the Perfect Customer Platform for the Modern Utility

Oracle Press Releases - Tue, 2017-05-23 07:00
Press Release
Oracle Utilities Unveils the Perfect Customer Platform for the Modern Utility New customer to meter offering slashes tech costs by 25% and combines full power of customer information systems and meter data management systems

CS Week – Fort Worth, Texas—May 23, 2017

Oracle today unveiled Oracle Utilities Customer to Meter, a comprehensive meter-to-cash solution for today’s customer-first utility. Oracle Utilities Customer to Meter is the first offering to combine a market-leading customer information system (CIS) with a market-leading meter data management system (MDMS) into one solution with a single user interface.

Leveraging a single shared technology stack, this new solution can reduce utility costs due to faster implementation times, fewer integration points, and greater operational efficiencies. Oracle Utilities Customer to Meter delivers all of the benefits of a complete meter solution and a powerful customer platform, enabling utilities to more immediately and efficiently extract value from advanced metering infrastructure data to improve customer experience. With this streamlined approach, utilities can more easily design customer-centric, personalized programs and services, and prepare for the continued growth of smart meter programs. This holistic solution lays the groundwork for an evolving utility that wants to roll out smart meters in the future, without a major IT project.

“Utilities that leverage data to deliver an improved customer experience and more personalized programs - such as tailored time-of-use billing, or targeted home energy management advice - and do this with a single, integrated solution that combines customer and meter data, will be well poised to take advantage of the continued growth of smart meters and a smarter, more customer-centric grid”, according to Roberta Bigliani, Vice President, IDC Energy Insights.

With rising customer expectations and expanding smart grids, utilities are turning to modern, comprehensive technologies that deliver world-class customer engagement and operational efficiencies. Oracle Utilities Customer to Meter provides the platform to respond to evolving market dynamics and quickly implement new business requirements that span metering, rate analysis, billing, collections and customer programs. For example, as electric utilities face increasing distributed generation they may test new rate structures to better manage demand. With Oracle Utilities Customer to Meter, months of customization can be reduced to hours of configuration and utilities can easily test and implement the changes necessary to evolve. Oracle Utilities Customer to Meter consolidates advanced usage and billing capabilities for all meters – from scalar to interval—so utilities can manage those meters and their data in one place and derive greater value from grid investments.

“Oracle Utilities continues to partner with utilities around the globe to solve the issue of increasing complexity in this rapidly transforming industry. Simplifying meter-to-cash processes is an important part of those partnerships. This new solution does exactly that: it allows utilities to get up and running in a matter of months with a complete meter-to-cash solution and allows them to leverage that complete solution to streamline business processes and easily stay ahead of rapidly evolving business drivers impacting how they serve their customers,” said Rodger Smith, senior vice president and general manager, Oracle Utilities. 

Oracle Utilities Customer to Meter is redefining the utility customer platform by enabling utilities to:

  • Implement a full meter-to-cash solution in a matter of months
  • Leverage one technology stack and reduce technology costs
  • Achieve service excellence in every customer interaction with a single, intuitive user interface
  • Deliver a powerful, streamlined customer experience across every channel
  • Expand smart meter programs seamlessly and derive more value from AMI data

Additional Resources
Contact Info
Valerie Beaudett
Oracle Corporation
+1 650.400.7833
Christina McDonald
+1 212.614.4221
About Oracle

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit www.oracle.com.


Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Safe Harbor

The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle Corporation. 

Talk to a Press Contact

Valerie Beaudett

  • +1 650.400.7833

Christina McDonald

  • +1 212.614.4221

SCAP OVAL SQL57_TEST Example For Oracle E-Business Suite

Last week I posted a blog introducing SCAP and OVAL. Here is a quick follow-up with a link to a sql57_test example using the Oracle E-Business Suite - it will suffice for any Oracle database.

A great book to read first on SCAP titled ‘Security Automation Essentials’ for $15 on Amazon is a must read:  https://www.amazon.com/Security-Automation-Essentials-Streamlined-Communication/dp/0071772510. I would highly recommend this book to anyone interested in SCAP and much thanks to Witte, Cook, Kerr and Shaffer for writing it.

If you have any questions, please contact us at info@integrigy.com

-Michael Miller, CISSP-ISSMP, CCSP, CCSK

SCAP OVAL, Oracle Database, Oracle E-Business Suite
Categories: APPS Blogs, Security Blogs

SQL Tuning Advisor against sql_id's in AWR

Syed Jaffar - Tue, 2017-05-23 04:23
We were in a situation very recently to run SQL Tuning Advisor against a bunch of SQL statements that appeared in the AWR's ADDM recommendations report. The initial effort to launch SQL Tuning Advisor against the SQL_ID couldn't go through as the SQL didn't exist in the shared pool.

Since the sql_id was present in the AWR report, thought of running the advisory against the AWR data, and found a very nice and precisely explained at the following blog:


---- Example how to run SQL Tuning advisor against sql_id in AWR

variable stmt_task VARCHAR2(64);
SQL> exec :stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK (begin_snap => 4118, end_snap => 4119, sql_id => 'caxcavmq6zkv9' , scope => 'COMPREHENSIVE', time_limit => 60, task_name => 'sql_tuning_task01' );

SQL> exec DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'sql_tuning_task01');

SQL> SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'sql_tuning_task01';

set long 50000
set longchunksize 500000
Set pagesize 5000


SQL> exec DBMS_SQLTUNE.drop_tuning_task(task_name =>'sql_tuning_task01');


Happy reading/learning.

PL/SQL Collections Associate Array

Tom Kyte - Tue, 2017-05-23 03:46
<code>Hi, In the below example for Associative Array Indexed by String, set serveroutput on; DECLARE -- Associative array indexed by string: TYPE population IS TABLE OF NUMBER -- Associative array type INDEX BY VARCHAR2(64); -- indexed by str...
Categories: DBA Blogs


Subscribe to Oracle FAQ aggregator