Thursday 29 November 2007

Pay Rates on Compensation page dont appear

Check to ensure
a) Companies in COMPANY_TBL have COUNTRY field filled in
b) DFLT_FREQUENCY table is populated for the COUNTRY linked to the COMPANY on JOB record.

Tuesday 13 November 2007

Workflow emails:link redirection after signon


With PeopleTools 8.4x onwards, the enableDirectLink property is no longer required. This means that when a user clicks on a link from a workflow email, peoplesoft should redirect user to the linked page automatically. This should happen even if the user is not logged on and has to enter userid and password on usual signon page. However, for this to happen, the "Allow Public Access" checkbox must be unchecked on the Web Profile that is currently being used.

Wednesday 18 July 2007

CI_JOB_DATA_HIRE component interface no longer available in 8.9

CI_JOB_DATA_HIRE component interface no longer available in 8.9

The CI for JOB_DATA_HIRE is no longer available from version 8.9 onwards. PeopleSoft's Hire process has changed and now uses 2 components therefore it is not possible to have one single CI to hire employees. The solution is to use CI_PERSONAL_DATA and CI_JOB_DATA_EMP. However, the drawback is that you need to know the EMPLID that has been generated by first CI. The solution is to use a global variable and set it when new EMPLID is assigned.

Monday 11 June 2007

Business Unit & SetIDs

From PeopleSoft ver 7.5 onwards, PeopleSoft has been providing the functionality of Business Units and SetIDs. The two elements provide greater flexibility and functionality in terms of not only managing the organisation structure but also in terms of managing and sharing setup data (i.e. departments, job codes, absence codes, locations etc). Further, the Business Units can be used for row level security i.e. to provide access to one or more business units to individual permission lists within PeopleSoft.

Business Units

Business Units represent logical units within your organization. They can be used for organisation structure and reporting purposes. By using Business Units, one can group employees by administrative organisation structure (i.e. for HR purposes) or actual business structure (i.e. Org Structure). Business Units may be, for example, companies, agencies, subsidiaries, divisions, departments, or branch offices within your organization. Alternatively, you may choose to have a single Business Unit which represents your entire organization.


TableSets and SetIDs

Once Business Units have been defined, you can define TableSets, or groups of tables, for your setup/control tables, so that you can share the same code values across more than one Business Unit within your organisation. Additionally, the TableSet feature also allows you to restrict access to specific data to only those users who need it, while storing all of your data on the same tables. This flexibility enables organisation to centralise common data / information whereas the other data/information can be decentralised i.e. Departments, Job Codes, Absence Types etc. A Business Unit is then associated with employee's Job record in the organisation and using Business Unit, you can specify how the defaults for currencies and country codes will work.

Where a Business Unit organizes your company or your organization, SetIDs help you organize your data within the system. The HRMS system uses tables (Control Tables or Prompt Tables) that use a high-level key that enables you to identify and retrieve data from the system. A secondary high-level key, referred to as a SetID, has also been added on various tables. SetIDs are simply the labels used to identify a TableSet. Business Unit and SetID functionality in PeopleSoft HRMS also provides you with a higher business level for reporting purposes and other business data roll-up.

Tuesday 29 May 2007

Copy Missing Departments after Tree Copy

Since Copying a Tree via App Designer doesnt copy the department records in DEPT_TBL, the tree and department table may become out of sync. Here is a little SQl to copy Department records in DEPT_TBL once you have copied the Tree. The SQL is for SQL Server platform and relies on database links.


INSERT INTO PS_DEPT_TBL
SELECT B.* FROM PSTREENODE A, HCMPRD88.dbo.PS_DEPT_TBL B
WHERE A.TREE_NAME = 'DEPT_SECURITY'
AND A.EFFDT = '2006-01-01'
AND NOT EXISTS (SELECT 'X' FROM PS_DEPT_TBL
WHERE A.TREE_NODE = DEPTID)
AND A.TREE_NODE = B.DEPTID


In version 8.8 and abover, PeopleSoft provides a web based page to export and import Tree. This can be accessed via -Company Hierarchy, Administer Tree, Copy/Delete Tree.

Monday 21 May 2007

Role, Permission List that contain a Page

select A.CLASSID , B.CLASSDEFNDESC, C.ROLENAME, D.DESCR
FROM PSAUTHITEM A, PSCLASSDEFN B, PSROLECLASS C, PSROLEDEFN D
WHERE A.PNLITEMNAME = 'COMPETENCY_TABLE'
AND A.CLASSID = B.CLASSID
AND A.CLASSID = C.CLASSID
AND C.ROLENAME = D.ROLENAME

Friday 30 March 2007

App Engine - No Success, All Processing Suspended


E-AE: All Processing Suspended: Restart OPRID=PS, RUNID=RUN01, PI=6368

SOLUTION 200738047; E-AE: All Processing Suspended: Restart OPRID=PS, RUNID=RUN01, PI=6368 (108,503)

Specific To:
Enterprise PeopleTools Any Release.

ISSUE:

Customer runs AE program via App Designer run button for Application Engine programs, in PT 8.4x. The program runs in DOS. and received this message in the log;


All Processing Suspended: Restart OPRID=PS, RUNID=RUN01, PI=6368 (108,503)
Message Set Number: 108
Message Number: 503
Message Reason: All Processing Suspended: Restart OPRID=PS, RUNID=RUN01,PI=6368 (108,503)

What is this about and what should be done?

This error can also occur when Application Engine programs are restartable and run via the Process Scheduler, and the last run was No Success - And an attempt re-run, rather than re-start will produce error as well.

RESOLUTION:

The cause of this message is that previously this same AE program was run using the same OPRID=PS & RUNID=RUN01. It was not Successful on initial run, and now an attempt to RUN the same program has occurred, instead of an attempt to RESTART the original that failed.

This message happened while the Customer was in Development phase of this AE program. It could have happened when this AE was in Production as well. However, what to do would have completely different emphasis depending on if this happens in Development or Productions.

During the development cycle, we would expect that this AE would have to run many times before it runs to Successful completion as we expect. So there could be a good number of times this would need to run, and most likely not all will be Successful. Have two choices here, 1) Use a different run control each time, ie, RUN02, RUN03, RUN04 etc. or 2) Remove the row from PS_AERUNCONTROL like this;

DELETE FROM PS_AERUNCONTROL WHERE PROCESS_INSTANCE=6368

This will free up the RUN01 run control to be used again, with same OPRID & AE program.

If this program were in Prodcution - we would NOT want to just clear out the run control! With No Success AE programs, the recommended behavior is to look at logs and/or trace files, figure out what the problem was and fix the problem. Then do a Restart of the same Process Instance. This should be done via the Process Monitor, if the program ran through a Process Scheduler, and if the AE program was run outside the Process Scheduler, be sure the psae command parameters include the same OPRID RUNID & -I PROCESS_INSTANCE as was the original run - This will cause the program to start where it left off, and once the program goes to Success, the row is removed from PS_AERUNCONTROL automatically.

Choose the approapriate action for the environment.

Monday 26 March 2007

SQL Scripts to extract data after Project Compare

Here are some SQL scripts to extract data from PeopleSoft Meta tables after running Project Compare. This is to provide summary level of changes that has been carried out and doesnt replace the actual compare reports. The scripts assume that the Source database is the development/production database and Target database is the Demo database.

-- RECORDS ABSENT in Target DB i.e. New records added
select OBJECTVALUE1 FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 0 -- record
AND OBJECTID1 = 1
AND OBJECTID2 = 0
AND TARGETSTATUS = 1 -- absent



-- RECORDS Customised in Source
select OBJECTVALUE1 FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 0 -- record
AND OBJECTID1 = 1
AND OBJECTID2 = 0
AND TARGETSTATUS in (2,3) -- changed, unchanged
AND SOURCESTATUS IN (4) -- * Changed
AND EXISTS (SELECT 'X' FROM PSPROJECTITEM
WHERE A.PROJECTNAME = PROJECTNAME
AND A.OBJECTVALUE1 = OBJECTVALUE1
AND OBJECTTYPE = 0 -- record
AND OBJECTID2 = 2 -- field within the record
AND TARGETSTATUS IN (1,2,3) -- absent, changed, unchanged
AND SOURCESTATUS IN (4) -- * Changed
)


select * FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTID2 = 2
AND OBJECTVALUE1 = 'COMPENSATION'


-- Custom Added Pages
select OBJECTVALUE1 FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 5
AND OBJECTID1 = 9
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS = 1 -- absent
AND A.OBJECTVALUE1 NOT LIKE '%OLD'
AND NOT EXISTS (SELECT 'X' FROM PSPNLFIELD B
WHERE A.OBJECTVALUE1 = B.PNLNAME
AND B.RECNAME NOT LIKE 'ORG%')



-- Customised PS delivered pages
select OBJECTVALUE1 FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 5
AND OBJECTID1 = 9
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS in (2,3) -- changed, unchanged



-- Custom Added Comp PeopleCode
select DISTINCT
OBJECTVALUE1, OBJECTVALUE2--, OBJECTVALUE3, OBJECTVALUE4
FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE IN (46, 48)
AND OBJECTID1 = 10
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS = 1 -- absent

-- Custom Added Page PeopleCode
select --DISTINCT
OBJECTVALUE1, OBJECTVALUE2 FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 44
AND OBJECTID1 = 9
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS = 1 -- absent



-- Custom Added Record PeopleCode
select DISTINCT
OBJECTVALUE1--, OBJECTVALUE2
FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 8
AND OBJECTID1 = 1
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS = 1 -- absent
AND OBJECTVALUE1 LIKE 'ORG%'



-- Customised Comp PeopleCode
select --DISTINCT
OBJECTVALUE1, OBJECTVALUE2, OBJECTVALUE3, OBJECTVALUE4
, CASE WHEN TARGETSTATUS = 1 THEN 'NEW' ELSE 'CHANGED' END STATUS
FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE IN (46,48)
AND OBJECTID1 = 10
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS In (1,2,3) -- changed, unchanged
and OBJECTVALUE1 NOT LIKE 'ORG%'


-- Customised Page PeopleCode
select --DISTINCT
OBJECTVALUE1, OBJECTVALUE2
, CASE WHEN TARGETSTATUS = 1 THEN 'NEW' ELSE 'CHANGED' END STATUS
FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 44
AND OBJECTID1 = 9
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS in (1,2,3) -- changed, unchanged
and OBJECTVALUE1 NOT LIKE 'ORG%'


-- Custom Added Record PeopleCode
select DISTINCT
OBJECTVALUE1, OBJECTVALUE2, OBJECTVALUE3
, CASE WHEN TARGETSTATUS = 1 THEN 'NEW' ELSE 'CHANGED' END STATUS
FROM PSPROJECTITEM A
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
AND OBJECTTYPE = 8
AND OBJECTID1 = 1
AND SOURCESTATUS in ( 4, 5) -- * Changed
AND TARGETSTATUS IN ( 2,3) -- changed, unchanged
and OBJECTVALUE1 NOT LIKE 'ORG%'


SELECT * FROM PSPROJECTITEM
WHERE PROJECTNAME = 'ORG_DMO_COMPARE'
-- AND OBJECTTYPE = 5
and OBJECTVALUE1 LIKE 'ABSV_REQUEST'

Wednesday 21 March 2007

Upgrade - Upgrading 2 versions in one go

There are occassions when PeopleSoft doesnt provide a direct upgrade path from one version to another i.e. 7.5 to 8.8 or 8.3 to 9.0. PeopleSoft suggests that such installations require two upgrades in one go, i.e. from 7.5 to 8.3 and 8.3 to 8.8 or 8.3 to 8.9 and 8.9 to 9.0 in my examples. However, what PeopleSoft doesnt warn you about any special care when performing such upgrades. All PeopleSoft provides is the documentation to upgrade from one version to another.

However, from experience, we have found this to be a process that requires special attention. As you are aware that upgrades require 2 passes i.e. first 'initial-upgrade', using a copy of live database, and then 'move to live'. When you perform the 2nd pass i.e. 'move to live' upgrade, it requires the copy of database on which you performed the 'initial' pass. Now consider a situation where you performed 'initial' upgrade on a 7.5 database to move to 8.3 and then you performed 'initial' pass to upgrade the same database to 8.8. When you come to performing you 'move to live' pass from 7.5 to 8.3, you dont have a copy of database that is on version 8.3.

Therefore, it is quite important that you keep a copy of database, in working order, before moving to the next version.

Also, sometimes it may be easier to re-implement rather than upgrading 2 versions. However, it all depends on the usage of PeopleSoft and the complexity involved.

Finding which Crystal Reports use a PeopleSoft Query

When you modify a query that is used by one or more Crystal Reports, you need to ensure that all Crystal Reports are updated so that they run correctly when submitted via the client session. However, PeopleSoft doesn't provide a way to search the relationship between its Query object and Crystal reports i.e. it is not possible to find out which crystal reports use a specific PeopleSoft query.

The only way I have found is to do a file search on the crystal folder (usually PS_HOME\crw), and search for all .rpt files containing the query name. However, one important thing to note is that though this works on Windows 2000 server, I have not been able to do this on an XP professional machine.

Monday 19 March 2007

Can you control which users have password controls?

ISSUE:
Can you control which users have password controls?

SOLUTION:
Not as delivered. Password controls affect all users. An enhancement request has been created for this issue and is tracked by incident 1111500000. This solution will be updated when this enhancement is completed.

WORKAROUND:
As a workaround all you can do is customize the Password Controls so they will not affect a user like 'PS'. Some customers use PS to start the app server. Starting the app server is a two-tier process so as long as that is all they are doing they will not be affected by password controls (password controls like Max logon attempts and expire only work in three tier and PIA). The problem is that even if this user cannot logon via 3-tier there is a chance their account could get locked out by possible misuse of someone attempting to logon as that user id.

To have a user's password never expire but still be controlled by the max logon attempts you can do the following:

update PSOPRDEFN set LASTPSWDCHANGE = '2010-12-31' where OPRID = 'what ever User ID you want'

You would make the LASTPSWDCHANGE in PSOPRDEFN a future date and then the password would never get this error. This is good if you create default users to run daily processes.

Remember that any change through the back-end will require you to recycle the app server cache.

To exclude certain users from the signon PeopleCode password controls completely here is what you have to do:

1) In Application Designer open the record called FUNCLIB_PWDCNTL and view the peoplecode.

2) Open the FieldChange PeopleCode and add the following right under the line called:

Function PASSWORD_CONTROLS ( );

rem this is a customization to exclude users from password controls;

If %SignonUserId = "VP1" Or
%SignonUserID = "GUEST" Then

Exit;

End-If;

3) Save & test the new code

Remember that any changes to delivered code is considered a customization and you will want to track these changes incase of updates or fixes.

REPORT ID:
1111500000 - Enhancement request has been reported to development

The above solution has been copied from PeopleSoft customer connection.

Upgrade Paths to HCM/HRMS 9.0

Customer Connection link for Upgrade paths to HCM/HRMS 9.0

Monday 5 March 2007

nVision on PeopleTools 8.1x and 8.4x

This post deals with the nVision problem whereby the nVision process request fails with message "Process request status of initiated or processing but no longer running". Here is a link on PeopleSoft Customer Connection which talks about the issue and the configuration required to ensure nVision is setup correctly.

http://www.peoplesoft.com/psp/portprd/CUSTOMER/CRM/c/C1C_MENU.C1_SOLN_SUMMARY.GBL?page=C1_SOLN_SUMMARY&SETID=SHARE&SOLUTION_ID=200733714