Monday Apr 09, 2012

How to create a PeopleCode Application Package/Application Class using PeopleTools Tables

This article describes how - in PeopleCode (Release PeopleTools 8.50) - to enable a grid without enabling each static column, using a dynamic Application Class.

The goal is to disable the following grid with three columns “Effort Date”, ”Effort Amount” and “Charge Back” , when the Check Box “Finished with task” is selected , without referencing each static column; this PeopleCode could be used dynamically with any grid.

If the check box “Finished with task” is cleared, the content of the grid columns is editable (and the buttons “+” and “-“ are available):

So, you create an Application Package “CLASS_EXTENSIONS” that contains an Application Class “EWK_ROWSET”.

This Application Class is defined with Class extends “ Rowset” and you add two news properties “Enabled” and “Visible”:

After creating this Application Class, you use it in two PeopleCode Events : Rowinit and FieldChange :

This code is very ‘simple’, you write only one command : ” &ERS2.Enabled = False” → and the entire grid is “Enabled”… and you can use this code with any Grid!

So, the complete PeopleCode to create the Application Package is (with explanation in [….]) :

******Package CLASS_EXTENSIONS :    [Name of the Package: CLASS_EXTENSIONS]

--Beginning of the declaration part------------------------------------------------------------------------------
class EWK_ROWSET extends Rowset;          [Definition Class EWK_ROWSET  as a 
                                          subclass of Class Rowset]
   method EWK_ROWSET(&RS As Rowset);      [Constructor is the Method with the
                                          same name of the Class]
   property boolean Visible get set;
   property boolean Enabled get set;      [Definition of the property 
                                          “Enabled” in read/write]
private                                   [Before the word “private”, 
                                          all the declarations are publics]
   method SetDisplay(&DisplaySW As boolean, &PropName As string, 
          &ChildSW As boolean);
   instance boolean &EnSW;
   instance boolean &VisSW;
   instance Rowset &NextChildRS;
   instance Row &NextRow;
   instance Record &NextRec;
   instance Field &NextFld;
   instance integer &RowCnt, &RecCnt, &FldCnt, &ChildRSCnt;
   instance integer &i, &j, &k;
   instance CLASS_EXTENSIONS:EWK_ROWSET &ERSChild;   [For recursion]
   Constant &VisibleProperty = "VISIBLE";
   Constant &EnabledProperty = "ENABLED";
--End of the declaration part------------------------------------------------------------------------------

method EWK_ROWSET [The Constructor]
   /+ &RS as Rowset +/
   %Super = &RS;
get Enabled
   /+ Returns Boolean +/;
   Return &EnSW;
set Enabled
   /+ &NewValue as Boolean +/;
   &EnSW = &NewValue;
 %This.SetDisplay(&EnSW, &EnabledProperty, False); [This method is called when
                                                    you set this property]
get Visible
   /+ Returns Boolean +/;
   Return &VisSW;

set Visible
   /+ &NewValue as Boolean +/;
   &VisSW = &NewValue;
   %This.SetDisplay(&VisSW, &VisibleProperty, False);

method SetDisplay                 [The most important PeopleCode Method]
   /+ &DisplaySW as Boolean, +/
   /+ &PropName as String, +/
   /+ &ChildSW as Boolean +/             [Not used in our example]
   &RowCnt = %This.ActiveRowCount;
   &NextRow = %This.GetRow(1);      [To know the structure of a line ]
   &RecCnt = &NextRow.RecordCount; 
   For &i = 1 To &RowCnt                     [Loop for each Line]
      &NextRow = %This.GetRow(&i);
      For &j = 1 To &RecCnt                   [Loop for each Record]
         &NextRec = &NextRow.GetRecord(&j);
         &FldCnt = &NextRec.FieldCount;      

         For &k = 1 To &FldCnt                 [Loop for each Field/Record]
            &NextFld = &NextRec.GetField(&k);
            Evaluate Upper(&PropName)
            When = &VisibleProperty
               &NextFld.Visible = &DisplaySW;
            When = &EnabledProperty;
               &NextFld.Enabled = &DisplaySW; [Enable each Field/Record]
              Error "Invalid display property; Must be either VISIBLE or ENABLED"
      If &ChildSW = True Then   [If recursion]
         &ChildRSCnt = &NextRow.ChildCount;
         For &j = 1 To &ChildRSCnt [Loop for each Rowset child]
            &NextChildRS = &NextRow.GetRowset(&j);
            &ERSChild = create CLASS_EXTENSIONS:EWK_ROWSET(&NextChildRS);
            &ERSChild.SetDisplay(&DisplaySW, &PropName, &ChildSW);
 [For each Rowset child, call Method SetDisplay with the same parameters used 
 with the Rowset parent]
******End of the Package CLASS_EXTENSIONS:[Name of the Package: CLASS_EXTENSIONS]

About the Author:

Pascal Thaler joined Oracle University in 2005 where he is a Senior Instructor. His area of expertise is Oracle Peoplesoft Technology and he delivers the following courses:

  • For Developers: PeopleTools Overview, PeopleTools I &II, Batch Application Engine, Language Oriented Object PeopleCode, Administration Security
  • For Administrators : Server Administration & Installation, Database Upgrade & Data Management Tools
  • For Interface Users: Integration Broker (Web Service)

Friday Aug 26, 2011

Ways to Train – Oracle University Style by David North

It’s not just about the content, it’s not just about the trainer, it’s also about you – the learner. The ways people learn new skills is ever so varied; and it is for this reason that OU has been and continues to dramatically expand the sources and styles available. In this short article I want to expand on some of the available styles you may come across to enable you to make the best choice for you. Firstly, we have “Instructor-led” training; the kind of live, group-based training that many of you will have already experienced by attending a classroom and coming face-to-face with your trainer; spending time absorbing theory lessons, watching demos, and then (in most classes) “having a go” and doing hands-on exercises with a live system.

But now OU has added “LVC” (Live Virtual Class) – a variety of the live, instructor-led training where instead of having to travel, you attend class remotely, over the Internet. You still have a live instructor (so you have to run up on time... no slacking allowed!!). The tool we use allows plenty of interaction with the trainer and other class members, and the hands-on exercises are just the same – although in this style of training if you fall behind or want to explore more, the machines on which you do the exercises are available 24x7 – no being kicked out of the classroom at the end of the day!

We are doing more and more of these LVC classes as the word spreads about how good they really are. If you can’t take time out during the day and are really up for it, you’ll even find classes scheduled to run in the evenings and overnight! – although be careful you don’t end up on a class being delivered in Chinese or Japanese for example (unless of course you happen to speak the language... When you book a class the language and start times are clearly shown).

For those of you who prefer a more self-paced style, or who cannot take big chunks of time out to do the live classes, we have created recordings of quite a few – which we call “RWC” (Recorded Web Class”), so you can log in and work through them at your leisure. Sadly with these we cannot make the hand-on practice environments available (there’s no-one there in real time to support them), but they do give you all the content, and at a time and pace to suit your needs.

If you like that idea, but want something a bit more interactive, we have “Online Training”. Do not confuse this with LVC, the “Online Training” is not “live”; it is a combination of interactive computer based lessons with demos and hands-on simulations based on real live environments. You decide where, when, and how much of the course you do. Each time you log back in the system remembers where you were – you can go back and repeat parts of it, or simply carry on where you left off. Perfect if you have to do our training in bits and pieces and unpredictable times.

And finally, if you like the idea of the “Online” option, but want even more flexibility about when and where, we have “SSCD” (Self Study CD) – which is in effect the online class on a CD so you don’t even have to be connected to the Internet to dip in and learning something new.

Not all of our titles are available across all the styles, but the range is growing daily. Now you have no excuse for not finding something in a format that will suit your learning needs.

Happy training.

About the Author:

David North
David North is Delivery Director for Oracle Applications in the UK, Ireland and Scandinavia and is responsible for Specialist Education Services in EMEA. He has been working with Oracle Applications for over 9 years and in the past helped customers implement and roll out specific products in just about every country in EMEA. He also trained many customers from implementation and customisation through to marketing and business management.

Wednesday Aug 10, 2011

Oracle Real Application Clusters Curriculum under Release 2 by Lex van der Werff

Oracle Real Application Clusters (Oracle RAC), part of the Oracle Database 11g Enterprise Edition, enables a single database to run across a cluster of servers, providing unbeatable fault tolerance, performance, and scalability with no application changes necessary. With Release2 of the Oracle Database 11g, Oracle University has adjusted its RAC curriculum to ensure that you benefit from the full power of this new product.

The previous course offering for Oracle RAC Release 1 consisted of:

Course Name: Oracle Database 11g: RAC Administration Ed 1.1
Course Code: D50311
Duration: 5 Days
Content: This course was designed to cover both Oracle Database 10g Release 2 and Oracle Database 11g Release 1.

As a result of the significant product changes that occurred with Release 2, the curriculum was also redesigned to address these changes. The Oracle Database 11g Release 2 training is now covered in two courses totaling 7 days of training:

Course Name: Oracle Grid Infrastructure 11g: Manage Clusterware and ASM
Course Code: D59999
Duration: 4 Days 
Content:  Is directed at DBAs and Systems administrators with a responsibility for High Availability or Storage Administration or both. DBAs who are familiar with Automatic Storage Management (ASM) or Clusterware from older releases need this course to learn how Grid Infrastructure has combined these technologies, and to learn the new cababilities of the software. System administrators who manage HA software, or storage administrators will benefit from learning how this product works.

Course Name: Oracle Database 11g: RAC Administration Ed 2
Course Code: D60491
Duration: 3 Days
Content: Is designed for Database Administrators, primarily those new to RAC. Students will learn about RAC database administration in the Oracle Grid Infrastructure environment. This is not to be considered as a refresher course.

Both courses are required to master the Oracle Database 11g Release 2 and are part of the Oracle Database 11g learning path.

Some countries also offer a compact, accelerated version of both courses lasting only 5 days.  

Course Name: Oracle 11g: RAC and Grid Infrastructure Administration Accelerated Ed 1.1
Course Code: D72078
Duration: 5 Days

To summarize based on job role:

  • Database Administrators who are new to RAC should attend both courses or the accelerated version.
  • Database Administrators familiar with RAC, should attend the 4 day Grid Infrastructure course
  • System and Storage Administrators who manage systems where RAC is installed should also attend the 4 day Grid Infrastructure course


Database Release Course Name Course Code Duration Description
Oracle Database 10g Release 2 Oracle Database 11 Release 1 Oracle Database 11g: RAC Administration Ed 1.1 D50311 5 This course is for BOTH Oracle Database 10g Release 2 and Oracle Database 11g Release 1 only.
Oracle Database 11 Release 2 Oracle Grid Infrastructure 11g: Manage Clusterware and ASM Ed 1 D59999 4 In this course, students will learn about Oracle Grid Infrastructure components including Oracle Automatic Storage Manager (ASM), ASM Cluster File System, and Oracle Clusterware. This course is based on Oracle Database 11g Release 2.
Oracle Database 11 Release 2 Oracle Database 11g: RAC Administration Ed 2 D60491 3 This RAC course is required as 2nd course only after the Oracle Grid Infrastructure 11g: Manage Clusterware and ASM Ed 1 course.

Frequently Asked Questions:

Q: I have attended the 5 day Oracle Database 11g: RAC Administration course, which course do I need to become skilled in Release 2?
A: In this case, you only need to attend the 4 day Oracle Grid Infrastructure 11g: Manage Clusterware and ASM course.

Q: Is it possible to take the Oracle Database 11g: RAC Administration course first and then at a later point in time the Oracle Grid Infrastructure 11g: Manage Clusterware and ASM Ed 1 course?
A: No, the 3-day course should be attended after the Oracle Grid Infrastructure 11g: Manage Clusterware and ASM Ed 1 course

If you have additional questions or would like to speak to an Oracle University representative to discuss your personal training needs, let us know!


Lex van der Werff

Lex van der Werff started at Ingres BV as a consultant in 1992. 2 years later he joined Oracle as a trainer for various technical courses such as Languages (SQL and PL/SQL), Development tools (Developer and Designer), Database Adminstration and Application Server courses. During this time he also taught several seminars throughout EMEA which he developed himself. After working as a training manager for Oracle Consulting, Lex joined Oracle University in 2008 as Delivery Manager for the Benelux.

Wednesday Oct 13, 2010

Creating a Chart in PeopleCode with PeopleTools 8.50 by Pascal Thaler

[Read More]

Thursday Sep 09, 2010

Analyzing Varying Attributes in Essbase by Bernhard Kinkel

[Read More]

Expert trainers from Oracle University share tips and tricks and answer questions that come up in a classroom.


« July 2016