Oct 13 2011

Public synonyms

Category: PeopleSoft Tipsskonduri @ 6:55 pm

 

 

 

 

 

 

 

 

 

 

 

 

Purpose

To create public synonyms for custom tables for accessing them without the schema name reference in the query. The level of access to these records in different environments should be discussed before we proceed further. In this document we have a few scripts provided as solution to avoid the public synonyms issue.

 Problem

Developers are unable to access custom objects created in application designer using an external SQL tool like SQL Developer or SQL Plus. This external access is required by the developer to write/update/test. Example as below.

Table name – ps_dr_cerdn_fsa_bk

 Solution  

Public Synonyms and appropriate read/write privileges to these objects will allow the developers to access the objects without a schema reference 

Additional points to be considered 

1)     We need to run the script for all the non production environments after database refresh.(script 1)

2)    Synonyms and grants need to be done when a new custom object is created.

3)    Psreadonly and psreadwrite are the roles in non-production environment.

4)    The pre requisite is to check if Psreadonly and psreadwrite group is present or else please suggest one.

5)    Psreadonly role should be used for production environment.

Script to create public synonyms-1

This script will create public synonyms for all the tables.

The disadvantage is, we will be creating public synonym for all the records and it will generate a huge script.

SPOOL C:\TEMP\Synonym_script.sql;

SET LINESIZE 200;

SET PAGESIZE 0;

SET ECHO OFF;

 SELECT distinct ‘CREATE OR REPLACE PUBLIC SYNONYM ‘ || OBJECT_NAME || ‘ FOR SYSADM||’.’ || OBJECT_NAME || ‘;’

FROM all_objects where

object_type not in (‘TABLE PARTITION’,'LOB’,'INDEX’ )

 and object_name not like ‘%$%’ and owner=’SYSADM’

and owner=’SYSADM’ ;

 SELECT ‘GRANT SELECT ON SYSADM.’||OBJECT_NAME||’ TO PSREADONLY;’ FROM all_objects

Where object_type not in (‘TABLE PARTITION’,'LOB’,'INDEX’ )  and

object_name not like ‘%$%’ and owner=’SYSADM’

and owner=’SYSADM’ ;

 SELECT ‘GRANT SELECT, INSERT, UPDATE, DELETE ON SYSADM.’||OBJECT_NAME||’ TO PSREADWRITE;’

FROM all_objects where

object_type not in (‘TABLE PARTITION’,'LOB’,'INDEX’ )  and

object_name not like ‘%$%’ and owner=’SYSADM’

and owner=’SYSADM’ ;

 SPOOL OFF;

Script for a grant read-2

 This will grant read only access to the entire users who have the role psreadonly.

 GRANT SELECT ON SYSADM. ps_dr_cerdn_fsa_bk TO psreadonly;

 

Script for a grant read\ write-3

This will grant read\write access to the entire users who have the role psreadwrite.

 GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM. ps_dr_cerdn_fsa_bk TO psreadwrite;

 Script for a new custom project-4

 After completing each project which includes creation of new tables the developer will run the script below to avoid the synonyms issue. This can be done only for the future projects. Example of a project which had 10 newly created records.

 SPOOL C:\TEMP\CIS_FIN3249_PRJ_Synonym_script.txt;

SET LINESIZE 200;

SET PAGESIZE 5000;

SET ECHO ON;

SELECT * FROM PSDBOWNER;

 SELECT TO_CHAR(SYSDATE, ‘DD-MON-YY HH:MM AM’) “RUN DATE/TIME” FROM DUAL;

 –**********************************************************************

–***********************************************

 –For <Project Name> – ******** <Description>.

–***********************************************

 CREATE PUBLIC SYNONYM PS_CIS_NTS_CHARGE FOR SYSADM.PS_CIS_NTS_CHARGE;

CREATE PUBLIC SYNONYM PS_CIS_NTS_MONHDR FOR YSADM.PS_CIS_NTS_MONHDR;

CREATE PUBLIC SYNONYM PS_CIS_RUN_SIPX_LD FOR SYSADM.PS_CIS_RUN_SIPX_LD;

CREATE PUBLIC SYNONYM PS_CIS_SIP_OLD_QTY FOR SYSADM.PS_CIS_SIP_OLD_QTY;

CREATE PUBLIC SYNONYM PS_CIS_SIP_STG_DTL FOR SYSADM.PS_CIS_SIP_STG_DTL;

CREATE PUBLIC SYNONYM S_CIS_SIP_STG_ERR FOR SYSADM.PS_CIS_SIP_STG_ERR;

CREATE PUBLIC SYNONYM PS_CIS_SIP_STG_HDR FOR SYSADM.PS_CIS_SIP_STG_HDR;

CREATE PUBLIC SYNONYM PS_NTS_TIERS_HDR FOR SYSADM.PS_NTS_TIERS_HDR;

CREATE PUBLIC SYNONYM PS_CIS_NTS_CUSTPRC FOR SADM.PS_CIS_NTS_CUSTPRC;

CREATE PUBLIC SYNONYM PS_NTS_TIERS FOR SYSADM.PS_NTS_TIERS;

GRANT SELECT ON SYSADM.PS_CIS_NTS_CHARGE TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_NTS_MONHDR TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_RUN_SIPX_LD TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_SIP_OLD_QTY TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_SIP_STG_DTL TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_SIP_STG_ERR TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_SIP_STG_HDR TO psreadonly;

GRANT SELECT ON SYSADM.PS_NTS_TIERS_HDR TO psreadonly;

GRANT SELECT ON SYSADM.PS_CIS_NTS_CUSTPRC TO psreadonly;

GRANT SELECT ON SYSADM.PS_NTS_TIERS TO psreadonly;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_NTS_CHARGE TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_NTS_MONHDR TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_RUN_SIPX_LD TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_SIP_OLD_QTY TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_SIP_STG_DTL TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_SIP_STG_ERR TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_SIP_STG_HDR TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_NTS_TIERS_HDR TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_CIS_NTS_CUSTPRC TO psreadwrite;

GRANT SELECT,INSERT,UPDATE,DELETE ON SYSADM.PS_NTS_TIERS TO psreadwrite;

 Commit;

SPOOL OFF;

 

Tags:


Sep 15 2011

Drivestream Hosts Webinar on PeopleSoft AWE – Self-management Tool to Modify Workflows

Category: Application Engine,PeopleToolsArun Kailasam @ 9:10 pm

Drivestream ‘s PeopleSoft consultants will be presenting a webinar on PeopleSoft Application Workflow Engine which includes capabilities of AWE and how it has revolutionized approval processes handling, thus enabling end users to manage workflows on their own.

The webinar will start with a broad introduction to Approval Workflow Engine and how it is used in workflow approval processes. The quick introduction will be followed by a detailed demonstration of steps involved in creating an AEW transaction. The AWE has completely eliminated this dependency and empowers end users (functional user, client, end user) to modify workflows on their own and it is used by more than 25 applications within PeopleSoft.

This webinar aims at providing PeopleSoft users a way to bring down their PeopleSoft support costs and eliminate the dependency on technical developers and the associated cost.

The Webinar on PeopleSoft Application Workflow Engine will be presented on 6 October, 2011 at 3 p.m. IST.

Click here to register for the webinar

Tags: , , , ,


Jul 14 2011

AWE – eMail Template SQL Object(s)

Category: PeopleSoft Tipsskonduri @ 3:29 pm

You must create SQL Object(s) if you wish to use binds values in your email notifications.

Below is an example of how a SQL object can be created to populate an email template:

SELECT A.TRANSACTION_NBR

,A.EMPLID

,B.NAME

,A.TRANS_DT

FROM PS_EXP_RPT_HDR A

,PS_PERSON_NAME B

WHERE A.EMPLID = B.EMPLID

AND A.LINEID =:2

In this example, the AWE will look to populate the %2 bind with TRANSACTION_NBR, the %3 bind with EMPLID, the %4 bind with NAME, and the %5 bind with TRANS_DT. Also note the “:1” bind in the where clause of the SQL Object. It is  mandatory requirement to have all of the keys from your header record (or line level record depending on the notification) bound into the where clause. The AWE uses the header record keys to retrieve the correct row from the SQL Object.

Tags: ,


Jul 05 2011

PeopleSoft – Remedy Integration

Category: Drivestream CaseletsArun Kailasam @ 12:16 pm

Client: Leading Healthcare Solutions Provider

Solution: PeopleSoft – Remedy Integration

The client was a leading Healthcare Insurance, Medicare and Medicaid Programs provider and they wanted to integrate their existing PeopleSoft system with the Remedy, IT service management suite, to synchronize and get single source of truth of their asset information. The Drivestream team studied the client’s complex business processes to understand the data flow between the Remedy and their PeopleSoft system and proposed an auto-trigger dual integration program, which would run as a part of night job. The team configured PeopleSoft integration broker to send and receive data from the Remedy system and also built a process to segregate the valid data in PeopleSoft that has to be sent across to the Remedy system. The systems were seamlessly integrated and the client was able to get a holistic view of their asset information.

Tags: , , ,


Jun 14 2011

Menu Items Not Getting Displayed in PeopleSoft PIA Page

Category: PeopleSoft Securitysuryaprakash @ 5:26 pm

In the PeopleSoft PIA page, some of the menu items might not get displayed due to it’s expire date – ’2010-12-31′. This issue can be tackled by following the below mentioned steps,

  • Run the below script to update the PORTAL_EXPIRE_DT

  update PSPRSMDEFN set PORTAL_EXPIRE_DT=’2099-12-31′ WHERE PORTAL_EXPIRE_DT=’2010-12-31′

  SELECT PORTAL_EXPIRE_DT from PSPRSMDEFN where PORTAL_EXPIRE_DT <> ’2099-12-31′

  • In the PIA page, goto PeopleTools–>Portal–>Portal Security Sync and enter the new Run Control ID and run the process

After the sucessful run of the process,

  • Restart the process scheduler, the application server and the web server
  • Clear the cache and the browser cache

All the menu items  in the PIA page will get displayed.

Tags: , , , ,


Jun 14 2011

E-UPG Alter Error: Unable to Retrieve Current DDL Space. Alter Processed Failed. (76,47)

Category: PeopleSoft Upgradesuryaprakash @ 5:24 pm

An Alter process during the Tools Only Upgrade  failed with the following error:

ERROR:
————
SQL Build process began on 3/17/2004 at 4:06:26 PM for database ****.
Error: ACCESS_GRP_LANG – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: AE_SYNCGEN_AET – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: AELOCKMGR – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: AERUNCONTROL – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: AERUNCONTROLPC – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: AETEMPTBLMGR – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: APPMSGARCH_AET – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: APPR_HDR_LNG – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)
Error: APPR_RULE_HDR – Unable to retrieve current DDL space name.  Alter processed failed. (76,47)
Error: Fatal error in function BldAlter on call to function GetOldRecDefn.  Return code = 1. (76,6)

SOLUTION:
————–  
In the PSSTATUS table, the OWNERID column data was in lowercase. When the data got converted into upper case, the error got resolved and the Alter script ran without any issues.

Tags: , , ,


Jun 03 2011

Changing the Userid When Triggering the Subscription PeopleCode

Category: PeopleSoft TipsVijay @ 1:19 pm

The IntBroker(IB) Class method: SwitchAsyncEventUserContext can be used to change the context of the peoplecode running inside the subscription peoplecode. This has to be used by IB only (Checks are available to validate it) and can only be used for IB events that are fired asynchronously (OnRoute, OnSend, OnNotification, etc.). One use case would be, if someone is submitting a process request from a self-service user id and they do not want to give access to query security to each users who are triggering the message. This method is added in PT 8.50 and is not available for lower tools release.

For more information use: E-IB: User Security required on target db for asynchronous messages in 8.48.0x [ID 654592.1]

PeopleBook definition for this method is as follows:

SwitchAsyncEventUserContext

Syntax
SwitchAsyncEventUserContext(UserID, LanguageCode)
Description
Use the SwitchAsyncEventUserContext method to switch the user context within an Integration Broker asynchronous event
Parameters
UserID
Specify the user ID as a string, to which the context has to be  switched.
LanguageCode
Specify the language code, as a string for the user ID
Returns
A Boolean value: true if the switch user was successful, false otherwise.
Example
&returnValue = %IntBroker.SwitchAsyncEventUserContext(“VP1″, “ENG”);

Tags: , , , ,


Jun 03 2011

ExcelToCI Error Occurred in Routine sendSOAPRequest_SubmitToDB: The Operation Timed Out

Category: PeopleSoft TipsVijay @ 1:16 pm

When I was trying to upload about 7000 rows using ExcelToCI for a custom component, i was getting  the following error,

Error occurred in routine sendSOAPRequest_SubmitToDB:
Error:
Number: 2147012894
Description: The operation timed out

After checking the web server and appserver access log, I found the following issues and i have followed the following steps to resolve the issues,

1.I have found that ExcelToCI uses SERVERXMLHTTP MSXML 6.0 object to send the SOAP request to the webserver,
Set xHTTP = CreateObject(“MSXML2.SERVERXMLHTTP.6.0″)
This request had a default 30 second timeout for receiving a packet of response data from the target server,
Check the link : http://msdn.microsoft.com/en-us/library/ms760403 for more details on timeouts.

2. After checking the webserver access log (PIA_Access.log), i have observed that some of the POST requests are taking about 59 seconds to complete and hence the error was occurring.

To resolve this issue, i have changed the VB Macro code in ExcelToCI spreadsheet as follows

=======================================================

Added  this line before xHTTP.send xDoc.xml in Staging And Submission Module under function sendSOAPRequest_SubmitToDB
Dim lResolve, lConnect, lSend, lReceive As Long
lResolve = 60 * CLng(1000)
lConnect = 90 * CLng(1000)
lSend = 90 * CLng(1000)
lReceive = 120 * CLng(1000)

xHTTP.setTimeouts lResolve, lConnect, lSend, lReceive
=======================================================

Even after changing this value, the ExcelToCI was still failing.  Once again I checked the web server & appserver log and found that after loading about 50 to 60 rows, request is taking more than five minutes to respond and appserver is killing the appserv thread and therefore I was getting the error ‘The Operation timed out’.

To overcome the issue,one can increase the XMLHTTP timeout and also increase the appserver timeout or find out why a request is taking more than 5 minutes to complete. Using Precise i3 performance monitoring tool and also the live Oracle session, I have found out the following issues,

1. Component Interface was firing sql to fetch location code description, using a view that was not correctly joined with other large table using location code.

2. A Save Edit Peoplecode was written at Level 2 to fetch some data from the Oracle table using SQL Exec. This was causing this sql to fire 160,000 times as it was firing for every row in the scroll as new rows are being added.

I have followed the below steps to improve the performance

  • Removed the related display field from the page. Alternative option was to tune the sql for related display field.
  • Moved the save edit code to field edit, so that it fires only for the newly inserted rows. Alternative option was to write conditional logic to see if row is changed.

After the above changes, the process finished inserting 7100 rows in 23 minutes. Only two request exceeded the default timeout. One took 32 seconds to respond while the other 35 seconds.

I have also noticed that if chunking factor is reduced to 1 to have smaller number of rows processed, PSAPPSRV is restarting due to recycle count of 5000 being reached, and this results in a login Error and HTML (invalid XML) data is being sent to the excel. The only solution to this issue is to increase the recycle count temporarily and change it back to original. Fortunately this parameter is dynamic and does not require restarting the appserver.

Tags: , , , , , , ,


Jun 03 2011

Application Engine Program: PSPAL::Abort: Unexpected Signal Received

Category: PeopleSoft TipsVijay @ 1:10 pm

When we create an Application Engine program which refers to a State Record, and migrate it to other environment without migrating the State Record, it will get migrated successfully. When we try to run this program on the Batch Server, the following error message will appear.

Record XYZ not defined (108,505)
1341: 1301685557: PSPAL::Abort: Unexpected signal received
1341: 1301685557: PSPAL::Abort: Location: /vob/peopletools/src/pspal/exception_sigaction.cpp:492: RecoverableSignalHandler
1341: 1301685557: PSPAL::Abort: Generating process state report to /xxx/xxx/scripts/LOGS/psae.1341/process_state.txt
1341: 1301685557: PSPAL::Abort: Terminating process now.

In Windows
2564: 1301686035: PSPAL::Abort: Unrecoverable exception received
2564: 1301686035: PSPAL::Abort: Location: E:\pt85010b-retail\peopletools\SRC\pspal\exception_winunhandled.cpp:577: PSPAL::UnhandledExceptionFilter::RecoverableExceptionFilter
2564: 1301686035: PSPAL::Abort: Abort diagnostics generation is currently disabled
2564: 1301686035: PSPAL::Abort: Terminating process now.
PeopleTools 8.50.10 – Application Engine

Record XYZ not defined (108,505)
Message Set Number: 108
Message Number: 505
Message Reason: Record XYZ not defined (108,505)

Solution

Copy the missing AET Record to the target database and its application engine program will work fine.

Tags: , , , , ,


Jun 03 2011

Prompt Values Specified on Add Mode Search Record is not Enforced When Using ExcelToCI

Category: PeopleSoft TipsVijay @ 1:01 pm

While creating component interface, by default it will not enforce the prompt values specified on Add search record and will allow you to enter values even though they are not valid. This issue occurs when inserting new rows using ExcelToCI as it allows the user to enter invalid values without giving any error message.

To avoid this issue, open up the Add Mode Search Record for the component and go to Record field properties for the search fields and check the Search Edit check box.  This will enforce the use of valid values when adding a new row using component interface used in ExcelToCI. By default, Search Edit is not enabled.

Below is the description of this field in PeopleBooks.

Search Edit is enabled only if Search Key is selected. Selecting this option enforces the required property and table edits on the search page. It also enforces these edits under circumstances where the search page would normally be bypassed. With this option, the user no longer has the ability to perform partial searches on this field.

Below is the MOS (My Oracle Support) link related to this issue.

E-CI: Component Interface Does Not Validate Record Edits (Against Prompt table) When Using Create [ID 664377.1]

Does Row Level Security Work in ExcelToCI? (Doc ID 972241.1)

As per the above resolution, row level security is not enforced using ExcelToCI.

Tags: , , , , ,


Next Page »