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