Download presentation
Presentation is loading. Please wait.
1
Cross-platform Batch Reports Waldo Library Western Michigan University
2
Objectives n show an implementation of automated, cross-platform, hands-off report generation in the Voyager environment n provide you with the information to do this at your site
3
Bonus!!!!! Source code for BLOB access and a table+column schema listing included in the handout.
4
Brief Bio
5
n Working at WMU for 16 years now
6
Brief Bio n Working at WMU for 16 years now n Initially spent many years on the VAX
7
Brief Bio n Working at WMU for 16 years now n Initially spent many years on the VAX n Struggled for several years with the IBM mainframe and NOTIS
8
Brief Bio n Working at WMU for 16 years now n Initially spent many years on the VAX n Struggled for several years with the IBM mainframe and NOTIS n Supporting Voyager for close to 3 years
9
Brief Bio n Working at WMU for 16 years now n Initially spent many years on the VAX n Struggled for several years with the IBM mainframe and NOTIS n Supporting Voyager for close to 3 years n Picked up some Oracle, (PL/)SQL, Perl, and Unix along the way
10
Why We Did This
11
n initially no access to Access with ODBC stuff; had no clue
12
Why We Did This n initially no access to Access with ODBC stuff; had no clue n explored our Voyager Unix box, located SQL*PLUS
13
Why We Did This n So we created reports - n run them on the Voyager box, n transfer to PC n format and print in Word, n etc...
14
Why We Did This n So we created reports - n library liked them - n I got tired of:
15
Why We Did This n So we created reports - n library liked them - n I got tired of: n running reports n ftping them n formatting them n printing them n physically delivering them
16
Cross-Platform Batch Reports Overview of Process (Handout page 4) Unix
17
cron Cross-Platform Batch Reports Overview of Process Unix
18
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file
19
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script
20
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl
21
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running
22
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC
23
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch
24
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe
25
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report
26
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report time/date parameters stored in each script
27
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report time/date parameters stored in each script copy report to destination on LAN
28
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report time/date parameters stored in each script copy report to destination on LAN print report to location
29
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report time/date parameters stored in each script copy report to destination on LAN print report to location Library Administration Library Systems Media Resources Mono Acquisitions Serials
30
When to Choose SQL, PL/SQL, or Perl n SQL
31
When to Choose SQL, PL/SQL, or Perl n SQL n invoked from within SQL*PLUS
32
When to Choose SQL, PL/SQL, or Perl n SQL n invoked from within SQL*PLUS n sufficient for most reports
33
When to Choose SQL, PL/SQL, or Perl n SQL n invoked from within SQL*PLUS n sufficient for most reports n easy control of page & line size, page formatting
34
When to Choose SQL, PL/SQL, or Perl n SQL n invoked from within SQL*PLUS n sufficient for most reports n easy control of page & line size, page formatting n takes control, does most of the work for you
35
When to Choose SQL, PL/SQL, or Perl n SQL n invoked from within SQL*PLUS n sufficient for most reports n easy control of page & line size, page formatting n takes control, does most of the work for you n output to screen or file
36
When to Choose SQL, PL/SQL, or Perl n SQL n sample of code… (Handout page 5) n output snippet below
37
When to Choose SQL, PL/SQL, or Perl identify what the report generates
38
When to Choose SQL, PL/SQL, or Perl include Word format settings
39
When to Choose SQL, PL/SQL, or Perl define output columns
40
When to Choose SQL, PL/SQL, or Perl these two columns are for sorting only
41
When to Choose SQL, PL/SQL, or Perl The call to FISCYRSETUP creates a temporary table, for the duration of this report, that contains the name and start date for the current and previous year. This is used in a number of reports to automatically reference fiscal year data.
42
When to Choose SQL, PL/SQL, or Perl Set up title and some report parameters. Want output in a file.
43
When to Choose SQL, PL/SQL, or Perl Run the query to create the report. Clean up when done.
44
When to Choose SQL, PL/SQL, or Perl n PL/SQL
45
When to Choose SQL, PL/SQL, or Perl n PL/SQL n invoked from within SQL*PLUS, or embedded in / combined with SQL
46
When to Choose SQL, PL/SQL, or Perl n PL/SQL n invoked from within SQL*PLUS, or embedded in / combined with SQL n provides SQL capabilities with programming language control added
47
When to Choose SQL, PL/SQL, or Perl n PL/SQL n invoked from within SQL*PLUS, or embedded in / combined with SQL n provides SQL capabilities with programming language control added n functionality sort of in-between SQL and Perl
48
When to Choose SQL, PL/SQL, or Perl n PL/SQL n output to screen or to screen
49
When to Choose SQL, PL/SQL, or Perl n PL/SQL n output to screen or to screen n Oracle allows output to file, but the Voyager installation does not enable this
50
When to Choose SQL, PL/SQL, or Perl n PL/SQL n output to screen or to screen n Oracle allows output to file, but the Voyager installation does not enable this n size limited to 1 million bytes output
51
When to Choose SQL, PL/SQL, or Perl n PL/SQL n output to screen or to screen n Oracle allows output to file, but the Voyager installation does not enable this n size limited to 1 million bytes output n screen output can be captured to file
52
When to Choose SQL, PL/SQL, or Perl n PL/SQL n sample of code… (Handout pages 6 & 7) n output snippet below
53
When to Choose SQL, PL/SQL, or Perl start off with some comments… output limitation…
54
When to Choose SQL, PL/SQL, or Perl important reminder
55
When to Choose SQL, PL/SQL, or Perl note the order by
56
When to Choose SQL, PL/SQL, or Perl variables must be declared
57
When to Choose SQL, PL/SQL, or Perl fields from the table
58
When to Choose SQL, PL/SQL, or Perl you have control of looping through results
59
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.
60
When to Choose SQL, PL/SQL, or Perl The 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
61
When to Choose SQL, PL/SQL, or Perl The 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.
62
When to Choose SQL, PL/SQL, or Perl get data from the header, then get each tag’s data as we loop through the directory structure
63
When to Choose SQL, PL/SQL, or Perl do some formatting...
64
When to Choose SQL, PL/SQL, or Perl print formatted tag data… finish looping and end the program
65
When to Choose SQL, PL/SQL, or Perl Without the closing “/”, your PL/SQL code will NOT run!
66
When to Choose SQL, PL/SQL, or Perl n Perl
67
When to Choose SQL, PL/SQL, or Perl n Perl n invoked from the operating system n (can be called from within SQL(*PLUS)
68
When to Choose SQL, PL/SQL, or Perl n Perl n invoked from the operating system n (can be called from within SQL(*PLUS) n you have control over everything, which means:
69
When to Choose SQL, PL/SQL, or Perl n Perl n invoked from the operating system n (can be called from within SQL(*PLUS) n you have control over everything, which means: n relatively unlimited flexibility n that you have to do ALL the work
70
When to Choose SQL, PL/SQL, or Perl n Perl n invoked from the operating system n (can be called from within SQL(*PLUS) n you have control over everything, which means: n relatively unlimited flexibility n that you have to do ALL the work n output to screen or file
71
When to Choose SQL, PL/SQL, or Perl n Perl n sample of code… (Handout pages 8 -10) n output snippet below
72
When to Choose SQL, PL/SQL, or Perl start off with some comments
73
When to Choose SQL, PL/SQL, or Perl You’ll need to have DBI and DBD for Oracle set up on your Unix box.
74
When to Choose SQL, PL/SQL, or Perl set up some variables
75
When to Choose SQL, PL/SQL, or Perl need to be able to talk to the database
76
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.
77
When to Choose SQL, PL/SQL, or Perl need to know how many columns per table to aid in output formatting
78
When to Choose SQL, PL/SQL, or Perl set up and initiate output
79
When to Choose SQL, PL/SQL, or Perl get the report’s data
80
When to Choose SQL, PL/SQL, or Perl keep track of column names ending in “_id”
81
When to Choose SQL, PL/SQL, or Perl go through array, output columns ending in “_id” first
82
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.
83
When to Choose SQL, PL/SQL, or Perl then repeat this process for columns that do not end in “_id”
84
When to Choose SQL, PL/SQL, or Perl if not enough room for smallest possible table, go to next page
85
When to Choose SQL, PL/SQL, or Perl clean up when done
86
The Batch PC
87
n Should be dedicated to this task
88
The Batch PC n Should be dedicated to this task n configuration...
89
The Batch PC n Hardware
90
The Batch PC n Hardware n older pc will be adequate
91
The Batch PC n Hardware n older pc will be adequate n we’re using a 133MHz Pentium
92
The Batch PC n Hardware n older pc will be adequate n we’re using a 133MHz Pentium n 32 meg RAM
93
The Batch PC n Hardware n older pc will be adequate n we’re using a 133MHz Pentium n 32 meg RAM n 1.5 gig hard disk, which is way more than necessary
94
The Batch PC n Software
95
The Batch PC n Software n running Windows 95
96
The Batch PC n Software n running Windows 95 n WinBatch software n (see www.windowware.com)
97
The Batch PC n Software n running Windows 95 n WinBatch software n (see www.windowware.com) n the scripts that you write...
98
The Batch PC n The Batch Software
99
The Batch PC n The Batch Software n WinBatch installation will leave it running in the background
100
The Batch PC n The Batch Software n WinBatch installation will leave it running in the background n in Windows Explorer, double click on your WinBatch script, identified as a.WBT file
101
The Batch PC n The Batch Software n WinBatch installation will leave it running in the background n in Windows Explorer, double click on your WinBatch script, identified as a.WBT file n it will either run right away, or appear on the task bar, awaiting its time
102
Quick Process Review
103
cron Cross-Platform Batch Reports Overview of Process Unix Time/date parameters in one crontab file script SQL, PL/SQL, Perl report One cron process running Batch PC WinBatch script or.exe use ftp to get the report pull it into Word format the report time/date parameters stored in each script copy report to destination on LAN print report to location Library Administration Library Systems Media Resources Mono Acquisitions Serials
104
The Batch PC n The Batch Software n FINALLY, a script! (Handout pages 11 & 12)
105
The Batch PC start off with comments, including instructions on when the script can be started safely to avoid duplication of report printing
106
The Batch PC set up paths and filenames on the Unix box and the batch PC, get the database password from a file
107
The Batch PC determine if it’s time for the script to run
108
The Batch PC Encapsulating the ftp process in a WinBatch script file works well. Use the DOS ftp program supplied with Windows.
109
The Batch PC wait a minute for ftp to complete
110
The Batch PC make sure file exists, then launch Word with it
111
The Batch PC send formatting keystrokes to Word
112
The Batch PC Get the printer pull-down menu, select the desired printer, and print. Wait a minute for printing to complete before closing Word.
113
The Batch PC The rest of the code closes loops and makes the script wait until the next run time occurs.
114
Example from another script illustrating how to trigger on day of the week. This script runs early in the morning, six days a week.
115
The Batch PC n The Batch Software n Some final hints
116
The Batch PC n The Batch Software n Some final hints n WinBatch appears to get application Windows confused, despite referring to them by name in the scripts
117
The Batch PC n The Batch Software n Some final hints n WinBatch appears to get application Windows confused, despite referring to them by name in the scripts n set up trigger and run times so that they do not overlap
118
The Batch PC n The Batch Software n Some final hints n long lines in your scripts: n don’t break them up! n WinBatch expects them to remain n contiguous!
119
Thanks for listening Questions? Email: zimmer@wmich.edu Phone: 616.387.3885
120
Better Call Number Sorting Roll your own!
121
What Voyager gives us…
122
We can achieve better results… this is now our input correctly sorted
123
Better Call Number Sorting n originally written in SAS back in our NOTIS days
124
Better Call Number Sorting n originally written in SAS back in our NOTIS days n ported to Perl for use with Voyager
125
Better Call Number Sorting n originally written in SAS back in our NOTIS days n ported to Perl for use with Voyager n with NOTIS, could only sort on whole call number field, with expected atrocious results
126
Better Call Number Sorting n originally written in SAS back in our NOTIS days n ported to Perl for use with Voyager n with NOTIS, could only sort on whole call number field, with expected atrocious results n Voyager provides normalized call number, which allows for better than 80% correct sorting
127
Better Call Number Sorting n with intelligent parsing applied to the call number, we can achieve about 99% correct sorting n implemented it as a Perl module n put use Sort::CallNumber; at the beginning of your Perl code
128
Better Call Number Sorting n one call returns the call number chunks: @cnparts = cnparse($callnum); then sort on the cnparts
129
Thanks for listening. Contact me if you want to receive the CallNumber Perl module. Questions? Email: zimmer@wmich.edu Phone: 616.387.3885
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.