alliance2014 pp sf_equationengine_eriksiradas

51
Advanced Equation Engine Development for Student Financials Session #33449 March 10, 2014

Upload: erik-siradas

Post on 04-Aug-2015

187 views

Category:

Business


1 download

TRANSCRIPT

Simplifying Advanced Equation Engine Development for Student Financials

Session #33449

March 10, 2014

• Erik Siradas• Assistant Director, Student Accounts and

University Receivables• 7 Years PeopleSoft Experience, 13 Years in Higher

Education• 1 Year Anniversary in UNC Student Accounts

TODAY!!!• SF PAG Newbie

Your Presenter

University Of North Carolina at Chapel Hill

• Established in 1789

• Large Research University

• 78 bachelor’s, 112 master’s, 68 doctorate and seven professional degree programs• Student enrollment: 29,278 (fall 2012)• Faculty: 3,608 (fall 2012)• Staff: 8,292 (fall 2012)

• www.unc.edu

University Of North Carolina at Chapel Hill & Oracle

In Production: PS Campus Solutions 9.0, PS Interactive Hub 9.1, PeopleTools 8.52:

Academic Advisement Admissions & Recruiting

Campus Community Campus Self-Service

Financial Aid Student Financials

Student Records

PS Interactive Hub 9.1, PeopleTools 8.52 PS Enterprise Financials 9.0

eProcurement

Implementing:

Financials 9.1

HCM 9.1

PeopleTools 8.53

Questions via Twitter• You can tweet your

questions before or during the presentation using this session’s special hashtag.

• I’ll try to answer the questions we’ve received at the end of the presentation.

#heug33449

• Review advanced configuration in Equation Engine using real world business scenario

• Put logic of equations into plain English• Review syntax and discuss meaning behind

logic• Discuss approaches to equation development• How to test your equation through online

tuition calculation

Agenda/Contents

#heug33449

Where do you work?

Student Accounts

Office

IT Department

• Use of Equation Engine promotes the alignment of IT and the business of the Student Accounting Office

• Taking advantage of its more complex features allows for a more streamlined approach to development of tuition calculation rules

• Knowing configuration and data structure is equally important

• Best approach to learning is to start simple and build upon knowledge of tool. Keep it simple!

Overview

#heug33449

Streamline your equation development

Callable Equations

#heug33449

Equations as Functions

• Think of “functions” in PL/SQL• Bits of code that can be reused to do same

task• Enforces consistency on how data is

retrieved• Streamlines development of equations

#heug33449

Global vs. Local Variables• Local Variables

• Local variables may only be used within the equation in which it is defined

• What ever you define as a variable in the active equation stays in that equation

• You will get an “Uninitialized Variable” error if you try to use a local variable outside the equation that you initialized it

• Global Variables• Can be used across calling equations and procedures• They may be initialized by the user in the equation, or may

passed from directly from tuition calculation• There are predefined global variables utilized by these

processes that may be used in equation development

#heug33449

The “Called” Equation

#heug33449

Calling the Equation

• Initialize Global Variables (A_SELECT = N)• Call section to invoke callable equations

#heug33449

Late Registration Fee

Set the Stage

#heug33449

Late Registration Fee

• Apply $20 Fee through Tuition Calculation for any student that adds a class after the term start date.

• Term Fee attached to all applicable tuition groups• Use Equation to:

• Retrieve term start date (TERM_TBL.TERM_BEGIN_DT)• Retrieve enrollment add date (STDNT_ENRL.ENRL_ADD_DT)• If enrollment add date > term start date, return (Y)es and apply the

charge

#heug33449

Cycle Through a Set of Data Within One Equation

Looping in Equations

#heug33449

Looping Purpose and Use• Use to process through multiple rows of data within

a single call to an equation

• Permits a block of statements to be executed repetitively

• May be used to treat equation engine as a standalone program

• Consider the creation of a view to increase performance and accuracy of equation

#heug33449

Structure of Looping in Equation

• Find First

• Loop (Begin)

• Statements to process data

• If-Else

• Callable Equations

• Callable SQL

• Find Next

• Terminating If-Else statement

• If True, Exit Loop

• End Loop#heug33449

Find First in Looping

• The FIND FIRST keyword positions the equation in the first row of the specified table for the given key values and key relational operators

• If looping through a student transaction table, initialize non-provided global variable to 0

• In Find First statement, use “Keyed Global (or Local) Greater” condition to retrieve initial record

#heug33449

Call Equation / Initiate Variables

#heug33449

Find First

#heug33449

Begin the Loop

#heug33449

Test Data and FIND NEXT• Moves to the next row within that previously specified set

of key values and key relational operators

• Positioned at the end of the loop statement, and before the test for termination of the loop

• Use the local variable initialized in the FIND NEXT condition to test for record found

• If record is found, then the loop is continued with next record found in the set of key values

• If record is not found, then EXIT LOOP

#heug33449

FIND NEXT and EXIT LOOP

Message and Return

#heug33449

Review the Equation

#heug33449

#heug33449

Target Your Data in a Quick and Easy Way

Equation SQL Routines

#heug33449

Purpose and Use

• Can be used for updates, inserts, deletes, and select retrievals (<10000 rows)

• May replace the use of “Find First” if users are more comfortable using SQL to select data for processing within equations

• Similar use as callable equations, in that a user may call SQL to retrieve data

• Allows for extremely targeted data retrieval

#heug33449

Creating Equation SQL Routines

• Create the SQL statement

• You may want to use PS Query to build the foundation statement (View SQL Tab)

• Test in SQL Plus or PL/SQL before pasting into Equation Callable SQL configuration page

#heug33449

Creating Equation SQL Routines

#heug33449

Security Configuration

• Set Up SACR > Security > Equation Tree Security > Callable SQL

• Add SQL Routine name and make sure it has the appropriate authorization level

• “Read” is default, but change to appropriate level if SQL does insert/updates/deletes.

#heug33449

Late Registration Fee Scenario

Calling an SQL Routine

#heug33449

Calling an SQL Routine• Move global

variables to local variable for Callable SQL

• Callable SQL will only recognize local variables.

• Initialize Stem Variable for return value from SQL

#heug33449

Calling an SQL Routine

• Pass parameters to the SQL in the order that the bind variables are presented in the SQL Statement

#heug33449

Test for Successful Return

• SQL_RC will have value of 1 if the SQL failed• SQL_ROWS will have > 0 row(s) indicating that it

returned something.

#heug33449

Test for Late Registration

Review the Equation

#heug33449

Review the Equation

#heug33449

See What Data is Being Passed in the Equation

DEBUG!

Testing and Troubleshooting

#heug33449

Add Messages to Troubleshoot

#heug33449

Online Tuition Calculation

• Select a student to test and navigate to Tuition Calculation Page. Execute Tuition Calculation

Troubleshoot Error• Error Message, NOOOOOO!!!!!!!

#heug33449

Troubleshoot Error• Check your Global Variable names• NCSFGETTRMST – Called Equation

• NCSFLTRGSQL – Calling EquationDoes Not Match!!

#heug33449

Troubleshoot Error• Change the Global Variable name to match the

variable name in the Called Equation

• Compile the Equation

#heug33449

Troubleshoot Error• Rerun Tuition Calculation for test student• Review Results

Questions?

#heug33449

• Erik Siradas• E-mail: [email protected]• Linkedin: www.linkedin.com/in/eriksiradas/• Twitter: @ErikSiradas

Contact Info

Presentations from previous meetings are also available

This presentation and all Alliance 2014 presentations are available for download from the Conference site at

www.alliance-conference.com