Friday, 31 July 2015

Date formatting in PeopleSoft Pagelets

Following on from last weeks post on number formatting in Query you may have noticed that date and datetime fields display with different formats in PeopleSoft Query and Query Pagelets .  See Fig. 1 & 2 below for examples of this difference.

Fig. 1. Pagelet Date Formats (note the raw native dates)

Fig. 2. Query Date Formats (note the correct formatting)

So, why the inconsistency in formatting?  Well, I think this has to do with the XML document generated as source data for the Pagelet Wizard.  One of the issues with this XML is that it contains no field data type declarations.  Consequently the Pagelet Wizard XSL cannot distinguish XML element values that are dates from any other type of field.  See example XML source data in Fig 3.

Fig. 3. XMLQuery source data (no field type declarations)
You may have noticed that when running a PS Query to XML through Query Manager/Viewer there is also an absence of field declarations and also has date time values in native, raw unformatted text.  However, Query Manager/Viewer takes care of the date formatting for us.

So, if you want to format dates in your Pagelet results then you can use the same tag as used to format numbers.   PeopleBooks describes XSL ost transformation processing  here.

We first need to write some XSL which will identify the field you want to format.  What you write will depend on the method used by the XSL to process the XML.  For example if you are using the delivered Bulleted List XSL template then there is an iteration of the XML document using an
 <xsl:for-each ...=""> </xsl:for-each>  
construct.  This will apply the same XSL to every element in the querdata result set.  So to pickout just the date fields we need to test each field.   So, add an
 <xsl:when ...="" condition="" test="expression"> </xsl:when>  
 logic to identify the nth field.  An example of this is shown in Fig 4.

Fig. 4. Bulleted List iteration of XML querydata
In addition to testing column ordinal position (which of course could change if you add/remove fields from the). you can test for field names using the code in Fig.5. The field name is stored as an  attribute of the querydata element.  (read more on XPATH functions like position() here

Fig. 5. Evaluate fieldname attribute in the querydata element
If you're using the table layout XSL template then the XSL becomes a little more involved.  When working with XML I always like to format and syntax highlight.  I use these tools often

Anyway, back to XSL for Table based layouts in pagelets.  You'll find a block of XSL for each column so you won't need to try and work out which field your processing.  This makes targeting only the date fields easier.  Fig. 6 shows the PSFORMAT tag added into the XSL for table based Pagelet.

Fig. 6. PSFORMAT added to table based XSL template (note the position()=2 selector)

Hope you find this helpful and have as much fun with it as I did.

Monday, 20 July 2015

Number formatting in Pivot Grids and Pagelet Wizard

(1) Pivot Grid without number formatting
I recently had to solve a Pivot Grid and Pagelet Query number formatting problem.  By default numbers are not formatted to show thousand separator or currency symbols.  Without this common styling it's much harder to read large numbers.

I found this problem exists in PeopleSoft Query, Pivot Grids and Pagelets that render Query output.

Number Format in Pivot Grid

To control number formatting in a Pivot Grid model you need to include a Currency Code field in your Pivot Grid Query.  The value in this field is then used to drive currency symbol and thousand and decimal characters.  This field can then be used in Step 3 of the Pivot Grid Wizard to control currency symbol and/or thousand separator.  The PeopleSoft 3 character currency code is used to lookup currency symbol and the precision level at runtime from table CURRENCY_CD_TBL.

(2) Set Currency Control Field in Formatting Options.

Number Format in Pagelet Query

The Pagelet Wizard allows you to customise the XSL used to transform the Query XML data into HTML.  So, the obvious solution here is to use XSL language to handle the number formatting. After  all that's what XSL is for.  We could use an XSL function format-number() however in testing this in PeopleTools 8.54.08 I found it didn't have any effect (See example in screenshot (5) below) .  If I take the XML and XSL and do the transform outside of PeopleSoft using something like or XML/Spy then it works just fine.  I don't know why the PeopleSoft XSL transform engine is not correctly processing this function.  So I asked around and a friend of mine pointed me to a blog entry by PeopleSoft Blogger David who refers to Pagelet Wizard Post-Transformation Processing in which there are some very useful post processing tags.  Using the delivered PeopleSoft PSFORMAT tag has a number of advantages over the standard format-number() function in that it is aware of PeopleTools meta data and can automatically deal with such things as inserting the correct currency symbol and the precision level (did you know that the Kuwaiti, Jordanian and Tunisian Dinar has 3 decimal places?)

 You can see the effect of this in the screenshots below (3).  I've also added align="right" to the table div so that it right aligns my numbers.  I've only targeted columns that I want to format (ie not Year values)  and these are in column 6 and 7.

         <xsl:when test="position()=1">  
             <PSFORMAT TYPE="NUMBER" FORMAT="%10.2v"><xsl:value-of select="text"/></PSFORMAT>  
             <xsl:value-of select="text"/>  

(3) Using the PSFORMAT post processing tag to format numbers

(4) Example of Formatted and Unformatted Pagelets
In the Table XSL template each field in the querydata collection is processed one at a time and are numbered in the XSL text.  However, other XSL templates such as the Bulleted List use  < xsl:for-each select="text" > to iterate through the querydata values.  Again, you'll need to test for specific columns to apply format to only the number fields.

(5) Use the position() function to identify specific columns

Monday, 8 June 2015

Windows Drive Mappings

Recently, TheSmartPanda blogged on a common problem found when trying to use drive mappings from a command window running in elevated/admin mode.

Just wanted to share another way of dealing with this.  This Microsoft article explains why this problem occurs and documents are more permanent workaround.

Class 43 Diesel at London Paddington

Tuesday, 2 June 2015

What is a modern software solution?

Oracle’s vision for the future of PeopleSoft.  Recent conversation between Marc Weintraub (Senior Director of PeopleSoft Product Strategy) and Jo Randles (Cedar’s Head of HR Optimisation).

Jo: What would you say to those individuals that might think that PeopleSoft is considered a bit old-school?

Mark: "I turn that around and ask customers... you're looking for a modern solution. ... I consider a modern solution is 
  • intuitive and simple user experience
  • available on mobile devices
  • has incredible amounts of functionality
  • can be deployed and provisioned rapidly
  • can get new updates without disruptions
That's what PeopleSoft does now.  I would say PeopleSoft is a modern solution"

Watch the video here 

Tuesday, 19 May 2015

Fluid Landing Page or Classic Portal Homepage ?

For PeopleSoft 9.2 customers that are thinking about Fluid there are many questions to answer.  I don't think it's as simple as "should I use Fluid or not".

Fluid is the name of a new user interface in PeopleSoft which is designed for self service, casual and executive users.  It's important to be aware that this new user interface is experienced at both a component (application) level and at a landing page (first page visible) level.

Throw the classic PeopleSoft Portal into the mix and it starts to get interesting.

Here are just a few of the questions and implications if you decide to "use Fluid".  There are no easy answers to these questions so a I simply offer some discussion.  Feel free to comment.  I'll be blogging a few suggestions over the next few weeks.

Q1) What do your users see when they first signin?  The Fluid landing page or the Classic Portal Homepage?  They look, behave and function very differently but essentially they both represent the initial view from which users will navigate to applications and/or view key business information (eg pagelet charts, queries, etc).  It potentially gets confusing for users if you give them both.  For example a user may log into PeopleSoft on their desktop PC and see the Classic Portal Homepage but then on their mobile device they see Fluid Landing page.

Fluid Landing Page

Classic Portal Homepage

Q2) Should I use the Fluid component or Classic component?  (for example in HR self service there is both a Fluid and Classic version of Absence Request).  Not all components have a Fluid equivalent and not all will because Fluid is primarily targeted at self service users.  The reality is that if you choose to use Fluid where it exists and Classic for all other components then some users will inevitably be switching between Fluid and Classic.  Potential for more UI confusion.  It's nice and tidy for the user who has 100% self service - give them access to the Fluid component only and all they will experience is Fluid.  However, if a user has both self service and access to the more complex classic components, then by using Fluid for the self service part this user will experience both user interfaces.

Q3) If I adopt Fluid then do I show the Fluid component on all devices my users might log in with or do I just restrict Fluid to truly mobile devices?  For example:  If a user logs in on a cell phone at home they may see the Fluid Landing page and Fluid components but back at the office, on a desktop do you show the Fluid Landing page and the Fluid component or the Classic Homepage and Fluid component or (more confusing still) the Classic Homepage and Classic component.  More potential confusion at the UI level if you determine the user interface (Classic or Fluid) based on what device they're using.

I'll be blogging some suggestions in time but please feel free to comment below.

Friday, 15 May 2015

My last day at Oxfam

Today is my last day at Oxfam. After over 18 years I figured it was time to move on and gain some new experiences.

Oxfam has been using PeopleSoft applications since 2000 and I joined the team in 1997 on a 1 year contract to help with supplier selection and implementation.  I loved it so much I stayed another 16 years.  Oxfam now has over 4,000 users in around 75 countries using PeopleSoft FSCM and HR to manage their global finances, logistics, project management and HR functions.


It's been a thrilling place to work - the challenges have been many and great but the people and Oxfam's mission have made it all more than worthwhile.  We have, together as a team, produced a system that has made a real difference to Oxfam's work worldwide.  I'm immensely proud to have been part of that and count it a real privilege to have worked with some truly wonderful people.

But the future holds some new challenges and experiences.  I'm looking forward to joining the team at Cedar Consulting and will, of course, still be part of the Oracle PeopleSoft community.

Wednesday, 6 May 2015

PeopleSoft Ping

I've often wondered if the PeopleSoft community can learn anything about optimising or validating our PeopleSoft infrastructure environments by gathering PeopleSoft Ping data from other users.  So, I figured let's gather some data and start a discussion.  I've created a Google Form to gather some basic and anonymous data.  The data gathered is anonymous and will only be used for the purposes of community discussion around optimising infrastructure.

Submit a PSPing Response

PeopleSoft Ping Responses  (view spreadsheet)

Please post questions, ideas and general infrastructure performance and optimisation comments against this blog post.

Wednesday, 18 March 2015

UKOUG PeopleSoft Roadshow 31 March 2015

The UKOUG PeopleSoft Roadshow will be returning to London on Tuesday 31 March 2015.  The event is an ideal opportunity to not only gain valuable updates on PeopleSoft but to come face-to-face with other users and see how they use the software. Make sure you're there by booking today!

More information here

Wednesday, 11 March 2015

Change Assistant Upgrade Documentation

Two tips from the application upgrade coalface....

 Put the documentation for your upgrade job on the local drive of your upgrade PC.  This may speed up navigating around the upgrade job in Change Assistant.  NOTE: Poor performance may be caused by my anti-virus software and/or remote server speed where the documentation is stored so this may or may not speed things up for everyone.

If you're struggling to read the documentation because the text is too small then just make the following edit to the content.css file located in the documenation folder.  There are a few other edits you could make to the styles in this file but this one is a quick win.

Easier to read after changing the P font size to 16pt 

Friday, 23 January 2015

Tangerine Stylesheet Bug

Swan Style - High Contrast Blue/White Labels
Many of my users have complained about the poor contrast of colours in the 8.53 Tangerine style. The old Swan style had high contrasting white text on blue background and our useability tests and feedback of PeopleSoft 9.2 applications showed that users didn't like the pale "tangerine" text on the pale blue background.

Good news is that this is a bug and is easily fixed.

It wasn't until just before we went live on FSCM 9.2 on tools 8.53 that we discovered there's a bug in the stylesheet classes that controls label font weight in group box, grid and scroll headers.

The scroll, group box and frame headers are all supposed to be BOLD.  You can see the difference in the image above.  On a busy page the bold font gives a much better contrast and makes the page much easier to read and navigate.

Tangerine style in 8.53 alongside 8.54 - Note the BOLD higher contrasting headers

Seems like this is fixed in 8.54 tools but not in any 8.53 patch I know of.  (checked in 8.53.19 but still not fixed).

It's really easy to fix yourself and well worth it.

There are at least 9 style classes that need to be modified (or overriden using a sub-stylesheet if you prefer not to edit the delivered PTSTYLDEF_TANGERINE). These are the ones I've identified but there are almost certainly more (for example pagelet header labels).

For each class set the Font Weight attribute = Bold.