SQR Runner 11/6/2015 Agenda          Introductions SQR Basics SQR Source Structure SQR Program Characteristics Program Considerations SQR Alias Report Manager Reports Efficient Coding Tips SQR Runner Access & Training 11/6/2015

Download Report

Transcript SQR Runner 11/6/2015 Agenda          Introductions SQR Basics SQR Source Structure SQR Program Characteristics Program Considerations SQR Alias Report Manager Reports Efficient Coding Tips SQR Runner Access & Training 11/6/2015

SQR Runner
11/6/2015
1
Agenda









Introductions
SQR Basics
SQR Source Structure
SQR Program Characteristics
Program Considerations
SQR Alias
Report Manager Reports
Efficient Coding Tips
SQR Runner Access & Training
11/6/2015
2
SQR Basics
11/6/2015
3
What is SQR
 Structured Query Reporter
 Programming language used to create
reports from databases where SQL was
traditionally used
 Dynamically generates queries and formats
the results for printing
11/6/2015
4
Variables
$ - Used for date or string variables ($Institution)
# - Numeric variables (#Counter)
& - SQR table fields (&Hire_dte)
! - Comments
_ - extend naming conventions ($Admit_Code)
11/6/2015
5
Global vs. Local Variables
 Global – (default) referenced anywhere in
the program
 Local – only within the procedure where
defined
11/6/2015
6
Predefined Variable
Reserved Variable
 Not declared in your SQR, but can be used
Examples
$CURRENT-DATE
#END
– Data base environment used
$SQR-Program – SQR program name
$DBNAME
* Refer to SQR Manual (pg 44) for Predefined Variable List
& Description
11/6/2015
7
Literals
 String Literals - enclosed in single quotes
Examples
‘This is a Test’
‘05-May-2008’
 Numeric Literal – include digits with
optional decimal point and leading sign
Examples
675.03
-410.91
0
11/6/2015
8
Manipulating Commands
 ARITHMETIC - add, subtract/multiply &
divide
 MOVE - from field to field, data conversion,
editing using special edit masks
Examples
MOVE &Phone TO $Dsply-Ph (xxx)xxx-xxxx
MOVE #Salary TO $Dsply-Sal $9,999,999.99
11/6/2015
9
Manipulating Commands…
 FIND – helps locate starting position of a substring within a string or data field. Returns first
position of first byte of sub-string
Example
FIND ‘John’ in $FULL_NAME 8 #POSITION
$FULL_NAME = ‘0012700 Smith John Sr 962 Oak St…’
FIND RESULT: #position = 14
11/6/2015
10
Manipulating Commands…
 Let – can replace a number of data
manipulation & logic commands
Example
Let $YTD_AVG= #YTD_TOTAL/#NUM_OF_DAYS
 Operators – arithmetic, string or relational
>
<
>=
<=
<>
11/6/2015
Greater than
Less than
Greater than or equal to
Less than or equal to
Not equal
11
SQR Source Structure
11/6/2015
12
Setup Section
Optional…If used, must come first!
 Contains commands that determine
characteristics of the program
 Processed during compilation stage

* Example on next slide
11/6/2015
13
Setup Section
11/6/2015
14
Program Section
Required!
 Defines beginning & the end of the program
 All commands following ‘BEGINPROGRAM’ are executed one-by-one
 Execution stops when ‘END-PROGRAM’ is
read

* Example on next slide
11/6/2015
15
Program Section
11/6/2015
16
Heading Section

Controls report
Heading
11/6/2015
17
Footing Section

Controls report Footing
11/6/2015
18
Procedure Section
Multiple procedures allowed
 Used for structural management and easier
maintenance of program
 Most SQRs include multiple procedures

* Examples on next slides
11/6/2015
19
Procedure Section
11/6/2015
20
Procedure Section

Additional Procedures….
11/6/2015
21
SQR Program Characteristics
11/6/2015
22
READ ONLY ENVIRONMENT
Specific words are NOT ALLOWED in
the Source Code
 Any encounter of these words will cause
compilation errors and must be removed
for source code to successfully compile

Examples
CALL…UPDATE…DELETE…LOAD…INSERT
11/6/2015
23
‘SELECT’ Statements
Statement heart of SQR program
 Operators

 Unqualified select
Example: Select * from PS_NAME
 Relational
Examples: =,<,>, >=, <=, <>
 Boolean
Examples: AND, OR, NOT
11/6/2015
24
‘SELECT’ Statements…
 Specific fields - Examples: Select emplid, name
 Distinct - Example: Select Distinct supervisor from
PS_NAME for employment
 Aggregate Functions - Examples: AVG, SUM, COUNT,
MAX, MIN
 Group – define subsets of select output based on a
certain column
 Having – impose restrictions on selection results
 Like – selection based upon partial knowledge of
columns content. Example: Where name LIKE ‘%John’
11/6/2015
25
SQR Output Files
Message Log – SQR populates with
Program setup
 Trace File – contains output from
‘SHOW’ command
 Report Output File – contains output
from ‘PRINT’ command


* Examples on next slides
11/6/2015
26
SQR Output Files – Message Log
11/6/2015
27
SQR Output Files – Trace File
11/6/2015
28
SQR Output Files – Report Output File
11/6/2015
29
SQR Programming Considerations
11/6/2015
30
Print Commands
Print – directs PDF, CVS output to report file
 Show – directs output to TRACE file for
data/field verification and debugging purposes

11/6/2015
31
SQR Report Structure
Heading/Footing sections of report are
generated AFTER the page body is filled
 Once the page is completed, then it is written
to output file and then erased from memory
to begin creating the next report page

11/6/2015
32
SQR Functions
Numerous numeric and data related builtin functions
 Use a FUNCTION within a FUNCTION

 Inner

FUNCTION must return a value type
compatible with that of the outer function
FUNCTION list – SQR manual, Appendix
“C” (page 568)
Example: Let $Today = datenow ( )
(Places current date on local machine into $Today)
11/6/2015
33
Sample Program - Basic
11/6/2015
34
SQR Report Structure
SQR does not print every time ‘PRINT’
command is issued
 Instead…accumulates each line in memory
 Determines number of lines in report per page
 Allows specified number of lines for Heading
and/or Footing

11/6/2015
35
SQR Program Stages

Compile Stage
External source files inserted into source program
 Substitute variables resolved
 Compile directories evaluated
 Memory and buffers allocated
 Syntax checked

11/6/2015
36
SQR Program Stages

Execution Stage
Error free compilation
 Starts execution @ ‘BEGIN-PROGRAM’
 Stops execution @ ‘END-PROGRAM’

11/6/2015
37
SQR Print Reports

Two types of SQR Print Reports
 Explicit
11/6/2015
- Used in Sample SQRs
38
SQR Print Reports…
 Implicit
- prints column without PRINT
command

You can mix the two types in a SQR
program
 Be
aware of sequence. Print sequence is
determined by the order of the commands in
the select paragraph
11/6/2015
39
SQC Standard Query Catalog
 Standardized common coding that is typically
used in multiple places and users
Example: (see handout)
“UMHDRA.SQC”
 # Include ‘UMHDRA.SQC’
 SQR inserts specified SQC into the source code
during compilation stage
 Typically, standard includes are placed at bottom
of program for clarity & maintenance
11/6/2015
40
SQR Error Recovery
11/6/2015
41
SQR Alias
11/6/2015
42
Normal SQR Selection Criteria
 Alias not needed in this situation
11/6/2015
43
SQR Selection Criteria Using Alias

Used to differentiate between two tables with
similar field names or multiple references to the
same table
11/6/2015
44
Alternative SQR Selection Coding to
Using Alias
11/6/2015
45
Report Manager Reports
11/6/2015
46
Table Joins
11/6/2015
47
Effective
Dated Table
11/6/2015
48
Effective
Dated Table
11/6/2015
49
Performance Coding TIPS





Use indexed fields whenever possible in WHERE
clause
Avoid GROUP BY & DISTINCT – they invoke
internal sorts
Use ORDER BY with indexed fields when
possible
Avoid Boolean NOT…use <> instead
Avoid arithmetic expressions in SELECT,
WHERE & HAVING
11/6/2015
50
Performance Coding Tips
Use ‘NOT EXISTS’ instead of ‘NOT IN’ in
sub-queries
 Avoid using fields of different type &
length in logical operations
 In sub-select statements, use smaller tables
in inner select

11/6/2015
51
SQR Runner Access & Training
11/6/2015
52
Navigation

Login to MaineStreet Portal
Enterprise Applications
 Campus Solutions Reporting DB
 University of Maine System
 Utilities
 Run Your SQR

11/6/2015
53
Run Your SQR! - Add a New Value
The first time you run an SQR you must
create a Run Control ID
 Click the Add a New Value tab

11/6/2015
54
Run Your SQR! - Add a New Value
Enter your User ID (EmplID)
 Enter a Run Control ID
 Click the Add button

11/6/2015
55
Run Your SQR! Page
11/6/2015
56
Training Resources

UPK Player navigation
 Login
to MaineStreet portal
 Training Tools & Materials
 Campus Solutions folder
 UPK folder
 UPK Player link
 Reporting
for Campus Solutions
 Run Your SQR_CSRPT
11/6/2015
57
Training Resources

Documentation
 Internal
Reporting web page
 http://www.maine.edu/system/oft/psfinancial/reporting.php
 SQR
Runner
 Manual
- SQR in PeopleSoft and Other
Applications, PeopleSoft V.8 – Galina Landres & Vlad
Landres
11/6/2015
58