Java PeopleSoft

You already knew that Java was going to be an important skill for your PeopleSoft developers since its the underlying technology for Oracle Fusion, but now that Oracle owns Java, it's even more important.
|
| ||||||
Subscribe Now!
|
|
Sunday, February 21, 2010Java PeopleSoft
![]() You already knew that Java was going to be an important skill for your PeopleSoft developers since its the underlying technology for Oracle Fusion, but now that Oracle owns Java, it's even more important. In support of that, we here at Grey Sparling have scheduled some webinars on using Java with your existing PeopleSoft applications. As is always the case with our webinars and conference presentations, these will be very hands on, demo-intensive sessions. Check our events page for which dates and times would work best for you. Tuesday, January 05, 2010Grey Sparling "PeopleSoft Experts" Workshops and Virtual User Conference SessionsWhen we conducted our first webinar in February to supplement our blog, we had no way of anticipating the reception we would have. In the short 10 months we conducted these webinars, we had well over 1,000 session attendances, allowing PeopleSoft customers to attend sessions from their own desks. If you were one of these attendees, you would have extended your knowledge in the following areas:
Feedback from our Session Attendees We thought we'd share some of the feedback we've received from other PeopleSoft customers
Upcoming Virtual Conference Sessions and Workshops So, in the interest of keeping a good thing going, we have just put together our next round of sessions, and we will continue to offer these workshops free of charge. You can register by clicking on the description of any of the events in the calendar below (and we will continue to schedule new webinars all the time, so come back often). We also encourage you to share this with anybody who works with PeopleSoft, so they can benefit from this as well. Finally, we're always looking for ideas for new sessions. If you would like to share an idea with us, feel free to contact us at Webinars@GreySparling.com Labels: webinar Friday, January 01, 2010Diff/Merge Page in PeopleSoft Application DesignerVisual page diff/merge was one of the cool new features added back in PeopleTools 8.48. Visual page diff/merge lets you see two instances of the same page definition side by side and step through the differences visually. It's a huge improvement over just seeing the page field attributes in the classic PeopleTools compare reports. We've recently added native support in our Version Control for PeopleSoft product to support this, but the last few people that we have shown our integration work to weren't even aware that Application Designer even had this functionality this at all. So, to kick off 2010 we'll take a look at how visual page diff/merge works. Visual Page Diff The page that we'll use is from our PSIDE Helper product. The purpose of the page is to allow someone to select different PeopleTools objects in the current database and see how to generate a URL opens that object in Application Designer. The different prompt fields that are displayed are hidden/unhidden based on the definition type that you have selected. Here is what it normally looks like. ![]() We went ahead and made some changes to the page so we have some differences to look at. The page below is what is currently in the database that we are logged in to. ![]() In Application Designer select Tools -> Diff/Merge Page. This menu item only appears when you have a page definition open (which is probably part of the reason that this feature is not more widely known). You'd then select your target; either another database or an Application Designer project export file. ![]() This opens up a window that shows both page definitions side by side, highlighting the fields that are different in some way. ![]() The toolbar in App Designer gets four new buttons when the visual diff/merge is active. Two are for navigating up and down through each field that has differences, and two are for choosing whether to keep the current field or merge in it's definition from the target (there are corresponding menu items as well). As you navigate up and down between the changed fields, the properties values dialog box changes to show just what properties have changed for the current field. The properties dialog does not show the field name (it just shows field ID at the top), but the currently selected field does get a dashed outline to help you see which field is the current one. In the screenshot below the bottom field ("Field Name") has been selected. It doesn't show as well via static screenshots, but as you navigate up and down through the fields in App Designer, it's quite usable.Visual Page Merge Seeing the differences in their visual context is nice, but how about the merging? Let's suppose that we wanted to merge back the fields for Component and Market, but not for the others. Click the down button until the Component field is selected. ![]() Then click B in the toolbar and the Component field from the target is merged into your current page definition. The screenshot below shows the Component field back in it's original position on the left side. The properties dialog shows that the properties that were different when we started the merge are now the same. Note that the merge is at the field level, not property by property. ![]() If you wanted to put it back before saving, then just click the A button in the toolbar and the Component field would move back to the right side of the page definition. To do the same for the Market field, just click the down button once more to select the Market field. ![]() Then click the B button. ![]() Much better than trying to move fields around and set properties manually when there are differences! At this point you can close the window and since there were changes, you'll get prompted to save them. This saves the changes to the PeopleSoft database that you are logged into just like you had modified the fields manually.Version Control Support for Visual Page Diff/Merge As I mentioned in the beginning we have added native support for using a Grey Sparling Version Control repository as the target for doing the visual diff/merge. ![]() By selecting "Version Control" as the target, we will automatically grab the page definition from the Version Control repository and use that. In the screenshot below we're using the latest revision (colloquially known as the HEAD revision) from the DEV branch of version control. ![]() You're not limited to just using the latest revision in version control though. You can pick any earlier revision that has been committed to version control. You can also pick different branches from version control. Maybe you want to use the revision that was migrated to production last month for doing the diff/merge; not a problem. Labels: 2010, Upgrade, VersionControl Thursday, December 10, 2009Related Content Feature in PeopleTools 8.5
As part of the Social Networking webinar we gave yesterday as part of our PeopleSoft virtual user group meetings, we spent a lot of time discussing how the new Related Content feature in PeopleTools 8.5 facilitates collaboration and social networking within PeopleSoft. Cool. What is it? Well, related content is a new Portal frame that is delivered within PeopleTools (just as the navigation frame is a Portal frame delivered within PeopleTools). It allows contextual content related to your page to be displayed at the bottom of the page. Many of the demonstrations you'll see from Oracle highlight content from the Enterprise Portal or Analytics (OBIEE), such as the following
Example page with Related Content Here are a few examples of what I'm talking about. You'll notice that this page, the performance document selection page in HCM9.1 has a "related information" link with the other portal links in the upper right. In this circumstance, we've attached 3 different types of related content that either take key fields, system variables (such as current user or current page), or hard-coded literals). Because we've been doing a lot of version control demonstrations recently, we thought it would be nice to show how you could link your version control tool directly into your transaction pages. The first example is to show a WIKI page related to the content displayed. Although the Enterprise Portal provides a complimentary license for using its WIKI related to your PeopleSoft application, we're using our version control WIKI here, where we keep development notes and other information related to the current page or business process. Or, you could do a search to find information related to what's being displayed. In this circumstance, we're using a custom search created in Google that looks at online PeopleBooks, common PeopleSoft websites, blogs, and bulletin boards to return results. Or, you could display tickets related to what's being displayed, such as those in the Grey Sparling Version Control product for PeopleSoft. Setting up a new related content service There are two pieces to setting this up.
Because we chose a query with a single bind required for it, that is the only one that shows up in the list. One thing to note, is that the service can only pass in query strings (it cannot use data to create the main part of the URL. Also, you have to create a parameter for every name=value in the URL, even if it's always going to be the same. Although it would be nice to set a default value here, you will need to provide the literal value mapping when you attach the service to each component using it. In our google search example, we needed to pass the id of the custom search as a query string as well as the search value as a separate parameter, even though we will always be using the same custom search. Attaching related content to a component Now that we have our service definition, let's put it in use. To do this, you navigate to at PeopleTools > Portal > Related Content Service > Manage Related Content Service. If you choose to assign a service to a component, you will be taken to a page to use the Portal structure to identify what page you want to work on. Then, you attach the related content services you want to use Next, you identify where you want to source each parameter that the service requires Finally, you identify the key field, variable, or value to pass in for that parameter. In this circumstance, we're passing the current User's EMPLID into the query as the Supervisor ID, which is why we chose a session variable as the source type in the prior step. TADA!! You're done!! If you go back to the page, you'll see the new related content. You may notice that the query that we've linked also utilize a new feature in PeopleTools 8.5, Query Drilling URLs. This will allow you to navigate from the query to content related to it as well. Labels: PT850 Sunday, November 08, 2009Application Designer on LinuxOne of the requests for enhancements in the PeopleTools Product Strategy group on Oracle Mix is for the ability to run Application Designer on Linux. This was actually discussed in the session that the PeopleTools Product Strategy group hosted at Oracle OpenWorld this year. Although most people think it's not possible, read on and see that you can have an Application Designer icon on your Linux desktop that works just like Windows. But first, a bit of relevant history. History If I ever want to freak out old-time PeopleTools developers I just need to say the words "Cross-compiler". Back in the 1990's, when all of PeopleSoft was a Win32 client/server application, there was a strong push from the higher education community for Mac support. The idea of maintaining a Mac specific port of the PeopleTools client was not viewed as something that we had the skills or resources to do (either to create it or maintain it if we paid someone else to do it). I don't know where the initial idea came from, but someone pointed out that the Microsoft C compiler that was in use at the time in PeopleSoft supported cross compiling and targetting the resultant binaries at the Mac platform as well as Windows. Keep in mind that this was long before Apple switched to using Intel for their chips, so it wasn't just a different OS, but a different underlying CPU architecture as well. To make a long and painful story short, it worked just well enough for a lot of internal PeopleTools development resources to be devoted to working on it, but never well enough for actual production use. It never actually saw the light of day. It would probably be a little bit easier today, since the PeopleTools internals have been re-factored quite a bit (appserver re-factoring was a big part of this, but other things helped as well (64 bit platforms, Itanium, etc.)). In addition, there have been advances in cross-compiler technology as well. But we're going to take a slightly different approach :-) Environment The desktop environment that we're working with is Ubuntu 9.04. The PeopleSoft environment is HCM 9.1, running on PeopleTools 8.50. Here's a screenshot of (a portion of) the desktop. We've even got a Query icon as a bonus! What happens when we click on the icon? ![]() Yep, that's App Designer. So, what's the trick? Well, we cheated a little bit. We didn't really get Application Designer running directly on Linux (sorry Nicolas!); we used the Linux Terminal Services Client, which ships as part of Ubuntu (it's available for other Linux distributions as well) and setup a direct link to launch Application Designer. We're also using our Desktop Single Signon product to be able to launch Application Designer without being prompted for our PeopleSoft credentials. Here's what it would look like without single signon. ![]() After filling in your PeopleSoft credentials, then you'd be in App Designer. Here's what the configuration looks like to make this work. Launch the Terminal Server Client. In Ubuntu the menu path is Applications -> Internet -> Terminal Server Client. ![]() The key things here are the Terminal Server host that I want to connect to and my Windows network credentials. If I didn't fill those in in this configuration dialog, then I would be prompted for the credentials when I first tried to access the Terminal Server. Not much interesting on the display tab, except that you can set the connection to go full screen instead of just being within a window on your desktop. If you do this, then you just need to press Ctrl-Alt-Enter to get out of fullscreen mode. The interesting things here are whether you want sound or not (not much reason to for App Designer development so we turn it off) and whether we want a drive from our machine mapped in to the Terminal Server environment. When you first setup a Terminal Server connection the Programs tab will be blank by default. This will give you the standard Windows desktop when you access the server. In our example above though, we configured it to launch Application Designer. That's actually not 100% accurate though. Setting it up to directly launch pside.exe will work to get in to Application Designer, but this will leave your Terminal Server session tied up when you quit.Instead what we do is launch a batch file that will run Application Designer and then when it App Designer is closed will logout the session. That's the little command prompt window that you see in the screenshots above. We use a little batch file trickery (found here) in order to start the Terminal Server session with the command prompt window minimized. The Terminal Server client lets you save off the different parameters in a .rdp file (named after the Remote Desktop Protocol), which is how we setup the desktop icons to be able to launch the different PeopleTools. Fun stuff even though we didn't actually get Application Designer running natively on Linux. Labels: 2009, ApplicationDesigner Sunday, October 25, 2009In Depth - PeopleTools 8.50 RSS Feed Publishing FrameworkThis post is a follow-on to both our Inside PeopleTools 8.5 webinar (which had over 80 attendees last week) as well as our initial blog post on this subject. As the person sometimes inaccurately referred to as "the father of reporting in PeopleSoft" (Dana Quitslund deserves that honor), I am extremely excited about this feature, as I think most of you should be. Why is RSS So Important? Put quite simply, RSS solves probably the most important problem that users want solved in reporting (and it is not to be shown fancy charts with drag and drop). With all the information that they have to wade through every day, users just want to be told when something that's important to them changed. With PeopleTools 8.5, your users how have the ability to subscribe to your application data and get told when something they care about changed. Here's a simple example of an RSS feed I created against the Query Statistics table. It returns data for queries that I'm worried about, and over time will only show me when things change in this respect. Probably a better example would be to create RSS Feeds against queries related to your employees (or how about warehouse inventory information) so you can be notified when things occur versus having to run reports yourself and look for yourself to see if the information has changed. How it works Although there are 3 different ways to publish an RSS Feed, I'm going to focus on the one that's easiest for you to control without having to write code: the Query feeds. From within Query Manager, you will see a new link at the bottom, the Publish as Feed (or Manage Feeds) link. By clicking on this link, you can either create a new RSS Feed or modify and existing RSS Feed for this query. When you either Create or Edit a feed, you will begin with the Publish Feed Definition page, which allows you to give it a name (the default is the query name), a description, as well as other properties of the feed. When you Clikc on the Advanced Options, you will be getting in the heart of creating the feed. Just taking the Defaults If you just take all the defaults when you create a feed, this is what your end-user will see. As you can see, it's not very easy to comprehend. Therefore, you will want to spend some time with the Advanced Query Options. Advanced Query Options As previously stated, this is where you will really take your query reults and format them into a meaningful feed. The first thing you will see is the set of options in the middle of the page. Here is what they are:
Actually, even before that, I would like to discuss how data from the query can be used in each of these "Entry Templates". You see, you have the ability to pass in Query results, Message Catalog Entries, System Variables, and "Templates". All of these are surrounded by the % sign (just as all meta-variables are in PeopleTools). Here is what each is:
Entry Content URL This is where the end-user will drill to when they click on the feed title. You can either specify a fully-qualified URL (including the server name), or specify a URL that begins with /psp/ or /psc/ if you want to define a relative one from the current PeopleSoft system. Keep in mind that you can pass in parameters from the query results using the syntax described above. I was hoping to see more of the Query Drilling URL functionality replicated here, but it isn't so you'll need to know how to compose the proper URL yourself and will have to go farther up the chain of the URL to define a relative one. Here is a sample Entry Content URL I put in one of my Queries:
Entry Full Content This is what shows up for the detail of each feed entry. For Query results, I suggest you create a table with headings with all the fields you're interested in (but not the field you put in the title). You can use full HTML syntax with all of the variable substitution for the data. If you click on the Edit push button, you can be sent to a web-based HTML editor that's embedded in PeopleTools. It even has a helper dialog if you don't have the list of variables you can use handy. Here's what it looks like. Entry ID This is the internal ID for each feed entry that shows up inside your RSS feed. It generally represents an identifier for each row of data that comes back from the Query (assuming that you're using the One Row per Entry option). It's important to note that what you specify for this element in combination with the Entry Updated element will determine how the entries will show up as "new" in your feed reader. With the playing around I've done, I've found that putting a Last Update DateTime field works very nicely here. I've tried other key fields of the query without much luck (for example, putting the QRYNAME in there for a feed that returns query statistics won't flag updated entries as new in the feed, which is what I want if I want to know if the statistics have changed for query). I found that the GUID (which is the default) was the worst option, because it simply causes the feed reader to think every row returned is new each time it requests the data. Entry Title The Entry Title is exactly what you would expect it to be. Because a lot of my queries are against data that people are not very good at putting descriptions for, I end up usually stringing together the meaningful keys to the data with a space and dash in the middle. Again, you just use the alias.columname syntax to do this. Entry Updated Just as I did for the Entry ID, I use a last updated datetime field whenever I have one available. Although effective date may be tempting, you will find that it will not mark items as being updated if they are modified in corrections mode. How End-Users Subscribe to Quer Feeds There are several places in PeopleTools 8.5, where your users can go to subscribe to a feed.
When they go there, they can search through the list of feeds available to them and click on the one they wish to subscribe to: Then, they can use their feed reader to subscribe to it and they're up and running. A few parting notes Here are a few things that I found as I started using this feature
Labels: EnterpriseRSS, PT850, Query Sunday, October 18, 2009Query Drilling URL Feature in PeopleTools 8.5 ReviewWhile attending Open World last week, I was reminded in Robert Taylor's session on reporting, about the Query Drilling URL feature in PeopleTools 8.5. I quickly decided to spend some time playing around with it to see how it works and what it does. Although drilling from queries is one of the first topics we've presented at user group meetings, there have been some significant improvements in PeopleTools 8.5 (see blog entry for powerpoint with the drilling techniques supported in versions prior to 8.50) Benefits of this feature in PeopleTools 8.5 Although it was possible to embed drilling hyperlinks in to queries since PeopleTools 8.45, there were several limitations in how it was accomplished that made it difficult to design, manage, support, and even use.
How to Use it To take advantage of this feature, you will want to create an expression for each drilling URL you will want to put in your query. You first go to the Expressions tab in Query and add the expression. When you ge there, there will be a new expression type: Depending on the type of expression you want to define, you can click on a link that helps you build the appropriate syntax for the URL. Here is what is displayed when you click on link to specify a query URL Here is what is displayed when you click on the link to specify a component URL These pages are very helpful in understanding how to specify the pieces needed to drill to a query or component, what is needed by the query or component as parameters, as well as what is available in your query to pass as parameters. Going a little deeper However, it's interesting to note that all the pages really do is create the syntax for the expression (and the expression is stored in the same table as other expressions). Why don't we look at this syntax just to understand a bit more about it? Syntax for drilling to a page
The first thing you'll see is that the first part of the expression is a standard PeopleSoft URL to a page starting from the /c/ and going to the end of the &Action=U. If you were to supply the host, site, portal, etc. information from a common hyperlink, you could easily type it in the address bar of your browser and go to the page. The second thing you'll see is the reference between the field in the search record EMPLID= and the field in the query A.EMPLID. You may also notice that you didn't have to exit out of the quote of the text in order to enter this like in previous versions. Finally, you may notice the syntax of :A.EMPLID:A.NAME_DISPLAY. This syntax tells you which fields to attach the URL to (colon first, then query field second). Syntax for drilling to a query
In a manner similar to pages, everyghing up to and including the query name is a standard URL that could be typed into the browser once adding the host, site, portal, etc. to the beginning. It also uses the standard PeopleSoft syntax of BIND2, BIND2 for each expression. Finally, it uses the same syntax of binding to query fields for both passing parameters and attaching the URL to a field. Things that I found in playing around As I played around with this feature, I found that you definitely don't want to stray too far outside of the expected syntax generated by the pages if you key in values manually. There were a few situations where I wanted to pass a literal value into a page that didn't exist in my query (for example, drilling from an employee into the Job table, where the job component needs EMPL_RCD as a parameter). I tried a couple of ways to pass in a value of 0 for it, and managed either to crash the app server or put it into an infinite loop (as I am working with one of the first releases of this, I am sure that this is already addressed in one of the patches that have recently come out). To pass the literal, though, I didn't even need to try to hard-code it in my expression. Instead, I simply created a number expression with a value of 0 and then used the expression as my parameter for EMPL_RCD. I was also hoping that I could drill directly to excel when drilling from a query to another query. I modified the ICQryNameURL to ICQryNameExcel, but the resulting link ended up still being ICQryNameURL. I have a hunch that the way the expression works is to find the appropriate tokens and pull them out versus taking the URL as keyed, and that this will make sure that there aren't injection security risks created by this feature. Conclusion In the end, I am very pleased with this feature, and think that customers will benefit greatly from it. | |