CON7553

PeopleTools REST Web Services:
Everything You Need to Know
Graham Smith - OXFAM GB
PeopleSoft Technical Lead & System Architect

Oxfam
Oxfam is a vibrant global
movement of dedicated
people fighting poverty
70 years experience in 94 countries
Syria - Helping over 200,000 refugees

Page 2

PeopleSoft @ OXFAM
• HCM & FSCM Applications
• 4,500+ users in 70+ countries
• Working on 9.2 upgrade to FSCM

Agenda
1) What is a web service
2) What is SOAP & REST
3) What is WSDL and WADL
4) What is XML and JSON
6) Configuring PeopleTools for REST
7) What's delivered in a SYS database that works
8) How to Build a REST service
9) Testing tools
10) Security
11) Demo
12) Questions

What is a Web Service?
• Method of communicating between devices over the world
wide web

• Characteristics of a web service
• Defined interface in machine readable form (WSDL or WADL)
• Conveyed over HTTP/S
• Systems interact using request / response messages (SOAP or REST)

Page 5

Introduction to REST • Style of doing Web Services • Defined by Professor Roy Fielding • @ UC Irvine in 2000 • Co-founder of Apache HTTP Server • Principal author of HTTP specification • Emerging as the predominant web API model • Lighter weight and easier to use compared to SOAP and others • Available from PeopleTools 8.52 Page 6 .

w3.org/TR/soap/ • One is an architectural style (REST) Page 7 .What is SOAP & REST? • Both are used to access Web Services • One is a protocol (SOAP) with defined specification http://www.

etc) Asynchronous and Synchronous communication possible Built in error handling Page 8 . WS-Routing.2 is a lightweight protocol intended for exchanging structured information in a decentralized. getCustomerName) • • • • • Uses HTTP POST method to send XML messages Designed for distributed transactions Extensible model (WS-Security.g.What is SOAP? • SOAP Simple Object Access Protocol “SOAP Version 1. distributed environment” • TECHNOLOGY SPECIFICATION (W3C in 2033) • Requires custom methods (e.

PUT.What is REST? • REST REpresentational State Transfer • • • • • • • ARCHITECTURAL STYLE (not a standard) Implements standard HTTP operations (GET. DELETE) Used to locate and return the representation of a resource (URI) No XML to parse and process (fast) Synchronous communication only Stateless Easier to implement Page 9 . POST.

0) PeopleTools describes SOAP based service W3C Recommendation 2007 • WADL Web Application Description Language • • • • XML to describe REST web services PeopleTools describes REST services using WADL W3C Submission in 2009 by Sun Microsystems Limited tooling support Page 10 .What is WSDL & WADL? • WSDL Web Services Description Language • • • • XML to describe SOAP web service Can define both SOAP and REST web services (from WSDL 2.

53 Page 11 .What is XML & JSON? • XML eXtensible Markup Language • JSON JavaScript Object Notation JSON now supported PeopleTools 8.

Configuring PeopleTools for REST • Set REST Target Locations in Service Configuration • Specify optional node name Target URL Page 12 .

Configuring PeopleTools for REST • Activate ~~Any~~ to Local Routing on GETWADL Service Op Page 13 .

Patch number) Page 14 .Configuring PeopleTools for REST • • Set default application server in Gateway Setup Properties Check and set PeopleTools version (inc.

53.53 this is implemented as REST based service. An error may occur in the Handler code if Earlier than 8.Delivered Example in SYS database • Service Operation PTLOOKUPXLAT_REST_GET • Returns XLAT values for a given Fieldname. • Handler App Package PT_IB_LOOKUPREST From 8.06 Page 15 .

PT_LOOKUPXLAT_REST_GET http://server/PSIGW/RESTListeningConnector/PTLOOKUPXLAT_R EST.v1/XLAT_Lookup/RUNSTATUS?fieldVal=7 Page 16 .

REST URI .Uniform Resource Identifier • Identifies the name of a web resource http://myserver/orders/data.html er feufhefherf her hfer fherhferfher heihfwe ew ew ew ew ew dwe dwedew dwe ew dewdwe ewwe dew wewedew weew weewdwe ewwdewdwe ew dew weewewweew dwe dewdewdewdewewd ewdewdewdewdwe Page 17 .

Uniform Resource Identifier • REST operates in a similar way to the WWW http://myserver/operators oprid oprid oprid oprid oprid oprid oprid oprid oprid oprid oprid xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx http://myserver/opeators/oprid=VP1 VP1 xxxxxxxxxxxxxx Page 18 .REST URI .

REST URI – Resource Templates http://myserver/operators Resource name http://myserver/operator/oprid=VP1 Resource name RESOURCE TEMPLATES Page 19 .

REST URI – Resource Document http://myserver/operators/oprid=VP1 /operators/oprid={oprid} Template Mapping by element name Page 20 .

Test Handler 8. 2. Page 21 . Create Document Test Document Create Message Create Service Create Handler Create Service Operation a) Resource Template 7. Test Service Operation 10. Publish Web Service (if WADL is needed) Using delivered image FSCM 9.002. 5. 4.2. Create Routings 9.How to Build a REST Web Service 1. 3. 6.

REST Web Service Components REST Service Service Operation Service Operation • Resource Definition • URI Definition Template(s) • Resource Document Template • • URI Template(s) • • Response Message (20 Document Template Fault Message (400) • • Response Message (200) • Fault Message (400) Resource Document Message Response Document Handler (OnRequest) Handler (OnRequest) Page 22 .

Example REST Service Return the name and email address of a given operator.gl/KUX9F2 Page 23 . Service = OOW_OPERATOR Service Operation = OOW_OPERATOR_GET http://myserver/operator/vp1 Application Designer project OOW_REST Download from http://goo.

etc COMPLEX PRIMITIVE = primitive with attributes COMPOUND = set of one or more primitives COLLECTION = set of one or more compounds Page 24 .1) Documents Definition • Define hierarchical data structures (logical) • Map onto physical structures • XML • JSON • Database records and fields • Data types available • • • • PRIMITIVE = string. integer. char.

1) Document Data Types • ROOT element • Collection • Record Compound • Primitive • Complex Primitive Compound Page 25 .

1) Documents Needed • Document Template • Used to retrieve inbound URI parameters • Cannot contain COMPOUND types • Supports direct variable substitution • Request Document/Message • Only required if using POST method • Response Document • Used to construct return message to client • Fault Document (optional) • Used to construct return message on error condition They can be all the same document or different ones Page 26 .

1) Create Document Page 27 .

1) Create Document – Relational Allows mapping of document elements to PeopleSoft records and fields. Page 28 .

2) Document Tester Page 29 .

2) Document Tester .XML Page 30 .

JSON Page 31 .2) Document Tester .

2) Document Tester .PeopleCode Page 32 .

2) Document Tester – Create XSD Page 33 .

3) Create Message The DOCUMENT is not enough. A message of type Document must be created. Page 34 .

4) Create Service Page 35 .

GetURIDocument().value.5) Create Handler 1.GetContentString(). If POST then get content body &str = &_MSG. Get inbound URI element values from document &oprid = &oprDoc. Page 36 . Create an Application Class that implements PS_PT:Integration:IRequestHandler 2.GetElement("oprid"). 3. Create document from inbound URI Local Document &oprDoc = &_MSG. 4.

6. &returnCom. Page 37 . &returnCom = &returnDoc.DocumentElement.value = &oprid.OPERATOR_GET.value = &descr.5) Create Handler 5.GetDocument().GetPropertyByName("oprid").GetPropertyByName("oprdefndesc"). %IntBroker_Response). &returnCom. Populate return message &returnDoc = &returnMsg. Create return message &returnMsg = CreateMessage(Operation.

5) Use Document Tester to get PeopleCode for Handler class Page 38 .

6) Create Service Operation Page 39 .

6) Resource Definition Page 40 .

REST URI – Resource Document http://myserver/operators/oprid=VP1 /operators/oprid={oprid} Template Mapping by element name Page 41 .

6) Resource Template Builder Page 42 .

6) Response Definition Page 43 .

6) Service Operation Security Page 44 .

6) Assign Handler to Service Op Page 45 .

7) Test Handler Page 46 .

7) Test Handler Page 47 .

Any-to-Local needed to test service outside PeopleSoft.8) Create Routing Local-to-Local needed to use Service Operation Test utility. Page 48 .

9) Test Service Operation Page 49 .

10) Publish Web Service Integration Broker > Web Services > Provide Web Services Only need to publish if you need the WADL document. Page 50 .

org • PeopleTools SendMaster • %PS_HOME%\sendmaster • Any Browser (to test GET) • Fiddler (to test GET/POST/PUT/DELETE) Page 51 .soapui.Test Web Service • SOAPui friom SmartBear • www.

REST Security • PeopleTools supports no authentication (ie public) • BASIC Authorization with or without SSL • Adds HTTP header to Request Authorization: BASIC <oprid:password> Page 52 Base64 .

Demonstration of REST Jim Marion • Principal Applications Technology Consultant.blogspot.uk/ Page 53 . Oracle • Author of two fine books on PeopleTools • Jim’s Journal @ http://jjmpsj.co.

Any questions Graham Smith PeopleSoft Technical Team Leader Oxfam GB gsmith@oxfam.blogspot.uk i-like-trains.com Page 54 .org.