Info
Content

Open New Window PeopleCode


Sometimes you need to open a new window to a PeopleSoft page and when that windows opens you lose the state of your previous page. Here is a function that uses the PeopleSoft newwin servlet processing to open a new window in a new state block.

/*****************************************************************************
 NewWinUrl(&strUrl)
 
 This function modifies a URL to return a new window URL 
 It allows a new state block to be generated in a separate browser instance.
 http://server:port/psp/ps/EMPLOYEE/HRMS/c/...... 
 turns into 
 http://server:port/psp/ps_newwin/EMPLOYEE/HRMS/c/...... 
 which renders to the browser as 
 http://server:port/psp/ps_1/EMPLOYEE/HRMS/c/...... 
 
 Input parameters:  &strUrl - a URL to manipulate
 Output parameters: &strUrlModified - New URL with _newwin parameter
 
 ****************************************************************************/
 
Function NewWinUrl(&strUrl As string) Returns string;
   Local string &sRegex, &sReplace, &Result;
   /* Declare java object */
   Local JavaObject &jUrl;
 
   /**
    * Peoplesoft Content types:
    * -------------------------
    * Component: c
    * Script: s
    * External: e
    * Homepage: h
    * Template: t
    * Query: q
    * Worklist: w
    * Navigation: n
    * File: f
   **/
 
   /* Regex strings */
   /*          psc/psp  Site      Portal    Node      Content Type */
   &sRegex = "/(ps[cp])/([^\/]*)?/([^\/]*)?/([^\/]*)?/([csehtqwnf]{1})/";
   &sReplace = "/$1/$2_newwin/$3/$4/$5/";
 
   /* Instantiate objects and replace */
   &jUrl = CreateJavaObject("java.lang.String", &strUrl);
   &Result = &jUrl.replaceAll(&sRegex, &sReplace);
 
   /* Return modified URL */
   Return &Result;
End-Function;
No Comments
Back to top