OUS_Benachrichtigung.. - Universitätsbibliothek Rostock

Werbung
OUS / Benachrichtigung bei Ablauf der Nutzungsdauer eines Dauerschließfaches
Schematische Darstellung & Scripts / UB Rostock / Stand: 31.08.2011 - v002
1) Schematische Darstellung des Ablaufs
Ablaufschritt / Script
1. sybase / crontab
2. hro<ILN>_read_userdat11_start_script
hro<ILN>_read_userdat11_result_script
Beschreibung
> Prozess zur Generierung der Info-Mails wird 1x täglich
gestartet
> Script ermittelt via SQL-Abfrage
hro<ILN>_read_userdat11_usr_sql alle Benutzer mit
Dauerschließfach, dessen Nutzungsdauer in den nächsten xTagen abläuft
> Daraus wird eine ausführbare Datei
hro<ILN>_read_userdat11_result_script generiert, die mit Ihrer
Ausführung für alle selektierten Benutzer den Text generiert
und per E-Mail sendet
> Zur Protokollierung wird eine E-Mail an den LBS-Admin
gesendet
> Script erzeugt zu versendende E-Mails mit dem SQLTemplate hro<ILN>_read_userdat11_text_sql und versendet sie
> Dazu wird im SQL-Template die jeweilige address_id_nr des
Benutzers eingetragen und per SQL-Abfrage (isql) der Text
erstellt
2) Ergebnismail
Informationsservice
Universitätsbibliothek Rostock und Bibliotheken im Ausleihverbund
Betreff : Ablauf der Nutzungsdauer
Bitte beachten Sie, dass die Nutzungsdauer für Ihr Dauerschließfach in 3 Tagen abläuft.
Sie können Ihre Nutzerdaten unter der folgenden Adresse einsehen :
https://katalog.ub.uni-rostock.de/loan/DB=1/LNG=DU/USERINFO_LOGIN
Mit freundlichen Grüßen
Ihre Bibliothek
1
3) Verwendete Scripts
sybase / crontab:
10 05 * * * /global/sybase/com/hro62_read_userdat11_start_script batch
hro62_read_userdat11_start_script
#!/bin/ksh
#
# hro<ILN>_read_userdat11_start_script
# Scriptgenerierung aus LBS-Datenbank mit SQL-Script
# ---------------------------------------------------------# historie:
# 20.07.10 - created, j.s. - ub hro
#
# Parameter: $1 = MODE
# ---------------------------------------------------------# ---------------------------------------------------------# Parameter fuer Ausfuehrung setzen
# ---------------------------------------------------------# Steuerung
# --------SCRIPTID=11
# eindeutige Script-Identifikationsnummer
ILN=62
# ILN
MODE=inter
# Ausfuehrungsmode batch oder inter(aktiv)
COLUMNWITDH=300
# Spaltenbreite fuer SQL-Text
SYBASEUSR=ro-user
# RO-User LBS-Datenbank
SYBASEUSRPW=passwd
# Passwort fuer RO-User LBS-Datenbank
[email protected]
# Empfaenger LOG-File
SLOG="3daysbefore_Dauerschliessfach"
# Suject fuer LOG-File
# Verzeichnisse
# ------------SCRIPTDIR=$HOME/com
TMPDIR=$HOME/tmp
LOGDIR=$HOME/log
# Dateien
# ------SQLUSR=hro${ILN}_read_userdat${SCRIPTID}_usr_sql
# SQL-Script Nutzerliste
SQLTEXT=hro${ILN}_read_userdat${SCRIPTID}_text_sql # SQL-Script Text an Nutzer
RESULTSCRIPT=hro${ILN}_read_userdat${SCRIPTID}_result_script
# Auszufuehrendes ResultScript
MAILTMP=mailtmp_${ILN}_${SCRIPTID}_user_
# fuer Generierung temp. File fuer
Mailversand
LOGFILE=mailtmp_${ILN}_${SCRIPTID}_log.txt
# Logfile
SEDSCRIPT=hro_remind_ous_sedscript
# sed-Script zum Bearbeiten der SQLAusgabe Nutzerliste
# ---------------------------------------------------------# LOGFILE an Administrator senden
CR_SUBJECT()
{
{
echo "From: sqlscript"
echo "Subject: SQL-LOG_${ILN}: hro${ILN}_read_userdat${SCRIPTID} - ${SLOG}"
echo "\nSQL-LOG: hro${ILN}_read_userdat${SCRIPTID} - ${SLOG}\n"
echo "Mail-Script fuer reminder service erzeugt und ausgefuehrt: $SCRIPTDIR/$RESULTSCRIPT"
echo
echo "SCRIPT:"
echo "---------------"
cat $SCRIPTDIR/$RESULTSCRIPT
} > $TMPDIR/$LOGFILE
/usr/lib/sendmail -t $1 < $TMPDIR/$LOGFILE
}
# ---------------------------------------------------------# Start des Main-Scripts
# ----------------------------------------------------------
2
# MODE als Parameter uebergeben
if [ $# = 1 ]
then
if [ $1 = "batch" ]
then
MODE=batch
# Make sure this script is only executed from batch/crontab.
# If so read .profile else stop execution
#tty 1>/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "MODE batch can only be executed from batch/crontab !!"
exit 1
else
. ${HOME}/define_sybase 1>/dev/null 2>&1
# SYBASE='/global/sybase/ASE_120'; export SYBASE
fi
else
MODE=inter
fi
else
MODE=inter
fi
# Check SYBASEUSR Verbindung zur Datenbank
echo exit > $SCRIPTDIR/test_${SYBASEUSR}_pw.login
$SYBASE/OCS-12_0/bin/isql -U$SYBASEUSR -P$SYBASEUSRPW i$SCRIPTDIR/test_${SYBASEUSR}_pw.login > $LOGDIR/test_${SYBASEUSR}.ok
found="`wc -l $LOGDIR/test_${SYBASEUSR}.ok | awk '{ print $1 } ' | tr -d '[:space:]'`"
rm $LOGDIR/test_${SYBASEUSR}.ok
if [ $found != "0" ]
then
echo "\n\tWrong password for user $SYBASEUSR !!\n"
exit
fi
# Loeschen Files der letzten Ausfuehrung
{
rm $TMPDIR/$LOGFILE
rm -f $TMPDIR/${ILN}_*remind${SCRIPTID}.sql
rm -f $TMPDIR/${ILN}_*remind${SCRIPTID}.txt
rm -f $TMPDIR/${MAILTMP}*.txt
} 2> /dev/null
# Ausfuehrbare Datei fuer remind service erzeugen
{
echo
CR_REMIND\(\)
echo
{
echo
\# Zuerste Mahntext mit Titelliste generieren
echo
\# Parameterliste
echo
\# 1 = E-Mail Absender
echo
\# 2 = E-Mail Empfaenger
echo
\# 3 = E-Mail Betreff
echo
\# 4 = address_id_nr Benutzer
echo
\# ACHTUNG - DIESER AUSDRUCK MUSS MIT DEM INHALT VON @address_id_nr IM SQL-SCRIPT
UEBEREINSTIMMEN !
echo
SUBST_ADDRESS_ID_NR=\"Xaddress_id_nrX\"
echo
\# Eigenes SQL-Script fuer Aufstellung genererien, substitute Aufstellung mittels sed
echo
sed s/\$SUBST_ADDRESS_ID_NR/\$4/ $SCRIPTDIR/$SQLTEXT
\>$TMPDIR/${ILN}_\$4_remind${SCRIPTID}.sql
echo
\$SYBASE/OCS-12_0/bin/isql -U$SYBASEUSR -P$SYBASEUSRPW -w$COLUMNWITDH i$TMPDIR/${ILN}_\$4_remind${SCRIPTID}.sql \> $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.tmp
echo
\# SQL-Result-File aufbereiten:
echo
cat $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.tmp \| grep \"#\" \| sed \'s/#//\' \>
$TMPDIR/${ILN}_\$4_remind${SCRIPTID}.sed
echo
cat $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.sed \>
$TMPDIR/${ILN}_\$4_remind${SCRIPTID}.txt
echo
rm -f $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.tmp
echo
rm -f $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.sed
3
echo
{
echo
echo \"From: \$1\"
echo
echo \"To:\$2\" \| sed \'s/ /, /\'
echo
echo \"Subject: \$3\"
echo
cat $TMPDIR/${ILN}_\$4_remind${SCRIPTID}.txt
echo
} \> $TMPDIR/${MAILTMP}\$4.txt
echo
/usr/lib/sendmail -t \$2 \< $TMPDIR/${MAILTMP}\$4.txt 2\>\&1 \>/dev/null
echo
}
} > $SCRIPTDIR/$RESULTSCRIPT
case $MODE in
'inter')
$SYBASE/OCS-12_0/bin/isql -U$SYBASEUSR -P$SYBASEUSRPW -i$SCRIPTDIR/$SQLUSR | sed f$SCRIPTDIR/$SEDSCRIPT | tee -a $SCRIPTDIR/$RESULTSCRIPT
;;
'batch')
$SYBASE/OCS-12_0/bin/isql -U$SYBASEUSR -P$SYBASEUSRPW -i$SCRIPTDIR/$SQLUSR | sed f$SCRIPTDIR/$SEDSCRIPT >> $SCRIPTDIR/$RESULTSCRIPT
;;
*)
echo "Invalid argument"
exit 1
;;
esac
sleep 10
# Execute setzen und ausfuehren
chmod 755 $SCRIPTDIR/$RESULTSCRIPT
$SCRIPTDIR/$RESULTSCRIPT
CR_SUBJECT $MAILLOGTO
exit
4
hro62_read_userdat11_usr_sql
/* ------------------------------------------------------------- */
/* Historie : */
/* ------------------------------------------------------------- */
/* SELECT @@VERSION ; go */
use lbsdb
go
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
''
'///////////////////////////////////////////////////////'
'62-5. Erinnerungsservice Dauerschliessfaecher'
' --- 3 Tage vor Ablauf der Dauerfrist ---'
'///////////////////////////////////////////////////////'
''
SELECT "Start information service at"= getdate ()
go
SET ROWCOUNT 0
go
DECLARE @iln smallint,
@day_diff int,
@free_text char(20)
/* ----------------------------------------------------------------------------------------------- */
/* Alle Nutzertypen */
/* ----------------------------------------------------------------------------------------------- */
SELECT
@iln = 62 /* UB ROSTOCK */,
@day_diff = 3 /* Tagesdifferenz */,
@free_text = "%Dauerschliessfach%" /* Dauerschliessfach Text aus volume.free_text */
/* SELECT Statement Ausgabe fuer Befehlsdatei */
SELECT "CR_REMIND [email protected] " + CHAR(34) + rtrim(b.email_address)
+ CHAR(34) + " " + CHAR(34) + "Informationsservice UB Rostock `date +" + CHAR(34) +
"%d.%m.%y" + CHAR(34) + "` / Dauerschliessfach - Ablauf der Nutzungsdauer / s n " +
b.borrower_bar + CHAR(34) + " " + CONVERT(VARCHAR(20), b.address_id_nr)
FROM
borrower b, loans_requests l, volume v
WHERE
b.iln=@iln /* 62 = Rostock */
/* @day_diff Tage vorher erinnern */
AND DATEDIFF(day,GETDATE(),l.expiry_date_loan) /* + r.number1 */ = @day_diff
/* Status muss 5 = ausgeliehen sein */
AND l.loan_status = 5
/* email adresse vorhanden */
AND NOT (PATINDEX('%@%', b.email_address) = 0)
/* Dauerschliessfach */
AND (v.free_text like @free_text)
/* Verknuepfungen der Tabellen */
AND b.iln = l.iln
AND l.volume_number = v.volume_number
AND b.address_id_nr = l.address_id_nr
GROUP BY
b.address_id_nr
SELECT "End information service at"= getdate ()
go
5
hro62_read_userdat11_text_sql
/* -------------------------------------------------------------------/* hro<ILN>_read_userdat11_text_sql
*/
/* Text fuer Erinnerung Ablauf Dauerschliessfach in 3 Tagen generieren
/*
/* Historie:
/* 01.07.10 js: created
*/
/* --------------------------------------------------------------------
*/
*/
*/
*/
*/
/* LBS-DATENBANK */
use lbsdb
go
/* HIER ALLGEMEIN VERWENDETE VARIABLEN */
DECLARE @iln
int,
@address_id_nr
int,
@day_diff
int,
@free_text
char(20)
SELECT
@iln
= 62,
/* ILN */
@day_diff
= 3,
/* Tagesdifferenz */
@free_text = "%Dauerschliessfach%",
/* Dauerschliessfach Text aus
volume.free_text */
@address_id_nr
= Xaddress_id_nrX
/* Substitute-Ausdruck fuer CR_REMIND! */
PRINT '#Informationsservice'
PRINT '#Universitätsbibliothek Rostock und Bibliotheken im Ausleihverbund'
PRINT '#'
PRINT '#Betreff : Ablauf der Nutzungsdauer'
PRINT '#'
PRINT '#Bitte beachten Sie, dass die Nutzungsdauer für Ihr Dauerschließfach in 3 Tagen
abläuft.'
PRINT '#'
PRINT '#Sie können Ihre Nutzerdaten unter der folgenden Adresse einsehen :'
PRINT '#https://katalog.ub.uni-rostock.de/loan/DB=1/LNG=DU/USERINFO_LOGIN'
PRINT '#'
PRINT '#Mit freundlichen Grüßen '
PRINT '#Ihre Bibliothek'
PRINT '#'
PRINT '#---------------------------------------------------'
PRINT '#'
PRINT '#'
PRINT '#Information service'
PRINT '#Universitaetsbibliothek Rostock and libraries in the lending group'
PRINT '#'
PRINT '#Subject : Ending of usage period'
PRINT '#'
PRINT '#Please note that the usage period of your of deposit-box expires in 3 days.'
PRINT '#'
PRINT '#You can view your user data under the following address :'
PRINT '#https://katalog.ub.uni-rostock.de/loan/DB=1/LNG=EN/USERINFO_LOGIN'
PRINT '#'
PRINT '#Sincerely'
PRINT '#Your Library'
PRINT '#'
go
hro_remind_ous_sedscript
# sed script zur aufbereitung der kommandodatei informationsservice
# 16 zeilen vom anfang loeschen
1,16d
# von DELETE-Marke (x rows affected) bis Dateiende loeschen
/(/,$d
6
hro62_read_userdat11_result_script
CR_REMIND()
{
# Zuerste Mahntext mit Titelliste generieren
# Parameterliste
# 1 = E-Mail Absender
# 2 = E-Mail Empfaenger
# 3 = E-Mail Betreff
# 4 = address_id_nr Benutzer
# ACHTUNG - DIESER AUSDRUCK MUSS MIT DEM INHALT VON @address_id_nr IM SQL-SCRIPT
UEBEREINSTIMMEN !
SUBST_ADDRESS_ID_NR="Xaddress_id_nrX"
# Eigenes SQL-Script fuer Aufstellung genererien, substitute Aufstellung mittels sed
sed s/$SUBST_ADDRESS_ID_NR/$4/ /global/sybase/com/hro62_read_userdat11_text_sql
>/global/sybase/tmp/62_$4_remind11.sql
$SYBASE/OCS-12_0/bin/isql -Uro-user -Ppasswd -w300 -i/global/sybase/tmp/62_$4_remind11.sql
> /global/sybase/tmp/62_$4_remind11.tmp
# SQL-Result-File aufbereiten:
cat /global/sybase/tmp/62_$4_remind11.tmp | grep "#" | sed 's/#//' >
/global/sybase/tmp/62_$4_remind11.sed
cat /global/sybase/tmp/62_$4_remind11.sed > /global/sybase/tmp/62_$4_remind11.txt
rm -f /global/sybase/tmp/62_$4_remind11.tmp
rm -f /global/sybase/tmp/62_$4_remind11.sed
{
echo "From: $1"
echo "To:$2" | sed 's/ /, /'
echo "Subject: $3"
cat /global/sybase/tmp/62_$4_remind11.txt
} > /global/sybase/tmp/mailtmp_62_11_user_$4.txt
/usr/lib/sendmail -t $2 < /global/sybase/tmp/mailtmp_62_11_user_$4.txt 2>&1 >/dev/null
}
CR_REMIND [email protected] "[email protected]" "Informationsservice UB
Rostock `date +"%d.%m.%y"` / Dauerschliessfach - Ablauf der Nutzungsdauer / s n
00289876543" 66286
# u.s.w.
7
Generierung der Verwaltungsliste Dauerschließfächer
Diese Liste wird nach dem Schema für Reports analog zur DBS, siehe auch
http://www.gbv.de/wikis/cls/Statistiken_mit_Structured_Query_Language_%28SQL%29
, generiert.
sybase / crontab:
# -- Belegung Mietschliessfaecher BB1 -16 20 * * * /global/sybase/reports/com/ous_062_Dauerschliessfaecher_FREETEXT_execute_cron
ro-user passwd
ous_062_Dauerschliessfaecher_FREETEXT_execute_cron
#!/bin/ksh
#
# ous_062_Dauerschliessfaecher_FREETEXT_execute
# Uebersicht Belegung der Dauerschliessfaecher / Bandselection ueber volume.free_text
# Erzeugen eines Reports aus der lbs-database mittels sql-script
# --#
# ---------------------------------------------------------# Historie:
# 03.02.10 js: created
# ---------------------------------------------------------CR_SUBJECT()
{
{
echo "From: ub-iuk"
echo "Subject: OUS - Belegung: $1"
echo "\n"
# echo "\nOUS - Belegung: $1\n"
# echo ----cat $2
echo ----echo end of log
} | /usr/lib/sendmail -t $3
}
CR_SUBJECT_new()
{
{
echo "From: ub-iuk"
echo "Subject: OUS - Belegung: $1"
echo "\n"
# echo "\nOUS - Belegung: $1\n"
# echo ----cat $2
echo ----echo end of log
} > ${HOME}/tmp/mailtmp_62_Dauerschliessfaecher_$1_log.txt
/usr/lib/sendmail -t $3 < ${HOME}/tmp/mailtmp_62_Dauerschliessfaecher_$1_log.txt
}
Dauerschliess_BB1()
{
echo "OUS - Belegung der Dauerschliessfaecher $1 ..."
# Hier muss in VOL_FREETEXT der Text eingetragen werden, der bei den
# entsprechenden Bandsaetzen auch in "Freier Text" eingetragen ist !!!
case $1 in
"BB1") VOL_FREETEXT="Dauerschliessfach-BB1"; break;;
*) VOL_FREETEXT="Dauerschliessfach-BB1"; break;;
esac
EMAIL=$2
EMAIL_ADDRESS=$3
REPORTFILE="ous"$ILN"_Uebersicht_"$VOL_FREETEXT".doc"
SQLSTARTFILE="ous"$ILN"_Uebersicht_Dauerschliessfaecher_FREETEXT.sql"
SQLFILE="ous"$ILN"_Uebersicht_Dauerschliessfaecher_"$VOL_FREETEXT".sql"
LOGFILE="ous"$ILN"_Uebersicht_Dauerschliessfaecher_"$VOL_FREETEXT".log"
8
# *** ACHTUNG - DIESER AUSDRUCK MUSS MIT DEM INHALT VON @free_text IM SQL-SCRIPT
UEBEREINSTIMMEN ! ***
SUBST_FREETEXT="XXFREETEXTXX"
echo
echo
echo
echo
echo
echo
echo
echo
{
"Schliessfach
"REPORT-FILE
"SQL-FILE
"LOG-FILE
"E-Mail
"E-MAIL-ADR.
=$VOL_FREETEXT"
=$REPORTBASE/results/$REPORTFILE"
=$REPORTBASE/sql/$SQLFILE"
=$REPORTBASE/log/$LOGFILE"
=$EMAIL"
=$EMAIL_ADDRESS"
echo "Erstelle Uebersicht der Schliessfachbelegung fuer $VOL_FREETEXT ..."
sed s/$SUBST_FREETEXT/$VOL_FREETEXT/ $HOME/reports/sql/$SQLSTARTFILE
>$HOME/reports/sql/$SQLFILE
rm -f $REPORTBASE/results/$REPORTFILE
$SYBASE/OCS-12_0/bin/isql -U$usr -P$bla -S$SERVER -D$DATABASE -w$COLUMNWIDTH i$REPORTBASE/sql/$SQLFILE | tee -a $REPORTBASE/results/$REPORTFILE
# rm -f $REPORTBASE/sql/$SQLFILE
# Statistik aufbereiten
# 1. Zeilen mit "#" herausfiltern (grep)
# 2. Zeichen '#' am Zeilenanfang ferausfiltern (sed)
# 3. Umlaute/Sonderzeichen ersetzen (sed)
cat $REPORTBASE/results/$REPORTFILE | grep "#" | sed 's/#//' >
$REPORTBASE/results/$REPORTFILE.sed
sed -f $REPORTBASE/com/script.txt $REPORTBASE/results/$REPORTFILE.sed >
$REPORTBASE/results/$REPORTFILE
rm -f $REPORTBASE/results/$REPORTFILE.sed
# if [ "$EMAIL" = "Y" ] then
CR_SUBJECT $VOL_FREETEXT $REPORTBASE/results/$REPORTFILE $EMAIL_ADDRESS
# fi
echo --echo
} > $REPORTBASE/log/$LOGFILE
}
# --- nur fuer unix-account sybase --# Make sure this script is only executed from batch/crontab.
# If so read .profile else stop execution
#tty 1>/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "This script can only be executed from batch/crontab mode!!"
exit 1
else
. ${HOME}/define_sybase 1>/dev/null 2>&1
# SYBASE='/global/sybase/ASE_120'; export SYBASE
fi
# check
if [ $# -lt 2 ]
then
echo "\n\tUsage: $0 user password\n"
exit 1
fi
# ----------------------------# --- HIER VARIABLEN SETZEN --# ----------------------------DATABASE=lbsdb
ILN=062
# JAHR=2008 - Jahr nicht benoetigt
# ----------------------------# --- HIER NUR BEI BEDARF
--# -----------------------------
9
REPORTBASE=$HOME/reports
# $SERVER nur setzen, wenn DSQUERY nicht gesetzt ist
if [ "`echo $DSQUERY`" = "" ]
then
SERVER=servername
else
SERVER=$DSQUERY
fi
COLUMNWIDTH=250
# -- SQLFILE="ous"$ILN"_Uebersicht_Dauerschliessfaecher_FREETEXT.sql"
# ----------------------------# user und password
usr=$1
bla=$2
# --- test account --$SYBASE/OCS-12_0/bin/isql -U$usr -P$bla -S$SERVER -i$REPORTBASE/com/test.login >
$REPORTBASE/log/test.ok
found="`wc -l $REPORTBASE/log/test.ok | awk '{ print $1 } ' | tr -d '[:space:]'`"
rm $REPORTBASE/log/test.ok
if [ $found != "0" ]
then
echo "\n\tFalsches Passwort fuer sybase-user ${usr} !!\n"
exit
else
echo "\nVerbindung Sybase-Server erfolgreich - Starten des Reports ...\n"
Dauerschliess_BB1 BB1 Y [email protected],[email protected]
fi
exit
ous062_Uebersicht_Dauerschliessfaecher_FREETEXT.sql
/* ------------------------------------------- */
/* ous<ILN>_Uebersicht_Dauerschliessfaecher.sql */
/* Liste der offenen Forderungen
*/
/*
*/
/* Historie:
*/
/* 30.01.09 js: created
*/
/* 24.08.11 js: email_address added
*/
/* ------------------------------------------- */
/*
---------------------------------------------Enthaelt:
Belegung der Dauerschliessfaecher
*/
/* LBS-DATENBANK */
use lbsdb
go
/* HIER ALLGEMEIN VERWENDETE VARIABLEN */
DECLARE @iln
@fno
@free_text
int,
int,
varchar(60)
/* HIER START- und END-JAHR, ILN UND FNO FESTLEGEN */
SELECT
@iln =
62,
@fno =
1,
/* stelsel-filenumber */
@free_text = "XXFREETEXTXX"
/* Selection volume.free_text - HIER SUBSTITUTE-CODE
FUER SHELL-SCRIPT */
10
/* -------------------------------------------------------- */
/* Kopf */
/* -------------------------------------------------------- */
/* SELECT '#Zum Drucken in Word kopieren:' */
/* SELECT '#- A4 Querformat' */
/* SELECT '#- Einfuegen als Unformatierten Text (Bearbeiten -> Inhalte einfuegen)' */
/* SELECT '#- Schriftart Courier New 10' */
/* PRINT '# ---------------------------------------------------------------------------------------------------' */
/* PRINT '#' */
SELECT '#Uebersicht der Belegung der Dauerschliessfaecher ILN: ', CONVERT(char(3), @iln)
SELECT '#Standort ......:', @free_text
SELECT '#erzeugt am ....:', CONVERT(char(8), GETDATE(), 4), CONVERT(char(8), GETDATE(), 8)
PRINT '#'
SELECT '#Sortierung: Aufsteigend nach Ablaufdatum'
/* HIER STARTEN DIE ABFRAGEN ... */
PRINT '#'
PRINT '# ------------------------------------------------------------------------------------------------------------------'
PRINT '# SCHLIESSFACH BARCODE
ABLAUFDATUM NUTZERBARCODE
BENUTZERNAME
BENUTZERTYP EMAIL'
PRINT '# ------------------------------------------------------------------------------------------------------------------'
SELECT
/* Zeile fuer Ausgabe bestimmt */
'#',
/* Schliessfach */
"
" + CONVERT(char(5), v.volume_information),
/* Barcode */
CONVERT(char(13), v.volume_bar),
/* Ablaufdatum*/
CONVERT(char(12), l.expiry_date_loan,5),
/* s ent n + Benutzerbarcode */
"s ent n " + CONVERT(char(12), b.borrower_bar),
/* Benutzername */
CONVERT(char(25), b.query_name),
/* Benutzertyp */
CONVERT(char(12), b.borrower_type),
/* E-Mail Adresse */
CASE b.email_address WHEN null THEN "-" ELSE "mailto:" + b.email_address END
FROM
borrower b, volume v, loans_requests l
WHERE
b.iln = @iln
and v.iln = @iln
and l.iln = @iln
and b.address_id_nr = l.address_id_nr
and l.volume_number = v.volume_number
and v.free_text like "%" + @free_text + "%"
ORDER BY
l.expiry_date_loan ASC
PRINT '#'
PRINT '#'
PRINT '#================================= Datei-ENDE
========================================='
PRINT '#'
PRINT '#'
go
11
Herunterladen