Jim Marion

Subscribe to Jim Marion feed
A blog containing development tips I have learned through the years as a PeopleSoft developer.Jim Marionhttp://www.blogger.com/profile/12995110203807924786noreply@blogger.comBlogger268125
Updated: 10 hours 23 min ago

Which Query Security Tree?

Wed, 2022-07-20 15:24

Here is the scenario:

A user needs to create a query, but doesn't have security access to view a record. The user asks you for help.

Before running or writing queries, a user must have access to records through Query Security Trees. We assign records to trees, trees to permission lists, permission lists to roles, and roles to users. The solution is trivial: grant security access through a security tree. The difficult part is deciding which tree and which permission list. When I receive a request like this, I have two groups of questions:

  1. Is there already a query security tree that grants access to the target record? If so, which one and which permission lists? Would any of those permission lists be appropriate for this user?
  2. Is there already a query security tree available to this user that would be a good fit for this record?

Here are some SQL statements I created to help answer these questions.

Find existing trees that include the target record:

Finding Permission Lists that grant access to a specific record is more challenging. Locating permission lists that contain a tree that contains a record is trivial. Narrowing that list based on Access Group is more challenging because Access Groups represent node hierarchies and therefore require recursive logic:

Do you have SQL statements and tricks to help you manage Query Security? If so, share them in the comments!

At JSMpros, we teach PeopleTools tips like this every week. Check out our website to see what we are offering next!

Announcing: PeopleSoft Developer Day 2022!

Tue, 2022-07-12 18:11
a.jsm-button { background: rgb(216, 88, 66); border-radius: 0.2em; color: white; display: inline-block; padding: 1em 1em; text-decoration: none; text-transform: capitalize; transition: all .2s ease; } a.jsm-button:hover { transform: translate3d(0, -3px, 0); box-shadow: 0 10px 20px #d8594240; }

Announcing PeopleSoft Developer Day 2022 with all new Content! Join us online Thursday, August 18th for a full-day PeopleSoft education experience. Filled with PeopleTools development tips and best practices, we designed this opportunity to help you build better solutions faster. Space is limited so register now!

Register Now!

I have some fantastic new content to share with you; tips and ideas that will help you deliver better, modern solutions with less effort. We lead our Developer Day webcast once per year, and pack it with a variety of PeopleTools topics. This year we'll focus on the following topics:

  • Fluid: we want you to build highly engaging, informative, modern, mobile-friendly solutions, and we want you to do it with less effort. With that in mind, we have some Fluid-specific tricks to share with you.
  • Integration: digital assistants are incredibly popular. But what makes them possible? Integration. Cloud, on-premise, payment gateways, purchasing... there are so many opportunities for integration and we want to make sure you know all the productivity secrets.
  • Isolating Customizations: with continuous delivery and the cloud's "always current" policy, it is critical that we learn to uptake new features as fast as possible. But to do that, we must reduce our customization retrofit timeline. We have great ideas to share with you in this regard, including regression testing best practices.
  • PeopleCode: nearly every PeopleSoft solution involves PeopleCode. But here's the problem: PeopleCode can be hard to read. We want to help you by showing you ways to write better, human-readable PeopleCode.


Register now to reserve your seat for this dynamic one-day event on Thursday, August 18th. Registrants receive 60-days access to the recording, a copy of the Q&A roster, and sample code downloads.

Take advantage of this opportunity for only $447 per person. If you have a group of 10 or more, contact us at info@jsmpros.com for a quantity discount.

Register Now!

It's a wrap! Blueprint 4D 2022 PeopleTools Recap

Fri, 2022-06-10 19:05

We just finished the fantastic Blueprint 4D conference, full of great sessions and incredible networking. It is always a pleasure to meet our JSMpros student alumni and connect with members of the PeopleSoft community.

The conference started with a great lineup from Product Strategy, including Paco sharing a broad perspective of what to expect in future PeopleSoft applications, and then focused strategy breakout sessions. It is very clear PeopleSoft is still a top-tier ERP solution. If you are a PeopleSoft developer, here are some things to watch in future releases:

  • New theme for PeopleTools 8.60. We've been watching the steady transition to the Oracle Redwood theme, and it appears the transition is complete.
  • Global Search is visible all the time, not just on homepages. To make room, PeopleSoft moved the page title down a row, in line with the component header.
  • Recent and favorite icons from the 8.59 homepage move up to the left side of the header. To make room, the back button is collapsed to an image.
  • The global actions header is now detached from an optional component-specific header. While the proliferation of dot-dot-dot menus may seem confusing, I'm pleased with the change as it is now visibly clear if a component has custom actions.
  • Configurable search is coming! Configurable search appears to be based on keyword search, which is a viable option if real-time indexing is enabled. Configurable search will be available for both Classic and Fluid. In summary, configurable search lets you configure search fields and list box items, rather than relying exclusively on search record metadata. Besides Configurable Search, using keyword search (Elastic at this time) also allows you to search for transactions from the global search bar, and the global search bar will show transaction search suggestions from your keyword search history.
  • Fluid is getting SQL Search. My interpretation of this new feature is that Fluid will finally leverage search record metadata to build search pages for us just like Classic. This will be a great time saver since current Fluid search strategies include Pivot Grids, Elastic Search, custom search pages, and custom components.
  • PeopleSoft will transition from Elastic Search to OpenSearch to be consistent with Oracle Cloud. No mention of the impact on Kibana. The timing for this is unknown as the 8.60 planned release will use ELK 7.10. Regardless, the change should be transparent as our users use the PeopleSoft search framework, not Elastic directly. Elastic changed the license with 7.11, which is why Oracle is staying with 7.10 for now, and will migrate to OpenSearch, which is based on ELK 7.10. Oracle encourages to continue creating Kibana dashboards, building indexes, etc as the change should be transparent.
  • Future releases of Cloud Manager should support using Data Science to automatically scale up and down based on load and customer-configured thresholds.
  • CSS custom properties (variables) will replace branding macros. I am very excited about this. We just released a YouTube video showing how to apply a hover effect to rows through CSS. As of 8.59, we must hardcode the hover color, border, etc. In the video, I specifically stated these colors are different than 8.57 and earlier, and hard-coded colors could present a maintenance challenge. If we can leverage PeopleSoft CSS variables, we may be able to reduce future maintenance. With each release, we still expect variable changes (new variables, etc.) just as prior releases brought new Branding Macros, but finding and updating the list with future additions should be trivial with a text compare tool.

Campus Solutions
  • PI 24 delivered Drop Zones to the following three components: Personal Details, Biographic Details, and Emergency Contacts. This is fantastic as it allows us to collect additional information about students without customizing the Oracle-delivered pages.
  • Future Fluid components will include Drop Zones and CAF.
  • 2023 planned Fluid releases include Transfer Credit, Degree Progress, Research Activities, and Program Enrollment.
  • Roadmap items include Integration with Student Management Cloud and Student Financial Planning (cloud)
  • Continued WCAG 2.1 enhancements.
  • Continued Classic Plus conversions.
Notes from Sasank's 8.59 PeopleTools session

  • Search: suggestions show history, corporate history, and the menu.
  • For your history and corporate history to appear in the list, you must enable the following indexes: PTSF_RECENT_KW and PTSF_RECENT_MENU
  • For your recent history to appear, you should also enable real-time indexing.

PeopleTools Platforms Roadmap

We could summarize the 8.60 platforms roadmap by stating that PeopleSoft has or will certify on platforms supported by the vendors of those platforms at the time of release. For example, 8.60 drops support for Windows Server 2016. A more accurate way to state that is Microsoft dropped support for Windows Server 2016, making it no longer supported by Oracle. Likewise, IE11 is missing from the browser certification matrix. Given the Oracle OpenSearch announcement made by Dave Bain. It was interesting to note PT 8.60 will release with Elastic 7.10, Kibana 7.10, Logstash 7.10. The 7.10 release predates the ELK 7.11 license change. Mark assured us ELK's support policy and end of service dates are irrelevant because Oracle maintains their own version of ELK with their own patches and their own support. In that sense, you might say we are already on Oracle OpenSearch as OpenSearch is a fork of ELK 7.10.

On another interesting note, PeopleTools 8.60 adds Excel from the Office 365 suite to the list of supported Excel versions. As Mark noted, however, this is not necessarily a product/version certification, but a license model, as Office 365 is not a version, it is a subscription license. This could be interesting as Office 365 is always current and doesn't necessarily follow numbered release versions.

Cloud Manager 14 Highlights
  • Data Science for Auto Scaling: Automatically scale up nodes on increased load. Uses Health center to identify anomolies for scaling.
  • Support for custom domain names to Cloud Manager.
Page and Field Configurator Planned Features
  • Allow page changes dynamically as the user updates information in response to FieldChange events.
  • Use system variables as criteria (date, time, etc.).
  • Streamline selection of fields for the administrator.
  • Track changes made by users to pages (change tracker). This will be field and role-based and will store before and after values. Users will be able to view change history through related content associated with the transaction. Page and Field Configurator configuration component will have a button to activate the Related Content on the target component for you. This related content will work with both Classic and Fluid. Note: This does not replace PeopleTools Audit Tables.
  • Page and Field Configurator will track views of sensitive information, logging each time a user accesses that sensitive information. By the way, this is a common feature of the Pathlock/Appsian Security Platform, usually implemented through click-to-view.
  • Changes coming for search pages: ability to change labels and apply default values.
And finally, as the conference wrapped up, Oracle completed its acquisition of Cerner. I'm expecting to hear more announcements at the HIUG Interact conference next week!

Thank you to everyone that shared at Blueprint 4D! Be sure to mark your calendars for May 8-11 for the 2023 Blueprint 4D conference!

At JSMpros, we lead PeopleTools training using the latest releases and up to date curriculum. Be sure to check out our website to see what we are offering next!

Join me at Quest Blueprint 4D 2022!

Wed, 2022-06-01 17:21
See it. Build it. Do it. Imagine it.

I cannot believe the #BP4D conference starts this weekend! Are you ready? Remember to register for your favorite sessions. There are so many great topics on the agenda. PeopleTools 8.60, the great implementations, and amazing ideas from PeopleSoft customers and consulting partners all at BP4D!

On Wednesday, June 8th, be sure to check out my signature session PeopleTools Tips and Techniques to learn phenomenal new ideas.

Let us know your favorite sessions and topics in the comments section below.

I look forward to seeing you in Las Vegas!

PTF Chrome Recorder

Thu, 2022-04-14 15:51

PeopleSoft Test Framework now records with Google Chrome! As of PeopleTools 8.59.07, Google Chrome replaces Internet Explorer 11 as the PTF recorder. This is great news considering Internet Explorer 11 retires from most Windows operating systems on June 15th, 2022. We took the new recorder for a test drive and have some findings to share with you. Check it out on our YouTube channel.

Be sure to subscribe to our channel so you don't miss future updates!

The biggest changes seem to be the replacement of the "always-on-top" recorder with a side window and a right-click pop-up menu.

Are you ready for June 15th? Details about the new PTF recorder are available in My Oracle Support document 2834568.1. At this time, Oracle plans to backport the Chrome recorder to 8.58.18. The document also shares details about potentially recording with the Edge browser in a future PeopleTools release.

What are customers saying? If your site disables Chrome extension installation, then you may experience challenges with the new Chrome recorder. It appears to self-install and run when launching the PTF recorder. You may find limited details about the Chrome extension issue in MOS doc 2648652.1.

With Event Mapping, Drop Zones, and other customization isolation solutions, PTF is more important than ever! Since we no longer customize directly, compare reports don't identify potential impacts. PTF regression tests are how modern PeopleSoft developers locate isolated customizations issues. Are you ready to learn more? Check out our live and recorded PTF courses online! Do you have a team you would like to train? Contact us with the details, and let's get something scheduled.

Announcing PeopleSoft Fluid Day 2022!

Thu, 2022-03-17 17:31
a.jsm-button { background: rgb(216, 88, 66); border-radius: 0.2em; color: white; display: inline-block; padding: 1em 1em; text-decoration: none; text-transform: capitalize; transition: all .2s ease; } a.jsm-button:hover { transform: translate3d(0, -3px, 0); box-shadow: 0 10px 20px #d8594240; }

Announcing PeopleSoft Fluid Day 2022 with all new Content! Join us online Thursday, May 19th for a full-day PeopleSoft education experience. Filled with Fluid development tips and best practices, we designed this opportunity to help you build better solutions faster. Space is limited so register now!

Register Now!

With the rapid pace of change in the IT industry, it is imperative that we keep our skills sharp. That is why I'm inviting you to reserve May 19th, 2022 to sharpen your PeopleSoft skills so you can develop better solutions faster and with less effort. Save time and money while increasing customer satisfaction by learning new techniques for building intuitive, mobile and desktop-friendly solutions. Learn how to use responsive and adaptive design to make the best use of screen real estate regardless of device type. Discover new ways to present information that communicates effectively with our users. Reduce the amount of time spent training users by creating intuitive experiences.

Here are some of the topics we will cover:

Fluid Page Design

  • Experience the key development differences between Classic and Fluid
  • Learn adaptive versus responsive design techniques
  • Understand Fluid Search Strategies
  • Leverage the PeopleSoft Fluid style library to create solutions without writing CSS.

Extending Oracle-delivered Solutions

At Fluid Day 2022, we will show you some fantastic examples of using Drop Zones and Event Mapping to isolate customizations.

Testing Strategies

Learn strategies for testing mobile and desktop solutions. With Drop Zones and Event Mapping, regression testing is more important than ever!

JavaScript and CSS

PeopleSoft wrote all the JavaScript and CSS required to build Fluid solutions, which means you don't have to write your own! We'll show you how to leverage Oracle's web assets. If you want to write your own, this session will give you some great ideas. We have examples that show you how to incorporate custom CSS and JavaScript into your Fluid designs.

Data Visualizations

A modern, intuitive user experience is an experience that communicates effectively. Learn simple CSS and JavaScript techniques to build an effective user experience.

Register now to reserve your seat for this dynamic one-day event on Thursday, May 19th. Registrants receive 60-days access to the recording, a copy of the Q&A roster, and sample code downloads.

Take advantage of this opportunity for only $447 per person. If you have a group of 10 or more, contact us at info@jsmpros.com for a quantity discount.

Register Now!

A Simple Classic to Fluid Conversion

Thu, 2022-03-03 14:44

Oracle published a fantastic document describing how Oracle converted from Classic to Fluid. This very educational document is available at Doc ID 1984833.1. Oracle's solution makes sense for Oracle because it offers customers a choice: migrate to Fluid or stay Classic. As customers, do we need to offer that same flexibility? If so, then Oracle's approach is fantastic. I find most customers are either Fluid or Classic (or some derivative thereof), and when we convert a component to Fluid, it stays Fluid. We don't, for example, have part of an organization using a Classic version while another part of the organization uses the upgraded Fluid version. With that in mind, we developed a simpler approach to Fluid conversion: the in-place conversion. This stands in contrast to the clone-and-recreate approach. We put together a playlist with several videos describing our approach:

Be sure to subscribe to our channel so you don't miss future updates!

Want to learn more? Check out our vast Fluid training library, including recorded and live virtual events, online!

Where is that Content Reference?

Wed, 2022-02-16 12:49

New user 'X' needs access to 'Y.' Piece of cake, right? At least it was in Classic. The entire PeopleSoft navigation model stems from Content References. The classic "Navigator" and bread-crumb menus rendered the "Structure and Content" hierarchy. Finding content references under the classic model was trivial because the online visual rendering matched the "Structure and Content" portal registry hierarchical model. After finding a Content Reference, we could review the menu/component combination as well as existing permission lists to derive a solution.

What about Fluid? Most Fluid components exist somewhere in "Structure and Content." The question is, "Where?" The Fluid navigation model consists of homepages, dashboards, tiles, navigation collections, activity guides, and WorkCenters. And we can add any Content Reference to any one of these definitions. There is no structure. We use two tools to help us find Content References:

  1. Enterprise Components > Find Object Navigation
  2. SQL
If you know the menu/component combination or the CREF ID, you can look up the path using Enterprise Components > Find Object navigation. This is very helpful.

Unfortunately, many Fluid content references share the same component, a framework component such as PT_FLDASHBOARD or PT_AGSTARTPAGE_NUI. Everyone has access to these components. Let's consider the Personal Details tile on the HCM Employee Self-Service homepage. The menu/component combination is exactly the same as Payroll. Both use a framework component. What differentiates one tile from the next is the additional URL parameters. So we put together a SQL statement to help us locate content references by URL fragment. The following SQL is Oracle-specific. Notice the URL in the WHERE clause. Replace that URL with your own. Since this SQL uses regular expressions to filter CLOB data, be sure to regex escape special characters.

There is one other way to find a CREF ID. If the target is a Fluid Dashboard, then you may visit PeopleTools > Portal > Dashboards > Manage Dashboard Pages. The properties link shows both the parent folder and the dashboard's CREF ID.

Are you interested in learning more about PeopleSoft Fluid administration and development? Check out our website for live virtual and on-demand recorded PeopleSoft Fluid training.

Hiding Tiles

Tue, 2022-01-11 16:48

At a conference several years ago, a friend and I were discussing PeopleSoft Fluid. Fluid was new at the time, so my friend was sharing his vision for making Fluid better. One of his ideas was to dynamically hide tiles. For example, if an employee has an Onboarding event, show the onboarding tile. Likewise, if a student has holds or "To Do's," then show a tile. I thought this was a fantastic idea and came up with a few ways to make this happen. If you are using PeopleTools 8.54 through 8.58, here are some options:

  • Use Dynamic Role Rules to add/remove a role that grants access to the target tile. This is the easiest approach and the most adopted method for dynamic access to tiles. For this to work properly, a tile should be marked as required.
  • Use Event Mapping to hide a tile. The PeopleSoft tile homepage is a cleverly formatted Fluid DIV Grid. Each tile represents one row in a grid. Through PageActivate Event Mapping, we can selectively show or hide rows by setting a row's Visible property. As you iterate over the list of rows, evaluate criteria and set the row's visbility accordingly.

What about 8.59? Why did I recommend these strategies for 8.58 and earlier and not 8.59? There is a new PeopleTools 8.59 feature that lets you configure a tile's visibility. Tammy Boyles from Oracle Product Management shared about how HCM uses this new feature last month. Here are the steps:

  1. Create an App Class that extends PTGP_APPCLASS_TILE:API:TileAppFilter.
  2. Put your conditional logic in the IsTileVisible method, returning True to show or False to hide.
  3. Add the content reference attribute TILEAPPFILTER to your tile's content reference.
  4. Open the appropriate homepage content reference and mark the tile as required.

Once you configure a TILEAPPFILTER attribute, the tile will no longer show in the "Personalize Homepage" list of available tiles, so users may no longer add or remove this tile. Therefore, a tile that has a TILEAPPFILTER attribute must be marked as required.

Do you want to see an example? Join us on November 18th, 2021 for Configuration Day 2021 to see this and many other new 8.59 features in action.

At JSMpros, we teach PeopleTools topics like this every week. In fact, this specific topic is part of our continuously updated Configure, Don't Customize course. Be sure to check out our website for more information about this and many other PeopleTools topics.

Campus Solutions: Which Navigation Collection?

Thu, 2021-12-02 00:37

When Campus Solutions built their business process-based navigation, they did something interesting: they wrapped Navigation Collections in the Master/Detail Framework. Rather than hard-code a list of links (like the original HCM Personal Details), Campus Solutions chose Navigation Collections. The flexibility is incredible. This design decision allows you and I to add new links to Campus business processes without modifying delivered code (unlike the original HCM solution).

Personal Details Master/Detail component

That's fantastic! But here is the problem: which navigation collection should you update? Some of them are easy to find because they have the same label as the tile itself. But others don't. Fortunately, the navigation collection name is in the URL:


Wait... did I say the Navigation Collection name? I apologize. There seems to be some confusion about the "name." When creating a Navigation Collection, the Navigation Collection tool asks for a name. The "name" we supply is actually a label. PeopleSoft dynamically generates the name from our label. Since a Navigation Collection is a Portal Registry folder, the real "name" is the CREF Folder ID. So in the example listed above, the CREF ID is CS_SSR_ACADEMIC_RECORDS_FL, but we don't know the label. To maintain the Navigation Collection, we must know the Content Reference's label. The good news is we can find the label with a simple query. The SQL to find the label for the example above would be:


Fluid is PeopleSoft's mobile and modern rendering engine. Through a few simple techniques, we can show you how to build better Fluid solutions faster. Are you interested in learning more? Check out our Fluid course offerings at jsmpros.com.

PeopleTools 8.59 new feature: Independent "AddTo" Security

Tue, 2021-11-09 16:18

Imagine having a PeopleSoft Favorites feature and no way to add Favorites. After 8.54, many customers found themselves in this situation. Fluid introduced "Add to Homepage" and "Add to Navbar" as fantastic personalization options. Our users love them. For example, I can "pin" my favorite classic components to my homepage for quick and easy access. For power users, this is terrific! And for self-service users? Every component a self-service user visits should already be represented through a Fluid homepage tile. For the casual self-service user, offering an "Add to Homepage" feature often causes more problems than it solves. With that in mind, customers often disable the "AddTo*" feature for self-service users. My friend Simon Chiu explains how in Section Four of his post PeopleTools 8.55 Features: How to Deploy Homepages, Tiles and Branding. From 8.54 to 8.58, disabling Add to Homepage also disables Add to Favorites, which is unfortunate. Favorites are the domain of the user. Nobody questions a user's favorites. Our friend Sasank Vemana shared a solution to "decouple" the AddTo options so we could disable these features independently. Likewise, My Oracle Support published Doc ID 2143709.1, showing how to customize the AddTo* features so customers can remove Add to Homepage while keeping Add to Favorites. Unfortunately, through 8.58, retaining Add to Favorites requires a customization.

What about PeopleTools 8.59? Oracle basically applied this customization to the base PeopleTools code. This feature is now built into PeopleTools. With PeopleTools 8.59, PeopleSoft added the following new roles:

  • DisableAddToFavorites
  • DisableAddToHomepage
  • DisableAddToNavBar

To remove access to Add to Homepage, assign the role DisableAddToHomepage.

Here are a couple of interesting observations of this new feature. First, access seems logically inverted. To remove access, you must assign a role. Normally, we assign roles to grant access. In this case, we assign a role to remove access. Second, we noticed user PS has these roles in the latest HCM PUM, which means out of the box, user PS can no longer add to favorites, homepages, or Navbar.

What are your observations of this new feature? Share your thoughts in the comments. We would love to hear!

Are you interested in learning more about PeopleSoft security or fluid? Check out our latest course offerings at https://www.jsmpros.com/courses/ and events at https://www.jsmpros.com/events/.

Announcing PeopleSoft Configuration Day 2021!

Thu, 2021-10-28 15:00

Announcing PeopleSoft Configuration Day! Join me online Thursday, November 18th for a full day PeopleSoft education experience filled with tips and best practices. Space is limited so register now!

Register Now!

Here are some of the topics we will cover and questions we will answer:

Configuration versus Customization

  • Are Page and Field Configurator changes really configurations?
  • What about Event Mapping or Drop Zones?
  • Why does Oracle call these features "isolating customizations?"

PeopleSoft Test Framework

Without compare reports, how do you know what to test? Learn how to use PTF to regression test configurations.


Can you use characters other than "X" and "*" to mask data? How would you mask without showing the length of a field? Learn how to combine roles with Page and Field Configurator and Event Mapping to conditionally apply Data Masking.

Fluid Approvals Page Composer

Learn how to use Page Composer to alter the approval user experience.

Can Functional Analysts Create Their Own Approvals?

Find out how through Fluid Forms and Approval Builder.

Extending Oracle-delivered page Content

Learn how to use Related Content and Drop Zones to add more content to Oracle-delivered pages. Find out where these features are similar and where they differ. Learn when to use which tool.

Fluid Job Data

HCM's new Fluid Job Data is incredibly flexible and configurable, including configurable search, Drop Zones, etc. But what about those Drop Zone group box labels (Drop Zone 1, Drop Zone 2, Drop Zone 3, etc.)? Can you change them? Can you hide them? Can you automatically expand them?

Activity Guides

What is an Activity Guide and how would you use one? How hard is it to create one? How do you pass contextual data between steps in an Activity Guide?

What's new in 8.59

There are several new configuration features included with 8.59. Join us to see these new features in action!

Register now to find the answers to these and many more questions on Thursday, November 18th.

The cost for this event is $447 per person. If you have a group of 10 or more, contact us at info@jsmpros.com for a quantity discount.

Register Now!

Configuring Fluid Job Data Drop Zones

Wed, 2021-09-15 09:35

The new Fluid Job Data component is incredibly configurable. I love the four new Drop Zones right in the middle of the page. But there is just one problem: they are labeled Drop Zone 1, Drop Zone 2, Drop Zone 3, and Drop Zone 4. And they are collapsed, so a user would have to expand each one to find out what is inside. Wouldn't it be great if we could use Page and Field Configurator to change the labels or hide unused regions? The Drop Zone labels come from Group Boxes, and today, Page and Field Configurator doesn't support Group Boxes. Since the code is trivial, we believe this is a simple oversite the development team could remedy. If you agree, please up-vote our idea Page and Field Configurator: Add Group Boxes fields list.

The good news is Event Mapping supports any record and field combination. If we can locate the record and field associated with any group box, we can use Event Mapping to hide it or change its label. This brings us to another challenge. At this time, none of the Drop Zone group boxes are associated with fields. We put in an idea for this: Make Drop zone 1-4 on Fluid Job Data Configurable through PFC and/or Event Mapping. If you think this is a good idea, please up-vote it as well.

While we wait for a proper Oracle-delivered configurable solutions, I want to share with you how we used Event Mapping, JavaScript, and CSS to solve this problem:

The "Unable to get image extents" Error for SVGs

Thu, 2021-09-09 10:50

At JSMpros, we love Scalable Vector Graphics! Fluid loves them because they resize (scale) well. We love them because they are just XML documents describing an image. And since they are XML, we can recolor them with browser developer tools or even a simple text editor. In fact, We have videos showing how trivial it is to clone and alter the colors of Oracle-delivered Fluid icons through browser inspector tools (watch online Manipulating SVG Images).

Since we usually just change colors, we prefer to edit Oracle-delivered SVG images through Chrome's inspector and then copy the entire document to a new SVG file. We can then upload the new file through App Designer and use it anywhere. But we discovered an interesting issue. It appears PeopleSoft's internal code doesn't like our new images. When using the Navigation Collections image inspector or uploading a modified SVG through the online branding module, PeopleSoft throws an "Unable to get image extents" error message. What we didn't realize is that copying XML out of Chrome's inspector doesn't copy the XML prolog. All XML documents begin with an XML prolog

<?xml version="1.0" encoding="utf-8"?>

Since SVG is XML, it is required to have a prolog. Browsers are forgiving and will ignore the missing prolog, but PeopleSoft's internal code doesn't.

So what's the solution? We still edit SVG using Chrome's inspector tool, but now we manually insert the XML prolog as the first line. It appears we aren't the only ones to hit this issue. Check out MOS document 2426154.1 for more details.

Are you interested in learning more about PeopleSoft Fluid and Fluid development? Check out our latest live virtual and on-demand offerings.

PeopleSoft Fluid Accordion: Default to Open State

Tue, 2021-08-24 21:35

The Fluid Accordion is fantastic for organizing information. My favorite place to use it is in the left sidebar (Side Page 1, Master/Detail, and PSL_TWOPANEL). But it has one interesting quirk: it defaults to closed. Wouldn't it be nice to have PeopleSoft default one of the accordion headings to expanded? We haven't found a property or delivered approach, but we do have a workaround. Check out the 10-minute video below for details. Here is our solution in a nutshell:

  1. Add a custom style class to the accordion heading group box you want to be expanded (we named ours jsm_expanded). This CSS style class acts as an identifier or selector.
  2. Add JavaScript to locate the selector and invoke the click action of the chosen heading.

Here is what that JavaScript would look like:

document.querySelector('.jsm_expanded .ps-link').click();

You can use this JavaScript as-is with the AddOnloadScript PeopleCode function but as the video demonstrates, Master/Detail requires a slightly different approach.

I love the flexibility of Fluid. It is so much easier to inject JavaScript and CSS into Fluid. Are you interested in learning more? We cover the Accordion and related challenges and workarounds in our Fluid 2 course. Be sure to check out the details and register for our next offering.

Did enjoy this PeopleTools Sound Byte? There is more where that came from! Check us out on YouTube and be sure to subscribe for more content!

Announcing Developer Day 2021!

Thu, 2021-07-15 13:36

Announcing PeopleSoft Developer Day! Join me online Thursday, August 19th for a full day PeopleTools experience filled with tips and best practices. Space is limited so register now!

Register Now!

Here are some of the topics we will cover and questions we will answer:

Configuration versus Customization

If you use Event Mapping, is that a customization or configuration? If you replace an AWE event handler, is that configuration or customization? Does it matter? Are there lifecycle consequences? How do you confirm a solution still works after applying maintenance?

PeopleSoft Test Framework

Another way to think of a configuration alternative to customization is as a runtime customization with no compare reports or lifecycle management tools. We will show you how to use PTF to regression test configurations.

PeopleCode Application Classes

Application Classes are the foundation for every modern framework including AWE, Integration Broker, and Event Mapping. We will cover the basics of Application Classes, and then use them to override Approval Framework behavior and to implement Event Mapping.

Event Mapping and Drop Zones

We will warm up with some simple Event Mapping and Drop Zone examples to describe them, and then show you some "what's possible" ideas in Fluid Job Data


We'll cover Fluid layout techniques, specifically focussed on Drop Zones, and we'll also show how to create Dynamic Tiles, which also require Application Classes.


The PeopleSoft User experience is HTML, JavaScript, and CSS. We will show you some simple ways to combine JavaScript with Event Mapping to improve the user experience.


REST is the primary modern integration strategy, so we will cover a couple of simple REST examples, and then show how we can use REST with AWE to send text messages to requesters on final AWE approval.

Approval Workflow Engine (AWE)

We want to send notifications as text messages. To do so, we will have to extend AWE. How would you do this and is it a customization? Find out at Developer Day 2021!

Do you have a group of 10 or more? Contact us at info@jsmpros.com for a quantity discount!

Register Now!

PeopleSoft Week Conference

Fri, 2021-06-18 16:13


PeopleSoft Week Starts Monday, June 21. Have you registered yet? If not, go here now and register for this FREE conference and join us for one week of outstanding PeopleSoft-focused presentations! Here are some details:

When: June 21 - 25
Cost: FREE for Quest members, $49 otherwise
Who: Anyone involved with PeopleSoft
Where: Live online!

The entire schedule is available on Quest's website, but here are a few highlights. Monday, strategy day, kicks off the conference with product strategy sessions led by Paco (PeopleSoft VP), Amira (Financials), Robbin (HCM), and Dave (PeopleTools). This is a fantastic opportunity to hear from product strategy. Tuesday is packed with fantastic community presenters from ERPA, Appsian, Smart ERP, and JSMpros. I close Tuesday with my signature PeopleTools Tips and Techniques session from 3:30 to 4:30 ET. Wednesday and Thursday bring us many more presentations including customer voices such as Jack Henry, AdventHealth, and FSU. The agenda also includes Q&A and panel discussion sessions.

Be sure to register now because PeopleSoft Week starts Monday!

EIS 2021

Mon, 2021-06-07 15:11

Join us Thursday, June 10th for a full day of free fantastic live virtual PeopleSoft education sessions led by PeopleSoft community experts from around the world! Check out the agenda. Times are listed in Central Europe, Eastern, and Pacific.

App Classes or Function Libraries: Which is Better?

Thu, 2021-06-03 01:13

As programmers, we look for patterns. And when we find them, we refactor them into reusable code. Keep it DRY: Don't Repeat Yourself. PeopleCode offers two reusable code containers:

  • Function Libraries
  • Application Classes

And this brings us to the great debate. Which is better? Object-oriented App Classes or procedure-based Function Libraries? I often ask my students this question. And if they prefer one over the other, why? Let's review the benefits of each:

Function Library:
  • Stateless
  • Simple
  • Must be declared
Application Class:
  • Stateful
  • Dynamic execution

There are other differences, but they are irrelevant for this comparison. For example, Application Classes have inheritance (some would say inheritance is NOT a benefit). The value of inheritance is reuse, but then a function can call a function, which is also reuse.

When asking students about their preference, here are a few of my favorite answers:

  • Choose App Classes because they are new.
  • Choose App Classes because they are object-oriented.
  • Choose App Classes because we are supposed to.
  • Choose App Classes because everyone is doing it.
  • Choose Function Libraries because they work!

One of the most valuable features of App Classes is dynamic PeopleCode. Unlike Function Libraries, App Classes do not have to be imported/declared before use. This is how every PeopleTools framework works. As a developer, we create an App Class and register it with the framework. At runtime, the framework reads the metadata and invokes the App Class. A framework such as AWE, for example, knows nothing about my custom App Class. But it invokes my code nevertheless through functions such as CreateObject, ObjectDoMethod, ObjectGetProperty, and ObjectSetProperty.

Which one do I choose? Here are my decision criteria:

  • If I need dynamic PeopleCode, meaning no declaration, then the only solution is an App Class. Another way to think about it is if I'm writing code that invokes another code block and I don't know that code block at design time, but will fetch the name from the database, then I have to use an App Class.
  • If I'm writing code to plug into another framework, such as Event Mapping or Integration Broker, I will use an App Class.
  • If I want testable code to test through PSUnit, I will create an App Class (because PSUnit is a framework that will invoke dynamic code).
  • If I need to maintain state between method invocations, I'll choose an App Class.
  • Otherwise, I choose a Function Library.

Which do you prefer and why? What are other benefits of one over the other? Leave a comment to let us know what you think!

At JSMpros, we recognize the value of Application Classes and offer a two-day course dedicated to teaching object-oriented best practices. In fact, our next session starts on August 9, 2021. Register now!

Do You "Regression Test" Your Configurations?

Tue, 2021-05-25 16:35

Do you have customzations? Do customizations slow down selective adoption? The answer, of course, is "Yes" to both questions. Our best practice is to move customizations into configurations through Event Mapping, Page and Field Configurator, Drop Zones, etc. Configuration alternatives remove changes from lifecycle management, allowing us to alter the PeopleSoft experience without the impact and overhead of a customization... or do they? It is true; configuration alternatives don't show on compare reports. They move our "customizations" into a separate layer, a runtime injected layer, allowing Oracle to swap the backend code. Another way to think of it is that configuration alternatives automate applying customizations.

Let's review a quick scenario. Let's say there is a field on a page, and you are supposed to remove it. Simple task. The PeopleCode would be record.field.visible = False; If we customized, we would add that code to a design-time event, such as PostBuild. As a configuration, however, we would put that code in an App Class and then use Event Mapping to inject the code at runtime. So the value of configuration is that you don't have to reapply code changes. They are injected at runtime.

So here is a question:

When you re-apply a customization, is design-time code merge (copy/paste) the only thing you do?

Of course not! You also analyze. You investigate. Is the customization still necessary? Is it still relevant? Do you need to refactor around Oracle's changes? You still need to ask all of those questions. Even as a configuration, not a customization, you still must answer the same questions because it is the same code. It is the same solution. It solves the same problem. And, if you customized, you would have a compare report showing you what to review and where. Context. This is proactive. But with configuration? Silence. Without a compare report, how do you know what to review? How do you know what changed? Wait for testers to catch it? Wait for go-live? This is reactive.

Let's continue with the hidden field/Event Mapping example, and you go through a selective adoption or get current cycle. Since you used Event Mapping, your code is still there. But again, should you review it? How do you know what to review? What if Oracle agrees with our "hidden field" assessment and removes that field? Because we used Event Mapping, our code is still there, but it would refer to a field that is no longer in the component buffer, and will fail. What proactive lifecycle management tool is going to help you identify this issue? Without a compare report, how do you know what requires analysis? These are fantastic questions!

One way to locate conflicts is through regression tests. Each time I create a configuration (Drop Zone, Event Mapping, Page and Field Configurator, etc.), I record a test. That test proves my configuration still works. After each get current, I can run my regression test suite and see what fails. Test metadata will point to the change request, etc. so I know what to repair and where. I bet you are already doing regression testing. Everyone does. We usually call it "End User Testing." It might be a formal process but may not include change request documentation, etc. It is more like, "Hey, that thing that used to work is broken again." Alternatively, we recommend PeopleSoft Test Framework (PTF). The PTF metadata (comments, etc.) would contain the change request details. When the test fails, we can easily drill to the supporting documentation. This is proactive.

At this point, you might be saying, "We would LOVE to do that, but we haven't implemented PTF." But here is my question. Do you have to "implement" PTF to use it? Can't you, as a developer, just start recording regression tests against your configurations? That is what we recommend, and that is what we teach in our two-day PTF training course. You already have it. It's just waiting for you to start using it.

Our next PTF course starts in a couple of days, so be sure to register here ASAP! Or, purchase our On-demand PTF training course and get 60-days access to digitally mastered content to learn PTF whenever and wherever.

New to configuration? We regularly offer event mapping, drop zones, and Page and Field Configurator classes. Check out our website to see what we are offering next! Prefer On-demand? Take a look at our new On-demand Drop Zones course and learn on your own time.