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

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_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.
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).