Advanced PeopleTools Tips and Techniques

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

<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 chris.heller@greysparling.com• 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

Recommended