This is the multi-page printable view of this section. Click here to print.
Project Meta
1 - Why was SWS Created?
The genesis story for SWS now lives on the About page — the natural home for company and product backstory.
This page is preserved as a redirect so existing links continue to resolve.
2 - Terminology
See our Integration Book - Terminology Sections for a deeper Integration Broker vocabulary; this page covers just the terms that come up repeatedly in SWS documentation.
HTTP / REST Terms
- HTTP
- HTTP (Hypertext Transfer Protocol) is a standardized protocol used for the transfer of information on the World Wide Web. It establishes a connection between a client and a server, allowing for the request and delivery of web resources such as HTML pages, images, videos, and more. HTTP operates on a request-response model, where the client sends a request to the server, and the server responds with the requested data or an appropriate error message. It forms the foundation for web browsing, enabling the retrieval and display of web content in a user-friendly manner.
- Client
- An HTTP user of your API. This could be a simple command line (CLI) application like
curlorwget. It will likely be some external application that needs to pull data from PeopleSoft. - PSIGW
- PeopleSoft Integration Gateway - This is the web server that is running your integration broker.
- Encoding
- The way the data is “wrapped” and presented to the client: JSON, XML or CSV.
- Request
- The HTTP request made by the client. This includes the URL path, query strings, and HTTP Headers.
- Response
- The data that comes back from the server to the client in reply to an HTTP Request.
- REST
- REST (Representational State Transfer) is an architectural style for designing networked applications, particularly web services, that emphasizes a stateless, client-server communication model. It promotes the use of standard HTTP methods like GET, POST, PUT, and DELETE to perform operations on resources identified by unique URLs (Uniform Resource Locators). RESTful systems leverage the principles of scalability, simplicity, and modifiability, allowing different clients to interact with the server using a uniform and predictable interface. It facilitates the exchange of data in various formats, such as JSON or XML, and supports the separation of concerns between client and server components.
- PsoftQL
- A proprietary JSON and XML syntax to request data from SWS. Read more on the PsoftQL Syntax
PeopleSoft Concepts
These terms come from PeopleSoft itself. SWS uses them constantly. If you have a PeopleSoft background you can skip this section; if you’re integrating with SWS from a non-PeopleSoft perspective, the definitions below will save you a lot of context-switching.
- Integration Broker (IB)
- PeopleSoft’s built-in middleware for inbound and outbound web services. Everything SWS does runs through Integration Broker: the
RESTListeningConnectorreceives the HTTP request, IB authenticates the caller, routes to the service operation, and serializes the response. The companion book Integration Broker — The Missing Manual covers IB in depth. - PSIGW
- PeopleSoft Integration Gateway — the Java web application (a servlet inside PSIGW.war) deployed to the PeopleSoft web server tier. The gateway is the network edge of IB: it accepts inbound HTTP and forwards messages to the application server. Inbound REST calls hit a path like
/PSIGW/RESTListeningConnector/<NODE>/<SERVICE>/.... - Service
- An IB grouping for related service operations.
CHG_SWSis the Service name used by SWS — it appears in the request URL as the prefix segment after the listening node. - Service Operation
- The specific handler within a Service that runs in response to an inbound message. SWS ships two:
CHG_SWS_GET(called by every admin-configured SWS path) andCHG_SWS_PSOFTQL(the advanced caller-driven endpoint). When the docs say “configure security on the service operation,” they mean granting access to one of these two names in Security → Permissions & Roles. See also the Service vs Service Operation alert on the configuration page. - OPRID
- The PeopleSoft user identifier — what other systems call a username. Stored in
PSOPRDEFN. SWS authenticates inbound REST calls against an OPRID + password using HTTP Basic Authentication. Per‑user data filtering inside SQL relies on%OPERATOR(the current OPRID) and%EMPLOYEEID(the EMPLID the OPRID is associated with). - PSOPRDEFN
- The PeopleSoft table that stores user accounts (OPRIDs), passwords, locked-account flags, and the link from each OPRID to its primary role. Whenever you read “OPRID and password from PSOPRDEFN,” that’s the table being checked.
- Role
- A named bundle of permission lists assigned to one or more OPRIDs. PeopleSoft security flows OPRID → role → permission list → access. SWS itself does not check roles directly; it checks the permission lists granted through the OPRID’s roles.
- Permission List (CLASSID)
- The leaf of the PeopleSoft security tree — the unit that actually grants access to service operations, components, and (for SWS) configured URL paths. Stored with column name
CLASSIDin the database, hence the column name in the SWS whitelist tableC_SWS_REC_WL. The CLASSID is not the same string as the OPRID or the role; look it up directly in Security → Permission Lists rather than guessing. - Component
- The PeopleSoft equivalent of a “page” or “form.” Configuration pages SWS delivers (for example
CHG_SWS_CONF_TBLfor the SWS setup grid) are components. You can grant or revoke a permission list’s access to a component to control who sees the SWS admin UI. - Record
- PeopleSoft’s metadata wrapper around a database table or view — it carries the field list, field types, key definitions, prompt table references, and other attributes the application uses. SWS reads record metadata at run time to know which fields exist on a table, which fields are keys, and which fields have XLAT or prompt-table descriptions. PsoftQL requests use the record name (e.g.
PSROLEDEFN), not the underlying database table name (e.g.PS_PSROLEDEFN). - XLAT
- Translate values — PeopleSoft’s small-domain lookup mechanism for single-character or short codes that decode to human-readable labels (e.g.
ROLESTATUS = 'A'→"Active",ROLESTATUS = 'I'→"Inactive"). Stored centrally inPSXLATITEM, keyed by field name and value. SWS can inject the decoded label into responses viaincludeAllDescriptionsorincludeDescriptionsForon a PsoftQL request. - Prompt Table
- An XLAT-style decode for codes whose value-set is large or business-specific (e.g.
DEPTID→ department description). Instead of central rows inPSXLATITEM, each prompt table is a separate record (e.g.DEPT_TBLdecodesDEPTID). SWS resolves prompt-table descriptions the same way as XLATs when you ask for them withincludeDescriptionsFor. - EFFDT
- “Effective date” — a key field on PeopleSoft records that hold time-versioned data (employees, courses, configurations). Each row’s
EFFDTis the date that row’s data first takes effect; the row remains in effect until a newer row with a laterEFFDTarrives for the same key. SWS auto-resolves to the row that is current “today” unless you supplynoEffectiveDateLogicoreffectiveDateOverride. - EFF_STATUS
- A character field on effective-dated records, paired with
EFFDT, that marks a row asActive orInactive. SWS auto-filters toEFF_STATUS = 'A'unless you setnoEffectiveStatusLogic: true. Inactive rows exist when an organization needs to retire anEFFDTrow but keep the history. - EFFSEQ
- “Effective sequence” — a third key on a small number of records (notably
JOB) that lets multiple rows share the sameEFFDTfor the same entity, ordered by sequence number. SWS auto-resolves to the highestEFFSEQfor the chosenEFFDTunlessnoEffectiveSequenceLogic: trueis set. - Meta-SQL
- PeopleSoft’s database-portable SQL macro layer — text inside SQL of the form
%MACRO,%TABLE(record),%CURRENTDATEIN,%DATEIN(date), etc., that the PeopleSoft runtime expands into the correct dialect for Oracle or SQL Server before execution. SWS SQL configurations and PsoftQLsqlWhereClausestrings both pass through this expansion.%TABLE(PSOPRDEFN)resolves to the physical table name (e.g.PS_PSOPRDEFNorPSOPRDEFN) at run time so your configuration survives Oracle’s release-to-release table renames. - Whitelist (SWS)
- SWS-specific concept implemented in the
C_SWS_REC_WLtable. Each row pairs aCLASSID(permission list) with aRECNAME(record), declaring that callers with that permission list may include that record in aCHG_SWS_PSOFTQLrequest. Whitelist filtering applies only toCHG_SWS_PSOFTQL;CHG_SWS_GETcontrols access at the URL-path level instead (via the permission-list grid on each SWS configuration row). See Data Access Models.
3 - SWS Assumptions and Limitations
Assumptions
- You have a working PeopleSoft Integration Broker (IB) setup, including a configured
RESTListeningConnectoron PSIGW. - You want to pull information out of PeopleSoft. SWS is read-only by design.
- PeopleTools version greater than 8.56.
- You can create custom Oracle/SQL Server objects in your PeopleSoft database (SWS ships custom records, application packages, and a service operation).
What SWS does not do
These are intentional product boundaries, not bugs. If your use case is on this list, SWS is the wrong tool and another approach is needed.
Read-only, GET-only
SWS exposes PeopleSoft data as HTTP GETs. It does not create, update, or delete PeopleSoft data. There is no PUT, POST-to-write, or DELETE pathway. To push data into PeopleSoft you still need a traditional Integration Broker service operation, a Component Interface, or a delivered web service. Generic insert/update support is discussed on the road map; it does not exist today.
PeopleSoft must be the server
SWS only works when PeopleSoft is the HTTP server answering inbound requests. If you need PeopleSoft to make an outbound call to a third-party REST API, use a standard Integration Broker outbound consumer — SWS plays no role there.
Data is returned in PeopleSoft shape
By default the response uses PeopleSoft field names (EMPLID, ACAD_CAREER, DESCR) and PeopleSoft formats (ISO dates, raw XLAT codes). Two partial mitigations exist today:
- SQL configurations can alias columns in the Output Fields Grid so the client sees friendly names (see the SQL worked example).
- PsoftQL can request decoded XLAT and prompt-table descriptions via
includeDescriptionsForandincludeAllDescriptions.
Neither covers true data transformation — flattening parent/child trees, computing derived values, or reshaping the response schema for a specific vendor. A future release may add a transformation pipeline; tracked on the road map.
CSV output is SQL-only
CSV (Accept: text/csv) only works for SQL-type SWS configurations. PsoftQL responses are JSON or XML — they are nested by design and CSV has no representation for the parent/child structure. See the Syntax Types comparison on the configuration page.
IN operator in criteriaFields is not honored
The JSON schema lists IN as a supported operator value, but the current server build silently returns zero rows for every input form (comma-separated string, parenthesized list, fieldValues array). Use sqlWhereClause with native SQL IN (...) instead. See the IN operator status note on the Operator Examples page. Closing this gap is on the road map.
Aggregate queries cannot paginate or join
When isAggregate: true is set on a PsoftQL request:
- Only a single root record is allowed — no child records (
parentRecordName) and no joins. - Pagination is not supported —
pageNumbermust be omitted or1. Setting it to2or higher returnsresponseCode: 400with the message “Pagination is not supported in aggregate mode.” - The flags
includeFieldTypes,includeAllFieldLabels, andincludeKeyFieldIndicatorsare ignored.
For the full list of what does and does not work alongside isAggregate: true, see the Aggregate Queries section of the PsoftQL syntax reference.
XML isAggregate mode
Aggregate queries in XML request format do not currently produce the same well-formed aggregate response that JSON requests do. Stick with JSON when using isAggregate: true.
Field-name typos in criteriaFields are silent
The handler does not validate that criteriaFields[].fieldName exists on the target record. A typo causes the criterion to be silently dropped and the request returns the unfiltered result. Always spot-check that the returned rows actually match the criterion you intended. See Silent behaviours on the syntax page.
Authentication options are limited
The only viable REST authentication mechanism today is HTTP Basic Authentication tied to a PeopleSoft OPRID / password stored in PSOPRDEFN. SWS does not currently support API keys, OAuth 2.0 client-credentials grants, mutual TLS, or JWT bearer tokens at the application layer. This is a PeopleSoft IB constraint, not an SWS choice — anything you read in the Integration Broker REST security reference also applies to SWS.
Caching is constrained by the IB cache
SWS exposes the PeopleTools RESTListeningConnector cache via the Minutes to Cache Response configuration field. Read the Caching article before enabling it — the cache key does not include the caller’s OPRID, so caching a response that uses %EMPLOYEEID or %OPERATOR will leak one caller’s data to the next.
Other known boundaries
- Attachment fields are not auto-handled. Records with
EFFDT/EFF_STATUS/EFFSEQare auto-handled; binary attachment fields (BLOB columns referenced byPV_ATT_*metadata) are not yet auto-rendered. - No
meta/endpointsdiscovery endpoint yet. There is no live “list every SWS-configured path” endpoint — the closest substitute today is querying the configuration tables (C_SWS_CONF_TBLand friends) directly. - OpenAPI / Swagger generation is on the road map but not yet shipped.
For features under active consideration, see the Road Map.