Advanced PeopleTools Tips and Techniques
description
Transcript of Advanced PeopleTools Tips and Techniques
<Insert Picture Here>
Advanced PeopleTools Tips and TechniquesChris Heller, Grey Sparling Solutions
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 Enhance the PeopleSoft ExperienceExperience
• 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
<Insert Picture Here>
Application Designer Drilling
Application Designer Drilling
• Go from online page into underlying objects in Application Designer
• Drill from other environments• Web• Email• Windows Explorer
Calling ViewObject from PeopleCode
Application Designer Drilling
• Free Enterprise wide License for Grey Sparling PSIDE Helper for PeopleSoft customers attending this session.
• Send an email to [email protected]• Don't use your hotmail address :-)
<Insert Picture Here>
Security Drilling / Portal Administration Drilling
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.');
}
<Insert Picture Here>
Dynamic Tracing
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;
<Insert Picture Here>
Enhancing PeopleSoft User Experience
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 JavaScriptfunction 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);
<Insert Picture Here>
Automating “Save As” functionality
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