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.
Tuesday, September 30, 2014
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.
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.
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
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.
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.
Thursday, March 17, 2011
PeopleSoft Test Framework
PeopleTools 8.51 has introduced a new and exciting feature: PeopleSoft Test Framework (from now on PTF). This tool can be used to automate testing of PeopleSoft applications. Unlike other testing automation tools, PTF has the following advantages:
- PTF is a testing automation tool designed to interact with PeopleSoft. It is quite easy to install and put it up to speed.
- Tests are stored in PeopleSoft database as metadata. This allows developers to migrate tests between environments, pretty much like any other PeopleTools object.
- Based on Usage Monitor, testers can determine which tests are impacted by a given application change: upgrade, bundle and/or customization.
PTF seems the perfect tool to automate a large degree of regression testing, thus reducing significantly the effort (and therefore cost) of testing after an application change. Particularly in upgrades, when test cycles are conducted over an over again, PTF may help to reduce the time and increase the quality needed for testing efforts.
There are still some shortfalls of PeopleSoft Test Framework. First of all, tests for PeopleSoft applications are still not delivered in the standard product, although some companies are already offering test bundles for certain modules (we at BNB are looking at offering a bundled service based on the test cases built on our installed customer base).
The second shortfall is the lack of stress testing capabilities. Still, there are plenty of tools on the market to perform this kind of testing.
All in all, it seems a very important step forward in PeopleSoft technology in order to reduce implementation and upgrade times and increase the ROI of those projects.
Tuesday, May 25, 2010
Cloning elements in Global Payroll
I've been lately involved in a couple of PeopleSoft Global Payroll implementations. One of the pain areas in dealing with Global Payroll rules definition is that there does not seem to be an easy way to clone or save an element with another name. Re-entering the element again is not always an option, specially if you are dealing with a formula, array or bracket with several lines.
Just a couple of weeks ago we found out a way in which we could clone elements. Here it is:
We still think we could make it easier with a bit of customization, by automating export and import of the package rule, as it is on the same database.
Anyway, I hope this is useful. Have you found any other way to do this?
Just a couple of weeks ago we found out a way in which we could clone elements. Here it is:
- Create a Rule Package with the elements you want to clone in it.
- Export the Rule Package.
- Rename (both pin name and code) the elements.
- Import and apply the Rule Package you previously exported.
We still think we could make it easier with a bit of customization, by automating export and import of the package rule, as it is on the same database.
Anyway, I hope this is useful. Have you found any other way to do this?
Tuesday, February 23, 2010
Setting Date Variables to Null in PeopleCode
If you try to assign a date variable a null value you will get an error saying that the left and right sides of the assignment are not compatible.
For instance, the following PeopleCode would error out:
To perform this kind of assignment, you may use the Date function in the following way:
&myDate = Date(0);
For instance, the following PeopleCode would error out:
Local date &myDate;
&myDate = null;
To perform this kind of assignment, you may use the Date function in the following way:
Local date &myDate;
Subscribe to:
Posts (Atom)