I had a little trouble creating my first App Class criteria so I thought I would share some tips on how to write an App Class for use as AWE criteria. Here are the primary secrets:
- Your App Class must extend
EOAW_CRITERIA:DEFINITION:CriteriaBase (PTAF_CRITERIA:DEFINITION:CriteriaBase for 9.0 apps). - Your constructor (more...)
I have a few blog posts that show how to use jQuery plugins on PeopleSoft homepages. When designing those pagelets in Pagelet Wizard, it is important that your XSL/HTML include jQuery and any necessary plugins within your pagelet's HTML/XSL. This is how my Slideshow and Accordion Navigation templates work. Including (more...)
It is almost time for Collaborate 2013. For those of you attending, here is my schedule:
I will also be working in the Oracle User Experience demo pod and visiting in the PeopleTools demo pod. I look forward to seeing you there!
We put together a podcast with a short Q&A from our latest book PeopleSoft PeopleTools Data Management and Upgrade Handbook. If you have been wondering whether or not to buy the book, listen to this podcast. Perhaps it will help you make an informed decision.
Integration Broker has become a critical service for PeopleSoft applications. If you are new to Integration Broker or are having trouble with Integration Broker configuration, then take a look at this new Integration Broker course published by my friends at CGI consulting. The course consists of an 84 page instructional PDF and a couple of source files. The course covers everything from configuration to using SoapUI. Here are some highlights:
- Setting up Integration Broker
- Publishing a CI based service
- Testing a web service (CI or otherwise) with SoapUI
- Calling a service from PeopleCode
- Application Class PeopleCode handlers
- Routing transformations
- JDeveloper (more...)
Alliance 2013 in Indianapolis is just around the corner. Here is my schedule:
- Meet the Experts (Technical) March 18th at 2:30 PM
- 31719 PeopleTools Developer: Tips & Techniques on Monday, March 18th at 4:30 PM in Sagamore 4
- 31723 Delivering a Ground-Breaking User Interface Using PeopleTools and the Interaction Hub on Tuesday, March 19th at 11 AM in Sagamore 4
- Meet the Experts (Technical) March 19th at 12:00 PM
Disclaimer: the following post is not a full solution. It is just a series of very simple examples showing how to implement message broadcasting. A production grade solution may look very similar (just as simple as this, in fact), but with one critical difference: security. I left security out of the examples to focus strictly on how to broadcast notifications. DO NOT IMPLEMENT THIS SOLUTION WITHOUT FIRST SECURING THE CLIENT CONNECTIONS!! I give some security ideas at the end of this post.
In the OTN forums, a customer recently asked how to push notification messages from the server to (more...)
The sample chapter for my PeopleTools Tips and Techniques book (Chapter 3) contains all of the steps required to add AWE to a PeopleSoft transaction. A colleague who recently used this chapter to AWE enable a transaction asked me how to mass approve transactions. Most of the code required to mass approve transactions is actually on the last page of Chapter 3. Here is an expanded template with placeholders. Just wrap this in a loop and wire it up to a button, App Engine, or some other execution environment.
Local "syntax-KEYWORD3">Record &headerRec "syntax-OPERATOR">= CreateRecord("syntax-KEYWORD3">Record.NAME_OF_AWE_HEADER_RECORD);
(more...)
In the OTN forums, someone recently asked how to convert a byte array into a String. Assuming the byte array contains characters, not binary data, you can convert a binary array into a string by using the Java String byte array constructor. Here is a short example:
"syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2">;
Local "syntax-KEYWORD3">JavaObject &input "syntax-OPERATOR">= "syntax-KEYWORD2">CreateJavaObject("syntax-LITERAL1">""syntax-LITERAL1">java.lang.String"syntax-LITERAL1">", ""syntax-LITERAL1">A "syntax-LITERAL1">test "syntax-LITERAL1">string.");
Local "syntax-KEYWORD3">JavaObject &bytes "syntax-OPERATOR">= &input.getBytes();
"syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2"> "syntax-COMMENT2">;
Local "syntax-KEYWORD3">JavaObject &output "syntax-OPERATOR">= "syntax-KEYWORD2">CreateJavaObject("syntax-LITERAL1">""syntax-LITERAL1">java.lang.String"syntax-LITERAL1">", &bytes);
MessageBox("syntax-DIGIT">0, ""syntax-LITERAL1">", 0, "syntax-DIGIT">0, &output.toString());
Several years ago I wrote the post Query for Component and/or CREF Navigation which demonstrated how to use Oracle's connect by clause with the portal registry to find the navigation to a PeopleSoft component. Why? Most users are trained to send a Ctrl-J screenshot to their developers when they encounter issues. Knowing the menu, market, and component is great, but developers need to know the navigation in order to replicate the issue. The point of the query is to find the navigation to some component or CREF without having to ask a functional expert for more details. As of 11gR2, (more...)
I've seen a few forum posts that show how to zip files using both Exec and the XML Publisher PSXP_RPTDEFNMANAGER:Utility app package. Those are great options, but might not fit every scenario. Since the Java API includes support for zip files, let's investigate how we can use it to create or extract zip files.
Java allows developers to create zip files by writing data to a ZipOutputStream. We've used OutputStreams a few times on this blog to write data to files. A ZipOutputStream is just a wrapper around an OutputStream that writes contents in the zip file format. Here is (more...)
Each year Oracle Press authors gather for a half hour "meet the authors" and book signing at the OpenWorld bookstore. This year the book signing half hour is from 1:00 PM to 1:30 PM on Monday, Wednesday, and Thursday. Be sure to check the bookstore signage for your favorite author's scheduled time. I will be in the bookstore during the "Meet the Authors" event on Thursday. Please bring your book and/or questions. We will have a great time discussing technology!

If you are attending OpenWorld and arrive in San Francisco before 2:15 PM this Sunday, then come to Moscone West room 3009. I will be sharing tips and concepts for building mobile applications on the PeopleTools platform. This session is open to anyone registered for OpenWorld. The session ID is SIG10516. You can read the session announcement on the
OAUG PeopleSoft SIG web site.
Are you interested in converting a PeopleSoft OVM template into a VirtualBox instance you can run on your laptop? The following is a list of resources to help you as you attempt to convert a PeopleSoft OVM template into a VirtualBox instance:

OpenWorld is not far off. Have you completed your schedule? Here are a few sessions I plan to attend:
Sunday, Sep 30th- 2:15 PM -- SIG10516 - PeopleSoft Technology SIG Presents: Developing Mobile Applications using PeopleTools, Moscone West 3009
Monday, Oct 1st- 10:45 AM -- CON9210 - Performance Tuning for the PeopleSoft Administrator, David Kurtz, Moscone West 3009
- 12:15 PM -- CON9188 - Art of the Possible: A Great User Experience via PeopleSoft Applications Portal, Moscone West 3009 (I'm a co-presenter)
- 1:30 PM - 6:00 PM -- Moscone West demo grounds
Tuesday, Oct 2nd- 1:15 PM -- CON9192 - Implementing a (more...)
This post assumes you already have a working database as described in Converting PeopleSoft OVM Templates to VirtualBox Guests or some other PeopleSoft PT 8.52.03 database. It also assumes that you have the cloned starting point of a base OEL with the OVM functions (steps 1 through 22 from the prior post).
The PeopleTools Image (App, Web, and Prcs)
- Run through steps 1 through 3 as listed here. Notice that step 3 gives the PT image the IP address of 192.168.56.51. Update your network settings and hostname to match the /etc/hosts file and make sure (more...)
I have seen several comments, blogs, questions, OTN forum posts, etc from people like me wanting to know how to run Oracle's PeopleSoft VM templates without OVM. If I had the hardware, I would love to run OVM templates directly, but I don't think it would be wise to reformat my Dell laptop as an OVM host. This post contains the steps I used to convert the FSCM FP2 PeopleTools 8.52.03 OVM template into a VirtualBox guest (currently running on my Dell XPS laptop). I started with the PeopleSoft Oracle Virtual Machine Templates Development and Customization Guide, (more...)
My blog contains a handful of posts showing various methods for base64 encoding data (both plain text and binary). While these procedures apply universally, my primary motivation was (and is) integration: sending base64 encoded binary data to other systems. Today I was looking through the 8.52 Integration Broker PeopleBooks and noticed a handful of new features to support binary file operations:
It is almost time for Alliance 2012 in Nashville. As always, we are gearing up for a great conference. Here is my agenda -- Sessions I lead are in bold and the rest are sessions I plan to attend.
Tuesday
- 9:30 - 10:30 -- 30255: PeopleTools Tips and Techniques
- 10:45 - 11:45 -- Meet the Experts: PeopleTools
- 1:15 - 2:15 -- 30257: PeopleTools Product Team - Panel Discussion
- 2:30 - 3:30 -- 30104: Mobile Strategy Panel Discussion
- 3:45 - 4:45 -- 30258: How to Create Great Self Service Solutions and PeopleSoft UI with PeopleSoft Portal
Wednesday
As you survey the consumer web service landscape, you will notice a shift: fewer SOAP based services and more REST based services. I will refrain from sharing my true feelings about WSDL and SOAP to share with you the important stuff: how you can make REST-like calls into PeopleSoft. If you are not familiar with REST, then I suggest you read the Wikipedia REpresentational State Tranfer summary and then follow some of the external links for additional details.
While there are implementation differences, at its core, the difference between REST and SOAP is the focus. The focus (more...)