Bridging the gap to Fusion through our PeopleSoft Solutions Extenders
Grey Sparling PeopleSoft Expert's Corner
Oracle Blogs
 Subscribe Now!

Friday, November 14, 2008

Overlapping Text in PeopleSoft and Safari 3.x

A little while back we had a request for help from Genentech to solve an issue that was causing them fits. They have several Macs used for ESS and MSS that run Safari 3.x, the latest browser from Apple. The problem is that when Apple released Safari 3.x, they changed a tiny behavior of the DIV tag. The height attribute is now absolute instead of the minimum height. The result is that certain pages now display overlapping text.

For example:


So, the question was how to solve this problem without rewritting every page that has this issue.

The solution is extremely simple; add a style that defaults all DIV tags to set the display style to inline. In order to accomplish this on all pages, you need to add a small set of JavaScript to one of the PeopleSoft delivered scripts, for example PT_SAVEWARNINGSCRIPT. Simply open App Designer and the HTML object PT_SAVEWARNINGSCRIPT. At the head of the object add the following lines:


if ( navigator.appVersion.indexOf( "Version/3" ) > 0 &&
navigator.appVersion.indexOf( "WebKit" ) > 0 ) {
document.write('<style> div { display:inline; } </style>');
}



The code checks the version string for two things, the start of the version number (Version/3) and the browser rendering engine (WebKit). This allow us to only modify the HTML when the browser is Version 3 of the WebKit engine. That means both Safari and Google Chrome will get the extra style tag.

One caveat is that if you upgrade PeopleSoft, you will need to add this script back to the delivered HTML object.

That's it.

Labels: , , ,

Sunday, September 28, 2008

OpenWorld Wrap-up

Another Oracle OpenWorld has come and gone. The weather in San Francisco was absolutely spectacular. I know a few out-of-towners that slipped out early for a cruise on the bay to enjoy the weather and the view.

We also had a great time meeting up with various Grey Sparling customers that had made it to OpenWorld. In fact, I got to meet a few different folks face to face for the first time while answering questions after the "Troubleshooting PeopleSoft" session that George Guy and I did!

Congratulations to George for surviving his first user conference presentation after being a PeopleSoft customer for so long. Although I think George was a little nervous because his wife was in the audience. I know that would make me nervous; mostly from fear of the conversation afterwards ("how can you talk for an hour in front of hundreds of people, but not be more social when we go to a party?" :-).

There were a number of times during OpenWorld this year that I wanted to be in two (or even three) places at once for different sessions going on. Which is a good thing overall (better than looking at the sessions and seeing nothing of interest for a given time slot), but it still would be nice to be able to catch all of the sessions of interest. Part of that was due to the scheduling this year; attendees had asked for more networking time so there were more open times without sessions going on. It'll be interesting to see whether or not that sticks around next year.

One session that I missed, but has gotten good feedback was Paco Aubrejuan's first big session as General Manager of the PeopleSoft business unit within Oracle. Paco has been part of PeopleSoft/Oracle for a number of years, so there's some good continuity there. I know that he was very excited to have so much good content to show off. PeopleTools 8.50 and all of the 9.1 applications are definitely looking good.

Various other bloggers had some good OpenWorld content as well. The official PeopleTools blog got some good blog posts with Dave Bain putting up some good Java/PeopleCode integration tips and Jeff Robbins posting the slides from his two part session on the PeopleTools Roadmap.

Brent Martin (who we met face to face for the first time this year) of ERP Associates takes the prize for the most PeopleSoft content posted while the conference was still going on.

Our friends over at MiPro Consulting got a few blog posts in as well.

Even the analyst community provided some good content on their weblogs. Jim Holincheck from Gartner had writeups from his 3 days at OpenWorld. Bruce Richardson from AMR Research also had some interesting observations. Denis Pombriant of Beagle Research discusses Oracle's Social CRM announcements, as does Paul Greenberg, who even shows some screenshots of his social networking within Oracle Mix.

Expect to see a few links added here as we compile the rest of our copious notes from the conference and get those posted :-)

Labels: ,

Monday, September 22, 2008

LDAP Query Syntax Tips

I've had a few conversations recently about the strangeness of LDAP query syntax so I thought a post some useful information and links here. You might not have had the need to know anything about LDAP query syntax as part of working with PeopleSoft though. PeopleSoft's delivered LDAP integration does a good job of providing some rich functionality (authenticating users, caching profiles, role memberships, etc.) without forcing you to deal with LDAP query syntax.

LDAP Queries generated by PeopleTools

For example, in the PeopleSoft Authentication Map page ( PeopleTools -> Security -> Directory -> Authentication Map ) you can select which attribute in the directory (such as sAMAccountName) should be used for looking up the user trying to log in. Under the covers, the following LDAP query string is generated (if chrisheller is trying to login):

(sAMAccountName=chrisheller)

That's a pretty simple example though. Looking up the group membership in order to do PeopleSoft role assignment for a user shows slightly more complex LDAP queries.
  • Novell's eDirectory wants (&(objectclass=groupOfNames)(uniquemember=chrisheller))
  • Active Directory wants (&(objectclass=group)(member=chrisheller))
  • Oracle and Netscape want (&(objectclass=groupOfUniqueNames)(uniquemember=chrisheller))
These get generated for you automatically in the delivered PeopleCode. There are some other more complicated examples, but those get the basics across.

LDAP Query Syntax

Instead of having the queries written in a form similar to how you might speak, (attribute1=value1)&(attribute2=value2), the operator ('&' for AND, '!' for NOT, '|' for OR) gets pulled to the front and the whole thing wrapped in parentheses. A good reference is Microsoft's page on MSDN for search filter syntax, which even includes how do things like bitwise comparisons in LDAP queries. Another good article is Unlocking the LDAP Search Filter which has some good explanations to go along with the syntax.

Another good way to get familiar with some of the possibilities for LDAP queries is to look at other examples that have been posted on the internet. JiJiTechnologies has a nice list of some example LDAP search queries. For example, here is a query that returns users that do not have a manager in the directory.

(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(!manager=*))

and here is a query that returns accounts that will expire in a certain amount of time (see below for more on generating datetime values for LDAP queries)

(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(!accountExpires=0)
(!accountExpires=9223372036854775807)(!accountExpires<=currentTime )(accountExpires<=givenTime))

What can I do with a custom LDAP query?

Well, you might want to do some custom LDAP processing yourself from PeopleCode. Maybe you want to audit the manager entry in the LDAP directory with what is stored within your PeopleSoft HCM database. You might generate LDAP queries like the following to check on a one-by-one basis

(&(sAMAccountName=chrisheller)(manager=CN=larrygrey,OU=Employees,DC=greysparling,DC=com))

(or you might dump the employee/manager attributes from the directory in bulk instead).

Maybe you want to the delivered LDAP authentication to only login users that won't have their account expire in the next day. You could change the delivered PeopleCode in FUNCLIB_LDAP.LDAPAUTH.FieldDefault to include that check as part of the LDAP query used (note that this is a customization; there is not a place for you to add this without customizing).

As part of our Desktop Single Signon for PeopleSoft product, we also provide the ability to use attributes in an LDAP directory as part of the process of mapping a network login to a PeopleSoft account. In the LDAP configuration there are "prepend" and "append" hooks in place to be able to modify the LDAP query that our code generates.

The feature was originally added because of a PeopleSoft customer that only wanted Single Signon to apply to users that were required to login with a Smartcard. If the user's account wasn't setup to require a Smartcard to login, then they wanted Single Signon to not establish their PeopleSoft session, and instead leave them at the PeopleSoft login page.

The attribute in Active Directory that contains the needed information is called userAccountControl. Unfortunately, this attribute is actually a bitfield, so we have to apply the bitwise operators that I mentioned above. In the Single Signon configuration they added a prepend value of (&(userAccountControl:1.2.840.113556.1.4.803=262144) and the append value of ) (that's a single parentheses to close off the query).

At runtime, the generated LDAP query would have been (sAMAccountName=chrisheller), but with the prepend and append values added in, the query becomes (&(userAccountControl:1.2.840.113556.1.4.803=262144)(sAMAccountName=chrisheller)).

In case you haven't memorized the MSDN documentation link from above yet (it'll be on the midterm), the ":
1.2.840.113556.1.4.803" part is the bitwise AND operator, which we are applying to the userAccountControl attribute. The 262144 is the decimal value for the "Smart card required for login" setting (also known as ADS_UF_SMARTCARD_REQUIRED). Here is a good list of the various different bitvalues that can be in the userAccountControl field.

So now when the LDAP query runs as part of the Single Signon user mapping, if the user's account does not mandate Smartcard login, then the LDAP query will not return a match, which means that the user will not be automatically logged in to PeopleSoft.

Converting date/time values between Active Directory and PeopleCode

I have some PeopleCode written for this, but it's getting late so I'll save that for another post. If you're interested in it, leave a comment. For now, I'll just leave it as saying that this writeup on Active Directory's Integer8 attributes by Richard Mueller was extremely helpful in coming with it.

Labels: , ,

Monday, September 15, 2008

Helping our friends in the Financial Services Industry

It seems like every week, there's more bad news related to financial services organizations. Last week, federal regulators took over Fannie Mae and Feddie Mac. Today, Lehman Brothers filed for bankruptcy protection.

As many of you know, PeopleSoft is very strong in the financial services industry (all 3 of these organizations are PeopleSoft customers). If you've ever seen the 8 out of 10 of the largest banks use Oracle Applications advertisements, they're talking about PeopleSoft applications.

We have friends at several of these organizations who are casualties of the subprime mortgage crisis, including one of our customers.

How the Grey Sparling Excel Add-in helps these organizations

One thing we learned from our customer (who, coincidentally, purchased the Excel Add-in not long before being taken over), was that the federal regulators spend a lot of time looking at the books, analyzing the financials of the company. In essence, we were told that our product is getting even more use than expected, and that it is instrumental in the activities going on in their organization.

Free offer of Excel Add-in to organizations taken over by the FDIC

Therefore, if you are in a Financial Services organization who has declared bankruptcy or is in the process of being taken over by federal regulators, we would like to provide you a complimentary license of our Excel Add-in to help you as you go through the difficult period ahead. We will provide you a full use license of the product, 6 months of support, and the services to install and configure it in your environment.

If you are unfortunate enough to be in this situation, feel free to contact us at Info@GreySparling.com and refer to this offer.

Why so Generous? What do you get out of it?

Although it would be nice to say that we're being completely altruistic, there are several very good business reasons for helping them out now, even though there will be limited ability to pay for our products.

  • Viral Marketing - For those who've read the blog entries on our business model, this won't be surprising. We don't spend a lot on traditional marketing, but focus on work-of-mouth to let potential customers know about us
  • Long Term View - We also believe that once the current set of issues play themselves out, these organizations are fundamentally sound, and that as organizations using our products, that they will be good prospects for future sales.
  • Independent validation of the business value of one of our products - Finally, we can demonstrate to all PeopleSoft customers the value of one of our products in a mission critical situation. If this helped these organizations make it through a tough time, imagine what it will do for your organization

Labels:

Thursday, September 11, 2008

Workday slowly following the PeopleSoft path

When I started at PeopleSoft we had offices in downtown Walnut Creek. Downtown Walnut Creek was nice because there were well over 100 restaurants and bars within walking distance of the office.

Eventually we had to move the headquarters about 20 miles south down to Pleasanton because the company was growing too fast to be able to obtain office space in downtown Walnut Creek. The PeopleSoft offices in Pleasanton were nice buildings, but there wasn't too much within walking distance. Downtown Pleasanton (which is nice), was just a bit too far to drive and parking isn't always easy there. The only times that I ever made it into downtown Pleasanton was for dinners with customers or analysts. Even the official PeopleSoft drinking establishment in Pleasanton, the Hopyard (famous for the "Wall of Foam"), was not within walking distance of the offices.

So, it was a bit amusing to find out today that Workday, whose current offices are just up the road from the old PeopleSoft Walnut Creek headquarters building, are now planning on moving down to Pleasanton in a few months. It's deja vu all over again.

No word on where exactly they are moving, but I took a quick check on CB Richard Ellis's website (they use PeopleSoft at CBRE), and discovered a nice place for them at 4305 Hacienda Drive. That picture might not look familiar to you (unless you worked there :-), but it is another set of buildings that PeopleSoft owned that are just one block down the street from the PeopleSoft/Oracle headquarters.

What's really interesting is that I'm pretty sure that PeopleSoft owned those buildings outright(1) when the Oracle acquisition closed, so it's possible that Oracle still owns those(2) and is just leasing them via CB Richard Ellis. So Oracle could end up renting office space to Workday just down the street from the current PeopleSoft/Oracle offices!

Wouldn't that be something? :-)




(1) Those buildings are the ones that PeopleSoft had to kick a few customers out of when the buildings were purchased. PeopleSoft bought the buildings (this was 3 additional buildings at the 4305 Hacienda location) because of growth requirements, and had to (slowly) kick out the various companies that leased office space there. Unfortunately a few of those companies were actual PeopleSoft customers. Ooops....

(2) Not likely though. Oracle sold half of the buildings at the PeopleSoft headquarters campus to Kaiser Permanente a few years back. So, they probably would have sold the rest of the PeopleSoft real estate holdings after the acquisition.

Also, earlier this year, Oracle sold the rest to Kaiser, but are leasing them back while they build a new building on some additional space that PeopleSoft used to own. So, they're actually slowly moving closer to the 580 freeway.

Labels: ,

Saturday, September 06, 2008

One in a million

If you were in San Francisco last week for the Office 2.0 conference you might have noticed that Zoho had a party for their millionth user. I didn't make it to the conference, but I did notice the party writeup scroll by in my news aggregator the other day.

It turns out that their millionth person to sign up was none other than former PeopleTools developer Dean Detton. In addition to having been part of the PeopleTools team within PeopleSoft, Dean was also a member of the legendary Raving Daves, PeopleSoft's corporate band.

Dean gave up the joys of writing C++ code and cross-platform SQL awhile back and now owns a company called Prestige Home Automation up in Reno, NV. So if you're in the Reno/North Lake Tahoe area and looking for some help with home automation, give Dean a ring. He's a good guy.

Labels: , ,

Thursday, September 04, 2008

Initial Testing with PeopleSoft using the Chrome browser

Well, the Chrome browser's been out for about a day now, so I thought I'd give it a whirl using PeopleSoft.

You see, browser testing has always been a bit of a challenge with PeopleSoft, since each one handles javascript and other things just differently enough to cause issues. Now, many folks may be wondering why even bother test it (other than sheer geekdom), since corporations probably won't be deploying it internally any time soon. However, as we've seen with recent discussions with our ERP firewall product, there are many organizations who are deploying PeopleSoft outside the corporate firewall, like manager self service, open enrollment, and student registration.

What I've found so far

From a couple of hours of testing, here's what I've found

  • The frame for the portal navigation does not display the scrollbar (this is a bug that also exists for FireFox)
  • REN Server does not work. The JavaScript that catches the browser type issues an error message that the Ren Server is not supported for Safari. This may be a good use for the GoogleTalk integration we've posted in another blog entry.
  • Downloading Query Results in Excel cause a corrupt excel file to be sent (Excel tries to fix it, but the formatting is lost).
  • Buttons that should be at bottom of Tree Manager and Tree Viewer are rendered in the middle of the page (this doesn't seem to occur for other pages, such as the Journal Entry Page or Report Manager, though... it may have something to do with rendering HTML areas).
All in All, I'm pretty impressed with how much I can do with PeopleSoft on Chrome out of the box, though (I did my testing on Financials 8.9, running PeopleTools 8.46).

Labels: