Saturday, December 15, 2007

Send Emails in SQR

Here is the piece of code you can use to send email with attachments in SQR.

BEGIN-PROCEDURE sendmail
let $subject = 'Subject of the Email Here'
let $to_list = 'email@email.com'
let $ReportID = 'G:\PeopleSoft\Reports\Report_Name.pdf'
let $alias ='Attachment File Name Alias including the file extension'
let $enter = chr(10)chr(13)
let $body_txt = 'Hi,'$enter$enter'Please Find the Report attached with this email.'$enter$enter'Regards,'$enter 'Peoplesoft Application Support'$enter$enter'PS: We request you not to reply to this automated mail trigger.' let $mail-cmd = 'F:\PSFT819\bin\server\winx86\psmail -TO"'$to_list'" -SUBJECT"'$subject'" -BODY"'$body_txt'" -FILE"' $ReportID '" -ALIAS"'$alias'"'
CALL SYSTEM USING $mail-cmd #Status
end-procedure

PeopleSoft IDs

User Id

The User Id is the ID associated with the individual user logging onto the PeopleSoft application, via PeopleTools.Validation of this ID is performed by the PeopleTools themselves at log-in time, by virtue of verifying that a row has been defined in the PSOPRDEFN table for this ID. The row in the PSOPERDEFN table contains information pertinant to PeopleSoft internal security administration, such as the access profile defining what areas of the application this ID will have access to, and a link to the ACCESS ID (defined later) associated with the UserId.

Connect Id

The Connect Id is the actual ID that makes the initial log on connection to the database.It requires SELECT ONLY access to three tables: PSSTATUS, PSOPRDEFN, and PSACCESSPRFL.Once the row is located in PSOPRDEFN associated with the User Id entered, the associated Access Id is validated within PeopleTools, and the Connect Id is disconnected, and the Access Id is logged on.

Symbolic Id

The Symbolic Id isn't really an Id at all, but is referred to as such in the PeopleTools documentation. The Symbolic Id provides the "link" between the row containing the User Id in table PSOPRDEFN with the row containing the corresponding Access Id and Password in table PSACCESSPRFL. The Symbolic Id field is a regular field on table PSOPRDEFN and the key field on table PSACCESSPRFL. For each Access Id defined, you should define a unique Symbolic Id within the PeopleTools table PSACCESSPRFL. The Access Id is associated with the unique Symbolic Id in table PSACCESSPRFL, and the Symbolic ID is then linked with the specific User Id in table PSOPRDEFN, by updating the PSOPRDEFN.SYMBOLICID column.

Access Id

The Access Id is the ID under which all DML is initiated.

PeopleSoft Panel Navigation

Here is the MS SQL query which will give you the panel/page navigation in PeopleSoft.

Select Distinct
RTrim(LTrim(IsNull(Level13.PORTAL_LABEL,''))) + Case When Level13.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level12.PORTAL_LABEL,''))) + Case When Level12.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level11.PORTAL_LABEL,''))) + Case When Level11.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level10.PORTAL_LABEL,''))) + Case When Level10.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level9.PORTAL_LABEL,''))) + Case When Level9.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level8.PORTAL_LABEL,''))) + Case When Level8.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level7.PORTAL_LABEL,''))) + Case When Level7.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level6.PORTAL_LABEL,''))) + Case When Level6.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level5.PORTAL_LABEL,''))) + Case When Level5.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level4.PORTAL_LABEL,''))) + Case When Level4.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level3.PORTAL_LABEL,''))) + Case When Level3.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level2.PORTAL_LABEL,''))) + Case When Level2.PORTAL_LABEL Is Null Then '' Else ' > ' End +
RTrim(LTrim(IsNull(Level1.PORTAL_LABEL,'')))
From PSPRSMDEFN Level1
Left Outer Join PSPRSMDEFN Level2
On Level2.PORTAL_OBJNAME = Level1.PORTAL_PRNTOBJNAME
And Level2.PORTAL_NAME = Level1.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level3
On Level3.PORTAL_OBJNAME = Level2.PORTAL_PRNTOBJNAME
And Level3.PORTAL_NAME = Level2.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level4
On Level4.PORTAL_OBJNAME = Level3.PORTAL_PRNTOBJNAME
And Level4.PORTAL_NAME = Level3.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level5
On Level5.PORTAL_OBJNAME = Level4.PORTAL_PRNTOBJNAME
And Level5.PORTAL_NAME = Level4.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level6
On Level6.PORTAL_OBJNAME = Level5.PORTAL_PRNTOBJNAME
And Level6.PORTAL_NAME = Level5.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level7
On Level7.PORTAL_OBJNAME = Level6.PORTAL_PRNTOBJNAME
And Level7.PORTAL_NAME = Level6.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level8
On Level8.PORTAL_OBJNAME = Level7.PORTAL_PRNTOBJNAME
And Level8.PORTAL_NAME = Level7.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level9
On Level9.PORTAL_OBJNAME = Level8.PORTAL_PRNTOBJNAME
And Level9.PORTAL_NAME = Level8.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level10
On Level10.PORTAL_OBJNAME = Level9.PORTAL_PRNTOBJNAME
And Level10.PORTAL_NAME = Level9.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level11
On Level11.PORTAL_OBJNAME = Level10.PORTAL_PRNTOBJNAME
And Level11.PORTAL_NAME = Level10.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level12
On Level12.PORTAL_OBJNAME = Level11.PORTAL_PRNTOBJNAME
And Level12.PORTAL_NAME = Level11.PORTAL_NAME
Left Outer Join PSPRSMDEFN Level13
On Level13.PORTAL_OBJNAME = Level12.PORTAL_PRNTOBJNAME
And Level13.PORTAL_NAME = Level12.PORTAL_NAME
Where Level1.PORTAL_NAME = 'EMPLOYEE'
And (Level1.PORTAL_URI_SEG2 In (Select PNLGRPNAME From PSPNLGRPDEFN Where LOWER(DESCR) Like '%component description here%')
Or Level1.PORTAL_URI_SEG2 In (Select PNLGRPNAME From PSPNLGROUP Where PNLNAME In
(Select PNLNAME From PSPNLDEFN Where LOWER(DESCR) Like '%page description here%'))
Or LOWER(Level1.PORTAL_LABEL) Like '%link label here%')

Sunday, August 5, 2007

Application Engine Trace

Go to the Application Engine's Process Definition under the menu item PeopleTools, Process Scheduler.
1. Goto the override tab
2. In Parameter list line dropwdown select Append
3. In the edit box next to it, you can use any of the combination of trace settings listed below:
-TRACE 7 -TOOLSTRACEPC 3596 -TOOLSTRACESQL 31
Once you enter your trace settings in the parameter list, save the App Engine Process Defnition.
Now this AE Program will be traced everytime it is run. This way you dont have to modify the trace settings in your application server.

Wednesday, July 18, 2007

Security PeopleTools Tables

PSOPRDEFN - UserIds created.
PSCLASSDEFN - Permission List definition.
PSROLEDEFN - Role Definition table
PSAUTHITEM - Menus, Components and Pages attached to a permission list.
PSROLEUSER - Contains user and role mapping.
PSROLECLASS - Role Permission List mapping.

Tuesday, July 3, 2007

PeopleSoft Application Development

Ok. Lets start with the basics of application development in PeopleSoft. Well, I hope you all know that Application Designer is the tool which we used to develop PeopleSoft application and we usually call it as App Designer in short. Basically there are 8 steps in PeopleSoft Application Development.

Here are the 8 steps of PeopleSoft Application Development:

1. Design the application
2. Define new fields
3. Create record definitions
4. Build the records
5. Create page definition
6. Define the component
7. Registering the component
8. Test the application

First step of any application development is planning. We analyze the business requirement and create a plan on how to go about doing things. You should have the document which will contain the tables affected and the relationships between them, list of object definitions to be created or modified.

Second step, creating the field definition is the basis for all the remaining steps. In this step we create new field definitions if it is required.

Third Step is creating record definitions. PeopleSoft is table driven system. When creating a record definition, you are actually defining two layers of information: the record level and the field level. At the record level you determine the structure of the database table and the ultimate purpose of the record definition as well as how it will be used in the system. At the field level, you determine the characteristics of the fields and any online processing that you want to occur behind the scenes when a user enters data.

Fourth Step is building the tables. In this step we build the tables that we created/modified in step 3. This makes sure that PeopleTools object definitions are in sync with the database table. You need to build the record definitions for all the changes you make to the record definitions. Eg. If you are changing the default value of a field in the record, there is no need to build the record. Also make sure the options in the build settings are selected properly.

Fifth step in PeopleSoft Application development is creating page definitions. Pages are the user interface for the application where you present the data to the users and enable them to enter data into the application data table created in the previous step. In this step you add page controls to a page and that you associate with record fields and configure the display of the page. The page is presented to the user in a browser window as HTML.

Sixth step is to create component definitions. Component definitions represent complete business transactions in PeopleSoft applications and are central to navigation and security access. A component holds one or more pages that the user navigates between using tabs or links. Here you define the search record and search attributes, processing mode, and toolbar buttons that display at the bottom of each page in the component.

Seventh step is to register the component. The Registration Wizard makes registering a component easy. In this step you accomplish several things: attach the component to a menu, assign security access for users, and place navigational links in the registry. Once you register a component, the user interface is complete and you can view the application in the browser.

And the final step is to test the new application. It is important to test all aspects of the application by opening the transaction in your browser and entering test data into the application. As issues arise you can cycle back through each of these steps to resolve them

Thursday, June 7, 2007

What is PeopleSoft?


-->

PeopleSoft was a company which provided ERP software solutions in different business areas like Human Capital Management, Customer Relationship Management, Financial management, Student Administration ,Enterprise Performance Management, Supply Chain Management etc. It was founded in 1987 by David Duffield and Ken Morris with its head quarters in California. Later on, in 2005 Oracle Corporation acquired PeopleSoft.Though PeopleSoft have begun functioning in 1987, its first ERP package PeopleSoft 6 was released in 1997. PeopleSoft HRMS was released in 1988. They continuously released the enhanced versions, the last one being PeopleSoft HCM 9.0 which is released by Oracle in 2007.

Now Oracle's PeopleSoft Enterprise Business Suites includes Human Capital Management, Financial Management, Customer Relationship Management, Supply Chain Management, Enterprise Service Automation, Enterprise Performance Management, Campus Solutions etc.

From Version 8 onwards PeopleSoft applications runs on web centric design called PeopleSoft Pure Internet Architecture which makes possible it to be accessed from Internet. The underlying technology for the PeopleSoft applications is called PeopleTools. With PeopleTools you can easily develop a new application or customize the existing one to implement the business requirement. Enterprise PeopleTools contains over 40 tools, utilities, and technologies for it to make building the applications easier. Currently PeopleSoft can be implemented on Oracle, IBM DB2, Microsoft SQL Server, Informix and Sybase. PeopleCode is the object oriented language that is used to write programs in PeopleSoft.