Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cross-platform Batch Reports Waldo Library Western Michigan University.

Similar presentations


Presentation on theme: "Cross-platform Batch Reports Waldo Library Western Michigan University."— Presentation transcript:

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


Download ppt "Cross-platform Batch Reports Waldo Library Western Michigan University."

Similar presentations


Ads by Google