2. PeopleSoft Advanced Reporting Techniques - Southern New ...
2. PeopleSoft Advanced Reporting Techniques - Southern New ...
2. PeopleSoft Advanced Reporting Techniques - Southern New ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>PeopleSoft</strong> <strong>Advanced</strong> <strong>Reporting</strong> Tips & <strong>Techniques</strong><br />
<strong>Southern</strong> <strong>New</strong> England User Group Meeting, October 17th, 2008<br />
Stephen Wills<br />
Applied Technology Sales Consultant
The following is intended to outline our general<br />
product direction. It is intended for information<br />
purposes only, and may not be incorporated into any<br />
contract. It is not a commitment to deliver any<br />
material, code, or functionality, and should not be<br />
relied upon in making purchasing decisions.<br />
The development, release, and timing of any<br />
features or functionality described for Oracle’s<br />
products remains at the sole discretion of Oracle.
“I upgraded my application from 8.3 to 8.9. Now my query<br />
includes additional security joins and this is impacting<br />
performance. What if I don’t want the additional security<br />
joins?”
PS/Query<br />
Security Joins<br />
• When you join two<br />
different records with<br />
the same query security<br />
record, join the security<br />
record once for<br />
optimization<br />
• But when you need to<br />
join the same record<br />
twice the security join<br />
needs to be applied<br />
twice<br />
• Prior to 8.44 PS/Query<br />
only joined the security<br />
record one time. This<br />
could cause incorrect<br />
results in certain<br />
situations.<br />
GSC Resolution 200973569<br />
SELECT A.DEPTID, C.NAME, B.NAME<br />
FROM PS_JOB A, PS_FAST_EMPGL_VW2 A1,<br />
PS_NAMES B, PS_PERS_SRCH_QRY1 B1, PS_NAMES C<br />
WHERE A.EMPLID = A1.EMPLID<br />
AND A.EMPL_RCD = A1.EMPL_RCD<br />
AND A1.ROWSECCLASS = 'ALLPANLS'<br />
AND B.EMPLID = B1.EMPLID<br />
AND B1.ROWSECCLASS = 'ALLPANLS'<br />
AND C.EMPLID = B1.EMPLID<br />
AND ( A.EFFDT =<br />
C.EMPLID = B1.EMPLID<br />
(SELECT MAX(A_ED.EFFDT) FROM PS_JOB A_ED<br />
WHERE A.EMPLID =<br />
would A_ED.EMPLID<br />
only return rows of data when the<br />
emplid<br />
AND A.EMPL_RCD is<br />
= A_ED.EMPL_RCD<br />
also equal to supervisor id.<br />
AND A_ED.EFFDT
PS/Query<br />
Security Joins<br />
• The 8.44 correction introduced in a change in behavior for prior existing<br />
PS/Queries and although technically correct, performed slower<br />
• If you do not want multiple inclusion of the security join:<br />
INSERT INTO PSVERSION (OBJECTTYPENAME,VERSION) VALUES ('QRYSELFJ',1)<br />
• The existence of 'QRYSELFJ' in PSVERSION table is checked by<br />
PS/Query (as of PT8.47)<br />
• Alternative for situations where you need to include the same field<br />
multiple times include<br />
• Expressions<br />
• Views
“We need production reporting but the report<br />
processing is consuming my server.”
Monitoring Queries<br />
Query Administration Utility<br />
• PeopleTools > Utilities > Administration > Query Monitor<br />
• Administrative Information and Enable/Disable Query<br />
• Ability to Kill Long Running Queries on Executing Tab<br />
• Ability to Enable/Disable Stats for Test vs Production
Monitoring Queries<br />
Query Administration Classes<br />
• Query Classes provide many methods and properties for<br />
examining the QueryStatistics via PeopleCode API<br />
• AvgExecTime<br />
• AvgNumRows<br />
• ExecCount<br />
• LastExecDtTm<br />
• Delete<br />
• View real-time and historical performance data using<br />
Performance Monitor<br />
• Perf Mon Event 355
“Is there a difference in performance among the<br />
different supported data sources for XML<br />
Publisher for <strong>PeopleSoft</strong>?”
XML File<br />
Optimal Data Source for XML Publisher for <strong>PeopleSoft</strong><br />
• Supported Data Sources<br />
• PSQuery<br />
• RowSet<br />
• XmlDoc<br />
• XML File<br />
• Relational based data<br />
sources, such as<br />
PSQuery and RowSet,<br />
will involve processing to<br />
align relational with XML<br />
structure<br />
• The processing required<br />
may impact performance<br />
of production reporting,<br />
however…<br />
Data Source<br />
Layout<br />
Translation<br />
Labels<br />
Invoices<br />
Reports<br />
Checks
XML File<br />
Optimal Data Source for XML Publisher for <strong>PeopleSoft</strong><br />
• … it is often possible to preprocess the relational data source to<br />
prepare XML File for use at report time<br />
Labels<br />
Data Source<br />
• A batch program such as SQR or<br />
Application Engine can preprocess a<br />
relational data source to XML<br />
• Then use XML File as the Data Source<br />
Layout<br />
Translation<br />
Invoices<br />
Reports<br />
• Example: HCM 9.0 North American Payroll XML Publisher Reports<br />
• PeopleTools researching a generic Query to XML File capability<br />
Checks
“How can I see my Query results (data) formatted in<br />
XML? “
Generating XML<br />
• Add a Return statement to method CleanOutput() of the<br />
PSXP_RPTDEFNMANAGER:ReportDefn Application Class<br />
• Files placed in %PS_SERDIR%\files\XMLP\Data and<br />
%PS_SERDIR%\files\XMLP\RptInst directories
Generating XML<br />
• Create an xdodebug.cfg file and place it under<br />
[PS_HOME]\JRE\Lib (where your active JRE is installed)<br />
• The file should include the following two entries:<br />
LogLevel=STATEMENT<br />
LogDir=c:\temp or any appropriate temp directory<br />
• Run your XMLP report<br />
An xdo.log file (and related xml, xsl, translation and template<br />
files) will be written to the specified LogDir.
“Do I need schema in order to define an XMLP<br />
report? If so, how do I generate one?”
Schema & Sample Files<br />
• Both Schema and Sample files are required for PDF<br />
mapping<br />
• Schema file is required for bursting<br />
• Schema and Sample files are auto generated only<br />
for PS/Query data source<br />
• For non-PS/Query data sources<br />
• User must generate schema using an external tool such as<br />
XML Spy, Visual Studio etc.<br />
• Sample files can be created using notepad, a representative<br />
clone of your actual data file, etc.
Generating Schema with Excel 2003+<br />
• Have your XML data or sample file ready<br />
• ‘File | Open’ in Excel 2003+. ‘Open XML’ dialog box pops up.<br />
Select either ‘As an XML List’ or ‘Use the XML Source task<br />
pane’<br />
• Click OK. Ignore the following warning message coming from<br />
Excel<br />
• Click OK
Generating Schema with Excel 2003+<br />
• The XML Source window will<br />
appear on the right<br />
• Open VBA,Tools/Macro/Visual<br />
Basic Editor (Alt+F11). Type in the<br />
following:
Generating Schema with Excel 2003+<br />
• Click “Enter”<br />
• the XML schema string appears<br />
• Copy this string into any text editor (ie Notepad, etc)<br />
• Add the following string at the top of the file:<br />
• <br />
• Save the file with an ‘xsd’ extension<br />
• Schema can now be uploaded to the XMLP Data Source.<br />
• There are several websites like<br />
http://tools.decisionsoft.com/xmlpp.html that will format<br />
your xml data or schema files for free
“XML Publisher for <strong>PeopleSoft</strong> means more decisions<br />
regarding report templates. How do I choose?”
XML Publisher <strong>Reporting</strong><br />
Choosing a Template<br />
Feature<br />
Custom/dynamic output<br />
Existing PDF Template (government forms)<br />
Pixel perfect positioning (using Adobe)<br />
Charts<br />
PDF Output<br />
HTML, Excel and potential other output formats<br />
Sub-templates<br />
Runtime parameters<br />
Translation files<br />
Higher performance on very large reports (hundreds of mega bytes)<br />
Output Formulas<br />
Flexible Field-data mapping (XPath vs. simple name matching)<br />
RTF<br />
x<br />
x<br />
x<br />
x<br />
x<br />
x<br />
x<br />
x<br />
x<br />
PDF<br />
x<br />
x<br />
x<br />
x
“Sub-templates are a new concept for us. How do<br />
they work?”
RTF Sub-templates<br />
Header_Std_lower.rtf<br />
• Can include image, text, XSL templates, etc.<br />
• Usually used for logos, headers, footers, etc.<br />
• Each primary template can import multiple sub-templates
RTF Sub-templates<br />
• Add to Content<br />
Library<br />
• Subtemplates<br />
files stored in<br />
database<br />
• No<br />
definitional<br />
link to<br />
primary<br />
template
RTF Sub-templates<br />
• Imported from primary template using Sub-Template ID<br />
Within in<br />
PIA<br />
()<br />
Retrieved at runtime by core engine using psxmlp protocol<br />
(Java to PeopleCode call)<br />
Within<br />
Template<br />
Builder<br />
Test/preview using file system import<br />
Runtime Parameters<br />
• Can be added<br />
to any template<br />
• Delivered set<br />
through the<br />
ReportDefn<br />
class<br />
• Can<br />
programmaticall<br />
y add via XML<br />
PeopleCode<br />
API<br />
• Need to be<br />
declared before<br />
use
“I need to run reports for every department in our<br />
global operations.”
Bursting<br />
Report by Burst Key<br />
Use for Security & for Distribution<br />
<br />
<br />
1000<br />
01<br />
1000<br />
<br />
<br />
1001<br />
01<br />
1000<br />
<br />
<br />
1002<br />
02<br />
1000<br />
<br />
<br />
Bursting by EmplID<br />
emplid: 1000 emplid: 1001<br />
Bursting by Deptld<br />
DeptId: 01<br />
emplid: 1001<br />
emplid: 1000<br />
emplid: 1002<br />
emplid: 1003<br />
emplid: 1002<br />
DeptId: 02
Bursting<br />
Composite Key Bursting with XML Publisher<br />
• Single burst field<br />
• Create composite key in data source<br />
e.g. Use Query expression to concatenate<br />
Bursting by Country by Region<br />
emplid: 1002<br />
emplid: 1001<br />
emplid: 1000<br />
CountryState: USCA<br />
emplid: 1005<br />
emplid: 1004<br />
emplid: 1003<br />
CountryState: USNY
Bursting templates/translation<br />
• ‘Template controlled<br />
by’ does not have to<br />
match ‘burst by’<br />
• Default Template ID<br />
specified on Run<br />
Control<br />
• Could include one<br />
template per data<br />
value<br />
• Multiple languages per<br />
template<br />
COUNTRY_REGION<br />
COUNTRY_REGION<br />
W2<br />
T4<br />
T4<br />
Emplid 1002<br />
EmplID 1005 employé 1012<br />
Emplid 1001<br />
Emplid 1000<br />
EmplID 1004<br />
EmplID 1003<br />
employé 1011<br />
employé 1010<br />
CountryRegion: USCA CountryRegion:CABC PaysRégion:CAQB
“How do I make my XMLP reports reflect dates and<br />
times based on the recipients setting?”
Recipient Time Zones<br />
• Report template must be of type “RTF” or “XSL”<br />
• Ensure user time zone is one of the standard 3 character<br />
delivered time zone codes ( “PST”, “EST”, etc.)<br />
• XML Publisher does not recognize custom time zones and will<br />
revert to the “GMT” time zone<br />
• Include the offset from GMT for each date-time element<br />
• 2008-07-27T12:48:00.000+02:00<br />
• Appropriate abstract format mask must be used in the<br />
template in order to display the time zone<br />
•
“When Query Access List Cache is<br />
enabled, Crystal Reports & Queries seem<br />
to run slower for User Id’s that have a<br />
large number of roles assigned”
Query Access List Cache<br />
• Open the SQL definition PSQRYACCLISTFASTSQL in App<br />
Designer (pside.exe), and replace the following SQL<br />
SELECT DISTINCT C.RECNAME<br />
, C.RECDESCR<br />
FROM PSROLECLASS A<br />
, PSROLEUSER B<br />
, PSQRYACCLSTRECS C<br />
, PSVERSION D<br />
WHERE A.ROLENAME = B.ROLENAME<br />
AND C.CLASSID = A.CLASSID<br />
AND C.VERSION = D.VERSION<br />
AND D.OBJECTTYPENAME = 'QAL'<br />
AND B.ROLEUSER = '%s'<br />
WITH<br />
SELECT DISTINCT A.RECNAME<br />
,A.RECDESCR<br />
FROM PSQRYACCLSTRECS A<br />
,PSVERSION B<br />
WHERE A.VERSION = B.VERSION<br />
AND B.OBJECTTYPENAME = 'QAL'<br />
AND A.CLASSID IN (SELECT C.CLASSID FROM PSROLECLASS C,<br />
PSROLEUSER D WHERE C.ROLENAME = D.ROLENAME AND D.ROLEUSER =<br />
'%s')
“We always seem to have some users who jump on<br />
the latest version of Office before we can upgrade<br />
our servers and others who keep using older<br />
versions long after our servers are upgraded. Any<br />
suggestions for us regarding Office 2007?”
PS/nVision<br />
Office 2007<br />
• PS/nVision is now certified with Office 2007<br />
• Recommendation is (as in the past) to use the same version of<br />
Office for all PS/nVision environments:<br />
• Report Batch Server<br />
• User Browser Workstation<br />
• Report Designer Client Workstation<br />
• Different versions of Office in the mix have often worked in the<br />
past but a workaround will be required in certain instances
PS/nVision<br />
Office 2007<br />
• Office 2007 will save nVision<br />
reports as .xlsx<br />
• Designers using<br />
Office 2007 need to<br />
rename or save as<br />
.xls before running<br />
the report in an<br />
environment using<br />
Office 2003.<br />
Report User<br />
• End users need to save as .xls<br />
before using Office 2003 to<br />
open a report generated with<br />
Office 2007<br />
May require<br />
explicit<br />
saveas .xls<br />
Report<br />
Repository<br />
Report Designer<br />
Web Server App Server<br />
May require<br />
explicit<br />
saveas .xls<br />
Process<br />
Scheduler<br />
COBOL<br />
Application Engine<br />
SQR<br />
Crystal Report<br />
XML Publisher<br />
nVision<br />
Batch Server<br />
Report Server
XML Publisher<br />
Office 2007<br />
• PT bundles the BIP Template<br />
Builder<br />
• While Customers can download<br />
Template Builder the bundled<br />
version is the Certified,<br />
Recommended Version<br />
• Offcycle certifications may create<br />
an interim gap in time<br />
• For e.g. the recent certification of<br />
Office 2007<br />
• Customers will want to download the<br />
version 10.1.3.3 of the Template<br />
Builder from the Oracle website.<br />
•<br />
• Or be on a Tools Patch of 8.49.07<br />
and 8.48.16 or high (which updates<br />
the PT bundle)
“PeopleTools provides several reporting tools.<br />
When would I use nVision vs. XML Publisher vs.<br />
Crystal Reports?”
Report Development<br />
Excel Integration<br />
Forms Based (PDF, Word, etc)<br />
Pixel Precision Formatting<br />
MICR<br />
Graphics/Logos<br />
Charting<br />
Simple Tabular<br />
SubReport<br />
Matrixed<br />
Financials, Ledger, Trees<br />
<strong>Reporting</strong> w/Logic /Processing<br />
Scheduled/ On Demand<br />
Ad-Hoc<br />
Bursting<br />
Drill Down<br />
Windows Batch Server<br />
Unix/Linux Batch Server<br />
390 Batch Server<br />
Which<br />
<strong>Reporting</strong><br />
Tool?<br />
<br />
nVISION<br />
<br />
XML<br />
PUBLISHER<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
CRYSTAL<br />
REPORTS<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
BOE<br />
<br />
Server<br />
<br />
PS/QUERY<br />
<br />
<br />
<br />
SQR<br />
<br />
<br />
<br />
REPORTING NEED FORMATTING DATA ORGANIZATION EXECUTION<br />
PLATFORMS
“When using multiple schedulers in multiple OSs,<br />
for load balancing, how can I assign AE process to<br />
execute in a particular OS?”
Scheduling Scenario<br />
• System setting - Unix is the primary OS and system load is<br />
set to ‘Assign To Server In Any O/S’<br />
• A Master Scheduler<br />
• Customer has 4 schedulers - 2 on NT and 2 on UNIX<br />
• Each is set up as ‘use for load balancing’ & ‘redistribute to same<br />
OS’ and a Master Scheduler is booted<br />
• They want all AE processes to run on Unix - except 3<br />
• The 3 exceptions have been hard coded to run on a particular NT<br />
scheduler<br />
• But… sometimes the remaining AE processes are getting picked<br />
up by NT schedulers<br />
• Why? Is there any way to specify that these AE processes<br />
run only on the Unix Schedulers?”
Process Category<br />
• Define 2 Process Categories for AE processes (AE_NT<br />
and AE_UNIX)<br />
• Process Scheduler -> System Settings -> Process Category Admin<br />
tab<br />
• Assign the 3 AE processes you always want to run on NT<br />
to process category AE_NT<br />
• Assign the rest to process category AE_UNIX<br />
• NT server definitions - set ‘max concurrent’ AE_NT > 0<br />
and AE_UNIX = 0<br />
• Unix server definitions - set ‘max concurrent’ AE_NT = 0<br />
and AE_UNIX > 0
“When running an AE process to Window (output),<br />
did you know you can have more than just the run<br />
status displayed in popups?”
Run Status popups<br />
• By default the popup windows reflects the request run<br />
status
User Defined Progress<br />
• Add the following PeopleCode<br />
to display a customized status<br />
message in popup window<br />
• import PT_PRCS:API:*;<br />
• Local PrcsApi &api = create<br />
PrcsApi();<br />
• &nret =<br />
&api.notifyToWindow(QE_AE<br />
STATUS_AET.PROCESS_IN<br />
STANCE, "Executing<br />
initialization steps…");
“Did you know you can define links to Application<br />
pages from the Process Request result page?”
Links in Report results<br />
• This can be done by defining links to pages on process<br />
definition<br />
OR
Example<br />
Links in Report results<br />
• Upon completion of process TREEMAINT, user may either<br />
(1) Go to View result of an audit, (2) Go to Repair Tree<br />
page.<br />
• You can setup these links for navigation from the process<br />
result page via Process Definition URL Links page.
Links in Report results<br />
• URL Keys page is used to supply key values needed to pull<br />
up the appropriate data in the page<br />
• Values can be in the format of meta-variables or inline bind<br />
variables
Links in Report results<br />
• Submit the process TREEMAINT to run from Tree Manager<br />
-> Tree Auditor…
Links in Report results<br />
• On completion of process request, user clicks to view request/report<br />
details from process monitor (or via notification email …etc)<br />
• User will find URL link(s) associated with the generated instance
Links in Report results<br />
• User can then click the link to navigate directly to the page<br />
with the appropriate keys populated<br />
• (ie. Process Instance and Run Control ID in this example)
“Tired of losing your <strong>PeopleSoft</strong> Tree changes?”
Collaborative work on <strong>PeopleSoft</strong> Trees<br />
• On the PeopleTools Options page, select the ‘Use Tree<br />
Update Reservation’
Check Out Tree<br />
• Tree opened in Read Only<br />
• ‘Check Out Tree’ to reserve/lock for update<br />
• Tree or branch can be reserved/locked by Owner ID and<br />
Timestamp
Release Tree<br />
• Reservation released when user selects ‘Release Tree’,<br />
closes the tree or when ‘Max Tree Inactivity Period’ is<br />
reached<br />
• timestamp on LAST_ACTIVITY_TIME field updated whenever<br />
owner performs any action on tree - including navigation
Accessing a Reserved Tree<br />
• If tree is currently checked out, user will be notified of the<br />
User Id of the person holding the reservation
<strong>PeopleSoft</strong> Enterprise<br />
<strong>Reporting</strong> Tips &<br />
<strong>Techniques</strong> Looking Ahead<br />
“How do I map my data to a government supplied<br />
PDF form when it contains repeated elements?”
PDF Mapping<br />
Looking Ahead<br />
• Full Path Mapping
PDF Full Path Mapping – 8.50<br />
• Enable mapping PDF form fields to XML<br />
elements positioned under any level in the<br />
data source XML structure.<br />
• No schema required. Only sample xml file<br />
is needed<br />
<br />
<br />
00001<br />
<br />
1 Company st. CA 00001<br />
Company Info<br />
<br />
<br />
1 Employee st. CA 00001<br />
Employee Info<br />
50000<br />
12<br />
......<br />
<br />
<br />
<br />
......<br />
......<br />
<br />
“How can I email the results of a Scheduled Query<br />
or XMLP report?
Emailing Reports<br />
Looking Ahead<br />
• Query Report Scheduler supports email now.<br />
• Email actual report file as attachment.<br />
• Multiple levels of validation
“Every time I run my report it outputs the exact<br />
same filename. In fact, it overwrites the existing<br />
file.”
Prevent File Overwrite<br />
Today<br />
• Specify only the folder name when writing to a file<br />
• Report name is system generated<br />
• Each run of the report overwrites previous report<br />
with that name<br />
• The workaround is to specify a different folder
Descriptive Report Names<br />
Looking Ahead<br />
• Report output names (and file names) are now<br />
customizable using a name template<br />
• Plain text intermixed with output parameters:<br />
• %BTV%:<br />
• %ASD%:<br />
• %RID%:<br />
Burst value (bursting mode only)<br />
As of Date<br />
Report ID<br />
• %Field% (any candidate burst field under highest repeating element)<br />
• ie %EMPLID%
Descriptive Report Names<br />
• Can be set on the Output page<br />
• Or programmatically using ReportFileName property on the<br />
ReportDefn class.<br />
• If set, it will override UseBurstValueAsOutputFileName property
“I have a PS/Query that uses ‘in tree’ criteria.<br />
Problem is I need to select a different set of nodes<br />
just about every time I run it”
inTree Criteria<br />
Today<br />
• For criteria, DEPTID as “in tree” and try to save.
Tree Prompt Option<br />
Looking Ahead
Tree Prompt Option
Tree Prompt Option
Tree Prompt Option
“What happens if I need to keep certain reports for<br />
7-10 years or longer?
Report Retention Days<br />
Today<br />
• System wide setting impacts all report retention
Report Retention Days<br />
Looking Ahead<br />
• Maximum retention days setting allowed has changed<br />
from 999 to 9999 days<br />
• Set the default retention at four levels<br />
• Process Type Definition<br />
• Process Definition<br />
• Job Definition<br />
• Schedule JobSet Definition
Process Type Definition Default<br />
• Takes precedence over System setting
Process Definition Default<br />
• Takes precedence over Process Type definition or<br />
System setting
Job Definition Default<br />
• Takes precedence over system setting<br />
• Used to enforce the same retention days for all<br />
processes within a job
Override at Schedule time<br />
• Process Request / Scheduler JobSet UI (Distribution Link)<br />
• With output type of web/window
“Can you explain what a ‘Run Control Id’ is to a new<br />
user? What if you never had to again?”
Run Control<br />
Today<br />
• Required to prompt users for the parameters needed to<br />
run the process
Generic Run Control<br />
Looking Ahead<br />
• Register parameters<br />
• Once “Generic Run Control Page” option is enabled<br />
on process definition, users can “Schedule” process
Generic Run Control<br />
• Generic run control page generated based on the<br />
registered parameters
<strong>Reporting</strong> Console<br />
Looking Ahead<br />
• Single location/launch pad for reporting activities<br />
• Run, schedule, monitor, view process requests<br />
• Create ad-hoc reports<br />
• Share and email report instance<br />
• Manager process and report definitions<br />
• Admin functions<br />
• Manage process and report definitions
<strong>Reporting</strong> Console<br />
Looking Ahead
For More Information<br />
search.oracle.com<br />
or<br />
oracle.com
The preceding is intended to outline our general<br />
product direction. It is intended for information<br />
purposes only, and may not be incorporated into any<br />
contract. It is not a commitment to deliver any<br />
material, code, or functionality, and should not be<br />
relied upon in making purchasing decisions.<br />
The development, release, and timing of any<br />
features or functionality described for Oracle’s<br />
products remains at the sole discretion of Oracle.