16.04.2015 Views

2. PeopleSoft Advanced Reporting Techniques - Southern New ...

2. PeopleSoft Advanced Reporting Techniques - Southern New ...

2. PeopleSoft Advanced Reporting Techniques - Southern New ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!