1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 2013PSFT-102620 Mastering PeopleTools: Exploiting PeopleTools Tips and Tricks Jim Ellis PeopleSoft Applied Technology 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. 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Cost IT Project Justification Low cost, High value Value 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda User Experience Writing Code System Administration Tips 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. User Experience 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Evolving from UI to UX Higher Productivity, Information to Action • Interactive • Intuitive • Graphical, Visual Look and Feel Content Great User Experience • Proactive Delivery • Actionable • Event-based Process/ Navigation • Transactional • Business Process Orientation • Role-based Consoles 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Documented User Experience Techniques PeopleTools 8.52 and 8.53 have incorporated some exciting new user experience capabilities – Interaction Hub, Dashboards, WorkCenters and more ! 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. iScripts PeopleSoft “Swiss Army Knife” 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 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. iScripts Requirements 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 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. iScripts Application Designer – Derived/Work Record 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. iScripts Web Library Security – Permission Lists 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. iScripts Application Designer – Derived/Work Record 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Pagelet Wizard Configurable iScript Create New Displays Extend through new Data Types, Display Formats, & Transform Types Not just for Home Pages – WorkCenters – Related Content – Stand Alone – Ajax 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Integration Broker Stateless UI 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 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JavaScript Injection Modify Behavior Without Modifying Code 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… 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Static JavaScript Application Designer Definition 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Writing Code 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” Martin Fowler Refactoring: Improving the Design of Existing Code 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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; 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. PeopleCode Language Binary to Base64 – OLD Way Local 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; 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Keep up with Changes Binary to Base64 – NEW Way Local File &f = GetFile("c:\img.png", "R", %FilePath_Absolute); Local string &b64Data = &f.GetBase64StringFromBinary(); 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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; 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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; 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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; 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Administration Tips 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Troubleshoot with Fiddler HTTP Debugging Proxy Server Application Report Node Integration Broker PeopleSoft Test Framework User Interface 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Troubleshoot with Fiddler HTTP Debugging Proxy Server Application 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Troubleshoot with Fiddler 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Troubleshoot with Fiddler 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Modular Infrastructure Design Decoupled Homes 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+ 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Modular Infrastructure Design Decoupled PeopleSoft Homes 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+ 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Modular Infrastructure Design Advantage of Decoupled PeopleSoft Homes 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 – 36 Allows the PS_HOME and PS_APP_HOME locations to retain only content delivered with the installation program Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Modular Infrastructure Design PeopleSoft Oracle VM Images 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 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Books to Make Your Life Easier….. Tips and Techniques – Get Ready for Your PeopleSoft Upgrade ! 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Learn More New Information Development Solutions Video Feature Overviews & More on YouTube Strategy Blog Linkedin More helpful resources can be found on the PeopleSoft Information Portal Twitter 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Cumulative Feature Overview Tool Facebook Click on to link to resource. Learn More More Information Development Solutions Hosted & Mobile PeopleBooks Upgrade Resource Report Fit Gap UPK More helpful resources can be found on the PeopleSoft Information Portal Entity Relationship Diagrams 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Service Repository Business Process Maps Click on to link to resource. 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.