Sunday, October 5, 2014

Upgrading PeopleTools with Zero Downtime (1/3)

A few months ago, BNB concluded a PeopleTools upgrade with a quite curious approach. Our customer, a leading Spanish financial institution, had PeopleSoft CRM 8.4 installation running under PeopleTools 8.42. Their CRM application was being used to provide support to their 24x7 call centres, and the only reason they had to perform the PeopleTools upgrade was to be able to update their database and WebLogic releases, as the existing ones were already out of support.

Now, the organisation was going under a major structural change, so the customer wanted to perform the PeopleTools upgrade with a minimal disruption of their activities, as it was difficult at that time to obtain the needed sponsorship from higher managerial levels. In other words, they wanted to perform the upgrade as silently as possible. This translated in two particular requirements:
  • Ability to perform the PeopleTools change with zero downtime, in order to avoid any impact on the users.
  • Ability to gradually move users from the old PeopleTools release to the new one, practically limiting the impact of any product issue related to the upgrade. In case anything failed, they wanted to be able to move the users back to the old release.
Having performed quite a few PeopleTools upgrades in the past, I knew that following the standard procedures would not help us in providing a satisfactory answer to the client. So, after some discussions, the customer agreed on trying a non-standard way of upgrade PeopleTools. We agreed to do a prototype, test and if everything went well, then move to Production. If it did not work out, we would need to do it in the standard way. As it finally turned out, the suggested approach worked out.

I cannot say it would work for any other combination of PeopleTools and application versions, nor different customer usage of the application. Anyhow, I thought it may be useful to share it with you, in case any of you can enrich the approach with your feedback. In the next post I will describe the approach and in the third and final one I will describe the issues we faced during the implementation. So... keep tuned ;).

Friday, October 3, 2014

OOW14 Update: Oracle OpenWorld 2014 comes to an end

Today was the last day of Oracle OpenWorld 2014 at San Francisco. Even though it started a bit later due to yesterday's Appreciation Event which hosted Aerosmith, Spacehog and Macklemore & Ryan Lewis (which I did not attend, but that's a different story), the day was packed with good sessions. I have particularly appreciated the PeopleTools Meet the Experts session, which allowed me to network with Oracle PeopleTools experts and share points of view with other partners and customers.

From a PeopleSoft perspective, the event has produced some news, but actually nothing unexpected or that was not rumoured on the internet in the latest weeks. Here is a summary of the news that I found more interesting (*):

  • Fluid interface was the hottest topic from a PeopleSoft standpoint. As previously seen on this blog, Oracle announced the availability of the first applications in the coming days.
  • Fluid is initially intended for casual and executive users, but there is a plan to extend it to the power users. Under my point of view, not only the interface would need to improve a bit in order to achieve that, but also the development should be somehow simplified, as currently designing Fluid pages requires more effort than traditional PIA pages.
  • These are features in the roadmap for the Fluid interface: wizards for tile creation, related contents, activity guides and master/detail page template.
  • Oracle has no plans to deliver PeopleSoft 9.3. Still, this does not mean that they will stop investing on PeopleSoft (read more).
  • I was nicely surprised by the interest shown by attendants for the PeopleSoft Test Framework sessions. This tool has been around for a while, but the customer adoption has been slow. The new Continuous Delivery Model may bring some interest to this tool, as testing should become more iterative.
  • On the architecture side, the ability to use the new in-memory features of Oracle DB 12c under PeopleTools 8.54 brings unprecedented performance to PeopleSoft environments. Still, you would need to dedicate a minimum of 100 Gb of memory to the in-memory part of the database SGA, but if you have the money, it seems worth going for it.


This has been a very interesting and intense week. Now, a few days to rest and return home, and then back to work with some new perspectives and ideas.

(*) Keep in mind Oracle's Safe Harbor statement, which practically says that what was presented during the sessions does not express a commitment from Oracle.

Thursday, October 2, 2014

First Fluid applications to be delivered for PeopleSoft HCM 9.2 on October 21st


During Oracle OpenWorld 2014 the announcement was made that the first functionalities taking advantage of the new Fluid interface capabilities provided in PeopleTools 8.54 would be made available together with the PeopleSoft HCM 9.2 Update Image 9.

Now, according to My Oracle Support, this image is going to be released on next October 21st. Although you need to have PeopleSoft HCM 9.2 and PeopleTools 8.54 to apply these enhancements to your environments, you will still be able to download the Update Image virtual machine and play around with the first delivered Fluid applications.

So, unless the image delivery date is delayed, we should be able to enjoy the first Fluid applications in less than two weeks.

Note - Oct 20th 2014: Although the image was originally announced for today, Oracle has just posted a new availability date for October 27th, 2014.

Note - Oct 22nd 2014: Although as per my previous note, the image was originally announced for October 27th, Oracle had released it yesterday.

Tuesday, September 30, 2014

OOW14 Update: PeopleSoft's new Delivery Model

Oracle Open World 2014 is a truly storm of information. Not only because of the myriad of sessions and the struggle needed to get from room to another with so many people around, but also due to the clouds, which seem to be everywhere. Ok, that was a really bad joke, but really clouds are omnipresent in Oracle's vocabulary nowadays.

Still, within the storm, I managed to attend some very interesting PeopleSoft sessions. I may discuss some other findings in future posts, but today I want to focus on the new Delivery Model.

This model, based in the PeopleSoft Update Manager, has been around since the release of PeopleSoft 9.2 applications. Initially, I had mixed thoughts on the approach. Naturally, it's great to be able to download a periodically updated Virtual Machine and be able to review the latest and greatest functionality. On the other side, the need of downloading the image files (which account for more than 30 Gb) to apply a single regulatory patch increases the time needed to apply single patches for which you had all the prerequisites.

However, Oracle has started to deliver important new functionalities in the latest update images (or plans to deliver some of them soon such as the first FluID applications in the HCM Update Image 9), so the benefit of the new delivery model becomes much more visible.

Oracle has announced that today there are no plans to deliver PeopleSoft 9.3. Is that bad news? Not necessarily. Actually, if new functionality keeps flowing through newly delivered update images, it becomes a significant improvement over having to perform an application upgrade every 4 or 5 years.

The new delivery model (a.k.a. Continuous Delivery Model) allows customers to pick new functionalities individually, without having to apply changes for other function points. This greatly simplifies the update process, reducing maintenance costs over the old application upgrade approach.

Oracle has recently release a white paper which I found very illustrating on the Continuous Delivery Model. On top of that, today the announcement was made that the Cumulative Feature Tool available at peoplesoftinfo.com will include the image numbers as releases in order to easily identify new functionalities.

Time will tell what the final innovation pace will be. Today, with FluID and self service application being delivered or planned frequently, the Continuous Delivery Model looks like a nice step forward.

Sunday, September 28, 2014

BNB is participating in Oracle OpenWorld 2014

BNB is taking part in Oracle Open World 2014, the most important event for the Oracle customers, partners and employees ecosystem at a global scale. The event is starting today at the Moscone Center in San Francisco, September 28th and will close on October 2nd.

Up to 50.000 people will attend the event, which will involve more than 2.000 presentations. BNB participates as an Oracle Gold Partner, and we will be focusing on PeopleSoft, JD Edwards, Fusion and Taleo, while also looking at new trends on Big Data, Business Intelligence and Internet of Things.

As the event progress, I will be posting my impressions. This is my first Oracle Open World and it's all very exiting!

PS: Follow us under #BNBOOW hashtag.

Wednesday, November 28, 2012

Sleep in PeopleCode

You may have found business requirements that need to wait for a given time before performing the next action. For instance, in order to check whether the execution of a batch process has finished or not, you may want to query the process monitor tables to verify the process status every 15 seconds.

Unfortunately, there is no function in PeopleCode that actually sleeps processing during a period of time. Of course you can build a loop until the target time arrives, but that approach consumes CPU while waiting, so it is not resource effective.

In other languages, the sleep function simply puts the process off until the time has passed and the process is wake up. This is a much more efficient approach.

Fortunately, we can benefit from PeopleCode integration with Java to use java.lang.Thread sleep method. A sample PeopleCode would be as follows:

&sleepSeconds = 15;
GetJavaClass("java.lang.Thread").sleep(&sleepSeconds * 1000);

No java class installation is needed, as this class is included in PeopleTools, so this code should work without any further installation adjustment.

Tuesday, May 17, 2011

Truncating empty temporary tables in Oracle for PeopleSoft applications

Truncating temporary tables is an effective way of resetting the high-watermark level in Oracle databases.

The following script just truncates those tables that are empty, as sometimes temporary tables containing data should not be deleted as the data may belong to processes in error.

DECLARE
   sqlstatement    VARCHAR2 (100);
   fulltablename   VARCHAR2 (40);
   t_count         NUMBER;

   CURSOR c1
   IS
      SELECT owner || '.' || table_name
        FROM all_tables a
       WHERE EXISTS (
                SELECT 'x'
                  FROM psrecdefn b
                 WHERE b.rectype = 7
                   AND a.table_name LIKE 'PS_' || b.recname || '%');
BEGIN
   OPEN c1;

   LOOP
      FETCH c1
       INTO fulltablename;

      EXIT WHEN c1%NOTFOUND;

      sqlstatement :=
            'select count(*) from dual where exists (select NULL from '
         || fulltablename
         || ')';

      EXECUTE IMMEDIATE sqlstatement
                   INTO t_count;

      IF t_count = 1
      THEN
         DBMS_OUTPUT.put_line ('WARNING: ' || fulltablename || ' has data, so it will not be truncated.');
      ELSE
         sqlstatement := 'truncate table ' || fulltablename;
         EXECUTE IMMEDIATE sqlstatement;

         DBMS_OUTPUT.put_line (fulltablename || ' was truncated');
      END IF;
   END LOOP;
END;


Note: the script should be run when no process is running, as it is not blocking the tables after checking if they are empty. So, between the check and the truncate, someone may insert data. In any case, changing the script to lock the table should not be difficult.