How to avoid the trimming of leading zeros in XML Publisher - Excel output
When the XML Publisher creates the Excel output file with fields having leading Zero (Eg:- Position Number), when the ouput file is opend in the Excel (not in the web browser), the leading zeros in the will be automatically trimed by the Excel. Excel treat this as number, we need force excel to treat this value as character and not as numberic value.
During XML template design, Instead of the using the tag < ? fld_POSITION_NUMBER ? >
use ="< ? fld_POSITION_NUMBER ? > ". It wraps the value with double quotes. Now Excel treat value as character and doesn't trim the leading zeors of value.
Note:- space between < and ? and tag name is not requried.
How to enable logging for the IB Messages
In integrationGateway.properties file
set the property ig.log.level under logging section.
The following are the Gateway Log Levels
# Level Value
# -------------------------- -----
# SUPPRESS ANY LOGGING -100 {Suppresses any Message Logs}
# LANGUAGE_EXCEPTION -1 {Logs language exceptions only}
# STANDARD_GATEWAY_EXCEPTION 1 {Logs language and standard}
# WARNING 2 {Logs all errors & warnings}
# IMPORTANT_INFORMATION 3 {Logs errors,warnings and important Information.(Default)}
# STANDARD_INFORMATION 4 {Logs errors,warnings, important and standard information}
# LOW_IMPORTANCE_INFORMATION 5 {Logs errors,warnings important, standard and low importance information}
Name of the file used to output message/error logs can be set in this file..for the parameter
ig.messageLog.filename - msgLog.html
ig.errorLog.filename - errorLog.html
AWE Workflow - Escalation emails
Peoplesoft AWE Workflows - Escalation process
AWE Workflows
In the “setup process definition “ you define the timeout for escalation. The ESCALATIONS Event ID will make sure to escalate if not approved within the “timeout” period.
PTAF_NEM - Is the process that needs to be run for the escalations in the approval workflow.
The PTAF_NEM process, when run kicks off 3 application engine programs one for each of the following events ID
Approval Activity Email
Receipt Notifications
Escalations
The AWE Notification & Escalation process, PTAF_NEM, only sends out one ( 1 ) notification, however, multiple actions can be performed at each timeout. i.e. Notify and Reassign after 2 hours. Or Notify after 1 hour and Notify and Advance after 24 hours.
What cannot be done is to set the Timeout to 1 hour and expect to get a notification every hour that an action has not been taken.
EMP_SERVLET - URL needs to be configured to send the correct url link in the escalation notification emails.
Incorrect Termination Date in the Job data component - HCM Peoplesoft
Termination date is auto-populated in the peoplesoft when an employee is terminated in the Job data component. Termination date is suppose to be the termination action EFFDT - 1.
Termination date is configured to be popluated as JOB.EFFDT - 1 in the Action table component.
Termination date will not populated correctly due to a delivered bug in HCM 9.0 as well as HCM 9.1.
When you insert new row in the job data component effective date is defaulted to current date or defaulted from the previous row if it is a future date. Select the action as Termination and look at the termination date it is populated correctly with JOB.EFFDT - 1. Now change the EFFDT field it will not refresh the effdt to JOB.EFFDT - 1 value. It lets you save the component with that information. Any logic based on the termination date will fail.
Delivered code fires on the field change of the Action field alone and not on the EFFDT field. This creates the problem of incorrect termination date.
screen shot from HCM 9.1 peopletools 8.50
Customizing the JOB_DATA (Job data) component in HCM Peoplesoft.
JOB_DATA (Job Data) - It is one of most important component in the HCM which maintains the employees job history details. It is also one of the complex components which have a lot of business logic involved in it.
There are 5 other components which are very similar to the JOB_DATA component.
JOB_DATA_EMP - Add employee Instance - Employee Hire component.
JOB_DATA_POI - Add POI Instance - Hire Person of Interest component.
JOB_DATA_CWR - Add CWR - Hire Contingent Worker.
JOB_DATA_CURRENT - Current Job.
JOB_DATA_CONCUR - Add concurrent Job.
In an implementation we customize delivered objects in PeopleSoft. Customizing the Job data component can be very painful as it creates a lot of maintainace issues and lead to additional customizations. A lot of points needs to taken to consideration while any customizations are made to Job data component. Modify the Job record is a very bad customization, avoid modfiy the delivered records.
1) Any new custom record added to JOB_DATA component to capture the additional data on the Job data transactions then you might also need to add that record to other components similar to Job data as mentioned above. Additional customizations.
2) Any additional fields and records in the component will affect the component structure and it will impact directly component interface structure. We need to rebuild all the delivered component Interfaces.
a) HCR_JOB_COMP_DATA_SRV
b) HCR_JOB_DATA_SRV - Component interface is used in Mass Update process (HR_MASSUPD) which is CI based services for Mass changes to the employees like Mass Salary change (periodic salary hike).
This process will be affected based on the way custom record is used in the job data component.
Component Interface is also used in the Automated Step increment process (HR_CMP007) which increments the step of the employee. Any change to the job data component will impact this process as well.
3) If your design handles any CI operations done by the above processes as new custom record is the child record of the parent record job then it will create problem if you use another Step increment process (CMP107) which is an SQR process which doesn't insert into custom record, which result into the improper component buffer in the job data component. Additional customization to custom record or
4) WORKFORCE_SYNC - Delivered IB message from HCM to ELM and CRM. This message is published in the job data (and related components) in save post change event. If auto select option is off for the new custom child record scroll in the job data. When there is only change to the fields of the custom record it sends out a blank message (blank XML),which creates fatal error in the CRM.
5) Any changes in the bundles and fixes from peoplesoft to job data components and its Peoplecode (& similar components)and its pages will lead to reapplying the customizations to these components.
To minimize the impact of customization.
Instance Variable in Peoplecode - Application packages
It might be confusing for many of them, how is instance variables different from the Private and Public variables.
Myth :- specific object (instance of a class) would only have access to its own instance variables.
Instance variable is very different to Private or Public. Infact it is not right comparison of Instance with Private and Public.
Instance variables equal to Static variables in the other Object oriented programing language (like C++ and Java).
Instance - Defines the scope of the variable where as private and public key words define access levels/Visiblity of the variables. If variable is not defined as Instance then SCOPE of the variable is Local by defult (Local to the created object of the class).
Instance - scope of the variable is across the objects of the same class and scope of the Instance variable is at the class level.
The variables are created when the first object of the class is creted and will be present till last object of the same class is present in the memory.
If the Instance variable is declared as Private it is accessed the way it is accessed i,e only with in the class methods. if variable is declared as Public it is accessed the way you access other public variables. (i,e both within the class and outside of the class).
Simple comparison that can be done..(just for understanding purpose).
Component variables has scope within the component similarly instance variables has scope at the class level across the objects of the same class.
Big question arise when do we need these kind of variables.
1) if you want to count how many objects of the class was created you increment this variable in the constructor of the class.
2) If you have constant value that needs to shared across the objects of the class then you can use the instance variables.
3) Shared variable across the objects like component variable (across the different events of the component).
Dynamic Roles in Peoplesoft
Why Dynamic roles ?
1) The assignment of roles to User Profiles based on your business rules.
2) These business rules run against system(s) to assign PeopleSoft access.
3) PeopleSoft security changes in an automatically.
4) The dynamic role rule process removes and grants access to User Profiles
PeopleTools > Security > Permissions & Roles >Roles (Dynamic Member Tab/Page).
There are three ways can use to execute your rules to find the dynamic role users.
o PS/Query
o LDAP Plug-in
o PeopleCode
PS/Query
1) Access is removed or granted based on the User Profile IDs retrieved by the query.
2) Logic to select the dynamic role users will be present in the SQL of the Query.
Note: -
a) Use PSOPRALIAS_VW or PSOPRALIAS record to create the dynamic role queries.
PSOPRALIAS - Used to store ID values corresponding to various ID types. For example, stores EMPLID for Employee type, CUST_ID for customer ID. It will be easy to join the tables based on the type of the Userid.
b) Don't use any Bind variables in the role queries. They are not designed for resloving the bind variables.
c) Use Disntict caluse in the SQL to make you always retrive uniques id only. Any duplicate will the the dynamic role asssignement.
PeopleCode
1) Access is removed or granted based on the User Profile IDs pushed in to the system array variable
%RoleDynamicMembers.
2) This is used when logic is complicated and cannot be retried from the Query.
Peoplesoft AWE Workflow configuration DMS scripts
Peoplesoft AWE Workflow configuration and setup tables. Ver 9.0
User the following scripts to move the AWE configuration / setup data from the one instance to another instance.
Note :- add where clause if you need to move only configuration specific to particular AWE transactions.
Export script
-- "Register Transaction"
EXPORT PS_PTAFAW_TXN;
EXPORT PS_PTAFAW_TXN_LNG;
EXPORT PS_PTAFAW_TXN_LBL;
EXPORT PS_PTAFAW_TXN_LVL;
-- "Approvals > Workflow Transaction "
EXPORT EO_TRANSACTIONS;
EXPORT EO_TRANS_LNG;
-- "Configure Transactions"
EXPORT PS_PTAFAW_NOTIFY;
EXPORT PS_PTAFAW_NOT_USER;
EXPORT PS_PTAFAW_TXN_CFG;
-- "Setup Process Definitions"
Peoplesoft HCM Process - Scheduled process.
HR_PERSDATA Application Engine - Updates the PERSONAL_DATA snapshot table with future dated entries as they become effective.
NAME_DISPLAY Application Engine - Refreshes the NAME_DISPLAY and NAME_FORMAL fields in all records with the NAME_GBL_SBR. Use when the criteria used to change these fields is changed.
PER099 Application Engine - Fill EMPLOYEES Table.
PTAF_NEM Application Engine - PTAF_NEM - Approval Framework Escalation App Engine. AWE Workflow escalation process.
SCRTY_OPRCLS Application Engine - SCRTY_OPRCLS - Updates the SJT_OPR_CLS security Join Table.
SCRTY_SJTDLY Application Engine - Nightly update for SJT Records - Update of all effdt rows that have become current as of this data.
HRS_AM Application Engine - Applicant Search Auto-Match -Recruiter Applicant Search auto-match process.
HRS_DUPE_PRC Application Engine - Find Applicant Duplicates - Finds applicant duplicates given certain criteria.
HRS_JOB_AGNT Application Engine - Job Agent - Run the Job Posting Search Agent process.
HRS_JSCH_IDX Application Engine -Verity based Job Posting Index build process.
HRS035 SQR Report - Application Analysis (USA).
PER506 SQR Report - Department Tbl & Departmental - This report lists any departments that you have created in the Department Tree but have not yet added to the departmental security tree, It also lists any changes in departments since the effective date of the current security tree.
PER900 SQR Report - Core HR Data Integrity Audit. - Audit of the CORE HR Tables for Data Relationship Integrity.
PSBARUN - Cobal Job - For the Benefit Administration - scheduled to run twice each night with some custom pre and post processes.
F1 Context Help for Peoplesoft Application Designer
Access Peoplebooks from Applicaiton Desinger.
Context Help for Application designer.
Follow the setps to configure F1 - context help for the application designer.
Press F1 in the application designer to get the help based on the URL configuration below.
It can take to the peoplebooks based on the context.
Navigate to PeopleTools > Utilities > Administration > PeopleTools Options
Under the help option you can set the URL to the People books.
URL needs to be in the following format.
http://helpwebserver:port/productline/f1search.htm?contextID=%CONTEXT_ID%&LANGCD=%LANG_CD%
%CONTEXT_ID% is the object name or context ID of the currently displaying page or dialog box.
%LANG_CD% is the three-letter language code for the user's preferred language.
Cntrl+F1 - can be used as alternative help URL to the website on the internet or the company's internal website.
Tools/Utilites & Applications for Peoplesoft Development.
Productivity tools for the Peoplesoft Development.
1) SQL-Formatter :- The Application engine sql statements invloving are not formatted well for understanding it.
SQL-formatter comes in handy to format the SQL. It helps in Debuggin ,Review & performance tunning of the complex qurey.
http://www.dpriver.com/pp/sqlformat.htm?ref=g_wangz - Online formatter.
http://www.dpriver.com/index.php?ref=g_wangz - Offline SQL Formatter.
Pros :- Works with different databases SQL statements.
Cons:- Doesn't recongnize many Peoplesoft Meta-SQL tags. Just replace them with sql function or static values then it works fine.
2) Pace Trace :- Pace-Trace is effectively a viewer for PeopleSoft SQL trace files. It reads a selected trace file and creates a grid that summarizes all the SQL actions contained in the file.
This quick access to trace file information can be used by everyone from business analysts to developers, speeding report design, custom development, and troubleshooting.
Following Trace files generated in different methods can be
1)Trace an entire session - Trace file generated by the entire session. Enabled on the login trace page.
2)Interactive Tracing - Enabled at PeopleTools > Utilities > Debug > Trace SQL.
3)Application Engine trace.
4)COBAL Tracing.
3) PS Pad editor :- This editor is very much similar to the Ultra edit and Edit plus which many of us know.
What makes it special is for the following reasons.
1) Peoplecode.INI file which is code highligter for the peoplecode like in the application designer - Why do we need this one for ?? Read the next reason.
2) Export to Clipboard as RTF feature (File > Export > Export to Clipboard as RTF) is allow you to copy the peoplecode from the editor with the code highlighter and paste in the word document or email. code highlighter formatting is retained.
3)SQR.INI file is also available for SQR programming.
Check out this link - http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/
for details on how you can use it.
4) Zapgrab 1.0 :- The best , easiest & Free way to capture screens, and paste them into Documents & presentations.
It is very helpful to capture the screens for the Testcase results document , Technical design & Functional design documents.
ZapGrab allows you to capture your screen in two different ways: the whole screen or only a section with a quadrangular form selected by you with the mouse.
Just select the area on the screen and to Cntrl+v.
Cons:- Difficult to capture scrolling window screens.
Link:- http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Capture/Zapgrab.shtml
5) SQR Express :- Developing SQRs Has Never Been So Easy! - In a powerful environment you can edit multiple files with unlimited length, maintain multiple database logins,
navigate in the source-code by clicking procedure-names or inside a treelike program-flow, variables, calls, includes or records.
Cons:- Not a freeware.
Detalied features here.
http://www.bcstools.com/SQRExpressInfo.pdf
6) JEdit :- Java based open source editor. Code highligther for SQR available
Pros: - A lot of open source plugins avaliable.
The only free ware text editor with help of plugins can create SQR tree like SQR Express.
Can create own plugins. Create plugins for intellisense.
Cons:- Not the easiest way installing plugins with different versions.
http://jjmpsj.blogspot.com/2009/08/using-jedit-to-edit-peoplesoft-files.html
HCM/HRMS Tables for the PS QUERY - Querying HCM/HRMS table in peoplesoft
HCM/HRMS Query reporting
The following are the main tables used to query HR related data
Human Resources Information/ Personal Data:
PERSONAL_DATA, PERS_NID
Employment Data:
EMPLOYMENT- general employment data, such as various service dates, etc.
Department Inforamation
DEPT_TBL --This is one of foundation tables in HR. You will rarely query against it directly; more
likely you will join to it to get the description or short description. Department codes in PeopleSoft are
different from what was used in HRS/Legacy, and department data is effective dated.
Job code information
JOBCODE_TBL --This is also a foundation table. This table holds job codes, descriptions and related
data such as FLSA classification, pay plan, grade and structure information.
Job Data:
JOB-- Job (roughly equates to assignment records in legacy). Contains job records along with other
data. Effective dated someone's job history will be stored in this table. Remember, Empl Records
refer to an employee's job record(s). The existence of multiple Empl Records means that they have
had or are currently holding multiple jobs Empl Records start with 0, and their benefits are tied to
Empl Record #0.
Benefits Data :
BEN_PROG_PARTIC – Stores the Benefit Program to which the employee is assigned.
LEAVE_PLAN – Stores enrollment in leave plans.
HEALTH_BENEFIT – Stores e nrollment in health insurance plans
SAVINGS_PLAN -- Stores enrollment in TDA, ORP and Deferred Compensation
LIFE_ADD_BEN -- Stores enrollment in life insurance plans.
RTRMNT_PLAN – Stores TRS enrollment.
DISABILITY_BEN – Stores enrollment in disability plans.
Tax Data:
FED_TAX_DATA – Contains federal tax data, including nonresident alien data
STATE_TAX_DATA – Although there is no state withholding in Texas, this record is necessary to
maintain state of residence and unemployment jurisdiction.
Payroll Data:
Payroll processing check data (records used by the payroll process to store check history)
PAY_CALENDAR
PAY_CHECK
PAY_LINE
PAY_CHECK
PAY_EARNINGS
PAY_OTH_EARNS
PAY_DEDUCTION
PAY_TAX
Payroll funding distribution data (records that tie funding to payroll actuals):
PAY_ERN_DIST
PAY_DED_DIST
PAY_TAX_DIST
Other employee level payroll data:
GENL_DEDUCTION - Genearl deduction.
GENL_DED_CD - General deduction code.
ADDL_PAY_EFFDT - additional pay effdt.
ADDL_PAY_DATA - additional pay data.
ADDL_PAY_ERNCD - additional pay earn code.
DIRECT_DEPOSIT - Direct deposit.
DIR_DEP_DISTRIB - Direct deposit distribution.
Position Data:
POSITION_DATA—identifies position data for each business unit.
Tenure Data:
EG_TENURE Tenure Data.
Hints:-
Use the Employees table whenever possible. Queries using this table will generally have better
performance for several reasons. This tables has name, Empl ID, empl records, job title, job code,
dept title, dept code, location code, comp rate, comp frequency, position number, standard hours,
etc., data for active employees. Two fields that it does not have are Empl Class and FTE. This table
is not a transactional table, meaning that records are not actively written to it throughout the day.
Rather, it is refreshed nightly on process scheduler. There may be a one-day lag time for new data to
hit the table, but for most reporting this is acceptable.
Online Peoplecode / SQL trace is not getting generated
Peoplecode / SQL Trace is not getting generated.
Check the Application Server configuration file APPSRV.cfg for the TraceSQMask and
TracePCMask.
PSADMIN can be used to set the parameter.
If the these mask parameter are set to zero then configuration file then trace files are not generated.
Process schedular configuration file needs the change for Applicaiton engine programs SQL / Peoplecode invoked in the Batch mode.
Important PeopleSoft HCM processes
1) Refresh the EMPLOYEES table.
2) Refresh the Personal Data Process.
3) Refresh the Personal Data table with future-dated data.
4) Refresh name display values.
5) Audit Human Resources data for integrity.
6) ID Change.
7) ID Delete.
8) ERN Delete process.
9) Refresh Compensation.
1) PERS_REFRESH – Refresh Personal Data Process. Based on the setup in the Personal data setup component. Personal data record will be refreshed. Process updates the current data asof the Current date / System date. What fields are populated is configurable in the personal data setup component.
Record: PS_PERSONAL_DATA
Setup Record:- PS_PERSON_DT_SETUP.
2) HR_PERSDATA - Refresh the Personal Data table with future-dated data. This process updates
Personal data table with all the PERS_DATA_EFFDT, NAMES, and ADDRESSES (optional) when that data becomes effective. This is should be scheduled as a nightly process in order to catch changes every day.
3) PER099 - Refresh EMPLOYEES Table. Refresh the PS_EMPLOYEES snapshot table as of the selected date or current date. This process also updates the PS_EMPLOYEES_LNG.
4) Refresh all records with the NAME_DISPLAY and NAME_FORMAL fields to reflect changes made to the People Code definition of those fields. You can choose to update records with all name format types or just with one name format type.
It has following options to choose from.

5) HRAUDIT - Audit Human Resources data for integrity.- Core HR Data Integrity. PER900. Initiate the Core Human Resources Data Integrity Audit.
Following things are audited.
• Persons were found in PERS_DATA_EFFDT that do not exist in PERSON
• Persons were found in PERSON that do not exist in PERS_DATA_EFFDT
• Persons were found in EMPLOYMENT that do not exist in PERS_DATA_EFFDT
• Persons were found in JOB that do not exist in EMPLOYMENT
• Persons were found in EMPLOYMENT that do not exist in JOB
• Persons were found in JOB that do not exist in PERS_DATA_EFFDT
• Persons were found in JOB that do not exist in JOB_JR.
• Persons were found in JOB_JR that do not exist in JOB.
• Persons were found in PERSON that do not have a Primary Name in NAMES.
• Persons were found in NAMES that do not have record in PERSON.
• Persons were found in ADDRESSES that do not have record in PERSON.
• Persons exist in DISABILITY that does not exist in PERSON.
• Persons were found in DIVERS_ETHNIC that do not exist in PERSON.
6) Change ID / Delete ID Process – HR_PER502 - This process is used for the correction of the employee ID it updates the all tables with new employee ID. This also used for the deleting ID as well. ID Delete control component contains the exclusion list of the records.
7) Delete ERN Process - HR_EERCD_DEL – This process is used to delete the Employee record Number or Empl RCD of an employee.
ERN Delete Field Names Component– EMPL_RCD different field names in the different records to look for. ERN Delete Exclusion List – List of the table to be excluded from the table.
ERN Delete Control – List of the message for the Exclusion list of table/ field names.
8) Refresh Compensation -
HR_CMP015 – Process to refresh the compensation. Refresh multiple worker compensation packages with current default values, and print a report that displays the new and previous compensation data of the impacted workers. It executes the process executes the same steps as the Default Pay Components button on the Compensation page.
Language Preference in Configuration Manager
Issue:
Users trying to access App Designer in Japanese language & it resulted in some Junk characters. Language Preference was set correctly.
Solution:
After analysis found that "East Asian Languages" were not installed on the NT Server [ Install files for East Asian languages is UnChecked ], installing this resolved the issue.

