Wednesday, 31 December 2014

PeopleSoft Portal: Introduction to XSL

At the UKOUG Apps 2014 conference in Liverpool I presented on the subject of "PeopleSoft Portal: Things you can do."....  I ran out of time and some of my live demo didn't work...  sorry folks.

One of the subjects we touched on was using XSL (eXtensible StyleSheet Language)  to tranform Pagelet content.  XSL may be a bit of a mystery to some..... so I wanted try and shed a bit of light on it.  I hope you find this helpful.

In the Pagelet Wizard - if you choose Custom as the Display Format then you can edit the XSL used to transform the data source XML (Query, Navigation Collection, etc).


One of the most frequent questions I get asked about this is "are there any tools for creating and editing XSL?".  The short answer to this is "Yes" but, at the end of the day XSL is a programming language and there's only so far tools will take you before you need to start learning the details of the language.

This blog (and maybe others to come) will hopefully get people started on the basics.

Let's first take a look at the XML produced by an example data source.  In this example I'm using a PS Query that's delivered with every PeopleSoft installation - XRFWIN.

  1. Use the Pagelet Wizard to create a new Pagelet with data source type of Query using XRFWIN and select Custom at the Display Format step.
  2. Depending on your PeopleTools release you will have a number of XSL Templates to choose from.  You can create your own in PeopleTools > Portal > Pagelet Wizard > Define XSL.
  3. Copy and past the XML text into a file and save it.
  4. Let's take a look at the structure of this data.  There are 3 main sections to this XML document:
    • HEADER - a single header in
    • DEFINITION - a collection of containing an element for each field in the Query definition.  In our example XRFWIN has only one fieldname.
    • DATA - a collection of elements containing the actual Query results.


  5. Now let's look at the XSL structure.  This is helpfully annotated by PeopleSoft with some useful comments.  I used the XSLtemplate called "Bullet List".  XSL is a mix of HTML and XSL instructions found in tags prefixed with
    • a main XSL template calls three other templates
      • a header template - /queryresult/queryfields
      • a detail rows template - /queryresult/queryrows
      • a footer template - /queryresult/queryproperties
      Bullet List XSL Template (sections have been collapsed in this views)

In working with XML and XSL it's useful to use a good, purpose built editor.  I use Altova Spy but there are other tools available (StylusStudio is the only other one I have some experience of).  If you're serious about working with XSL then it's worth investing in good tools.  Altova Spy has a very useful step through debugger.  Watch the video below for walk through the XRFWIN example.  It really is a great way to learn about XSL.


Wednesday, 17 December 2014

Forgotten Password Bug

Discovered an issue today in the Forgotten Password functionality in PeopleTools (8.52, 8.53 and 8.54 and probably 8.50)

Symbol characters are used in the random password that is generated and emailand to the end user.  Unfortunately, the open and close chevron ( < and > ) symbols are two of the characters used.

Forgotten Password Email Text is stored in HTML and the new password is merged into this text using a variable name of <<%PASSWORD>>.  So, as you can imagine, any password that contains one of these 2 chevron symbols causes the email text to get corrupted and will either show no password or a shortened password in the delivered email.

The fix to this is as simple as removing these symbols from the array &Array_Special in FUNCLIB_PTSEC.OPRPSWD.FieldFormula SetPasswordArrays() function.


Friday, 12 December 2014

Control Fluid Landing Page by Role

One of the questions that came up at the recent UKOUG Apps 14 conference was about controlling user access to the Fluid Landing Page based on security Roles.  We're talking here about controlling which users see the Fluid Landing Page when they login.

The default homepage can be set Globally in personalizations and user's can optionally override this.


The question that was asked was "can I use Role based security to control what the user sees when they login".  As far as I can see there's no delivered way to control this with Roles so on the way home on the train from the conference I coded this little hack using Signon PeopleCode.


  1. Create a new Funclib work record and add the following function 
  2. Register this new function in Signon PeopleCode 
  3. Reboot the application server for the signon code to take effect.
  4. Create the Role named "Fluid User" and give it to a user.  When the user logs in their override by for HPPC personalization will be overriden and set to "F".  This will force the user to the Fluid Landing Page.
  5. You could use Dynamic Role based security to automatically add the "Fluid User" role to users based on pretty much any criteria that you can logically write up in a PS Query.  
I haven't tested this much.  Like I say - I wrote it on the 12:34 from Liverpool to Birmingham and I needed to finish my Grande Latte first before booting up my laptop.

Happy to hear of other ideas and suggestions.

Wednesday, 3 December 2014

UKOUG Apps 2014 Conference




The UK Oracle User Group APPS2014 Conference  -   2 days of PeopleSoft presentations  -  meet senior PeopleSoft executives  - great networking opportunities  -  at the ACC Liverpool

PeopleSoft Apps days are 9 & 10 December 2014




I'm giving a very practical presentation on some of the things you can do with the PeopleSoft Portal.  Every PeopleSoft application has the PeopleSoft Portal embedded... it's what you see when you first login.  How does it work? What can you do with it?  Come and join the discussion on Tuesday 9th at 13:30.    Hope to see you there.