View
213
Download
0
Embed Size (px)
Citation preview
Objectives
show an implementation of automated, cross-platform, hands-off report generation in the Voyager environment
provide you with the information to do this at your site
Brief Bio
Working at WMU for 16 years now Initially spent many years on the VAX Struggled for several years with the IBM
mainframe and NOTIS
Brief Bio
Working at WMU for 16 years now Initially spent many years on the VAX Struggled for several years with the IBM
mainframe and NOTIS Supporting Voyager for close to 3 years
Brief Bio
Working at WMU for 16 years now Initially spent many years on the VAX Struggled for several years with the IBM
mainframe and NOTIS Supporting Voyager for close to 3 years Picked up some Oracle, (PL/)SQL, Perl,
and Unix along the way
Why We Did This
initially no access to Access with ODBC stuff; had no clue
explored our Voyager Unix box, located SQL*PLUS
Why We Did This
So we created reports - run them on the Voyager box, transfer to PC format and print in Word, etc...
Why We Did This
So we created reports - library liked them - I got tired of: running reports ftping them formatting them printing them physically delivering them
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
time/date parameters stored in each script
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
time/date parameters stored in each script
copy report todestination
on LAN
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
time/date parameters stored in each script
copy report todestination
on LAN
print reportto location
cron Cross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
time/date parameters stored in each script
copy report todestination
on LAN
print reportto location
Library AdministrationLibrary SystemsMedia ResourcesMono AcquisitionsSerials
When to Choose SQL, PL/SQL, or Perl SQL invoked from within SQL*PLUS sufficient for most reports easy control of page & line size, page
formatting
When to Choose SQL, PL/SQL, or Perl SQL invoked from within SQL*PLUS sufficient for most reports easy control of page & line size, page
formatting takes control, does most of the work for
you
When to Choose SQL, PL/SQL, or Perl SQL invoked from within SQL*PLUS sufficient for most reports easy control of page & line size, page
formatting takes control, does most of the work for
you output to screen or file
When to Choose SQL, PL/SQL, or Perl
The call to FISCYRSETUP creates a temporary table, for the durationof this report, that contains the name and start date for the current andprevious year. This is used in a number of reports to automaticallyreference fiscal year data.
When to Choose SQL, PL/SQL, or Perl PL/SQL invoked from within SQL*PLUS, or
embedded in / combined with SQL
When to Choose SQL, PL/SQL, or Perl PL/SQL invoked from within SQL*PLUS, or
embedded in / combined with SQL provides SQL capabilities with
programming language control added
When to Choose SQL, PL/SQL, or Perl PL/SQL invoked from within SQL*PLUS, or
embedded in / combined with SQL provides SQL capabilities with
programming language control added functionality sort of in-between SQL and
Perl
When to Choose SQL, PL/SQL, or Perl PL/SQL output to screen or to screen Oracle allows output to file, but the
Voyager installation does not enable this
When to Choose SQL, PL/SQL, or Perl PL/SQL output to screen or to screen Oracle allows output to file, but the
Voyager installation does not enable this
size limited to 1 million bytes output
When to Choose SQL, PL/SQL, or Perl PL/SQL output to screen or to screen Oracle allows output to file, but the
Voyager installation does not enable this
size limited to 1 million bytes output screen output can be captured to file
When to Choose SQL, PL/SQL, or Perl PL/SQL sample of code… (Handout pages 6 & 7)
output snippet below
When to Choose SQL, PL/SQL, or Perl
What is a BLOB?
It stands for Binary Large Object. More simply put, it is a collection of bytes that can contain both printable and unprintable characters. This is how MARC data is stored under Voyager.
When to Choose SQL, PL/SQL, or PerlThe BLOB can be stored in one or more sections:
BibID: 57 Seqnum: 1 Recseg: BLOB Part A
BibID: 57 Seqnum: 2 Recseg: BLOB Part B
When to Choose SQL, PL/SQL, or PerlThe BLOB can be stored in one or more sections:
BibID: 57 Seqnum: 1 Recseg: BLOB Part A
BibID: 57 Seqnum: 2 Recseg: BLOB Part B
The BLOB is put together in
reverse order, because we can
depend on Seqnum #1 being
the last one that way.
When to Choose SQL, PL/SQL, or Perl
get data from the header,then get each tag’s data as we loopthrough the directory structure
When to Choose SQL, PL/SQL, or Perl Perl invoked from the operating system (can be called from within SQL(*PLUS)
When to Choose SQL, PL/SQL, or Perl Perl invoked from the operating system (can be called from within SQL(*PLUS) you have control over everything, which
means:
When to Choose SQL, PL/SQL, or Perl Perl invoked from the operating system (can be called from within SQL(*PLUS) you have control over everything, which
means: relatively unlimited flexibility that you have to do ALL the work
When to Choose SQL, PL/SQL, or Perl Perl invoked from the operating system (can be called from within SQL(*PLUS) you have control over everything, which
means: relatively unlimited flexibility that you have to do ALL the work output to screen or file
When to Choose SQL, PL/SQL, or Perl
You’ll need to have DBI and
DBD for Oracle set up on your Unix box.
When to Choose SQL, PL/SQL, or Perl
Get all the table names.
In my experience, I was unable to use the
reserved word “distinct” in the query.
Thus the extract code to dedupe the results.
When to Choose SQL, PL/SQL, or Perl
need to know how many
columns per table to aid
in output formatting
When to Choose SQL, PL/SQL, or Perl
go through array, output columns
ending in “_id” first
Remember counting columns per table?
Here we advance to the next page,
if the table doesn’t fit on the current page.
The Batch PC
Hardware older pc will be adequate we’re using a 133MHz Pentium 32 meg RAM 1.5 gig hard disk, which is way more
than necessary
The Batch PC
Software running Windows 95 WinBatch software (see www.windowware.com) the scripts that you write...
The Batch PC
The Batch Software WinBatch installation will leave it
running in the background in Windows Explorer, double click on
your WinBatch script, identified as a .WBT file
The Batch PC
The Batch Software WinBatch installation will leave it running
in the background in Windows Explorer, double click on
your WinBatch script, identified as a .WBT file
it will either run right away, or appear on the task bar, awaiting its time
cronCross-Platform Batch Reports
Overview of Process
Unix
Time/dateparameters in one crontabfile
script
SQL,PL/SQL,
Perl
report Onecron process
running
Batch PC
WinBatch
script or .exe
use ftp toget the report
pull itinto Word
formatthe report
time/date parameters stored in each script
copy report todestination
on LAN
print reportto location
Library AdministrationLibrary SystemsMedia ResourcesMono AcquisitionsSerials
The Batch PC
start off with comments,
including instructions on
when the script can be started safely
to avoid duplication of report printing
The Batch PC
set up paths and filenames on the Unix box
and the batch PC,
get the database password from a file
The Batch PC
Encapsulating the ftp process in a WinBatch
script file works well.
Use the DOS ftp program supplied with Windows.
The Batch PCGet the printer pull-down menu,
select the desired printer,
and print.
Wait a minute for printing to
complete before closing Word.
The Batch PC
The rest of the code closes loops and makes the script wait
until the next run time occurs.
Example from another scriptillustrating how to trigger on
day of the week.
This script runs early in the morning,
six days a week.
The Batch PC
The Batch Software Some final hints WinBatch appears to get application
Windows confused, despite referring to them by name in the scripts
The Batch PC
The Batch Software Some final hints WinBatch appears to get application
Windows confused, despite referring to them by name in the scripts
set up trigger and run times so that they do not overlap
The Batch PC
The Batch Software Some final hints long lines in your scripts: don’t break them up! WinBatch expects them to remain contiguous!
Better Call Number Sorting
originally written in SAS back in our NOTIS days
ported to Perl for use with Voyager
Better Call Number Sorting
originally written in SAS back in our NOTIS days
ported to Perl for use with Voyager with NOTIS, could only sort on whole
call number field, with expected atrocious results
Better Call Number Sorting
originally written in SAS back in our NOTIS days
ported to Perl for use with Voyager with NOTIS, could only sort on whole call
number field, with expected atrocious results Voyager provides normalized call number,
which allows for better than 80% correct sorting
Better Call Number Sorting
with intelligent parsing applied to the call number, we can achieve about 99% correct sorting
implemented it as a Perl module put use Sort::CallNumber; at the
beginning of your Perl code
Better Call Number Sorting
one call returns the call number chunks: @cnparts = cnparse($callnum); then sort on the cnparts
Thanks for listening.
Contact me if you want to receivethe CallNumber Perl module.
Questions?
Email: [email protected]
Phone: 616.387.3885