Friday, 13 December 2019

Sangam19 Conference Report


Last week I was in Hyderabad, India for the 2019 Sangam Conference.  The Hindu word Sangam means confluence or coming together.  The All India Oracle User Group have several Chapters across India and once a year they all come together for the most amazing 2 day conference.

This year the event was at the Hyderabad International Conference Centre and all 800+ delegates enjoyed multiple streams of over 200 Oracle tech & apps sessions across 2 days.

I'd been invited to present at the conference in the PeopleSoft stream where I talked about PeopleSoft Cloud Manager and about some of the latest customisation tools like Drop  Zones.   https://sangam19.sched.com/speaker/graham.smith2

It's hard to describe in words the enthusiastic atmosphere, colour, sounds, food, selfie-taking craziness of this event.   Try this short video for a glimpse !


What did I learn at this event?  Here's 10 things.
  1. You can switch from RedHat Linux to Oracle Linux without having to re-install everything. https://linux.oracle.com/switch.html .  Why would you want to switch?  Oracle Linux can be patched without a reboot!  https://ksplice.oracle.com/  Nice!!!!
  2. One PeopleSoft customer (HAYS recruitment specialists) are doing some interesting things with RPA (Robotic Process Automation) against PeopleSoft to save time and money on labour intensive transactions in their PeopleSoft system.
  3. Oracle PeopleSoft customers are migrating their PeopleSoft instances to OCI.
  4. I learned how to survive in a VUCA world from motivational speaker Simerjeet Singh.  (please note... I did not dance!! ) 
  5. I learned what Oracle's Mission is.  
  6. I learned that Indian weddings are lavish beyond anything I've seen at a wedding before! (there were 2 weddings taking place at the same venue as Sangam conference).
  7. PeopleSoft customers are experimenting with ChatBot and Digital Assistant technology.
  8. Wilderness Wood is not a Fortnite game location. But Slurpy Swamp is.
  9. Oracle Enterprise Manager 13c has some nice tools for migrating databases to Oracle Cloud.
  10. I can use ADDM to help monitor and tune SQL in my Oracle Database
And so much more !!!

But it's not just about the Oracle tech stuff that I learned but also about the community of people that I connected with.  Just a few photos to try and convey the Sangam19 experience.

The AMAZING Mr Sai Janikiram - Sangam and AIOUG President

Jenny Tsai-Smith - VP Product Management, Database Development, Oracle

With work colleague Shweta Jain from our Cedar office in Pune

Simerjeet Singh sharing ideas on how to thrive in a VUCA world

Srilakshmi Ramachandra  - Senior Director of PeopleSoft Product Development

Friends from Oracle and Cedar Consulting

This is what we're doing !

In between sessions.

Page Activate Fun - PeopleCode Friday

It's been a while since PeopleCode Friday last appeared from me so here's a fun one to keep you on your toes!

The component processor is a powerful engine and it follows some well defined logical rules.  Have you seen this useful flow diagram before? (sorry ... can't credit the author of this as I don't know who wrote it).  It may help you to answer the question below along with the PeopleCode Event guide here.


Scenario:

A Component has 2 Pages.



Both Pages have PageActivate PeopleCode.   Both code blocks update the &msg variable.




During the Component Post-Build event we execute a  TransferPage to GRS_PA_2. (The 2nd page in the Component).


Question ???

So the big question is ....What Happens!  We know that the TransferPage during PostBuild will cause the 2nd page in the component to be displayed...  So... between the transfer being initiated and page 2 being displayed what happens ?

(A) Does Page Activate fire only on Page 1 ?

(B) Does Page Activate fire only on Page 2 ?

(C) Does Page Activate fire on both Page 1 & Page 2

(D)  Or does something else happen ?
Answers and thoughts in the comments below please.

If you think it helps here's the section in PeopleBooks for PageActivate




Wednesday, 11 September 2019

OpenWorld 2019

 Really looking forward to Oracle OpenWorld 2019.  Catching up with friends from PeopleSoft community and learning about all the exciting PeopleSoft product developments are always my highlights.

There's been 3 big themes that we've been focusing on as PeopleSoft users for a few years now.

  1. New features, frameworks and user experience in the PeopleSoft product (never ceases to amaze me just how much the PeopleSoft development teams seem to produce!  )
  2. Reducing the impact of customisations.  Making Customisation Update Safe is one of the keys to taking advantage of the continuous deliver model of the PeopleSoft software lifecycle.
  3. Running PeopleSoft in cloud infrastructure.  PeopleSoft is designed for it and has solutions to many of the automation demands of cloud (an on-premises) infrastructure.  Many organisations are looking to IaaS to reduce their cost of ownership and improve the security, availability and maintenance cycles .
I have the privilege of being selected to present on 2 of these 3 themes at this years conference.  If you're attending the event then I look forward to seeing you and maybe catch you at one of my 2 sessions.

Make Your PeopleSoft Customisations Update Safe (PAN5338)

This panel of PeopleTools experts share their experience of how to customise safely.  Come and join in the discussion. Here's a couple of primers to get you thinking:  Top 5 Customisation Tips from 2018 - PSADMIN.IO Chat on Customisations 
Tuesday 17 Sep @ 5.15pm in Moscone West - Room 2012


Five Top Tips for Running PeopleSoft Cloud Manager (CON4424)

PeopleSoft Cloud Manager is a great tool for getting started in running PeopleSoft in Oracle Cloud Infrastructure.  Here's my top 5 tips (maybe more!) on how to get started.   The Magic Button Blog Post
Wednesday 18 Sep @ 3.45pm in Moscone South - Room 155C

Thursday, 8 August 2019

PeopleSoft and Cloud Day - October 2019

Every year Cedar Consulting organises a fabulous day of education and insight specially for PeopleSoft and Oracle Cloud customers.  This year it gets even better!  Now that Cedar is part of Version 1 we are organising an event for all Oracle Applications customers (PeopleSoft, EBS, Taleo, Oracle Cloud Apps and Infrastructure).

  • Including Rebekah Jackson from the PeopleSoft division bringing all the latest news fresh from Oracle OpenWorld in San Francisco.
  • Customer stories and Oracle demos across all the applications - PeopleSoft, HCM Cloud, ERP Cloud, Taleo, eBiz and JDE.
  • 50 sessions across 6 streams.
  • Useful networking opportunities with other customers using the same Oracle products.
  • and it's free to attend !
If you can make it to London on October 10th
then it'll be great to see you.


Tuesday, 23 April 2019

Drop Zones and HCM Image 030

HCM Image 030 was released on 19 April and with it the first set of Drop Zone enabled pages.

What is a Drop Zone?

The "Zone" is one or more areas on a delivered page defined by Oracle developers into which customers can insert their own subpages using configuration. It's an "Isolating Customisation" tool along with the likes of Event Mapping.

Why have Drop Zones?

The purpose is to provide a mechanism whereby a delivered page can be modified without actually customising it. Dynamically injecting your subpage into the delivered page, through configuration rather than customisation, will neutralise the impact making it much easier in the future to take updates from future Images.

Some Things to Know


  1. Drop Zones are added to delivered pages by Oracle. Customers should not add the Drop Zones themselves . If you do then you'll be customising the page and that defeats the objective of Drop Zones. If you want access to the pages which contain Drop Zones then you need to apply the required updates from PI 030.
  2. Subpage are created by the customer in Application Designer. Nothing particularly special about these subpages and you can place all the usual fields, buttons, frames, group boxes, etc.
    • Fields added to your subpage become an intrinsic part of the component buffer at runtime.  This is a powerful feature especially when combined with Event Mapping.
    • The Drop Zones exist at Level 0.  Any tables added to your subpage will appear at this level and will be automatically saved and updated by the component processor in the usual manner.
    • Grids and Scroll areas can be added to your subpages but you must add a Horizontal Rule object at the end of your subpage to reset the Level back to 0.
    • Read more here on Considerations for Creating Dynamically Injected Subpages
  3. These subpages are "Dropped" into the "Zones" using a configuration entry in page PeopleTools > Portal > Configure Drop Zones.
  4. Delivered pages have initially been redesigned to include Zones at the top and bottom of the page. Full list of pages can be found in Doc ID 1917096.2
  5. Drop Zones are currently only available on Fluid pages. It's possible that Classic pages will adopt this new feature but if you know anything about the Table heavy method of control page layout in Classic you'll know how challenging this might be.

Strategy for Adopting Drop Zone

There are a number of pre-requisites for using Drop Zones:

  • You need to be on PeopleTools 8.57 
  • You need the Drop Zone enabled pages from PI 030 (NOTE: If you take the Drop Zone enabled pages but you're on a tools release lower than 8.57 then the pages will still work. The Drop Zones are simply ignored).
  • In the process of applying the Change Package from PI 030 you may find you have customisation impacts to resolve. Your options are:
    • Remove the customisation as it's no longer needed.
    • Re-apply the customisation.
    • Re-design the customisation using Drop Zones and/or Event Mapping.

Using Drop Zones in re-designing a customised page may require you to rethink some aspects of the user interface. Drop Zones generally only exist at the Top and Bottom of the pages and so you'll need to look at grouping together your custom fields. Drop Zones won't solve requirements such as inserting custom fields into delivered grids or scroll areas. Design constraints will require compromise from your business users but the rewards will be faster application of maintenance and reduced cost of ownership.

Having said that "if you can make money, save money or improve customer service quality by customising then go ahead and do it - customize. Why wouldn't you try and get the most out of your investment?" I blogged on this idea here and discussed with Dan, Kyle and Jim at OpenWorld 2018 (listen in at 00:30:50 on the psadmin.io podcast).

So... back to HCM 030 and Drop Zones

Let's take an example from HCM 030 and setup a custom subpage to work with the Employee Self-Service Personal Details Address page (See Fig.1 ).  There are 3 Drop Zones defined on this page and of course you can't see them visually on the page as we have not dropped anything into them yet.
Fig.1 Delivered Address Page

I've created a very simple test subpage to help locate the Drop Zones (See Fig.2 ).
Fig.2 Test Subpage

If we open the Configure Drop Zones page and lookup HR_EE_ADDR_FL Component we see there are 3 sets of Drop Zones;

  • Top and Bottom of the Edit Page (the secondary page that opens when editing Addresses)
  • Top and Bottom of the Lookup Page
  • Top, After Home and Bottom of the Address Page (see Fig.3  )


  • Fig.3 Configure Drop Zone Page
It's not immediately obvious which Drop Zone is which so I'm going to use my test subpage for all of them and see what happens.  (NOTE: For some reason erroneous double rows are being pulled into this page for the secondary page Drop Zones.  I patched my PeopleTools to patch 06 but this didn't resolve it).

Fig.4 App Designer Page Definition showing 3 Drop Zones
See Fig.4  for the Application Designer view of the 3 Drop Zones on the main Addresses page.  It may be necessary to use Application Designer to understand Component structure, Page layout and PeopleCode logic.

The result can be seen in in Fig.5. It's not necessary to clear cache. Just reload the component and like all App Designer changes the effect is immediate.

Fig.5 Results of dynamically injecting subpages into Drop Zones

Conclusion

This is a powerful evolution of PeopleTools and has, once again, beautifully capitalised on the meta data based nature of PeopleTools.  If we combine the power of Event Mapping with Drop Zones we should be able to implement even more value adding change without costly and invasive customisation.

As always feel free to comment with thoughts and suggestions.

Thursday, 18 April 2019

Suppress Logs in Loop - New Trace in 8.57


New in PeopleTools 8.57 is a trace flag you're going to wonder how you ever managed without. (and before you ask...no... this is not an April Fools joke .  This really is a new feature in 8.57.)

Suppress Logs in Loop - It does exactly what it says it does.  It suppresses trace output for PeopleCode loops.

How does it work?

Here's some sample PeopleCode designed to show the new trace flag behaviour.
For &i = 1 To 100
   &a = &a + 1;

   For &j = 1 To 10
      &b = &b + 1;
   End-For;
   
End-For;

WinMessage(&a | ", " | &b);

With the the Suppress logs in loop flag OFF we get 3,409 lines of trace file showing 100 iterations of the first loop and 1,000 iterations of the second loop.


With the Suppress logs in loop flag ON we get a much more readable trace file.

But how useful is this?  Well, to get a quick, easy to read picture of a complex set of functions or class method calls that are nested in a set of crazy loops then this is VERY helpful.  But what if we're troubleshooting a behaviour issue? Let's modify our PeopleCode to include a test in the outer loop which will only evaluate TRUE once.
For &i = 1 To 100
   &a = &a + 1;
   
   If &a = 2 Then
      &s = "&a has reached the 2nd iteration " | &a;
   End-If;
   
   For &j = 1 To 10
      &b = &b + 1;
   End-For;
   
End-For;

WinMessage(&a | ", " | &b | ", " | &s);

With the Suppress logs in loop flag ON we get an incomplete trace.  Clearly, our code which sets &s is executing but we can't see it in the trace below.

The reason for this is that the trace only logs the first iteration.  It's by design.  Imagine how complex it would be for the trace engine to retrospectively include trace if a condition evaluated differently from one iteration to the next.



Despite this.... I still think this is a very useful feature... and so.... thank you PeopleTools team.

Read more here  in PeopleTools Online https://docs.oracle.com/cd/F13640_01/pt857pbr2/eng/pt/tsvt/task_ConfiguringPeopleCodeTrace-0710ed.html#ContentsNavBar

Monday, 1 April 2019

Undocumented Useful PeopleCode Functions

Those of us that have been working on PeopleSoft for a while know that we occasionally stumble across undocumented features and functions.

Logical Operators are one of the fundamental building blocks of computer programming languages.  Evaluating if a predicate (or expression) is logically false or true determines program flow and results in correct and predictable behaviour.  The 3 Logical Operators in PeopleCode (sometimes called logical connectives) are AND, OR and NOT

In this example the Boolean typed variable &foo must be True and variable &bar must be False in order for this predicate to be True.  (In the Truth Table a False and False (i.e. Not False) always returns True).
   If &foo And
         Not &bar Then
         
         /* do something... */

   End-If;

I've been working on a software project recently and I stumbled upon a new logical operator in PeopleCode.

I found the Maybe operator.

The beauty of this operator is that the evaluation of a Boolean using the Maybe operator might return a False or True but you're never quite sure which.   In this example &foo must be True and variable &bar could be False or True.  The result of the Maybe operator may result in True or may result in False.
   If &foo And
         Maybe &bar Then
         
         /* do something... */

   End-If;

This simple device can save us writing loads of quite complex code and that makes it a very powerful operator indeed.

There are many other useful shorthand functions we can use for evaluating field values and I'm particularly fond of  the functions AllNoneAllOrNoneOnlyOne and OnlyOneOrNone.  You can read all about there here in the PeopleSoft Online Documentation.

To check if a field has a value we could write
  If &foo <> " " Then
      
  End-If;

or we could simplify this with...
  If All(&foo) Then
      
  End-If;

This is particularly useful if you need to evaluate more than one field. So the following...
   If &foo <> " " And
         &bar <> " " And
         &dee <> " " Then
      
      /* All fields must have a non empty value */
      
   End-If

would become a nice tidy....
   If All(&foo, &bar, &dee) Then

      /* All fields must have a non empty value */
      
   End-If;


And our newly discovered Maybe operator also works as a Function too.  We can therefore return True or Maybe False if &foo has a value.
   If Maybe(&foo) Then
         
         /* do something... */

   End-If;

Happy coding. And if you too come across any hidden functions please let me know.

Sunday, 10 February 2019

Oracle India PeopleSoft SIG

I've been back in India this week spending time with some of our amazing Cedar Consulting India team who are based in Pune.  In this Cedar office, located in the west of this busy city, we have PeopleSoft and Cloud specialists, developers, PS admins and support people all contributing to the success of our clients around the world.
Some of the Cedar India Team

So proud to be part of this high-class team.

This is my second trip to India and I've totally fallen in love with this amazing country.  Great food, warm climate, Royal Enfield motorcycles and lovely people.  I can honestly say I've enjoyed spending some time with some quite wonderful people.



I then flew down to attend the Oracle India PeopleSoft Special Interest Group meeting. This is a 2 day event organised by Oracle to bring together PeopleSoft customers and partners to learn about PeopleSoft technology and applications and to network with the Oracle development team.

Jam packed room for the Oracle PeopleSoft SIG

Lunch with Ram, Anusha & Kamalesh - Event Mapping dev team

At the Oracle SIG I had an engaging 2 days talking with others about the exciting features of PeopleTools, discussing suggestions for enhancements, solving problems and dreaming up solutions to the challenges of the modern and evolving business world.  I count it a real privilege to belong to this global PeopleSoft community.


Nagendra Krishnappa
Cloud Manager Product Development Manager, Oracle
PeopleSoft as a Service is a very real opportunity for customers to migrate their on-premises PeopleSoft to run in Oracle Cloud Infrastructure (OCI) and to Simplify the Complexity of running their systems.  Moving to OCI enables an unprecedented level of automation in areas such as hardware and network provisioning, security, PeopleTools upgrades and patching and more.  PeopleSoft Cloud Manager is a key enabler in this  and I had the great pleasure to address the subject generally about PeopleSoft as a Service before Nagendra Krishnappa, Cloud Manager Product Manager, Oracle talked about the new features of PCM 08 and about ongoing investment in this exciting PeopleSoft application.

PeopleSoft as a Service - Simplifying the complexity of Selective Adoption
Never been to a PeopleSoft event where Oracle talk about a bunch of new features and then proceed to hand out touch tablets with access to live working systems (in Oracle Cloud of course) for delegates to learn how to use the new features.  Brilliant idea.  We were organised into tables and given uses cases to walk through on live PeopleSoft instances.  We did this with Drop Zones (new feature in 8.57) and Page & Field Configurator (a new Enterprise Components feature in recent images).

Rebekah Jackson (VP Product Strategy, Oracle) fronted both days first outlining Oracle's huge investment in PeopleSoft and then on day 2 opening the discussion on disruptive technology and what PeopleSoft are planning and thinking about in the realm of AI/ML, digital assistants and voice interaction.
Rebecca Jackson - VP, Product Strategy & Development, Oracle
Mark Thomas - Hays and myself talking about PeopleSoft Fluid 

Jeremy Pelley - Product Management Director, Oracle interviewed Mark Thomas from Hays and myself about our real-world experiences of Fluid deployment, development, testing and more.  This was a great opportunity to share stories about the significant value Fluid UI has in PeopleSoft and how the appearance of software systems plays a key role in determining it's popularity not just usability and mobile device enablement.






AI/ML interactive discussions
Oracle also ran an interesting session on Artificial Intelligence and Machine Learning with interactive breakout group sessions trying to identify opportunities to develop solutions in PeopleSoft.






Other sessions included:

* HCM and FSCM roadmaps and product demos
* Data Privacy Framework in PeopleSoft
* Lifecycle Management and tools
* PeopleSoft as a Service in the Oracle Cloud
* Safer Customisations using Configuration Tools and better development practice

and so much more.

If you're in India and you use PeopleSoft then I highly recommend getting involved in organised community events by Oracle and by AIOUG 

See you again soon India.


Sunday, 20 January 2019

Did you know? Home Link Now Works

Here's something I came across a few weeks ago that is so blindingly obvious I was blinded by the obviousness and simply didn't notice it.

Classic PeopleSoft pages have a New Window link.  (If you'd like to see this in Fluid vote here https://community.oracle.com/ideas/16701 )

When the user clicks the New Window link it opens a new browser window with the same URL as the original but with the _newwin string appended to site name.  This string is resolved into a new session state number by PIA servlet.  The session number preserves the state of each component in each new window.  This works fine until you click the HOME link which will reset the session number back to the original causing the session states of your multiple windows to get mixed up and confused.

However,  THIS NOW WORKS OK!   Somewhere around PeopleTools 8.55 or 8.56 (or maybe even earlier) this seems to have been fixed and I didn't notice.  Watch the video below to see this working. 

It's quite likely everyone already knows this and it was only me that wasn't paying attention.  If this blog does nothing else it'll help vote up the New Window Link on Fluid idea on the Oracle Community Ideas Space.


Wednesday, 2 January 2019

5 Things for 2019


Happy New Year !
It's 14 years since Oracle acquired PeopleSoft.  Can you believe that?  Another thing I'm finding hard to believe is that my son was only 3 years old when Oracle paid $10.3 billion USD for PeopleSoft and this month he starts driving lessons.  Where has the time gone ? 

So what does this year hold for you and me? One thing for sure is that the IT industry (a bit like our children) does not stand still.  The PeopleSoft system is no exception to this and with Oracle's vision for PeopleSoft in the cloud and continued investment in new features and functionality we all have lots to focus on in 2019.

So here's my 5 Things for 2019.  As always feel free to comment with opinion and alternatives. In no particular order but with the imminent release of 8.57 for on-premises customers this has to be #1 on my list.

(1) Get up and running on 8.57.  It was actually released back in September 2018 on PeopleSoft Cloud Manager only (see https://support.oracle.com/epmos/faces/DocumentDisplay?id=2448741.1) so the clock is already ticking on your 8.56 end of support dates.  General Patches and Platform Certifications support for 8.56 ends on 21st September 2019.  (that’s THIS year folks).    We will probably see 8.57 made available for on-premises installations this month.  If you can't wait then create an Oracle Cloud account, spin up an instance of PeopleSoft Cloud Manager, Putty into the PCM instance and access the DPKs from the /cm_psft_dpks mounted folder.
From MOS Doc ID 2238983.2


PeopleSoft in the Cloud
(2) Explore the benefits of Oracle Cloud Infrastructure (OCI).   For cloud infrastructure there's  Amazon AWS, Microsoft Azure, Google Cloud Platform and Oracle OCI …. I guess … take your pick from one, all or none of these.    However, Oracle Cloud Infrastructure (OCI) has some nice benefits over the others if you're running PeopleSoft Cloud Manager and if your database platform is Oracle.

9.2 - Modern, Mobile, Ready for Cloud
(3) Upgrade to 9.2.  If you want an ERP system that has a strong future, committed supplier,  vibrant and enthusiastic user community,  feature rich,  extensible,  runs on mobile, is cloud ready, receives continuous updates throughout the year then don't swap out PeopleSoft for something else…. Upgrade to 9.2.  The team at Cedar Consulting have done so many 9.2 upgrades now we've lost count.  Call us if you need any advice or help.




(4) Action your Selective Adoption Strategy.  You have an investment in PeopleSoft applications that goes way beyond the initial cost of implementation or your last upgrade.  You've invested in managed and structured data, your staff are competent in using PeopleSoft, you've built secure policies and procedures to govern this critical business data and your end-users are familiar with PeopleSoft.  Action your selective adoption strategy.  Otherwise it's like buying an Aston Martin Vantage but never getting it serviced (the  cost of a nice car is more than just the original purchase price).  Get to know what's new in the latest images, run some investigations into possible optimisations and explore new features and functionality.  Get the most out of your investment.
 Oil ... essential maintenance

I would recommend starting with :
  • Get Current on latest image every 12 - 18 months
  • Upgrade to latest PeopleTools release every 12 - 18 months (do this at the same time as Get Current)
  • Apply PeopleTools patches in line with Critical Patch Updates every quarter
  • Review every Image release. Consider adhoc new features and/or bug fixes every 3 months.


Get one of these buttons!
(5) Learn something new every day.  Read the blogs (I use Feedly to manage the dozens of PeopleSoft and Oracle bloggers that I follow), read PeopleSoft Online Library , Sign-up for PeopleSoft Weekly newsletter,  listen to the psadmin.io podcasts, take an online class in CSS, find a friend and meet up every month to exchange ideas and learn together, get a free Oracle cloud account and learn about cloud infrastructure and the joy of sub-nets and security. Whatever you do… do something. And once you learn something…. Share it.  Push the learn button on your keyboard often.

And finally... for now.... I'd like to wish all my PeopleSoft friends around the world a very happy and peaceful 2019.    I look forward to learning more with you this year and working towards improving things for businesses and the workforce.  And remember… it's all about the people!