Getting Ready

I don't think it's any big secret that we're getting close to R13 of Oracle Cloud Applications.  We've been talking about it publicly since Oracle OpenWorld 2017.  Having seen R13 up close, I'm very excited to see it come to market.

But, my excitement notwithstanding, I also know that existing customers get a bit antsy in the face of an impending upgrade.  Because preparation for an upgrade is important, and that preparation requires information.  What (more...)

PeopleCode Evaluate

A question came up today that I have wondered about for a while: how does break and evaluate work in PeopleCode? I think I have been telling it wrong, so I decided to do a little experiment.

Note: This test uses the Unit Test Framework.

In my first series of tests, I wanted to know if the “break” is required.

import TTS_UNITTEST:TestBase;

class EvalTest extends TTS_UNITTEST:TestBase
   method EvalTest();
   method Run();
end-class;

method EvalTest
   %Super =  (more...)

https://medium.com/oracledevs

Oracle Developers

Aggregation of articles from Oracle engineers, Developer Champions, partners, and developer community on all things Oracle Cloud and its technologies.


Oracle Cloud Conference @Bangalore

Attending Oracle Cloud Conference @Bangalore 2017

nVision Performance Tuning: 11. Excel -v- OpenXML

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

The general objective the performance tuning changes described in this series of blog posts has been to improve the performance of individual nVision reports, but also to allow many reports to execute concurrently.
However, if you use Excel 2010, Excel 2013 or above, then you may notice run times are significantly longer than (more...)

UKOUG Tech17 SuperSunday: Smart Database Development With PL/SQL & Oracle Rest Data Services

With JavaScript these days as a front-end development language to build lightweight applications, the demand for a performant back-end is bigger than ever.

So why not use the database where it is made for: storing data and delivering that data as fast as possible, guarded by constraints and business rules.

nVision Performance Tuning: 10. Maintaning Statistics on Non-Partitioned Tree Selector Tables

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

If you do not partition your selector tables, and if you predominantly use static selectors then you can maintain the statistics on the selector table as the new static selectors are created or updated.  PeopleTools table PSTREESELCTL is used to track static selectors.  It is keyed by selector number.  A row (more...)

nVision Performance Tuning: 9. Using Compression without the Advanced Compression Licence

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

Table compression can significantly decrease the size of tables and reduce the volume of I/O required to retrieve data.  Compression of the ledger, ledger budget, and summary ledger tables can significantly improve the performance of scans in nVision.
The Advanced Compression licence enables compression features to be used where segments are still updated (more...)

Enabling Fluid for Firefox on Linux for PeopleTools 8.54 and 8.55

In one of our customers we came across an issue by which users connecting to PeopleSoft using Firefox in Ubuntu would be shown the classic home page instead of the Fluid landing page.

After some research, we found out that this would happen in PeopleTools 8.54 and 8.55 due to a known issue. The document 2235517.1 in My Oracle Support actually indicates that this issue is resolved in PeopleTools 8.56.



So (more...)

nVision Performance Tuning: 8. Interval Partitioning and Statistics Maintenance of Tree Selector Tables

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

The decision to use interval partitioning on the tree selector tables came from the need to have accurate statistics for the optimizer when parsing nVision queries.  It is not possible to introduce hints into nVision SQL. The dynamic nature of the code means it is not viable to consider any of the (more...)

Viewing HTML Compare Reports on Linux

While working on an upgrade, I wanted to review a project using the Web Compare Reports. The problem is that my laptop is Linux, and the reports require Internet Explorer. Here’s what I did to kind of get it to work…

This is assuming that Node JS is already installed. I installed the Node web server:

sudo npm install -g http-server

Then, I changed into the compare report directory and ran the server:

cd UPGCUST/
 (more...)

nVision Performance Tuning: 7 Analysis of Tree Usage with the Selector Log

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

Over time, the selector log will build up a picture of how each tree is used in a system. Here are two examples of how it can be used.

You may look at a piece of SQL generated by nVision, it will have a literal value for the selector number, and you want (more...)

nVision Performance Tuning: 6. Logging Selector Usage

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

Static selectors are tracked by entries in the PSTREESELCTL table.  It is maintained after the tree is extracted to the selector table.  The version number on PSTREESELCTL is compared with the corresponding version number on the PSTREEDEFN to determine whether the extract of the tree to the selector table is still valid, (more...)

nVision Performance Tuning: 5. Additional Instrumentation of nVision

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

One of the challenges of tuning and monitoring nVision is to be able to identify each report being run. Calls to Oracle instrumentation package dbms_application_info  were added to the component processor in PeopleTools 8.50, and to Application Engine in PeopleTools 8.52.  However, COBOL, nVision, and SQR were never instrumented.
Therefore, (more...)

November/December Online Class Offerings Posted

We posted our online class offerings for November and December, 2017. You can find details on our website. Our Fluid classes have been extremely popular, so we will continue offering those at least once per month. Our Fluid 1 class is designed to get a developer up and running with Fluid as fast as possible. Through hands-on activities, you will use familiar tools and existsing skills to build Fluid components. No web development experience necessary. (more...)

nVision Performance Tuning: 4. Partitioning of Ledger, Ledger Budget, and Summary Ledger Tables

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

Note: Partitioning is a licenced option in Oracle RDBMS, and is only available on Enterprise Edition.

nVision queries always contain single value predicates on LEDGER and FISCAL_YEAR.  They will also always have either single value predicate or a range predicate on ACCOUNTING_PERIOD.  Therefore, partitioning the ledger tables on these columns is an (more...)

nVision Performance Tuning: 3. Indexing of Ledger, Budget, and Summary Ledger Tables on Non-Engineered Oracle Systems

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

If you are on a conventional non-engineered Oracle system, then it is not going to be viable to full scan the ledger tables for every query.  You are going to have to use indexes to find your data.  Every customer's nVision reports are unique to that customer and the nature of their business. (more...)

Let’s Build Some Chatbots!

We're hearing quite a bit of buzz about baking Artificial Intelligence ("AI") into enterprise applications.  AI represents a ton of potential for this space, not the least of which is the net evolution in user interface in the form of chatbots.  As I've shared previously in this space, I have a developing infatuation with chatbots.

Chatbots are pretty cool, especially when we're talking about voice-based chatbots.  The idea of getting things done by holding a (more...)

nVision Performance Tuning: 2. Effects of Performance Options

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

In this post, I examine the effect of different settings for the tree performance options on how the SQL is generated.  It is common, to see different performance options in use on different trees in the same SQL query.  It is important to be able to look at a piece of (more...)

nVision Performance Tuning: 1. nVision Performance Options

This blog post is part of a series that discusses how to get optimal performance from PeopleSoft nVision reporting as used in General Ledger.

At no point when defining a nVision report does the developer directly specify a SQL statement, all the SQL is generated by nVision from the report definition.  That also means that it is not possible to directly intervene and change the SQL statement, for example, to add an optimizer hint.

However, the way (more...)