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.
UPDATE Feb 2018:  Only globally now.  The user level personalisations has been removed in 8.55.

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.

Tuesday, 7 October 2014

Step by Step - "Hello World" Fluid Application

PeopleTools 8.54 delivers Fluid, a complimentary new user interface designed for mobile and desktop devices (see it in action here). If you don't already have tools 8.54 installed grab Image 008 for HCM or FSCM  (see Doc ID 164184.2 on MOS) and follow this simple step by step guide to create your first Fluid application.  If you know Application Designer then all of this will be familiar.

You'll need access to a PeopleTools 8.54 environment and Application Designer.  I hope some find this useful.

Step 1 - Enable the Fluid Homepage

In the FSCM 008 image and maybe the HCM image the link to the Fluid Homepage is not visible (even though it exists in the Portal Registry).  Follow this video to enable the link .  Basically you just need to create a new content reference link based on the existing Fluid Homepage link.

Step 2 - Create a Fluid Page 

Note the new definition type of Page (Fluid).  However, a Fluid Page is just a Standard type Page with the Fluid checkbox ON in Page Properties / Use. 

You'll be prompted to select a Layout Page.  Layouts (as the name suggests) control the page framework. A Fluid Layout page is a Page of type Layout. For this sample app we'll use a simple, predefined layout called PSL_APPS_CONTENT which gives us a simple, single frame view.

Name the page and SAVE.  It will prompt to copy PeopleCode but this page layout has no PeopleCode so it won't matter what you select here.

Let's put a button and a description field on our page.  When the button is clicked we want to display "Hello World".  So, create a work record and add ACCEPT_BTN and DESCR fields along with some PeopleCode on FieldChange event of the button field.

GRS_FLUID_WRK.DESCR = "Hello World";

Now we'll just set the button link properties to tidy up the display,

Step 3 - Create a Fluid Component

Now we'll create a Component and add the new page.

And now the "magic sauce".... TICK the Fluid Mode property on the Fluid TAB.  It's this property that tells PIA to render this component in Fluid rather than "Classic" mode.

Our sample application won't be displaying any data so we'll set the search record to the commonly used INSTALLATION table.

Step 4 - Add Component to Menu

Save your new component and Add to a menu.  As with all other components the purpose of adding to a menu is to allow permission lists to grant security access.

Step 5 - Register the Component

Now, with the Component open click the Register Component button to invoke the portal registration wizard.

To keep things simple we're going to add our Fluid application to the portal folder PTFL_PEOPLETOOLS. You can of course create your own portal folders to organise Fluid Applications or add them to existing folders.

Again, just to keep things in this walk through simple I'm using the ALLPAGES permission list to grant access for my user (in this case VP1) .

Step 6 - Add the new Application Tile to your Homepage

Access the Fluid Home Page. 

Use the Personalize menu item to add a new Tile to your homepage.

Here's what your new Tile should look like.  The icon and label are set in the Structure & Content / NUI Attributes TAB.  (See Appendix below)

 Click the Tile and test your application.

You may notice that it doesn't seem to matter where on the page you place the fields - the layout will always be the same.  This is because unlike the "pixel perfect" Classic interface the Fluid UI is designed to be "responsive" to the size of the display device and so will control the layout of page objects in a free-flow style.  What's controlling the field sequence on the page is the Field Order.

App Designer shows Description following Button
but Field order has Button following Description and so....

Fluid renders according the the Field order.

Appendix - How to control Tile Display

The Tile contents, Size and Behaviour can be set using the NUI Attributes on the CREF in Structure and Content.  The contents can be either 
  • a static label and icon
  • HTML returned by an iScript
  • results from any component
  • results from a PeopleSoft URL
Tile Caption
Tile Dimensions and Content Controls

1 x 2 size Tile

Friday, 3 October 2014

OOW 2014 - Customer Appreciation Party

Aerosmith..... what can I say,  Started in 1970 - these "older guys" can still sing and play.  Amazing.

Walking through the "magic" gateway to Treasure Island - San Francisco

500 buses (shipped in from over a 100 mile radius) carried 40,000 Oracle customers and partners

And just for the sentimental out there here's the classic  "I don't want to miss a thing" (1996 hit I think).

OOW 2014 Day 3 Fluid Deep Dive

If the overall theme of OpenWorld has been Cloud then within the PeopleSoft product the big theme has been Fluid (and Mobile).

Fluid is a new "complementary" user interface designed for multiple platforms - not just mobile devices like cell phone and tablets but desktops and laptops.   It's not a replacement of the "classic" interface but is just better suited to writing applications for casual and executive users who may be on a mobile devices one day and a dektop the next. The UI is a "responsive" one that adjusts layout for different screen sizes and orientations,  Read more here.

On Tuesday Dave Bain (Director, PeopleTools Product Management) gave a deep dive session on Fluid and I've tried to capture some key points.  I don't know if non-OOW attendees will have access to the PowerPoint slides on but have a look for this one - they are full of useful information  The session was entitled PeopleSoft Mobility Deep Dive: PeopleSoft Fluid User Interface and More  [CON7588]

Fluid was enabled in 8.54 PeopleTools release but (at time of writing) there have been no apps made available yet.   If you have PUM Image (PI) 008 then you have Fluid but there are no Fluid Apps.  I'm going to blog soon on how to create your first fluid app.  Expect the first Oracle built Fluid apps in November for HCM in PI 009 and for FSCM later in 2014.  Most of the Oracle presenters at conference were using their internal pre-release demo images for their presentations.  I have to say... it looks very nice.  So here's some things that may be of interest...

  1. Fluid is PIA.  Fluid pages are served up by the psc servlet.  In fact, a Fluid page is just another component and page.
  2. Pages are "responsive not fixed".  The HTML uses
    tags and CSS to control layout rather than the "classic" which uses
    tags.  A clever(ish) play on words to describe a  Free fLowing User Interface. (I haven't heard this officially... i'm just speculating this was how they derived the name)
  3. Fluid pages are not pixel perfect.  In other words the fields positioned on the page are rendered in a logical free form mode relative to other objects around them and the size of the device rather than absolute positioning.
  4. A page definition in App Designer is either Fluid or Classic. It cannot be both.  (A check box on the page properties controls if it's fluid or not)
  5. You "can" tick this checkbox on for existing classic pages but "you'll have fun" suggests a wry Mr Bain.  "Fluid pages should be created from scratch" he goes onto affirm.

If you have the PUM Image 008 for FSCM then you have PeopleTools 8.54 and therefore the Fluid framework. (not sure if the HCM Image 008 also has this link missing)  Here's how to access it.

Classic vs Fluid