Tuesday, 28 June 2016

PeopleSoft Predictions 2016


Predictions

I regularly get into conversations with PeopleSoft customers, consultants and others about the future of PeopleSoft.  There is no doubt that Oracle continues to invest heavily in PeopleSoft technology and applications and I don't think there's been a more exciting time to be a PeopleSoft customer.  Is it just me or does it feel like that in recent years there's been a huge increase in the new release of new features, enhancements and new technology in the PeopleSoft products?  This product is far from being in maintenance mode.


  • Best in KLAS winners for ERP systems in the healthcare sector, a leading student administration solution for university campuses and the feature rich HR system used by some of the largest organisations in the world.
  • Recent (since 2013) innovations from Oracle include continuous delivery of features through Selective Adoption, responsive mobile ready UI (Fluid), PeopleSoft Cloud Architecture, Pivot Grids, WorkCentres, powerful facet based search (SES), REST based web services, Push messaging technology, Activity Guides, PeopleTools Test Framework, inclusion of JQuery and Oracle JET, and more.  And this is just referencing the underlying technology and development framework.  I haven't spoken of the thousands of new features and enhancements across the applications themselves.


So, talking about the past and present is easy.  But what does the future look like?  Here's some of my thoughts on what might happen in the Oracle PeopleSoft world.  I reserve the right to be proved right when these predictions come true and I reserve the right to change my mind as time goes by.

(Actually some of these things have already happened since I started writing this blog)

1) One click provisioning of PeopleSoft Update Images in the Oracle Compute Cloud.  I've been saying for some time now that Oracle were very likely to allow customers to buy on a pay as you go basis a PeopleSoft Update Image on the Oracle Computer Cloud.  You can now do this through the Oracle Cloud MarketPlace.    Read more here http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/compute-iaas/deploy_psft_app_marketplace/deploy_psft_app_marketplace.html or access the images here https://cloud.oracle.com/marketplace/faces/homeLinkPage and search for PeopleSoft.

2) Easy Migration of existing on-premise PeopleSoft instances to the Oracle Cloud.  Actually this already exists as of 8.55 and is part of the DPK toolkit.  I think we'll see this process get easier in time.  Read more here http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/compute-iaas/migrating_psft_app_occs/migrate_psft_app_occs.html

3) One click provisioning of individual PeopleSoft components in the Oracle Compute Cloud.   Tuxedo, WebLogic, PS_HOME file systems, Batch Servers are all commodity items in the PeopleSoft stack.  Yes... they can be configured and tuned but the platform itself is pretty much black-boxed as far as PeopleSoft is concerned (in my opinion).  A natural step is for Oracle allow customers to provision individual components in the Oracle Compute Cloud and plug them together with other Cloud based components or even on-premise components.  WebLogic doesn't even need an operating system either as since 11g you can run in just JRockit in  hypervisor mode.  I wonder what Oracle will do with one of it's most recent, Feb 2016, acquisition Ravello Systems, specialists in virtualisation, instance provisioning and cloud management tools.

4) PeopleSoft on Oracle Database Cloud (DBaaS).  An Oracle PeopleSoft database in the Oracle Cloud.  I predict we'll see this as a deployment option when installing PeopleSoft or when migrating an on-premise instance.  An easy, low cost, pay as you go, hassle free database platform for all those test, development, trial, UAT, training instances of PeopleSoft and soon, one day, even production.  Read more here https://cloud.oracle.com/database.  I'll be writing in more depth on my experiences of getting a PeopleSoft instance operational in the Oracle Database Cloud soon.

5) Automatic patching of Oracle Cloud provisioned components.  I predict this will be a service offered by Oracle and/or Partners.  If the component is running in the Oracle cloud then why can't you pay some extra $ and have all the latest security updates and bug fixes  automatically applied.  As Dan and Kyle (psadmin.io) point out in a recent podcast this may well take other forms as such as patching a shadow component and hot swapping the old for the new.  Either way,  I don't worry if my electricity supplier has patched their sub-stations.... I pay for a service and they deliver.  One day PeopleSoft component will be purchased in a similar way.

6) PeopleSoft Update Manager in the Oracle Cloud.  I think that prediction (5) above will extend to include PeopleSoft application and PeopleTools updates.  I wonder what this might look like as an automated service?  A monthly subscription to keep your PeopleSoft application up to date with every new PeopleSoft Update Image?

7) PIA(web) based drag and drop development of Fluid pages.  The beauty, power, future proofing and extensibility of PeopleSoft is the underlying PeopleTools meta data driven architecture.  Ha !!! GENIUS!!!  It made the transition form WIN32 client apps to HTML based pages relatively straight forward and it will make the development of a drag and drop web based page and component designer for building Fluid pages a natural evolution.  We already have seen this with the drag and drop Forms Designer.   Combine this with the powerful Event Mapping framework which allows customisations without customising and hey-presto you have a cloud application that you can extend and modify.

Happy to be proved wrong on all of these.  But one thing seems certain to me.  PeopleSoft has a bright future whether you're deciding to stay on premise or moving to the cloud.

Comments, suggestions, discussion and other predictions welcome in the comments below.

Many thanks for reading this far.  :-)

Tuesday, 7 June 2016

AMIS25 Beyond the Horizon Conference 2016

I've just returned from the AMIS25 Beyond the Horizon conference in the Netherlands.  AMIS are celebrating their 25th anniversary and put on a top rate conference with Oracle technology speakers from around the world.  They also hosted the OTN Cloud Developer Challenge at which I had the privilege of leading a team.  Featuring 30 ACE Directors from around the world the challenge was to design solutions using Oracle Cloud Services.



Here are my highlights from the 2 day conference.

Geertjan Wielenga (Oracle) with some slick, live JET demos
1) Oracle JET : Two excellent live demo sessions from Paco Van Der Linden (AMIS) and Geertjan Wielenga (Oracle).  Both gave live coding demonstrations of the JavaScript Extension Toolkit which is not a new JavaScript framework but rather a toolkit of the "best of what's available and what's most stable".  Oracle JET is included as part of PeopleTools 8.55 now and we should start to see PeopleSoft applications using these rather clever tools for charting, responsive UI, data binding of page UI elements and more.


AMIS developer Maarten Smeets on ICS Adapters

2) Why Build an Oracle Cloud Adapter: Maarten Smeets (AMIS) talked through the challenging development of new Oracle Cloud based adapters for Oracle's Integration Cloud Service.  More information on ICS adapters from Oracle here including a list of currently available adapters.  Probably best not to build one that someones already built.   You can find Maarten's excellent presentation here along with his example source code.

Prof. Steinbuch blows our minds with robotics
3) Keynote: The future of cars, robots and humans: Professor Maarten Steinbuch from Eindhoven University of Technology gave a thought provoking and captivating insight into robotics currently available, prototypes in the pipeline and what the future might look like.  He affirmed Moore's Law still to be valid and expects computing power to continue to double every few years.  If you want to understand what that might look like then if you take a 35 steps and double the size of the step each time then you'll have traveled around the world  several times!!!  This is fun to do with grains of rice on a chessboard too.   He discussed self drive cars (now a reality thanks to Tesla) and AI robot pets for the elderly who are too frail to keep a pet and the truly amazing robots that can assist a surgeon to stitch together 2mm diameter blood vessels. Whether you agree with this level of advancement or not it's happening.  

Reactive Programming Intro - Paco Van Der Linden
4) Reactive Programming: Paco Van Der Linden (AMIS).  I had never heard of reactive programming but in the world of web development the developer has to worry about asynchronous events and data streams.  This paradigm (with accompanying libraries ReactiveX) makes things a whole lot easier.  Many of my reader's world will consist of PeopleTools and maybe a bit of JavaScript so might be wondering if this is all relevant to them.  Well, it's probably not if you just stay with the synchronous model of PIA component interaction.  PeopleTools is nice as we generally only have one event at a time to manage and the component processor and client-side JavaScript does all the hard work for us.  But, I wonder where PeopleTools will go with an increasing demand for smarter and ever simpler UIs.
  

Database on Oracle VM Magic from ACE Director Francisco
5) Oracle VM for Oracle Databases.  Francisco Munoz Alvarez (ACED).  So here's a conundrum.  Which should be faster?  
  1. Oracle database running on dedicated hardware (using Linux),
  2. Oracle database running on the same hardware but on a virtual machine (using Linux) inside Oracle VM hypervisor
Interestingly enough.... the answer is (2) - the database running inside Oracle VM !!!!  At least... it is according to Oracle ACE Director Francisco Alvarez.  How can introducing another layer of software (the hypervisor) possibly increase the performance?  No one seemed to know... but this was a fascinating deep dive into the value of visualization to Oracle databases.  Given that Oracle VM is free to use it might just be worth some time testing it for yourself.

All the other sessions from the AMIS conference can be found on the AMIS Technology blog.

OTN Cloud Developer Challenge 

My project for the Cloud Developer Challenge was to demonstrate 100% PeopleSoft Patching in the Oracle Cloud.  This involved:
  1. building a PeopleSoft Demo Database using Oracle Database Cloud Service 
  2. provisioning a PeopleSoft Update Image instance in the Oracle Compute Cloud Service using an image from the Oracle Cloud Marketplace
  3. provisioning a Windows 2012 r2 server instance in the Oracle Compute Cloud on which to run PeopleSoft Change Assistant.
I'm gong to tell this story in detail very soon.

OTN Cloud Developer Challenge teams hard at work
Honestly Geertjan.... we are listening to your product briefing


Super Cool, inflatable session rooms.



Friday, 20 May 2016

PeopleSoft Cloud Architecture, PeopleSoft Predictions and more ...

I think the community building work of Dan Iverson and Kyle Benson through their psadmin.io site is terrific.  I highly recommend their podcasts, videos, discussion and blogs.  Recently, I had a great time chatting with Dan & Kyle and you can listen to the podcast here. http://psadmin.io/2016/05/20/29-peoplesoft-cloud-architecture-w-graham-smith/



We talked about warm air produced by power supplies, loading 8" floppy disks into an IBM 36 and occasionally you can hear, in the background, a Class 43 Diesel heading into London as it passes my garden office  .... we also talked about PeopleSoft including the huge investment that Oracle continues to put into the applications and technology, what is the "cloud", what is "PeopleSoft Cloud Architecture", what does the automation of some admin tasks mean to the PeopleSoft administrator role and also some of my own thoughts on the exciting future of PeopleSoft.



Friday, 22 April 2016

UKOUG PeopleSoft Roadshow 2016

What a great day at the annual UKOUG PeopleSoft Roadshow.


My top 5 highlights include
  1. Networking with Customers, Oracle and Partners.  Discussing new stuff, sharing stories, showing our tech-scars and solving problems.  Love it!
  2. Hearing all the latest from Marc Weintraub, Director of PeopleSoft Product Strategy at Oracle.  He's an engaging speaker and covered a huge range of topics including PeopleTools 8.55 and beyond, PeopleSoft Cloud Architecture, Oracle Compute Cloud Services, PeopleSoft ERP(FSCM) and HCM application updates.  The innovations and pace of new and exciting features is quite astonishing. 
  3. From PeopleTools 8.56 the monthly patch releases will start to include feature enhancements to PeopleTools.  This is an exciting prospect.

    The engineer in me loves PeopleTools.  One of those meta data based, domain specific programming frameworks where the language is used to develop and enhance the language itself.  (For example....  Q. what is PeopleTools Query Manager written in ?  A. PeopleTools ).
     
  4. Oracle Compute Cloud has a Database as a Service offering.  PeopleSoft can run on this platform  Very exciting for those temporary and transient instances of PeopleSoft that you need to spin up for development, testing, training etc but you don't want to buy another RDBMS license or go to the expense and trouble of finding a server, installing and then ongoing patching and maintenance.  I'll be blogging more on this very soon.
  5. And finally... I got a chance to discuss in detail some of the learning experiences of using the new PeopleSoft DPKs on both VirtualBox and Native.  The PeopleSoft Cloud Architecture really is another game changer for PeopleSoft customers in a similar way to Selective Adoption.  I'll be blogging more on this soon too.



Friday, 1 April 2016

PeopleCode Debug a 2-tier Application Engine Process - PeopleCode Friday #6

This is not really a PeopleCode tip but rather a tip to debug PeopleCode in an Application Engine process.

I had forgotten you could do this until recently I needed to step through some code in an AE and be able to examine buffer and variable state as I went.

For PIA debugging you need the debug service and the WSL setup on the Application Server and then connect Application Designer in 3-tier mode.  My recommendation is to set this up long before you need it!  This mode, however, is only useful for debugging online PIA sessions and not Application Engine process running on the batch server.

If you can run your AE process in Application Designer then you can use this technique to step through each Section, Step and PeopleCode statement.

Just a few tips

  • Create a run control called "RUN01".  This will make life easier if you're repeatedly running the same AE during development or testing as RUN01 is the default.
  • You can enable SQL and PeopleCode trace in Configuration Manager.  This will send trace output of the actual SQL being executed and you can open this file during debugging. Very useful.
  • Don't forget to use Step Over (F10) for avoiding getting bogged down in lots of function or method code.
  • Don't use Output Log to File when you run as it will repeatedly send prompts for user interaction to the log file until your local disk is full !!!! 


Step 1 -  Setup Config Manager

In Configuration Manager > Profile > Edit > Process Scheduler > Application Engine tick the Debug option.



Step 2 - Open the Application Engine

Step 3 - Open PeopleCode section and Enable Debug


Step 4 - Set Breakpoints in PeopleCode


Step 5 - Run the App Engine process


Step 6 - Use the AE process window


Step 7 - Step through PeopleCode



Watch the whole thing here...

Friday, 19 February 2016

Embed Query Results in Page - PeopleCode Friday #5

I recently had a requirement to include Query results in a component alongside other regular page objects.   I know that you can run an existing Query using PeopleCode I just needed a way to handle prompts and download to Excel etc.

I didn't have to look far for the answer.  PeopleSoft Query Manager  has a Run tab in which you can preview the results of your unsaved Query.    Behind the Run tab is a call to PeopleCode Functions ExecQuery and FormatResults.
Query Manager Run Tab.


Throw a Query object at these and hey presto.

Step 1 On the component page add the following 2 objects from QRY_VIEWER_WRK record.

  • HTML Area . QRY_VIEWER_WRK.HTMLAREA - Used to display Query results,
  • Text Box.  QRY_VIEWER_WRK.HTMLCTLEVENT - Used to drive operations like next/previous in list, download to Excel, etc.  This field should be invisible, modifiable by JavaScript and have a page fieldname of HTMLCTLEVENT
Step 2 Add the following PeopleCode (below) to some event. A button or page activate depending on how you want to control Query execution.  This code fragment is really just a starting point but should run any Public Query the user has permissions to run.  If the Query has prompts then a Prompt Dialogue will be generated when the ExecQuery function is called.


As always, feel free to leave comments, observations, alternative ideas or questions.

Page Definition for Displaying Query Results


Declare Function ExecQuery PeopleCode QRY_VIEWER_WRK.FUNCLIB FieldFormula;
Declare Function FormatResults PeopleCode QRY_VIEWER_WRK.FUNCLIB FieldFormula;

/* Create a new Query object*/
Local ApiObject &qryObject;

&qryObject = %Session.GetQuery();

/* Open and existing Query */
&qryObject.open("XRFWIN", True, True);

/* Run the Query */
Local Record &cPromptRec = Null;
&bResult = ExecQuery(&qryObject, &cPromptRec);

/* Display the HTML results */
QRY_VIEWER_WRK.HTMLAREA = FormatResults();


This is what the final page looks like

Monday, 7 December 2015

Paste from ClipBoard into Grid - PeopleCode Friday #4

A number of times in my PeopleSoft career I have been asked by users if I can provide a paste from the Windows clipboard into a grid.  Typical use cases include pasting Excel data into a grid or bulk loading text.

I've seen some PeopleCode and Javascript developer friends of mine code some really neat solutions but here I'm not going to attempt anything fancy.  I offer this code fragment for what it is - ruthlessly simple.




PIA Page with paste window and results grid

App Designer Page




Local Rowset &rs = GetRowset(Scroll.GRS_TBL);
Local array of string &aRows;
Local array of string &aFields;

&aString = CreateArray("");
&aFields = CreateArray("");

&aRows = Split(GRS_WRK.HTMLAREA, Char(10));

For &i = 1 To &aRows.Len
   
   &aFields = Split(&aRows [&i], "|");
   &rs(&i).GRS_TBL.SELNUM.Value = &aFields [1];
   &rs(&i).GRS_TBL.DESCR.Value = &aFields [2];
   &rs.InsertRow(&rs.ActiveRowCount);
End-For;



Some observations:

  • You can obviously change the separator from | (pipe) to whatever works for you. Comma is useful when pasting from Excel.
  • You will want to add some structure checking code.  If you're expecting 2 fields but a user pastes 3 then you'll want to trap that.  
  • You may want to do some datatype validation to avoid generating PeopleCode or component processor errors.
  • You could get really smart and create a button which reads data directly from the clipboard.  Most browsers don't allow you to do this for security reasons but there are ways to configure browsers to trust the clipboard.  
  • I've been using this recently to repeatedly flush and reload data into tables on a new application I've been building.  I went as far as making the table name a parameter and setting GETFIELD(n).Value rather than an explicit field name as I had numerous tables to populate.
Any other ideas or suggestions then, as usual, just post comments below.

Thursday, 26 November 2015

UKOUG APPS 15 Conference



The annual UK Oracle User Group Applications conference is a great place to network with other PeopleSoft users, partners and of course members of the Oracle PeopleSoft team.

There are sessions covering many PeopleSoft topics including
  • Oracle PeopleSoft Applications and Technology strategy - Jeff Robbins, Oracle 
  • PeopleSoft and the "cloud" from various industry experts
  • PeopleSoft Fluid UI and mobile computing
  • PeopleSoft Payroll Update
  • PeopleSoft Talent Management and Taleo
  • PeopleSoft Portal
  • Upgrade stories
  • and more....  Two Day Agenda Here

Come and share your stories, bring your questions and be part of the community.

See you there.

Friday, 30 October 2015

Query Definitions in PeopleCode - PeopleCode Friday #3

Just recently I've been working on a project which required me to dynamically create and manipulate PeopleSoft Query Definitions in PeopleCode.

I've always known the Query API Class existed but i've never really used it.  PeopleBooks, of course, is always my first place to look for documentation on how to use anything so went looking for Query Class methods, collections and properties and also to look for worked examples.  Unfortunately, whilst the reference material was adequate I found the worked examples confusing and with a few errors.  So, next port of call in my search was a general search in Google for "PeopleSoft Query API PeopleCode" looking for some other PeopleSoft enthusiast who had posted some working code. Allas!  Nothing.

So, after a bit of tinkering around I got everything I needed to work and thought it might be useful to write up a simple example that works.

Here goes.

Everything you need to know about Query classes you can find here http://docs.oracle.com/cd/E58500_01/pt854pbh1/eng/pt/tpcr/concept_UnderstandingQueryClasses-c07e19.html#topofpage

Watch out for the listed code examples... some of them don't work.

There are 5 basic steps to creating a simple Query Definition using PeopleCode.  You can create both public and private queries using the Query API. My example here will create a private against one the delivered PeopleTools tables present in all PeopleSoft systems of any version - PSPRCSRQST, and then set 2 sets of criteria.

1) Security.  Make sure the user that is ececuting the PeopleCode has permissions to the source record used in the construction of your Query. Use Query Access Manager for this.

2) In PeopleCode you need to create a Query Object from the %SESSION object http://docs.oracle.com/cd/E58500_01/pt854pbh1/eng/pt/tpcr/concept_UnderstandingSessionClass-c07b74.html#topofpage

/* Get a Query oject */
&apiQuery = %Session.getquery();

3) Name the query and use the Create method to create a new Query Definition.  NOTE: If the Query Definition already exists then it overwrites it when you save. The second parameter specifies False for a private Query or True for a Public one.

/* Set Query Name.  Cannot contain spaces*/
&qryName = "MY_QUERY";

/* 3. Create a new Query */
&apiQuery.Create(&qryName, False, %Query_Query, "My query description", "My query long description");

TIP: Major sections of much of my code has numbers embedded in the comment headers.  This is just to help me and others that might have to maintain my code see instantly the sequence of flow.  It can be useful in long blocks of code.

4. When you use Query Manager in PIA to create a Query the first thing you do is specify which record the Query is based on. No different here.  Use the AddQuerySelect and AddQueryRecord methods to do this.  Because a Query Definition may have multiple SELECT statements in say a UNION and each SELECT may have one or more RECORDS you need to set these structures up even though your Query only has one SELECT and one RECORD.

/* 4. Create Query Select object and add single record from source drop down 
****************************************************************************/
&apiQuerySelect = &apiQuery.AddQuerySelect();
&apiQueryRec = &apiQuerySelect.AddQueryRecord("PSPRCSRQST");

5. What you do next may depend on your requirements but for this example I'm just going to iterate through the RECORD collection of FIELDS and add each FIELD object to the output list of my Query.  In PIA this is the same as ticking each field in the Fields TAB,  The key Query API method that adds the fields if AddQuerySelectedField. There are 4 parameters to this method - Record Name, Record Alias, Field Name and Field Label).

Setting the ColumnNumber sets the sequence of the field in the output list and I'm Ordering by the Field in ordinal position 1 in a Descending order. (NOTE: OrderByDirection property requires the ASCII code for D (descending).  If you want Ascending don't use CODE("A").  Instead just leave the OrderByDirection blank or CODE("") ).

/* 5. Add all fields from Source Record  to Query Output list 
**************************************************************************/
&recSource = CreateRecord(Record.PSPRCSRQST);
For &i = 1 To &recSource.FieldCount
   
   &apiQueryField = &apiQuerySelect.AddQuerySelectedField(&apiQueryRec.name, &apiQueryRec.recordalias, &recSource.GetField(&i).Name, &recSource.GetField(&i).Label);
   
   /*Make the field a display field */
   &apiQueryField.ColumnNumber = &i;
   &apiQueryField.HeadingType = %Query_HdgRftShort;
   
   /* Set order by value is specified*/
   &apiQueryField.OrderByNumber = 1; /* sort column 1 */
   &apiQueryField.OrderByDirection = Code("D"); /*descending*/
   
End-For;

6. If you run the Query now it would work but of course may return a lot of rows.  So let's add some simple criteria by creating a QueryCriteria object and using the AddCriteria method.  The parameter of the AddCriteria method is a string label.  It has no meaning and is simply a useful reference for the developer.

Once you have a handle on a QueryCriteria object it's really straight forward to specify the left (6.a) and right hand (6.c) expressions and the logical operator (6.b).

My code below in section 6 creates the following criteria

             WHERE RUNSTATUS = '9' AND OPRID = 'VP1'


/* 6. Create Query Criteria  
      In this example we'll setup     RUNSTATUS = 9 AND OPRID = VP1
**********************************************************************************/

/* 6.a. LEFT expression is a field */
&apiQueryCriteria = &apiQuerySelect.AddCriteria("criteria_1");
&apiQueryCriteria.logical = %Query_CombAnd;
&apiQueryCriteria.Expr1Type = %Query_ExprField;
&apiQueryCriteria.AddExpr1Field("A", "RUNSTATUS");

/* 6.b. Set expression operator */
&apiQueryCriteria.Operator = %Query_CondEqual;

/* 6.c. RIGHT expression is a constant */
&apiQueryCriteria.Expr2Type = %Query_ExprConstant;
&apiQueryCriteria.Expr2Constant1 = "9";

/* Second criteria row 
************************/

/* 6.a. LEFT expression is a field */
&apiQueryCriteria = &apiQuerySelect.AddCriteria("criteria_2");
&apiQueryCriteria.logical = %Query_CombAnd;
&apiQueryCriteria.Expr1Type = %Query_ExprField;
&apiQueryCriteria.AddExpr1Field("A", "OPRID");

/* 6.b. Set expression operator */
&apiQueryCriteria.Operator = %Query_CondEqual;

/* 6.c. RIGHT expression is a constant */
&apiQueryCriteria.Expr2Type = %Query_ExprConstant;
&apiQueryCriteria.Expr2Constant1 = "VP1";

7. Saving the Query will perform all sorts of validation and generate a useful collection of error messages.  Just remember "garbage in - garbage out".  The PIA Query Manager prevents the user from creating most illogical combinations when designing a Query so you're going to have to handle all possible error conditions in your code.

/* 7. Save the Query and handle any error messages 
*************************************************************************/
&res = &apiQuery.Save();
If &res <> 0 Then
   &colMessages = %Session.PSMessages;
   For &i = 1 To &colMessages.Count
      &errorObject = &colMessages.Item(&i);
      &messageText = &messageText | &errorObject.Text;
   End-For;
   Error ("An error has occurred saving the query: " | &messageText);
   
   &colMessages.DeleteAll();
End-If;

8. At this stage, assuming your Query has saved, you can open the Query in PIA Query Manager/Viewer and execute it.  But my example below includes the generation of a Query URL and a New Window execute by simply viewing the URL.

/* 8. Run PeopleSoft Query to new Window 
**************************************************************************/
&isPublic = False;
&isNewWindow = True;

Local string &url = GenerateQueryContentURL(%Portal, %Node, &qryName, &isPublic, &isNewWindow);

ViewContentURL(&url, &isNewWindow);


Always happy to field questions, comments, observations, improvements or corrections.  Hope you found this a useful starter to creating Query Definitions in PeopleCode .

OpenWorld 2015 Thursday

Every year I find myself saying the same.... "The PeopleTools team keep on delivering".  Oracle is certainly not in maintenance mode with PeopleSoft.  There's a huge amount of investment going into making PeopleSoft better and better each year.  If you're running PeopleSoft then it's a safe place to be. In fact beyond being safe it's an exciting place to be.  The challenge, as always, will be to find the time and money to take advantage of all these new developments so that our organisations reap the benefit.

Today there were some great session for PeopleSoft customers.  Here's just a quick listing of some of my favourites,

1. PeopleSoft Selective Adoption Experiences from the Front Line.  This session was led by Cedar Consultant, Oracle ACE - The PeopleSoft Tipster - Duncan Davies and Mark Thomas (IT Director at Hays).  This was one of 9 other sessions across the week on Selective Adoption - a major theme of this OpenWorld Conference.  Practical insight into how Selective Adoption works and is bringing new efficiency to Hays' PeopleSoft software lifecycle.

2. Fluid UI Component Design and Development.  From Dave Bain (Product Manager, Oracle).  This was the other major theme of this years OpenWorld conference.  Dave is a great presenter and you may have heard him on the Selective Adoption Spotlight Videos.  He gave a run down of the important things to consider when build a new Fluid page or when converting a Classic page to Fluid.

3. Rolling Out PeopleSoft’s Suite of Lifecycle Management Tools.  Michael Krajicek, Vice President - Oracle PeopleSoft Application Architecture Development gave a great talk on what's coming in 8.55 from PUM and PTF.  I think one of the most exciting new features is that you will be able to load up into the PeopleSoft Image a project of your customisations and then when the Change Package is created it will flag up which Updates are going to affect your customisations.
Change Package showing a green flag in the 2nd column indicating a customisation impact for this Update - Nice!

4. PeopleSoft Technology: Executive Panel.  Always a popular and candid session featuring customers vs the PeopleTools senior strategy and product management team.  Here's a few of the questions and my interpretation and paraphrasing of the answers.


Q. What improvements are going to be made to Application Designer?  
A. We want to make the development tools as easy to use as possible. I can't share our plans in detail but you can expect new tools for developers similar to what you've seen at OpenWorld this week. (GS: My take on this is that we saw some very cool drag and drop web based forms builder in Fluid.  I wonder if we might one day see a web based page builder for Fluid? It's all just meta-data underneath.)

Q. When will PeopleTools 8.55 be released?
A. Sometime in the next 12 months.  (GS: but more likely sometime in the next few months).

Q. When will Elastic search be available?
A. Not with the GA of 8.55 but sometime in 2016.

Q. Will we be able to take advantage of Elastic search as a service?
A. Initial release to customers will be on installed on premise or in cloud like we do at the moment with SES but Elastic service offering will be looked at.

Q. What is the PeopleTools team doing to help customers secure PeopleSoft on the public internet.
A. (paraphrasing here) Not a great deal.  In the same as PeopleSoft does not provide you with Anti-Virus for your PC or network switches PeopleSoft does not provide the networking security components to secure client to PeopleSoft web server.

Q (to audience). Who is using Interaction Hub under the PeopleTools limited free license?
A. No one.  (I didn't see any hands go up).  Conclusion?  Consensus from people around me in the session hall was that most customers couldn't justify the cost of the separate PeopleSoft instance required for IH.


CONCLUSION
I'm sure to blog more over the coming months about specific things talked about at OpenWorld but I'd like to end this week with saying just how wonderful it is to be part of this community called PeopleSoft.  The people involved in developing and supporting PeopleSoft are all first-class technology professionals who are on the forefront of thinking in our rapidly changing and sometimes volatile IT industry.  And then there's the customers and partners who bring a wealth of ideas, questions, challenges and solutions. They all make this global PeopleSoft community such a pleasure to be a part of. Thank you!
Paco Aubrejuan - Senior VP, PeopleSoft Enterprise, Oracle

Oracle Appreciation Party


Jeff Robbins - PeopleTools Strategy, Oracle


Howard Street - normally full of traffic- this week, full of Oracle people