230 likes | 596 Views
Chris Heller, Grey Sparling Solutions. Advanced PeopleTools Tips and Techniques. Agenda. About This Session Presenter Overview PeopleTools Tips and Techniques Drilling Into Application Designer Security Drilling / Portal Administration Drilling Dynamic Tracing or Row Level Security
E N D
Chris Heller, Grey Sparling Solutions Advanced PeopleTools Tips and Techniques
Agenda About This Session Presenter Overview PeopleTools Tips and Techniques Drilling Into Application Designer Security Drilling / Portal Administration Drilling Dynamic Tracing or Row Level Security Enhancing PeopleSoft User Experience Automating “Save As” Processing Grab Bag Questions
About This Session Hands On Demo Intensive Existing Experience with Application Designer is assumed Focus is on PeopleTools 8.4x But techniques can be applied to earlier versions Don't worry about trying to type code snippets in your notes!
More about the Presenter Chris Heller PeopleSoft Employee 1993 - 2005 Director, PeopleTools Product Strategy 1999 – 2005 Currently Chief Architect at Grey Sparling Solutions
Who is Grey Sparling Solutions? We Enhance the PeopleSoft Experience Our Products Address common PeopleSoft needs. Leverage your existing PeopleSoft infrastructure. Enable functionality with minimal cost and effort
Products that Enhance Administrative Experience Operations Productivity Application Support Productivity Developer Productivity • Auditing Experience • Compliance and Accountability • Security • End-User Experience • End-user Productivity • Enhanced Reporting
Application Designer Drilling Go from online page into underlying objects in Application Designer Drill from other environments Web Email Windows Explorer
Application Designer Drilling Free Enterprise wide License for Grey Sparling PSIDE Helper for PeopleSoft customers attending this session. Send an email to chris.heller@greysparling.com Don't use your hotmail address :-)
Understanding Bookmarklets Mini Javascript programs that execute in the context of the current page See http://www.bookmarklets.com/ for examples Has to be one line of JavaScript as a browser favorite
Security Drill Bookmarklet Expanded var w = window.frames['TargetContent']; if (!w) { w = window; } if (w.strCurrUrl.search(/PAGE=([A-Z0-9_]+)/)>0) { document.location = '/psc/ps/EMPLOYEE/ERP/q/?ICAction=ICQryNameURL=PUBLIC.PT_SEC_PAGES_PLIST&BIND2=' + RegExp.$1; } else { alert('Could not figure out page name.'); }
Dynamic Tracing Leverage iScript capabilities to avoid tracing an entire session Function IScript_PCTraceOff() SetTracePC(0); End-Function; Function IScript_PCTraceAll() SetTracePC(3596); End-Function;
Enhancing PeopleSoft User Experience Judicious use of JavaScript on PeopleSoft generated pages Multiple ways to add JavaScript HTML Areas Web Server plugins PeopleTools HTML objects
Minimizing impact with JavaScript function addEvent(obj, evType, fn, useCapture){ if (obj.addEventListener){ obj.addEventListener(evType, fn, useCapture); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { alert("Handler could not be attached"); } } addEvent(document, "keydown", function (e) { gridKeyHandler(e); }, false);
function gridKeyHandler(evt) { evt = getEvent(evt); var src = getEventSource(evt); if (typeof src === "undefined") { return; } var key = evt.keyCode; if (key === 38 || key === 40) { var tokens = /(.+)\$(\d+)/.exec(src.id); var newRowNbr = parseInt(tokens[2]) + ((key === 38) ? - 1 : 1); var moveToID = tokens[1] + '$' + newRowNbr; var moveTo = document.getElementById(moveToID); if (moveTo) { moveTo.focus(); } } } { gridKeyHandler(e); }, false);
Automating “Save As” Functionality Load Project with “Save As” code Identify/Create Component Interface for Component Don't forget about security! Copy level 0 Record Delete all fields except for keys Change Record type to Work Record Create Page with fields from new record Add “Save As” subpage Add page to component Grant security to Save As page for authorized users Optional Add additional PeopleCode logic around “Save As” logic
Save As PeopleCode This gets added to RowInit for your work record GS_CI_UTILS_WRK.RECNAME = "GS_VNDR_SAVE_AS"; GS_CI_UTILS_WRK.BCNAME = "VNDR_ID_EXCEL"; GS_CI_UTILS_WRK.PANELNAME = "VNDR_ID1_SUM"; Optionally copy PeopleCode from delivered “Save As” push button to add application specific logic Example : Auto-numbering, etc. &level0RecordNew.GetField(Field.VENDOR_ID).Value = &newCI.GetPropertyByName("VENDOR_ID");
Questions? http://blog.greysparling.com/ Lots of good PeopleTools Tips and Techniques posted