×
Tips and Techniques, UX/Mobile/Responsive

Links not Automatically Opening a Page

By Larry Grey • March 17, 2008


This is another blog posting that Chris and I had discussed putting out there (but got distracted doing other things, one of which is keeping up with the PeopleSoft community… Chris calls this Yak Shaving.)

So I finally found this posting on ITTOOLBOX, and realized that it was time to discuss some of the intricacies of bypassing the search page here.

For those who have been following the blog, you may be familiar with some of the posts we’ve done on drilling and PeopleSoft.

  • Adding hyperlinks to Queries and nVision reports (described in this powerpoint).
  • Drilling to other Content in nVision blog posting.
  • Drilling Deeper into PeopleSoft Pages blog entry.
  • Code to drill to any chartfield blog entry.
  • Drilling to a performance or development document from a URL blog posting.

So, as you can see, drilling is a recurring theme here in the blog. Let’s look at what the component processor does, and how this affects drilling.

How the component processor handles drilling

Let’s start by revisiting the how you can create a URL that opens up a specific page with a specific item. The first thing is to look at the structure of the PeopleSoft URL to do this.

http://www.psserver.com/ Server
psp Portal or Content
psp=Show portal frame
psc=Show content only
/ps/
EMPLOYEE Portal Name
/ERP/ Site
c/
PROCESS_JOURNALS PeopleSoft Menu
.JOURNAL_ENTRY_IE.GBL Component and Market
?
BUSINESS_UNIT=US005& Search Parameter
JOURNAL_DATE=2004-03-31& Search Parameter
JOURNAL_ID=MKMAR5& Search Parameter
ACTION=U& Mode
A=Add
U=Update
C=Correction
PAGE=JOURNAL_ENTRY1 Page Name

So, from the above table, you can see that many of the PeopleSoft artifacts have a place in the URL. The menu and component tell you what component to invoke (and notice that the page within the component is a parameter just as is the mode in which the component is brought up). Any field on the search record of the component can be passed as a parameter, but you need to have all of the (primary) Search Keys passed if you want to bypass the search page.

Okay, I think I get it, but what can cause it to trip up?

Well, there are 3 major things that will bring you back to the search page versus getting directly into the component.

  • Not all primary search fields are passed in the URL
  • The component is set to force the search page to display
  • The component processor encounters an unexpected condition.

Let’s go through each of these one at a time

Not all primary search fields are Passed

This was actually the problem with opening up the Job page. You see, the EMPL_RCD field is a primary search field for the Job component. This is because employees could potentially be in more than one job (although in my experience it doesn’t happen that often). In this example, just adding &EMPL_RCD=0 to the URL will do the trick if your employees only have 1 job. Although you could create a new menu item that overrides the search record for certain situations, it wouldn’t work here because the key structure of the level 0 record of the component expects EMPL_RCD key to be passed in.

One other thing to note, is that quite often it is desirable to invoke the search page with a subset of parameters populated (to target the search results). One example that we show is drilling into tree manager, populating the fieldname, so that you can see all trees built against that field. We use this to facilitate the configuration of our report explorer product, where we know what field the user is interested in, but not which tree they would want to use.

The Component is set to force the search page to display

So, you may ask yourself why anybody would design a page so that you have to display the search page. The answer is that you can use PeopleCode to implement row level security in the SearchInit and SearchSave events (which has been done by PeopleSoft developers in spite of the fact that it isn’t recommended). The only time SearchInit or SearchSave events fire is when the search page is displayed, which means that for those components our little trick of passing in values would actually bypass the security implemented for that page. This is discussed in quite a bit more detail here.

The component processor encounters an unexpected condition

So, let’s say that you have a URL that opens up a component in add mode, and there is already a row in the search table that contains all of the keys passed in. Or, let’s say that you pass in a set of search keys to open the page in update mode, but there isn’t any data in the search record table. In both of these circumstances, the component processor will determine that it can’t meet the request and will display the search page to allow the user to correct the problem (i.e. change the values passed in or change the mode in which the page will be invoked).

Labels:

Stay Updated

7 Replies to “Links not Automatically Opening a Page”

  1. Hello,
    There must be a fourth reason since I have check the three you explain here and they are ok.
    In my case, when the user click the first time in the URL, see the login page. After login it carried to the Search page with every search parameter empty. Once is login clicking in the URL open correctly the page expected.
    Do you know why this could happen?
    Thanks,
    Juan Diego

    PS: I know I know 2 years after, but I found the problem now 😉

  2. Clarification from my Enterprise Portal Admin class student guide:

    /ps/ above is the site
    /ERP/ above is the Node name

  3. Keep in mind that there are some good ways to minimize the impact of customization when the changes are actually net new code that you are adding.

    One good trick is to put your code in your own function library and only insert a reference to it from the delivered PeopleSoft code.

    That keeps your modification down to a minimum, and as a nice bonus, you can query the references in SQL instead of reading compare reports manually to detect any changes from delivered code.

    I have a blog entry on this topic that is waiting to get written, but the net is that you can keep your cost of customization at such a low point that the benefits of doing these sorts of things makes sense.

  4. Larry,

    Thanks for the info. I looked over that blog entry and it seems like it would work for the manager self service page I am trying to do it on. I’m going to have to decide if it’s worth it to customize that page to accomplish this. Since I’m the one who applies bundles too you could understand my hesitation to add more customizations to our system. In any case, I will use your code as a template should I decide to move forward with this. As an aside, the blog at greysparling.com is a fantastic resource and is one of the sites I check almost daily, keep up the great entries! Thanks -Mike

  5. Hi Mike,

    Thanks for the positive comments. This looks to be very similar to what is needed to navigate directly into a Performance Document. You will need to do two things to accomplish this.

    The first is to add optional parameters to the page. The second is to use those parameters to populate the fields in the search boxes.

    Here is the blog entry that discusses passing parameters into and opening a performance document.

  6. This is a very good explanation of how to create direct links into pages. I’m trying to take it one step further. When using HRMS 8.9, is there a way to populate the search criteria on the Timesheet page in Manager Self Service, Time Management, Report Time, Timesheet? I don’t think that’s a standard component search screen, so I was not able to use the URL trick to populate the search boxes. Any ideas? -Mike

  7. As their person posting the question in ITToolBox, excellent article furthering the explanation of drilling in PS.

    Thanks again,
    Joe

Comments are closed.

Request a Demo