2013PSFT-102620Mastering PeopleTools: Exploiting PeopleTools Tips and TricksJim EllisPeopleSoft Applied Technology
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
IT Project Justification
Co
st
Value
Low cost,High value
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6
Program Agenda
User Experience
Writing Code
System Administration Tips
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
Evolving from UI to UXHigher Productivity, Information to Action
Process/
Navigation
Content• Interactive• Intuitive• Graphical, Visual
• Proactive Delivery• Actionable• Event-based
• Transactional• Business Process Orientation• Role-based Consoles
Great
User
Experience
Look and Feel
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9
Documented User Experience Techniques
PeopleTools 8.52 and 8.53 have incorporated some exciting new user experience capabilities – Interaction Hub, Dashboards, WorkCenters and more !
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10
iScripts
Create Dynamic URL’s– CREF’s that redirect to other targets
Serve Non-HTML pages– Images, JavaScript, CSS, etc
– iCal, vCards, etc
Ajax/Flex Data Source
PeopleSoft “Swiss Army Knife”
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11
iScripts
Defined in a record that begins with WEBLIB iScript Function must begin with IScript_ iScript Function has no Parameters iScript Function does not Return a Value
Requirements
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12
iScriptsApplication Designer – Derived/Work Record
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13
iScriptsWeb Library Security – Permission Lists
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14
iScriptsApplication Designer – Derived/Work Record
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15
Pagelet Wizard
Create New Displays Extend through new Data Types, Display Formats, & Transform Types
Not just for Home Pages– WorkCenters
– Related Content
– Stand Alone
– Ajax
Configurable iScript
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
Integration Broker
REST services SOAP services Serve HTML, JSON, JavaScript, XML, etc Client-side Mash-up Benefits:
– Can be anonymous
– Separate server
– Can use HTTP Basic Auth
Stateless UI
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
JavaScript Injection
Add JavaScript to the end of a common PT% HTML Definition– PT_PAGESCRIPT
– PT_COPYURL
– PT_COMMON (if PT 8.50 or higher)
Change Behavior/Appearance of Existing Pages w/o Modifying Pages Warning: Must be properly managed – easy to introduce bugs…
Modify Behavior Without Modifying Code
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
Static JavaScriptApplication Designer Definition
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
Martin FowlerRefactoring: Improving the Design of Existing Code
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22
Reference Named Definitions
/* Find Definition References command won't find this */If (&rec.Name = "PERSONAL_DATA") Then
/* Too much overhead */If (&rec.Name = CreateRecord(Record.PERSONAL_DATA).Name) Then
/* Best */If (&rec.Name = Record.PERSONAL_DATA) Then
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23
How to Truncate an Array
Learn the Language - Really, Really Well !
Local object &Object;Local array of object &ArrObject = CreateArrayRept(&Object, 0);
/* OK -- It Works, but DON'T DO THIS!! */While (&ArrObject.Len > 0) &ArrObject.Pop();End-While;
/* BETTER: 1 line, no loop, but construction overhead */&ArrObject = CreateArrayRept(&Object, 0);
/* BEST: 1 line, no loop */&ArrObject.Len = 0;
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
PeopleCode Language
Binary to Base64 – OLD WayLocal JavaObject &f_in = CreateJavaObject("java.io.FileInputStream", "c:\img.gif");Local JavaObject &coder_in = CreateJavaObject("org.apache.commons.codec.binary.Base64InputStream", &f_in, True);
Local JavaObject &reader = CreateJavaObject("java.io.BufferedReader", CreateJavaObject("java.io.InputStreamReader", &coder_in));
Local string &b64Data = "";Local any &line;While True &line = &reader.readLine(); If (&line <> Null) Then &b64Data = &b64Data | &line | Char(13) | Char(10); Else Break; End-If;End-While;
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
Keep up with Changes
Binary to Base64 – NEW Way
Local File &f = GetFile("c:\img.png", "R", %FilePath_Absolute);
Local string &b64Data = &f.GetBase64StringFromBinary();
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
Complex Logic
Bugs love clutter…!
&bPosEffdt = False;If &hdr.Name = "POSITION_DATA" And &fld.Name = "EFFDT" Then &bPosEffdt = True;End-If; If (&fld.IsKey) And &bPosEffdt = False Then &where = &where | " and " | &prefix | &fld.Name | %This.GetFieldSQLBind(&fld);End-If;
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
Be Positive
Use an Empty “If” - Instead of “Not”
If ( &hdr.Name = Record.POSITION_DATA And &fld.Name = Field.EFFDT) Then REM ** Do nothing;Else &where = &where | " and " | &prefix | &fld.Name | %This.GetFieldSQLBind(&fld);End-If;
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28
Don’t Be So Negative -
It is harder to comprehend negative logic…
If ( Not (&hdr.Name = Record.POSITION_DATA And &fld.Name = Field.EFFDT)) Then &where = &where | " and " | &prefix | &fld.Name | %This.GetFieldSQLBind(&fld);End-If;
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30
Troubleshoot with Fiddler
Report Node Integration Broker PeopleSoft Test Framework User Interface
HTTP Debugging Proxy Server Application
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31
HTTP Debugging Proxy Server ApplicationTroubleshoot with Fiddler
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
Modular Infrastructure Design
PS_CFG_HOME– Contains the PeopleSoft configuration content like cache, log files
– PeopleTools 8.50+
PS_APP_HOME – Location of the PeopleSoft Application– Install and run the PeopleSoft application independent of PeopleTools.
– PeopleTools 8.52+, PeopleSoft Applications 9.0+
PS_CUST_HOME – Location of Customizations– Designate a specific file system location for customizations (COBOL, SQR, etc.)
– PeopleTools 8.53+
Decoupled Homes
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
Modular Infrastructure Design
PS_HOME– Contains only file system artifacts deployed by PeopleTools installation programs
PS_CFG_HOME – Location of Configuration content like cache, log files– PeopleTools 8.50+
PS_APP_HOME – Location of the PeopleSoft Application– Install and run the PeopleSoft application independent of PeopleTools.
– PeopleTools 8.52+, PeopleSoft Applications 9.0+
PS_CUST_HOME – Location of Customizations– Designate a specific file system location for customizations (COBOL, SQR, etc.)
– PeopleTools 8.53+
Decoupled PeopleSoft Homes
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
Modular Infrastructure Design Secured Environment
– Different owners for PS_APP_HOME and PS_HOME
– No cross-writing of the PS_HOME and PS_APP_HOME by restricted users.
– Runtime user can have restricted access
Reduced Disk Space Needs– Same installation can be shared by multiple independent runtime users
Patch Application– Simplified due to fewer distinct copies of the installation that must be maintained.
Reuse– Decouple PeopleSoft homes helps run multiple applications use the same PS_HOME
Problem Diagnosis– Easier to isolate the problem
Isolation of Customizations– Allows the PS_HOME and PS_APP_HOME locations to retain only content delivered with the installation program
Advantage of Decoupled PeopleSoft Homes
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37
Modular Infrastructure Design
Oracle's PeopleSoft Virtualization Products (Doc ID 1538142.1) Quick Start Option for PeopleSoft Applications Portal, HRMS, FSCM, ELM Two Oracle Linux/Oracle VM Images
– PeopleSoft FSCM Database instance running on Oracle Database 11.1.0.7 containing PeopleSoft demo data
– PeopleSoft Internet Architecture and Application Server with Oracle Tuxedo 10gR3 and Oracle Weblogic 11g
PeopleSoft OVM Whitepaper Available– http://docs.oracle.com/cd/E18128_01/psft/acrobat/OVM_Templates_WhitePaper_2010.pdf
PeopleSoft Oracle VM Images
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
Books to Make Your Life Easier…..Tips and Techniques – Get Ready for Your PeopleSoft Upgrade !
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39
Learn MoreNew Information Development Solutions
More helpful resources can be found on the PeopleSoft Information Portal
Video Feature Overviews & More on YouTube
Strategy Blog Linkedin
Cumulative Feature Overview ToolTwitter Facebook
Click on to link to resource.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40
Learn MoreMore Information Development Solutions
More helpful resources can be found on the PeopleSoft Information Portal
Click on to link to resource.
Hosted & Mobile PeopleBooks
Entity Relationship Diagrams
Fit Gap UPK Upgrade Resource Report
Service Repository
Business Process Maps
Top Related