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