Search This Blog

Monday, December 12, 2011

The Macro Issue while installing XML Publisher Plug in

This issue never happened before. I  tried installing the lpugin several times and nothing was working. Finally thought of searching in Google and tada...Got the solution from the blog below. I must admit that it was a tricky solution in place.


Good Job Damir :)

Saturday, December 3, 2011

PeopleTools 8.52 is Generally Available

PeopleSoft is getting better version by version. So whats new!!!

http://blogs.oracle.com/peopletools/entry/peopletools_8_52_is_generally
http://blogs.oracle.com/peopletools/entry/peoplesoft_8_52_ipad_certification

Check out Oracle's PeopleTools 8.52 PeopleBooks:
http://download.oracle.com/docs/cd/E25688_01/pt852pbr0/eng/psbooks/index.htm

Development Tools
- PeopleTools 8.52: PeopleSoft Documents Technology
- PeopleTools 8.52: PeopleSoft Search Technology
- PeopleTools 8.52: PeopleTools Portal Technologies

Reporting and Analysis Tools
- PeopleTools 8.52: PeopleSoft Pivot Grid
- PeopleTools 8.52: Reporting Web Services

Integration Tools
- PeopleTools 8.52: Feed Publishing Framework

Administration Tools
- PeopleTools 8.52: Performance Monitor
- PeopleTools 8.52: Security Administration
- PeopleTools 8.52: System and Server Administration

Lifecycle Management Tools
- PeopleTools 8.52: PeopleSoft Application Designer Lifecycle Management Guide
- PeopleTools 8.52: PeopleSoft Change Impact Analyzer
- PeopleTools 8.52: PeopleSoft Test Frameworkv

Friday, December 2, 2011

Long time

It's been long time...Got heldup with some urgent milestones..Will be back!

Friday, October 28, 2011

JQuery Cycle Plugin

This is a photo effect script for intuitive effects. Just tried out and it is a good one.

Please download the attachment below to get the sample code. Copy paste this code to an HTML area for the DEMO.


Monday, October 24, 2011

Context Sensitive Help



If you are not able to view the document in the embed form above, download it by clicking on the PDF icon below

Thursday, October 20, 2011

Ajax Vertical Slider.

Just tried out the vertical slider jQuery and worked perfectly.

http://pupunzi.open-lab.com/mb-jquery-components/jquery-mb-verticalslider/ is the site where the source code resides.

Try the code below in an HTML area on the page. There are two .js script files that you need to place in the webserver. You can download the same from the above source site.

From the text file link given below, download the same and find ".js" to find the script file references.




Below is the implementation screen shot on my local instance.


Once clicked on the link, my site will open inside the instance.



Try it out!!!

jQuery Accordion Menu





If you are bored of the classic menu, then try beautifying it up with some jQuery. I just tried some script to create an accordion menu.

Visit http://jqueryui.com/demos/accordion/ for the implementation steps.

For Demo follow this link: http://jqueryui.com/demos/accordion/sortable.html

For a quick implementation:
1. Create a pagelet wizard and place the code in the HTML source.
2. Hide the classic menu and select the menu position to the left side.

Please contact if you need further assistance to try this out or if you have a better idea to implement the same.

I had the demo accordion menu which I did in my local instance. unfortunately before taking the backup, it got crashed. Excuse me this time.

Wednesday, October 19, 2011

comment allez-vous les gars!!!

Hope everyone out there is having fantastic time with your work. Same here. Lot of learnings and not getting time to post new items.

However in between tried some jQuery stuff within PeopleSoft along with some Ajax. Will be posting those here.

Friday, September 23, 2011

Embedding Pagelet to a Page

Never tried embedding the Pagelet to a page before. I have tried it on the home page or under a component. For those who have not tried this; below are the steps to do it.

Create a pagelet and publish it on the home page tab.



And make sure on the 6th step; that is on the publish pagelet step; to check the embedd pagelet option.



Now use the following code and place it under the event you like.

import PTPPB_PAGELET:*;
Local object &PWAPI, &Pagelet;
&PWAPI = create PTPPB_PAGELET:PageletWizard();
&Pagelet = &PWAPI.getPageletByID("ASDASD", False);
AMM_DERIVED.HTMLAREA = "
" | &Pagelet.Title |
"
" | &Pagelet.Execute() | "
";


AMM_DERIVED.HTMLAREA is the HTML area that you place on the page to display the embedded pagelet.

And the pagelet on the page will look like the one below.



Interesting right? Try it out!

Thursday, September 22, 2011

Implementing Related Content

Just tried out implementing the same and it worked out well. Below are the steps to do the same.

Go to PeopleTools > Portal > Related Content Service > Define Related Content Service to create a new Related Content Service.

You can select the URL type you like. I selected the Pagelet type and provide the pagelet name in the URL information scroll. I wanted that Pagelet to appear as the realted content data.

Security option you can select either the public access or the available one. In case of Related Content Security check box, please refer to Peoplebook on how to do the same.




Now go to PeopleTools > Portal > Related Content Service > Manage Related Content Service.


Here you will assign the Related Content to your desired component/page. In the screen shot below, I mapped the related content to the page not to the component. To ensure security go to the Map Fields link and save.





Now you can navigate to the component where you mapped the Related Content. On landing to that component you can see a related content drop down on the upper right portion of the page. Click on the same to view the Related Content you mapped.


You can expand and collapse the Related Content section as you wish.

Wednesday, September 21, 2011

Pop up feature



You might have seen the above pop up in the JOB data page. Wanted to look into this long time back; just today I thought of the same and looked into it.

It is fairly simple thing. Go to the employee field on the job_data1 page and navigate to the use tab in the definition property; you can see the popup page assigned.



I just created a pop up page and assigned to the emplid field to test it and it worked perfectly well.







As you see the feature is easy to implement. However its effectiveness depends on how we use it.

Thursday, September 15, 2011

New PIA Installation

Requirement can happen for creating additional PIA's for the exisitng PS HOME. How to do it. Below are the steps to create the same.

1.Log on to the app server box
2.Shut down PIA
3.Go to C:\PSOFT\HRSA90\setup\mpinternet and run Setup.exe (If you are on windows) and follow the screenshots below:














Be sure to select "Existing Weblogic Domain" when you get to the "Select domain type" step.

Be sure to select "Install additional PeopleSoft site" when you get to that point.





The website name should be _pwd, for example:Please specify a name for the PeopleSoft web site:Website name:[ps] ps_pwd



Enter the same app server and port number as the primary website. To get this use PeopleSoft trick [CTRL+J]



For web profile name, enter the same web profile that is created for this PIA.
To create it go to PeopleTools > WebProfile > Copy webprofile. You can clone any web profile and provide that name here. In this case 'NEW' is the name of the new Web Profile created.






Once you reach the above step, click Install button to create the site.

You would not be having a seperate bat file for Start and Stop PIA.

Now to check the new PIA, Start the AppServer and modify the old PIA login link.

Old PIA will be looking like this: http://localhost/psp/ps/?cmd=login

New PIA: http://localhost/psp/ps_new/?cmd=login


To view the Login page (Signin.html) for the old and new PIA's; navigate to \webserv\peoplesoft\applications\peoplesoft\PORTAL\WEB-INF\psftdocs

Tino Simon

Saturday, August 27, 2011

The Strings Table

I have seen this in a couple of SQR reports and this will be a good tip for the developers.

What is this Strings Table?

The PeopleTools Strings table (STRINGS_TBL) stores textual strings used for language sensitive labels and other text in PS/nVision and SQRs to avoid hard-coding labels into the report files themselves. The use of strings rather than hard-coded text in reports enables translators to translate the report layout in the database without editing the report’s code itself.This enables you to run a single copy of a report in multiple languages, while avoiding the duplication of code and report logic.Each row in the Strings table keys each string to a STRING_ID, which is associated with one of two different string types:

• The short (RFT Short) or long (RFT Long) field description of the field.

The STRING_ID must equal the field name.

• A free-form text string.

In either case, when a report requests a string in a particular language, the system returns the translated string if a translation is available. If no translation exists, the base language string is returned.

The Strings table is also keyed by a PROGRAM_ID field, which enables you to classify strings into groups that are used in similar reports. PROGRAM_ID can refer to a specific SQR or PS/nVision report name, or it can be a mnemonic for a group of common strings that are shared between reports

Click the picture to expand

Find Object Navigation

Might be a good handy tip. Those who knows this feature already please excuse. Searching the navigation is easy with this feature. try it out.


Click the picture to expand

PeopleSoft Ping

Just another good weekend. Expected some more work today, however it did not happen. Then I thought of just playing around the instance and saw this utility. Never seen or heard before. However it seemed interesting and gave a search in PeopleBooks. The details are given below. Hope this might be a new information for you too. For those who have worked with this utility; please feel free to comment.

The PeopleSoft Ping utility collects timestamps by sending a specific page to different tiers of the PeopleSoft system, starting at the browser, then going to the web server, the application server, the database and back. The timestamps that are collected are total time elapsed for the round trip, and arrival and departure time at each of the tiers.

To use the PeopleSoft Ping feature, select PeopleTools, Utilities, PeopleSoft Ping.

Nice weekend!

Wednesday, August 24, 2011

Testing Web Service with SendMaster utility

It was in version 9.1 in which first I tried creating a Web Service to GET and POST the data. This was fairly an easy job coz in 9.1 we have delivered SOAP tester. We can use it right after Generating the SOAP template, which is under the Service Utilities.


Click to expand the picture
However while trying to help a colleague I found that in 9.0 the Invoke Service Operation button is not available and we brought up the Send Master Utility.

Now I want to write about how to test a WSDL in Send Master. See the screenshot below.

Click to expand the picture

The Service URL: It is the gateway URL.
In the Header box if it is not populating by itself; you have to type it out. But be sure that the SOAP action is correct. How to get that?

For getting the SOAP action, hit the wsdl on the browser and search for the soapAction.

Monday, August 22, 2011

Dynamic Page Title

One of my colleagues had a small requirement to change the page title dynamically. The example is the RUNCTL_ASOFDATE page in HRMS.



















Sunday, July 24, 2011

Activating Verity Search Engine

Frankly speaking, I never did this before. When there happened a need of activating the Verity Search engine, I Google'd it and found the below article from Shyam's PeopleSoft Blog. I am re-posting that article here for reference.
------------------------------
VERITY Search Engine, PORTAL_INDEX process, Building a Search Index and Searching the Portal

What does Verity Search engine do?
How to build a Search Index?
What PORTAL_INDEX application engine program does?
How to retrieve content references path by searching the portal?
This post is an attempt to answer these questions.

Verity Search Engine:
PeopleSoft Portal technology provides a tremendous search feature using the Verity search engine. PeopleSoft Portal and Verity Search technologies combine and give portal users easy and efficient search on content references registered in the portal registry.

Registry Search Index:
The portal registry collections are generated by the portal administrator and stored on the application server. This can be either done manually or by a scheduled process. The application engine used to build the registry search index is PORTAL_INDEX.

This process can be run manually from the navigation:
PeopleTools -> Portal -> Build Registry Search Index

Verity Collection files are stored on the application server in the location:
%PS_HOME%\data\search\< index_name >\< db_name >\ < lang_cd >

%PS_HOME% - the home directory in which PeopleSoft application server is installed
< index_name > - name of the application or the portal name for portal registry that the collection is serving (PORTAL)

< db_name > - as the name signifies name of the database

< lang_cd > - PeopleSoft local language code. A single portal will have only one collection per locale. Each holds the text files used to build the collection - input.bif and input.dat
Several numbers of subdirectories exist beneath the language code directory. These hold the various elements of actual collection used by Verity to conduct the search.

Running the PORTAL_INDEX application engine process builds a search collection which includes few elements from the content references in the registry and get included in the index.

We know that Content References can be accessed from
PeopleTools -> Portal -> Structure & Content -> <(nested) folder_name> -> ContentReference

PeopleSoft Component Content References have the following information:

ICType
Menu
Market
PanelGroupName
iScript Component Content References have the following information:

ICType
The following information is collected for all Content References:

Label
Description
Author
Product
Valid from Date
Valid to Date
Creation Date
Content Provider
URL
Path
Attributes

In the Content Reference Attributes, a set of keywords are entered for PeopleSoft delivered content references. These keywords are specified in Attribute Value and not in Name or Label. To add keywords to a content reference the NAME for the content reference attribute must be KEYWORD and add the search words or phrases separated by commas.

To have the Label and Attribute values to be a translate table click the Translate checkbox. Two distinct tables are used for attributes. One is translatable into other languages while the other is not. For example, PORTAL_HIDE_FROM_NAV = False is used internally by the system and should not be translated however keywords should be translated.

For accurate and high performance searches through the portal, the search engine must reference a comprehensive, up-to-date search index. The search index must be easy to maintain, as content is likely to change frequently within the portal registry.

How the Search Index is built?

The Application Engine (AE) program - PORTAL_INDEX has to be launched through the process scheduler.

This AE process launches a PeopleSoft C++ program. The C++ program queries the tables in the 'Portal Registry' for search content and it builds two text files. These files are created as .BIF and .DAT which are used by Verity to build its collection.

The AE process then launches the Verity program - MKVDK. The MKVDK program builds the Search index (Verity collection) based on the content in .BIF and .DAT files

Running the PORTAL_INDEX process:
In a busy portal where the content gets frequently changed it is absolutely important to refresh the search index often. Every time the search index is built, the existing search index is overridden. So, generally it is better to schedule this process in batch environment. Alternatively, the process can be also run manually.

Go to: PeopleTools -> Portal -> Build Registry Search Index
After creating or reusing an existing Run Control ID, Run the process. Before running the process, under Language Options, check the 'All Installed Languages' check box as required.

Searching the Portal after building Search Index:
Type any valid keyword in Search and click 'Go'. The search performs the following steps:

The case of the entered text gets changed to uppercase automatically. This string enables the Verity search engine to search for the text irrespective of case type.

The query string is formatted and passed to the Search API. The formatting includes filtering out hidden content references, expired content references and invalid content references based upon from and to dates.

Calls the Search API which returns the query results
Calls the Portal Registry API. This is done to apply security filtering to the results. Security is applied in PeopleCode by checking the 'Authorized' property.

Formats and displays the search results.

For every content reference returned by the search results page, the following fields are displayed:

Content reference label - a hyperlink which on a click takes directly to the content reference URL
Long Description of the content reference
Path - breadcrumbs to the content reference

Friday, June 17, 2011

Consuming Web Service

Thank you Rapheal for sharing the document. All this is an informative one.

Wednesday, June 15, 2011

Where is it?

This might be a duplicate information for many, but I believe some one is going to get benefitted from this once again.

The PeopleCode is stored in PSPCMPROG, which has all the PC objects details. If you want to quickly check the existance of your application engine program codes, the issue the SQL against this table.

SELECT * FROM PSPCMPROG WHERE OBJECTVALUE7 LIKE 'OnExecute%'

PSSQLTEXTDEFN: Contains all SQL objects in the database.
SELECT * FROM PSSQLTEXTDEFN WHERE SQLID like '%Step%'

Wednesday, June 1, 2011

Administering the application messages

Once the messages are in the DONE status, it is not possible to resent the messages. What If we need to re submit it?

One option we found is to trigger a SQL update against the table which stores the monitoring data - PSAPMSGPUBHDR

Update PSAPMSGPUBHDR set PUBSTATUS = 1, STATUSSTRING = 'NEW' where IBTRANSACTIONID = ’Transaction ID’ and STATUSSTRING = ‘DONE’

PUBSTATUS values:
0 - Error
1 - New
2 - Started
3 - Working
4 - Done
5 - Retry
6 - Timeout
7 - Edited
8 - Canceled

To monitor the messages, query the appropriate tables with the above status values.

Friday, May 27, 2011

Archiving IB messages and SO's

A beginner who just started working with the Integration Broker will be deleting the errored message one by one selecting the checkbox next to it.

Is there an easy way to do this operation with the delivered feature? Yes there is!

The PeopleSoft system provides a collection of Data Mover scripts that you can run to purge the runtime Service Operations Monitor tables within a database. These scripts reside in the PS_HOME\scripts directory on your file server.

AppMsgPurgeAll.dms
Deletes queue data from every archive or live runtime Service Operations Monitor table in the database, regardless of status. Typically, you run this script after an upgrade or while switching from a demonstration to a production environment.

AppMsgPurgeArchive.dms
Deletes queue data from every archive runtime Service Operations Monitor table in the database.

AppMsgPurgeLive.dms
Deletes queue data from every live runtime Service Operations Monitor table in the database.

Apart from this we have APPMSGARCH to archive service operation data is the batch approach. You can also archive individual service operations online using the Archive option on the Asynchronous Services-Monitor Overview page and the Synchronous Services page.

Navigation: PeopleTools > Integration Broker > Service Operation Monitor > Monitoring > Archive Monitor Data


Below are the list of tables that are affected by APPMSGARCH process. I got this information from Oracle Support, so much time can be saved from turning on a trace.





Administer PS Query

That was one of the requirements from the client, to monitor the frequent query usage by the faculty and the students to improve the query to provide better results. I was reminded about the Google Analytics strategy when I heard this requirement.

PeopleSoft provided this flexibility which aids the System administrators to:

Monitor query performance
Monitor query Usage
Monitor average runtime, number of times run, and the dates last run
Cancel queries that are currently running in Query Manager
Enable and disable queries and logging.

Navigations:

PeopleTools > Utilities > Administration > Query Administration
PeopleTools > Utilities > Administration > Query Administration > Executing
PeopleTools > Utilities > Administration > Query Administration > Settings

Cool feature

Monday, May 23, 2011

Quick look

One of my colleague was asking about Patched and Bundles yesterday. The below details gave him an understanding of those features. This will be helpful If you havn't come across any patching or bundle upgrade yet.

PeopleSoft Application and PeopleTools maintenance releases are intended to address defects,
performance enhancements, regulatory changes (such as tax updates), or security issues. In general, feature enhancements are part of new releases which require a product upgrade.


Application fixes and changes are delivered in a variety of means; these include individual postings (Patches), Bundles, Maintenance Packs and Service Packs.

Fixes

Fixes for specific issues with an application may be posted as a standalone fix intended to address that specific issue; these are generally referred to as Patches.

Patches

Patches almost always have pre-requisites that are included in the documentation for that Patch. Patches are created by development using the most recently released bundle, this means they may list that bundle as a prerequisite. There may be other pre-requisites that are also required, all pre-requisites are clearly documented in the notes for the Patch.

Bundles

Bundles are periodic accumulations of fixes resolved in that time period and applied to the application as a group. For most applications, the interval has been about every 6 weeks or 12 weeks for posting these Bundles. When Bundles are applied using Change Assistant, information about the Bundle is recorded in the Maintenance Log table for future reference. Bundles will typically require pre-requisites and occassionally post-requisites. These are documented in the notes for the Bundle. Information about the individual Report ID s associated with a Bundle is available in the supplemental information posted on Customer Connection related to that Bundle.

Maintenance Packs

Maintenance packs are less frequent updates that aggregate Bundles to minimize the number of Bundles that need to be applied. For most applications, maintenance packs are delivered once a quarter for the two most current releases.

Service Packs

Service Packs serve as a vehicle for an even larger aggregation of fixes than Maintenance Packs.
In all cases, the PeopleSoft tool Change Assistant is a valuable tool in identifying dependencies of Patches, Bundles, and Maintenance Packs.

Source: Oracle Support

Wednesday, May 4, 2011

How to print bar codes and micr fonts using XML Publisher

For those friends who havnt done the font setup for XML Publisher. I stumbled on this article while browsing through Oracle Support Site.You need to have an Oracle Support login to view the article.

Click this link to view

Function, Method & Property

It was for one interview last week, I asked the prospect a very simple question. How to identify a function, a method and a property.

The answer I expected was very simple one which a newcomer should be able to get the trick. He started narrating a long story and finally connected all the above three someway.

But there is a simple way to explain the same.

Function()
A function has parentheses after its name and does not have a dot on the left side.

&Object.Method()
A method has parentheses after its name and has a dot on the left side.

&Object.Property
A property has a dot on its left and no parentheses on the right.

Pretty simple and easy to understand right :)

Thursday, April 28, 2011

SignOn PeopleCode

Consider there is a requirement to warn the users while they login and before they land on the peoplesoft home page. How can we achieve this?

When this question came to me I was not able to understand how we can recognize the user who logs in through the login page. The user can be an employee, he can be a guest. But before landing the homepage how is it possible to check the role attached to the user? That was a challenge indeed at first.

SOPC - Sign on People code was one way for implementing the same. This people code will get fired upon the login to any PIA environment.

How to relate the people code we write to the login session. This can be achieved through: PeopleTools >> Security >> Security Objects >> Sign on people code

You can provide the record name, the field and the event on which the people code is written. Then use the checkbox to control when the code need to be fired.

Now consider, you need to show the user a page based on how he is verified. For this, you have to use the page under: Web profile >> Web profile configuration >> Look & Feel

Use the Password section to cater the above requirement. In the password warning page you can provide your own HTML page which you have created with the necessary warning for the user.

And use the SetAuthenticationResult function to do the rest of the work.

Wednesday, April 27, 2011

SetAuthenticationResult

This is one function I stumbled upon last week. I gave a search in people books and tried to understand how and in which context it works the best.

Came to know that it works with the PeopleSoft Sign on related area and provided the developer with robust ways of administering the security perspective beyond what’s delivered with the product
Syantax for the function is given below:

SetAuthenticationResult(AuthResult [, UserId] [,ResultDocument] [,PasswordExpired] [DaysLeftBeforeExpire])

When PasswordExpired is True, it indicates the password is expired, the passwordexpired.html page is displayed during login when signon PeopleCode is enabled.

When DaysLeftBeforeExpire is greater than 0, and PasswordExpired is False, indicating that the password will expire in x days, the passwordwarning.html page is displayed during login when signon PeopleCode is enabled.

Using Find function

The requirement was to remove the # field embedded at the first position of the Course ID Field which comes from the legacy and use the rest of the numbers into the peoplesoft system. The code is given below:

&Char_Pos=Find("#",&CourseID);
If &Char_Pos > 0 then
&Course_ID=Upper(Substring(&CourseID,1,&Char_Pos-1));
End-If;


Arvind

Thursday, April 14, 2011

Using GUID

One instance of GUID usage I noticed is while implementing parallel processing in Application engine. You require to use unique run control ID's in this case. This can be achieved using creating unique GUID's

The unlucky part is that the peoplebooks doesn't have any documentation for the same. But my colleague pointed out a function for the GUID creation.

&nbr_GUID = UuidGen();

This can be assigned as the runcontrol parameters.

While gave a search on google to know more about the same, I stubled upon Jim's blog which gave more light on the same.

Local string &guid;
SQLExec("SELECT RAWTOHEX(SYS_GUID()) FROM PS_INSTALLATION", &guid);
MessageBox(0, "", 0, 0, "GUID from DB: " | &guid);

and GetJavaClass("java.util.UUID").randomUUID().toString();

Delaying Execution using PeopleCode

If you want to delay the execution through PeopleCode, try using this function. One example was when there was a requirement to delay the row insert interval. Another one, if to delay the process execution until the group parallel process need to be finished.

GetJavaClass("java.lang.Thread").sleep(&sleepSeconds * 1000);

Monday, March 28, 2011

Tree mover tables

TreeMover uses the following PeopleTools system tables for trees during both the tree import and tree export processes:

PSTREEDEFN
PSTREENODE
PSTREELEAF
PSTREESTRCT
PSTREELEVEL
PS_TREE_LEVEL_TBL
PS_TREE_NODE_TBL

TreeMover also reads the PSSTATUS table during the tree export process, to identify the version of the tree data exported.

Thursday, March 17, 2011

Creating XML's with SOAP Envelop using IB

I was actually facing this requirement for the first time, when one of my colleague emailed asking for how to accomplish the same. PeopleBooks has clue how to do it, but i found a couple of links which can help further on the same.

Oracle Blog: IB Out Bound Soap Messages with WS-Security

Using PeopleSoft SOAP Classes

If anyone has a pre-experience on the same, you can share the code snippets/article here.

Tuesday, March 15, 2011

Creating Chart using PeopleCode

For those who haven't tried creating a chart using peoplecode. I do not have the code which I did while I was working with my first company. But this example below from peoplebooks will give you an idea. You can create great charts using pagelet wizard also , but when the performance part is considered, I will recommend the usage of chart class.

The below chart is created from a record with three fields, relating to sales, month, and product. The series in the chart are based on the product. The following is the complete code sample.

Global Chart &oChart;

&oChart = GetChart(QE_CHART_DUMREC.QE_CHART_FIELD);

&oChart.SetData(Record.QE_CHART_RECORD);
&oChart.SetDataYAxis(QE_CHART_RECORD.QE_CHART_SALES);
&oChart.SetDataXAxis(QE_CHART_RECORD.QE_CHART_PRODUCT);

&oChart.SetDataSeries(QE_CHART_RECORD.QE_CHART_REGION);

&oChart.Type = %ChartType_2DStackedBar;

&oChart.HasLegend = True;
&oChart.LegendPosition = %ChartLegend_Right;

&oChart.XAxisLabelOrient = %ChartText_Vertical;














To create a chart:

  1. Open PeopleSoft Application Designer.
  2. Open the page where the chart is to be inserted.
  3. Insert the chart control by either:
    • Clicking on the chart icon in the toolbar, or
    • Selecting Insert, Chart
  4. Draw the chart control on the page.
  5. Associate the chart control with a record field

Every chart control must be associated with a record field. This is just the field for the chart control. It is not the field used for drilling down for data in the chart.

Bring up the chart control properties by either

    • Double-clicking on the chart control, or
    • Right-clicking on the chart control and selecting Page Field Properties.
  1. Select the record name and field for the chart.

On the Record tab of the chart control properties, select the record and field for the chart.

To make the control a page anchor, select the Enable as Page Anchor on the General tab.

  1. Write your PeopleCode.

In some event on the page, such as Activate, put the PeopleCode you need for populating the chart.

  1. Get the chart.

The first thing you must do is get the chart. You must use the record and field name that you associated with the chart control on the page.

&oChart = GetChart(QE_CHART_DUMREC.QE_CHART_FIELD);

  1. Set the data records.

Set the data record. The SetData function associates the record data with the chart. Then use the SetDataYAxis and SetDataXAxis functions to associate specific fields in the record with the Y axis data and the X axis data.

&oChart.SetData(Record.QE_CHART_RECORD);

&oChart.SetDataYAxis(QE_CHART_RECORD.QE_CHART_SALES);

&oChart.SetDataXAxis(QE_CHART_RECORD.QE_CHART_PRODUCT);

This is all the code needed to create a chart. You don’t need to set the chart type: the default is a 2D bar chart. You don't need to set the series unless you want to group your data. Everything else is also optional.

  1. (Optional) Set the data series.

In this example, we want to set the region as the series. This means that the data will be grouped according to the region.

&oChart.SetDataSeries(QE_CHART_RECORD.QE_CHART_REGION);

  1. (Optional) Set the chart type.

Because we want a stacked bar for the chart, we must set the Type property of the chart. This means that each product (footballs, rackets, and so on) will have a single bar, and the data series (California, Oregon, and so on) will be what is 'stacked'.

&oChart.Type = %ChartType_2DStackedBar;

  1. (Optional) Set legend and label attributes.

For this example, we want a legend, and want it to appear in the right side. In addition, because the text of the series labels is so large, they must be vertical to display all of them.

&oChart.HasLegend = True; &oChart.LegendPosition = %ChartLegend_Right;

&oChart.XAxisLabelOrient = %ChartText_Vertical;

Saturday, March 12, 2011

Access app engine section through peoplecode

I found this piece of code interesting as I didnt have the clue that there was an option to touch the app engine through a code wrapper.

Local AESection &Section;
&Section = GetAESection("RULES", "DYN_SECT");
/* Open the base section */
&Section.SetTemplate("MY_APPL", "TEMPLATE");
/* Set the template section */
&Section.AddStep("NewStep2");
/* Insert NewStep2 */
/* Do some SQL stuff here */
&Section.SetSQL("DO_SELECT", &MySql);
/* Modify the SQL in the added step */
&Section.Save();
&Section.Close();
/* Save and close */



The SetSQL method replaces the SQL associated with the given action type in the current step in the base section with the SQL in string.

Friday, March 11, 2011

Password Reset: An easy method

This is a tip when there happens a requirement to have a mass password update. Consider the client want to update the password of the employee with a combination of birth year and first name. How to send the combination to database. Password cannot be changed using a simple update. There is hashing happening in between which will encrypt the password.

Now the USER_PROFILE CI comes into picture. It has some extra delivered methods if you notice. Use the set password method at this point.

Function SetPassword(&password As string, &passwordConfirm As string) Returns boolean;
rem get password controls set up in PSSECOPTIONS;
SQLExec("SELECT MINPSWDLENGTH FROM PSSECOPTIONS", &MIN);
PSOPRDEFN.OPERPSWD = &password;
PSUSRPRFL_WRK.OPERPSWDCONF = &passwordConfirm;
Return True;
End-Function;

Pass the password as a string to this method and you can easily change the password using a batch process say using application engine.

There is a method for resetting the password too. Check it out!

Thursday, March 10, 2011

Process execution time

You can use the query to know the exact time taken by the process to complete its run. Handy one!

SELECT PRCSINSTANCE
, PRCSNAME
, OPRID
, RUNCNTLID
, SERVERNAMERUN
, RQSTDTTM
, RUNDTTM
, BEGINDTTM
, ENDDTTM
, floor(TO_CHAR((enddttm-begindttm)*24*60)) AS MINUTES
, lpad(FLOOR(((TO_CHAR((enddttm-begindttm)*24*60))-floor(TO_CHAR((enddttm-begindttm)*24*60)))*60),2,0) AS SECONDS
, decode (FLOOR(TO_CHAR((enddttm-begindttm)*24*60))||':'||lpad(FLOOR(((TO_CHAR((enddttm-begindttm)*24*60))-floor(TO_CHAR((enddttm-begindttm)*24*60)))*60),2,0)
, ':'
,' '
,FLOOR(TO_CHAR((enddttm-begindttm)*24*60))||':'||lpad(FLOOR(((TO_CHAR((enddttm-begindttm)*24*60))-floor(TO_CHAR((enddttm-begindttm)*24*60)))*60),2,0)) AS MINSEC
,RUNSTATUSDESCR
FROM PS_PMN_PRCSLIST
ORDER BY RUNDTTM DESC


Contributed by Arshad Ali

Friday, March 4, 2011

Whats new on XML Publisher in PT 8.50/8.51?

- Rowset and XML doc data source are deprecated
- Connected query as a new data source
- XML generated in C++ for query data source
- Schema files no longer required for bursting
- Email as an output option
- "File name" field on the output page in report definition
- Use "Alt XML" for previewing the templates
- Full path mapping for use of repeating fields
- New "Properties tab" to control report attributes for specific PS implementation
- Enforce unique burst value feature for bursting
- Global properties page to define global properties
- App engine PSXPCLEAN to clean XMLP metadata

Excerpts from the HEUG seminar taken by ERP Analysts on XML Publisher.

Thursday, March 3, 2011

Auditing Security During Implementation

While having a quick search for an information on a security table, I stumbled upon this awsesome guide by Denise Goin.

Wednesday, March 2, 2011

HCM - CS split bundle Docs

PeopleSoft Enterprise Campus Solutions 9.0 Feature Pack 4

Functional documentation for Feature Pack 4, delivered October 2010, is posted here. The documentation provides information about Campus Solutions to Human Capital Management integration. The following documents are part of this release:
* CS to HCM Integration Documentation Package
* CS - HCM Integration FAQ
* Implementing Integration of Set Up Data between CS and HCM
* Implementing Person Bio-Demo Data Integration between CS and HCM
* Implementing External Search/Match between CS and HCM
* Implementing CS Integration with the Higher Education Constituent Hub
* Implementing Portal Navigation Aggregation for CS and HCM Integration

Login to Oracle Support to access: CS Bundle #19 Functional Documentation for Campus Solutions 9.0 & Feature Pack 4

Saturday, February 26, 2011

Planning for Your Campus Solutions & HCM Instance Separation

March 18th, 2011- 1pm Eastern

Is your institution prepared for the Campus Solutions & HCM Instance Separation (the “Split”)? Join Mike Kennedy of CedarCrestone as he walks through the business and technical considerations of this critical upgrade.

This webinar will answer the following questions:

What are the available options for separation?
What are the risks of each?
What are the opportunities?
What are the costs – immediate and long term?
How will my business process be affected?
What is right for my institution?
How do I plan for the split?

About the presenter: Mike Kennedy is the former Oracle Director of Product Architecture and veteran software architect with more than 13 years of experience. Mr. Kennedy led technical strategy, design, and development for a number of Oracle’s recent web-based, object, and service-oriented offerings including: HCM Campus Solutions Instance Separation (the HCM/CS database “split”), the Higher Education Constituent Hub, and the Web Services development framework

Speaker(s)
Mike Kennedy and Liz Dietz of CedarCrestone Inc.

Registration for this event is free. Please click the link below to get registered for this event:

Friday, February 25, 2011

PeopleSoft Events docs

One of my colleagues asked me for PeopleSoft events related documents for him to prepare for an interview. I had two good docs with me which explains the same. Hope this will be helpful for more.



Thursday, February 24, 2011

Some IB tables

This is the list send by one of my friends. You can add table which are missing in the list below.

-- Service
PSOPERATION; --all services
PSOPERATIONLANG; -- language specific descriptions

-- Service Operation Versions
PSOPRVERDFN; -- all the service operations
PSOPRVERDFNLANG; -- language specific descriptions
PSOPRVERDFNPARM; -- holds request / response message information , queue

-- Service Operation Handlers
PSOPRHDLR; -- all the handlers
PSOPRHDLRLANG; -- language specific descriptions
PSOPERATIONAC; -- handler details referring to DMS application class
PSOPERATIONDMS; -- handler details referring to DMS script
PSOPERATIONCI; -- handler details referring to CI's

-- Service Operation Routings
PSIBRTNGDEFN; -- all routings
PSRTNGDFNLANG; -- language specific descriptions
PSIBRTNGSUBDEFN; -- routing alias information
PSRTNGDFNPARM; -- routing transformation information
PSRTNGDFNCONPRP; -- routings specific connector override information
PSOPRGENRTGPARM; -- holds list of auto generated routings

Wednesday, February 16, 2011

PeopleSoft Information Development Doc



Thanks a lot to Greg Parikh, Senior Director - Oracle PeopleSoft Enterprise Information Development, for sharing the document.

Tuesday, February 15, 2011

Live Webcast: Oracle PeopleSoft HCM

A recent Deloitte survey found that 85% of leaders believe people are vital to all parts of the organization, but only 23% believe that HR plays a crucial role in the organization.

Are you taking full advantage of PeopleSoft HCM 9.1 to provide value back to your people and your organization?

PeopleSoft HCM 9.1 was engineered based on extensive customer feedback, industry leading practices, and Oracle’s ongoing commitment to continuous innovation.

Join this complimentary live webcast to understand the benefits you can realize through an upgrade to or implementation of PeopleSoft HCM 9.1.

> Delve into the latest key capabilities in PeopleSoft 9.1 and future product roadmaps
> Understand how Fusion will co-exist with your current application investments
> Hear first-hand from a customer about the concrete benefits they have realized with PeopleSoft HCM
> Get all your questions answered during an interactive Q&A session with Oracle HCM product strategy


Date & Time: 17th Feb 2011, 9AM PST

Thursday, February 10, 2011

Things to remember about Domodal

A small point about DoModal fucntion and Secondary page. You might be knowing this already, but, Just in case...

You know that Secondary page can be called from a hyperlink/Push Button either by 'PeopleCode Command' or by 'Secondary page directly'

1. When we use Secondary page option in hyperlink, it suppreses the FieldChange/FieldEdit events and if we need to do any changes we cannot do. When we are using the Secondary page option, we dont need to insert the secondary page on the main page at the corresponding level it called from. As the Modal page knows where it has to comeback, we dont need to specify it.

2. When we use PeopleCode Command option in hyperlink, as we will be using DoModal PeopleCode and assume that the secondary page is not inserted on the page, the modal page doesnt know where to return its results. So, its mandatory that we need to include the secondary page on the main page where we have this hyperlink (on which the PeopleCode is written). Since, its based on PeopleCode, we can make use of FieldChange and FieldEdits of the hyperlink.

Manivannan Ramar

Tuesday, February 8, 2011

Writing If statement in XML Publisher: An example

Consider there is a field which will display negative and positive amount while the XML report is rendered. Now we have to insert a condition to make it to display Zero, when the amount is a negative value.

Before inserting the If condition to cater the above requirement:


After inserting the If condition:


Try to avoid spaces while writing the code. Main concepts to understand here is the Get_Variable and Set_Variable.

Friday, January 28, 2011

BPEL Checklists and Tracing the issues

Common Issues with BPEL:

A]Files not picked up
Reasons could be:
Same file name - Rename file
Process is turned OFF - Turn it ON
FTP Adapter shut down - Reset Polling timer
Server Error - Reboot server/ Redeploy process

B]Data not loaded
Check the DB Connection settings
ODIADM user id should be present and should have rights to loading tables

In case of Issues, the following trouble shooting methods can be followed:

Look into the details like:
- the email error notifictaion,
- if there was anything different from usual, was it larger size file etc
- Was the input file re-tried and loaded successfully or not? etc
- Input Data file that caused the error
- Log file (OPMN.log) detail

Configuration checklist:

JDBC configuration:
JNDI and DB Adapter
Connection pool, datasource
JNDI and DB Adapter

Logon to the console Applications  View drop down  Standalone Resource Adapters DB Adapters  Connection Factories
(The JNDI Location property would need to match the JNDI Location property in the datasource settings of JDBC configuration )

Connection pool, datasource:
Logon to the console Administration  Services  JDBC Resources
(The connection pool and datasource name could be tested by clicking the Test_Connection icon)

FTP configuration:
FTP Adapter
Logon to the console  Applications  View drop down  Standalone Resource Adapters FTP Adapters  Connection Factories
(Click the JNDI used in the code. Properties like Userid and Password need to be checked.Also the SFTP hostname, port-number could be checked)

Build.properties file:
Verify all the parameters in the build.properties file

CommonHandler Service:
The CommonHandler service used for sending error notifications need to be deployed in the respective domain where the other BPEL objects are deployed.

Email File:
The ns_email.xml file in the BPEL domain need to be configured to include the email properties of the domain viz. From, alias name

Control File:
The control file for each of the BPEL transactions need to be present in the FTP directory

Saturday, January 15, 2011

%InsertSelect

%InsertSelect(AE_SECTION_TBL, AE_STEP_TBL S, AE_SECTION_TYPE = ' ')
FROM PS_AE_STEP_TBL S, PS_AS_STMT_TBL T
WHERE. . .

The example code resolves into the following:

INSERT INTO PS_AE_SECTION_TBL (AE_APPLID, AE_SECTION,. . ., AE_SECTION_TYPE)
SELECT S.AE_APPL_ID, S.AE_SECTION, . . . ' '
FROM PS_AE_STEP_TBL S, PS_AS_STMT_TBL T
WHERE. . .

In the following example, you have a temporary table, PS_MY_TEMP, which is based on a join between two other tables, PS_MY_TABLE1 and PS_MY_TABLE2:

%InsertSelect(MY_TEMP, MY_TABLE1, MY_TABLE2 T2)
FROM PS_MY_TABLE1 T1, PS_MY_TABLE2 T2
WHERE %Join(COMMON_KEYS, MY_TABLE1 T1, MY_TABLE2 T2) . . .

This code resolves into:

INSERT INTO PS_MY_TEMP (FIELD1, FIELD2 . . .)
SELECT T2.FIELD1, T2.FIELD2, . . .
FROM PS_MY_TABLE1 T1, PS_MYTABLE2 T2
WHERE T1.FIELD1 = T2.FIELD1
AND T1.FIELD2 = T2.FIELD2 . . .

The following example creates a distinct Select statement.

%InsertSelect(DISTINCT, MY_TABLE, TABLE1, TABLE2 T2)
FROM PS_TABLE1 T1, PS_TABLE2 T2
WHERE %Join(COMMON_KEYS, TABLE1 T1, TABLE2 T2) . . .

This code resolves into:

INSERT INTO PS_MYTABLE (FIELD1, FIELD2 . . .)
SELECT DISTINCT T2.FIELD1, T2.FIELD2, . . .
FROM PS_TABLE1 T1, PS_TABLE2 T2
WHERE T1.FIELD1 = T2.FIELD1
AND T1.FIELD2 = T2.FIELD2 . . .

Wednesday, January 12, 2011

BPEL deploy.chunk.size Error

Error thrown by the process:


com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{code=<code>null</code>
,summary=<summary>file:/usr/local/cny/cu7/bp1013/product/10.1.3.1
/OracleAS/bpel/domains/default/tmp
/.bpel_process_name/Re
adChunk.wsdl [ SynchChunkRead_ptt::SynchChunkRead(Empty,container) ] - WSIF JCA Execute of operation 'SynchChunkRead' failed due to: Error while translating.
Error occured while translating content from file ftpxfr/140001/SA1_10008 [Caused by: For input string: "[undef:deploy.chunk.size]"]
; nested exception is:
ORABPEL-11008
Error while translating.
Error occured while translating content from file ftpxfr/140001/SA1_10008 [Caused by: For input string: "[undef:deploy.chunk.size]"]
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
</summary>
,detail=<detail>null</detail>
}}
Possible Empty File


Solution:

The chunk size in the build.properties file was undefined/missing. Deploy the BPEL process with chunk size with some number.

The error message tells that there is a possible empty file scenario. While debugging is done, the reason was the chunk size set as zero, which marked the file as empty/corrupted.