Portal URL Formats

This section discusses:

  • Basic portal URL format.

  • URL format for PeopleSoft Pure Internet Architecture content types.

  • URL format for unwrapped PeopleSoft Pure Internet Architecture content.

  • Pagelet URLs.

  • System URLs.

  • Proxy architecture and relative URLs.

URLs provide the addresses for content so that it can be located and correctly identified. The portal servlet needs three pieces of information to present a page to the user. These are integral parts of a PeopleSoft portal URL:

  • The name of the portal through which content is being accessed.

  • The node that hosts the content.

  • The type and ID of the content.

The portal servlet uses the node name in the URL to determine the location of the servlet for that node (stored as part of the node object). If the content is hosted by the local database, the portal servlet communicates with the content servlet directly (Java method calls), not through HTTP (using the portal content servlet URL).

The ID format is different for each content type. Components are identified by menu, component, and market; scripts are identified by the program name, and so on. The portal registry determines the content reference for this content, and for the template and the pagelets that appear around with it.

Image: URL structure

The following diagram shows how the URL lists the required information from left to right: portal (EMPLOYEE), node (PSFT_HR), content type (c), content ID (MAINTAIN_SECURITY.USERMAINT.GBL) for this example URL:

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/c/MAINTAIN_SECURITY.USERMAINT.GBL

URL structure

This is consistent with the logical organization of content in portals and databases. At the left side of the figure, portals point to nodes and, ultimately, to content within those nodes.

Here’s what a portal URL looks like:

http://server/servlet_name/sitename/portalname/nodename/content_type/content_id?content_parm

The following table describes the different sections of the URL:

Section

Description

http://server/

Scheme (HTTP / HTTPS ) and web server name.

Important! The server name and port in this section must not exceed 30 characters in length. For example, http://mybiglongservername.example.com:8080, not including the http:// prefix, is 36 characters—six characters too long.

servlet_name/

The name of the physical servlet that the web server invokes to handle the request.

site_name/

The site name specified during PeopleSoft Pure Internet Architecture setup. This enables you to set up multiple sites on one physical web server. The site name is ultimately mapped by the web server to the appropriate configuration.properties file.

Important! The site name can include underscores ( _ ), but an underscore cannot be followed by a numeric character or the string newwin (for example, my_site_3 or my_newwin_site).

portal_name/

Name of the portal to use for this request. The portal definition contains metadata that describes how to present the content (template, pagelets, and so on).

node_name/

Name of the node that contains the content for this request.

content_type/

Type of the content for this request.

content_id

The identification of the content. The ID and type ensure that the correct content is retrieved.

?content_parm

Query string parameters (name value pairs) for the content.

This table lists the URL formats for each PeopleSoft Pure Internet Architecture content type:

Content Type

URL Format

Example

Component

/c/menu.component.market/?Page=page&Action=action &key_id=key_value. . .

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/c/ MAINTAIN_SECURITY.USERMAINT.GBL?page=view&view=narrow

Script

/s/RECORDNAME. FIELDNAME. Event. Function/?parm_id=parm_value. . .

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/s/ WEBLIB_PORTAL.PORTAL_HEADER.FieldChange.Iscript_DoSomething

External

/e/?url=URL

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/e/?url=http%2f%3a%3awww.example.com

Homepage

/h/?tab=homepage_tab

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/h/?tab=DEFAULT

Note: This homepage URL tells the portal servlet to display the specified tab of the current user’s homepage.

Query

/q/query

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/q/my_query

Worklist

/w/worklist

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/w/my_worklist

Navigation

/n/business_process_map

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/n/my_BusProcMap

File

/f/filename

http://sun09/psp/ps/EMPLOYEE/PSFT_HR/f/myfile.html

Note: The file URL for file content tells the servlet to retrieve the named file from the database and return it to the browser.

Disconnect

/?disconnect=y

http://sun09/psc/ps/EMPLOYEE/PSFT_HR/s/WEBLIB_QETEST.ISCRIPT1.FieldFormula.IScript_WhoAmI/?disconnect=y&postDataBin=y

This is an internal flag used by xmllink to process a request and to invalidate the HTTP session afterwards. In a normal browser, the HTTP session is maintained so that the subsequent requests are not creating new HTTP sessions.

PeopleSoft Pure Internet Architecture content is accessible with no template wrapping by means of the content servlet. This enables portals to implement a proxied architecture and enables you to include PeopleSoft Pure Internet Architecture content in other portal products and websites.

URLs for unwrapped PeopleSoft Pure Internet Architecture content are similar to URLs for wrapped content. Unwrapped PeopleSoft Pure Internet Architecture content has not gone through the portal servlet template process. In the URL, the content servlet is specified rather than the portal servlet. The following table shows sample URLs for a component and an iScript.

Note: The content servlet ignores the portal and node name, but they are still necessary as placeholders. Omitting them causes a runtime error because the psc servlet checks that the URL contains a portal and node name, even though it doesn’t use them.

Unwrapped Content Type

URL Example

Component

http://sun09/psc/ps/EMPLOYEE/PSFT_HR/c/E_PRO.CheckOut.GBL

Script

http://sun09/psc/ps/EMPLOYEE/PSFT_HRm/s/WEBLIB_Portal.PORTAL_HEADERFieldChange.Iscrip_DoSomething

Pagelets are snippets of HTML content that appear in one section of a template. Unlike target content, they are referenced by name within the template. This sample HTML refers to a pagelet:

<Pagelet Name="UniversalNavigation">
<Source Node ="LOCAL_NODE" Pagelet="MyPagelet"/>
</Pagelet>

When the servlet resolves this tag, it generates the URL using:

  • The name of the portal containing this template.

  • The node name specified in the Source tag (for example, Node = “SomeNode”).

  • Content type and content name specified in the pagelet definition for the specified pagelet.

The resolved URL for this example is (assume this template is in the Employee portal):

http://sun09/psc/ps/EMPLOYEE/PSFT_HR/s/WEBLIB_TEST.ISCRIPT1.FieldFormula.IScript_WhoAmI

System URLs do not have content or query strings; instead, they contain system commands, such as Login or Expire. System URLs can be issued to both the content and portal servlets. This table lists system URLs:

URL

Description

http://sun09/psp/ps/?cmd=expire

Closes the current session and returns the expire page.

Note: The system detects whether the user is still active during the cmd=expire process on the server. The system ignores the session after detecting that the user is still active so that ongoing transactions in the active window are not disturbed. However, if another session is open simultaneously that is inactive, the inactive session will be closed.

http://sun09/psp/ps/?cmd=logout

Closes the current session and returns to the sign-in page.

http://sun09/psp/ps/?cmd=login

Tells the servlet to return to the sign-in page.

A relative URL is written to an HTML document without some portion of the scheme, server, or path. When the browser downloads the document containing the relative URL, it makes the relative URL absolute by adding the scheme, server, and path of the downloaded document. Relative URLs simplify moving static documents around on web servers because you don’t have to change the URLs embedded within the documents that you move.

One portal servlet can proxy content from several other content servlets. The portal servlet acts as an intermediary in the conversation between the browser and the various content services, relaying HTTP requests and responses from the content servlet to the browser.

The portal servlet acts as a reverse proxy server by ensuring that all URL references on portal pages point back to the portal servlet itself. The portal servlet does this by rewriting all content retrieved through the portal to contain relative URLs in appropriate URL formats.

To increase performance, you can include the custom header UsesPortalRelativeURL with the value True to indicate that the URL is already set in the correct format. All content from databases using PeopleTools 8.42 and later generates URLs with the correct format and uses this command in the header.

Examples of Relative PeopleSoft URLs

For example, assume that the MAINTAIN_SECURITY.USERMAINT_SELF.GBL component is in the PSFT_HR node, and it is being accessed by the EMPLOYEE portal.

If you wanted a navigation iScript within the PSFT_HR node to construct a link to the MAINTAIN_SECURITY.USERMAINT_SELF.GBL component, you would add the following HTML to the response:

<a href="../../../EMPLOYEE/PSFT_HR/c/MAINTAIN_SECURITY.USERMAINT_SELF.GBL" . . . >

When this HTML is downloaded to the browser, the absolute URL includes the scheme, server, and servlet directory of the proxying portal servlet, even though the iScript may have run on a content servlet on a different web server. The absolute URL continues with the portal, node, service type, and component name, as specified by the iScript.

Here is what the final URL looks like:

http://sun0server/psp/ps/EMPLOYEE/PSFT_HR/c/MAINTAIN_SECURITY.USERMAINT.GBL

Note: The content services always specify the portal, node, and content type (with the “../../..) even if those values are the same as the current page.

Now assume that you want the navigation iScript to create a link to the MAINTAIN_SECURITY.USERMAINT_SELF.GBL component in the HRMS node. Also assume that the component is being accessed by the employee portal. The navigation iScript adds the following HTML to the response:

<a href="../../../EMPLOYEE/HRMS/c/MAINTAIN_SECURITY.USERMAINT_SELF.GBL" . . .>

The absolute URL looks like this:

http://sunserver/psp/ps/EMPLOYEE/HRMS/c/MAINTAIN_SECURITY.USERMAINT.GBL

The URL correctly points to the appropriate content without any HTML parsing or URL rewriting.

Finally, assume that you want a navigation iScript running within the EMPLOYEE portal to construct a link to the MAINTAIN_SECURITY.USERMAINT_SELF.GBL component within the E_BENEFITS portal. To construct this link, the iScript generates the following HTML:

<a href="../../../E_BENEFITS/HRMS/c/MAINTAIN_SECURITY.USERMAINT_SELF.GBL" . . . >

Note: The href tag with a relative URL can be used to change a portal or node only if the HTML is being accessed through an HTML template. It won’t work with a frame template because the base URI of the frame points to the content servlet, which ignores the portal and node names. Use the PeopleCode transfer function to specify a target portal and node.