who is liking this Blog?

Friday, August 3, 2012

How to find the navigation of a Process


SELECT DISTINCT RTRIM( REVERSE ( SYS_CONNECT_BY_PATH(REVERSE (portal_label), ' > ')) ,' > ') PATH FROM PSPRSMDEFN
      WHERE portal_name = 'EMPLOYEE' 
        AND portal_prntobjname = 'PORTAL_ROOT_OBJECT' 
  START WITH portal_uri_seg2 IN (
                        SELECT DISTINCT pnlgrpname 
                        FROM ps_prcsdefnpnl 
                        WHERE prcsname in ('PROCESS_NAME_HERE') ) 
  CONNECT BY PRIOR portal_prntobjname = portal_objname;




Monday, May 14, 2012

Query to Find the Row Count of Tables in the Database

During upgrade this query can be quite handy to find the Row Count of tables in the database.


set linesize 999
set pages 0
set trimspool on

spool D:\row_count_FSCM88_01_bfr_upgrade.txt
-- spool D:\row_count_FSCM91_02_afr_upgrade.txt


SELECT table_name, to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from 'table_name)),'/ROWSET/ROW/C')) AS COUNT FROM DBA_TABLES WHERE table_name IN (SELECT TABLE_NAME FROM DBA_TABLES WHERE TABLE_NAME LIKE 'PS%')AND owner = 'SYSADM' GROUP BY table_name ORDER BY table_name
/


spool off

Monday, April 18, 2011

Off From Blogging

Taking Off From Blogging. Will resume later in couple of years.

Thursday, September 23, 2010

XMLP Report Generation and Download Issue

There were two issues reported by user recently related to XMLP:
1) Suddenly XMLP Reports were not getting generated
2) Also, user is not able to download the existing template

App Server Log file shows following error messages while generating an XMLP Report:
Output Xliff file: XDOException:No source available for parsing
During calling method PTRTFPocessor.generateXSL, the XDO engine throws an exception: No source available for parsing. (235,3101) (235,2304)


Trace File shows following exception message for downloading the XMLP Template:
PSAPPSRV.4931 (339) 1-334 12.37.03 0.000042 ExecuteGetAttachmentDB: lpszTblName = PSFILE_ATTDET
PSAPPSRV.4931 (339) 1-335 12.37.03 0.001462 ExecuteGetAttachmentDB: Fetching data
PSAPPSRV.4931 (339) 1-336 12.37.03 0.002891 ExecuteGetAttachmentDB: failed trying to write file
PSAPPSRV.4931 (339) 1-337 12.37.03 0.000005 ExecuteGetAttachmentDB: Data fetched
PSAPPSRV.4931 (339) 1-338 12.37.03 0.000054 ExecuteGetAttachmentDB: Finished getting file.
PSAPPSRV.4931 (339) 1-339 12.37.03 0.000027 193: If &Rtn <> %Attachment_Success And
PSAPPSRV.4931 (339) 1-340 12.37.03 0.000015 194: throw CreateException(235, 5, "Error downloading file");


The XMLP Report logging was found enabled for the environment which was creating huge files ( in /tmp/xdodebug) and have occupied most of temp space over the period of 2 months - making /tmp filesystem 100% full. This caused both the issues.

To resolve this, delete the old files created under /tmp/xdodebug folder (or whatever location is defined in your /jre/lib/xdodebug.cfg file). Also, you can choose to disable the XMLP logging by deleting the xdodebug.cfg file. Recreate the config file when you want to enable the XMLP Logging to replicate the issue - xdodebug.cfg file contains following two parameter:
LogLevel=OFF or STATEMENT
LogDir=/tmp/xdodebug

Monday, September 13, 2010

Maybe FIELDTBLS32 is not set properly

It's been such a long time since my last post - was/am too busy to post new learnings, will now try to be bit more regular :)

In Tuxedo 9.1 in PeopleTool 8.49 recently encountered with an issue where WebServer was not able to connect to the App Server - even though App Server was up. While checking the TUXLOG, following message was found:

093006.!JSH.26507.1.-2: JOLT_CAT:1198: "WARN: Forced shutdown of client; user name 'JPOOL_685'; client name ''"
093006.!JSH.26502.1.-2: JOLT_CAT:1185: "INFO: Userid: [JPOOL_683], Clientid: [] timed out due to inactivity"
093006.!JSH.26502.1.-2: JOLT_CAT:1198: "WARN: Forced shutdown of client; user name 'JPOOL_683'; client name ''"
093029.!JSH.26502.1.-2: Fldid32(PATTERN) failed for .GETALL: LIBFML_CAT:11: ERROR: Cannot find or open field table. Maybe FIELDTBLS32 is not set properly.
093029.!JSH.26507.1.-2: Fldid32(PATTERN) failed for .GETALL: LIBFML_CAT:11: ERROR: Cannot find or open field table. Maybe FIELDTBLS32 is not set properly


The issue appeared to be with the settings of FIELDTBLS32 and FLDTBLDIR32 variables in psappsrv.ubx post Tuxedo 9.1 RP 095. In order to resolve this values of these variables needs to be modified in psappsrv.ubx:

From FIELDTBLS32=tpadm to FIELDTBLS32=jrep.f32,tpadm
From FLDTBLDIR32=$TUXDIR\udataobj to FLDTBLDIR32={$TUXDIR}/udataobj


*** make sure to use the correct "/"
*** There are two places in psappsrv.ubx where these changes are required to be made. Reconfigure and restart the AppSrv domain.

Thursday, October 15, 2009

Oracle Open World 2009

Today is the last day of Oracle Open World 2009. Some exciting bloggers have taken time to keep us updated on this. You may wish to visit them for sure:

Grey Sparling Blog
Graham's PeopleSoft Blog
PeopleSoft Corner Blog
PeopleSoft Wisdom
Arun Gupta's Miles to go...
Official Oracle OpenWorld Blog

Monday, October 12, 2009

App Server boot problem - PSCLOCK

Last week I faced an issue while trying to boot the application server. I checked for all the common things that could have caused the problem like password, connectivity, path etc. But everything looked well. I configured the app server for SQL trace and issued the boot command.

From trace file, it was observed that the app server boot was stuck up at SELECT CURRENT TIMESTAMP FROM PSCLOCK command. While issued the command SELECT * FROM PSCLOCK, PSCLOCK table was found blank and was responsible for this problem.

I imported PSCLOCK table from another environment and started the app server to success.

Incidentally, the reason for how data from PSCLOCK table have been deleted was not identified.

Wednesday, June 3, 2009

PeopleTools 8.50 RVP Available

FYI, Oracle has made available PeopleTools 8.50 RVP (Release Value Propositions) - Click Here to read the Oracle blog.

Some notable PeopleTools 8.50 Enhancements are:

  • Partial Page Refreshes using AJAX technology
  • Menu Navigation (menu 2.0) by providing a new AJAX-enabled left navigation menu pagelet
  • Search Page Enhancements by providing an option to specify the maximum number of rows returned
  • Change Assistant enchancement by allowing parallel file deployment
  • Extending Support for 64-bit Technology by providing supports to only 64-bit Operating Systems
  • Securing Server Based File Directories by de-coupling PS_HOME so that executables, logs, and configuration files will no longer be contained in the same place
  • Number of exciting new enhancements in Integration Broker

There are n number of interesting enhancement in PeopleTools 8.50... For complete information - read Oracle blog here

Thursday, May 28, 2009

PROCESS GROUP

Process group is crucial in securing the processes and jobs in the system. It is possible to restrict access to certain processes within PeopleSoft by establishing process groups. A batch process is assigned a 'Process Group' when created. That 'Process Group' is then linked to a permission list (PL). The PL is then assigned to a 'Role' and, subsequently, to a USERID. Process groups are collections of process definitions that you create using PeopleSoft Process Scheduler.
Navigations to Assign a Process to a Process Group:
PeopleTools -> Process Scheduler -> Processes -> Process Definition Option Tab -> Process Security section
Navigations to Assign a Process Group to a Permission List:
PeopleTools -> Security -> Permissions & Roles -> Permission -> Process tabs -> Process Group Permissions

Users can run only the processes that belong to process groups assigned to their roles. For example, you may have a set of process definitions that relate to your Human Resources department and another set for your Manufacturing department. If process 'P1' is in the process group 'PG1' and any of the Permission List (PL) of the user, say 'USER1', does not have access to that process group 'PG1' - then - that user 'USER1' cannot run the process 'P1'. A process definition can be a member of multiple process groups.

The process group are not stored in any setup table of its own. They are stored in the table - PRCSDEFNGRP and PRCSJOBGRP (where process and job definitions are stored). If you look at the prompt for PRCSGRP field in those tables, it is a 'PROMPT WITH NO EDIT' - It means, you can keep adding new Process groups on the fly, on process and job definition components. You may want to execute below queries for better understanding:
select * from PS_PRCSDEFNGRP
select * from PS_PRCSJOBGRP

Wednesday, May 27, 2009

PsCIA - PeopleCode & File Pre-Processors

DDL for Tables created by PeopleCode & File Pre-Processors:

You must run the PeopleCode pre-processor to generate the database tables that Change Impact Analysis reads and analyzes.

The PeopleCode pre-processor generates two tables:
• PSCIAPCXREF
• PSCIAPCXREFTIME

You must have permission to create, delete from and write to these files. If you have full privileges, you can create these files prior to using Change Impact Analyzer.

****************************************************************************************************************
Note. Database administrators may consider assigning user IDs and passwords that grant read-only access to the database. However, users need create and write access to these work tables used by Change Impact Analyzer.
****************************************************************************************************************

The File Pre-processor generates the following database tables that Change Impact Analysis reads to perform analysis.
• PSFILEPROCESSRUN
• PSSQLXREFDEFN
• PSSQLXREFITEM
• PSFILESQLXREFDEFN
• PSFILEXREFDEFN

Note. You must have permission to create, delete from and write to these files. If you have full privileges, you run the pre-processor and create these files beforehand. DDL for above tables for DB2/Unix, DB2/OS390:

-- Table 1 - PSCIAPCXREF

CREATE TABLE OWNERID.PSCIAPCXREF (
PROGSEQ INT NOT NULL
,REFOBJECTID1 SMALLINT NOT NULL
,REFOBJECTVALUE1 CHAR(60) NOT NULL
,REFOBJECTID2 SMALLINT NOT NULL
,REFOBJECTVALUE2 CHAR(60) NOT NULL
,REFOBJECTID3 SMALLINT NOT NULL
,REFOBJECTVALUE3 CHAR(60) NOT NULL
,REFOBJECTID4 SMALLINT NOT NULL
,REFOBJECTVALUE4 CHAR(60) NOT NULL
,REFOBJECTID5 SMALLINT NOT NULL
,REFOBJECTVALUE5 CHAR(60) NOT NULL
,REFOBJECTID6 SMALLINT NOT NULL
,REFOBJECTVALUE6 CHAR(60) NOT NULL
,REFOBJECTID7 SMALLINT NOT NULL
,REFOBJECTVALUE7 CHAR(60) NOT NULL
,OBJECTID1 SMALLINT NOT NULL
,OBJECTVALUE1 CHAR(60) NOT NULL
,OBJECTID2 SMALLINT NOT NULL
,OBJECTVALUE2 CHAR(60) NOT NULL
,OBJECTID3 SMALLINT NOT NULL
,OBJECTVALUE3 CHAR(60) NOT NULL
,OBJECTID4 SMALLINT NOT NULL
,OBJECTVALUE4 CHAR(60) NOT NULL
,OBJECTID5 SMALLINT NOT NULL
,OBJECTVALUE5 CHAR(60) NOT NULL
,OBJECTID6 SMALLINT NOT NULL
,OBJECTVALUE6 CHAR(60) NOT NULL
,OBJECTID7 SMALLINT NOT NULL
,OBJECTVALUE7 CHAR(60) NOT NULL
)
IN

-- Table 2 - PSCIAPCXREFTIME
CREATE TABLE OWNERID.PSCIAPCXREFTIME (
LASTRUN CHAR(120)
)
IN

-- Table 3 - PSFILEPROCESSRUN
CREATE TABLE OWNERID.PSFILEPROCESSRUN (
LASTREFRESHDTTM TIMESTAMP
,FPPSTATUS CHAR(10) NOT NULL
)
IN

-- Table 4 - PSSQLXREFDEFN
CREATE TABLE OWNERID.PSSQLXREFDEFN (
XREF_ID CHAR(128) NOT NULL
,XREF_SQLTYPE CHAR(1) NOT NULL
,DBTYPE CHAR(1) NOT NULL
,XREF_GROUPBY_CNT SMALLINT NOT NULL
,XREF_ORDERBY_CNT SMALLINT NOT NULL
,XREF_HAVING_CNT SMALLINT NOT NULL
,XREF_SUBQUERY_CNT SMALLINT NOT NULL
,XREF_OUTERJOIN_CNT SMALLINT NOT NULL
,LASTUPDDTTM TIMESTAMP
,SQLTEXT LONG VARCHAR
)
IN

-- Table 5 - PSSQLXREFITEM
CREATE TABLE OWNERID.PSSQLXREFITEM (
XREF_ID CHAR(128) NOT NULL
,XREF_SQLTYPE CHAR(1) NOT NULL
,DBTYPE CHAR(1) NOT NULL
,XREF_ITEMSEQ SMALLINT NOT NULL
,XREF_ITEMTYPE CHAR(4) NOT NULL
,XREF_RECNAME CHAR(30) NOT NULL
,XREF_VALUE CHAR(128) NOT NULL
,XREF_USAGE CHAR(4) NOT NULL
,XREF_CLAUSE CHAR(5) NOT NULL
)
IN

-- Table 6 - PSFILESQLXREFDEFN
CREATE TABLE OWNERID.PSFILESQLXREFDEFN (
SOURCE_FILE CHAR(40) NOT NULL
,FILE_TYPE CHAR(4) NOT NULL
,XREF_ID CHAR(128) NOT NULL
)
IN

-- Table 7 - PSFILEXREFDEFN
CREATE TABLE OWNERID.PSFILEXREFDEFN (
SOURCE_FILE CHAR(40) NOT NULL
,CALLED_FILE CHAR(40) NOT NULL
,FILE_TYPE CHAR(3) NOT NULL
)
IN