Allgemeines
Wenn Sie für die Bereitstellung von Anwendungen zuständig sind, die mit dem SF Application Creator erstellt wurden, so kommen Sie in den Genuss von besonders einfach zu installierenden Updates. Wir haben oft genug den "Administratoren-Hut" auf und wissen nur zu gut, wie schrecklich manche Setup-Routinen auszuführen sind. Bei uns geht das Installieren von Updates daher einfach, schnell und sicher.
Die hier gegebenen Informationen sind für Endanwender/innen nicht wichtig, sondern nur für Netzwerkadministratoren.
Der einfachste Fall: Ein einziger Ordner auf einem Fileserver mit den Programmdateien
Bei den meisten Installationen gibt es einen Ordner auf einem Fileserver, in dem die Programmdateien gespeichert sind, sowie eine .config-Datei, in der nur steht, wie der SQL Server-Datenbankserver und die Datenbank heißen. Auf den Ordner haben die Benutzer ausschließlich Leserechte. In diesem Fall sind wir mit der Installation gleich fertig:
- Stellen Sie sicher, dass niemand die Anwendung gerade benutzt.
- Speichern Sie die von unseren Update-Mails heruntergeladene ZIP-Datei, z.B. direkt in diesen Ordner.
- Wichtig: Bevor Sie die ZIP-Datei entpacken, klicken Sie sie mit der rechten Maustaste an und wählen Eigenschaften. Wenn dort eine Schaltfläche oder ein Ankreuzfeld Zulassen angeboten wird, aktivieren Sie die und wählen dann OK.
- Warum? Viele Browser speichern Dateien aus dem Internet mit einem Attribut, dass Windows sagt, dass diese Datei aus dem Internet stammt und also potenziell böse und gefährlich ist. Wenn Sie die ZIP-Datei so mit Windows-Bordmitteln entpacken würden, würden auch alle entpackten Dateien dieses Attribut bekommen. Die Benutzer bekämen dann bei jedem Aufruf eine lästige Warnmeldung, ob sie das Programm ausführen wollen, obwohl es doch vielleicht gefährlich ist.
- Kopieren Sie die entpackten Dateien einfach über die vorhandenen drüber mit Überschreiben (Sie können die alten ZIP-Dateien gerne aufbewahren für den Fall der Fälle).
- Rufen Sie ein Mal die Hauptanwendung (.exe) mit den Kommandozeilen-Parametern /forceb /forcereports auf, um sicherzustellen, dass die Datenbankstrukturen und ggf. Berichte in den SQL Server Reporting Services aktualisiert sind.
- Tipp: Erstellen Sie sich eine Verknüpfung auf die .exe mit diesen Parametern zum schnellen Aufruf.
- Sie benötigen dazu dbowner-Rechte in der jeweiligen Datenbank und ggf. in den SQL Server Reporting Services das Recht, Berichte hochzuladen.
- Fertig!
Ganz kurz also: ZIP laden und zulassen, über die vorhandenen Dateien entpacken, einmal mit /forcedb /forcereports aufrufen, Fertig!
Die Details
Abhängig davon, was in der neuen Version neu ist, können Sie so vorgehen:
Neue Programmdateien müssen verteilt werden, weil der Client sich geändert hat
- Verteilen Sie den neuen Client: Wenn Sie die Anwendung nur auf einem Fileserver fürs gesamte Netzwerk bereitstellen, brauchen Sie nur an dieser einen Stelle die Dateien auszutauschen. Falls Sie die Anwendung an einzelne Arbeitsplätze verteilt haben, müssen Sie das mit der neuen Version ebenfalls wieder für alle Arbeitsplätze tun.
Eine Erweiterung der Datenbankstruktur ist notwendig
- Rufen Sie den neuen Client als jemand angemeldet auf, der in der betreffenden SQL Server-Datenbank dbowner-Rechte hat. Das kann, muss aber nicht unbedingt ein Domain-Admin-Konto sein; es wird empfohlen, grundsätzlich als jemand angemeldet zu arbeiten, der nur die minimal notwendigen Rechte hat. Für eine Erweiterung oder Änderung der Datenbankstruktur benötigen Sie dbowner-Rechte innerhalb der Datenbank.
- Die Anwendung wird beim Start feststellen, dass die Datenbank aktualisiert werden muss. Stellen Sie sicher, dass Sie für alle Fälle über eine aktuelle Sicherung der Datenbank verfügen und lassen Sie die Anwendung die Datenbank aktualisieren. Tatsächlich laufen auch die Struktur-Updates in der Datenbank innerhalb einer Transaktion - entweder das Update klappt, oder nichts ist Ihrer Datenbank verändert.
- Nach der erfolgreichen Datenbankstruktur-Aktualisierung werden automatisch die Berichte in die SQL Server Reporting Services hochgeladen (sofern die Einstellungen dafür in Extras/Optionen... bereits gesetzt waren).
Eine Erweiterung oder Korrektur der Datenbank ist notwendig, die im laufenden Betrieb installiert werden kann
- Rufen Sie die Anwendung mit dem Kommandozeilenparameter /forcedb auf und lassen Sie so die Datenbankobjekte außer Tabellen (Rollen, Sichten, gespeicherte Prozeduren) neu erstellen.
- Sie können das tun, während Benutzer mit der Anwendung arbeiten.
- Sie können /forcedb jederzeit wieder verwenden, um sicher zu stellen, dass die Datenbankobjekte korrekt erzeugt sind (z.B. nachdem versehentlich eine gespeicherte Prozedur gelöscht wurde). Wenn Sie sich also nicht sicher sind, ob alles auf aktuellem Stand ist, können Sie das mit /forcedb sicherstellen.
- /forcedb setzt voraus, dass Sie als jemand mit dbowner-Rechten in der betreffenden Datenbank angemeldet sind.
- /forcedb erzeugt nicht fehlende Tabellen. Wenn Sie versehentlich Tabellen gelöscht haben, müssen Sie die Datenbank von einer Sicherung wiederherstellen.
- Wenn kein Datenbankupdate verlangt wurde und der neue Client keine Änderungen außer geänderten Datenbankobjekten (außer Tabellen) mitbringt, brauchen Sie den Client nicht zu verteilen (obwohl Sie das dürfen, wenn Sie möchten).
Neue Berichte stehen zur Verfügung
- Rufen Sie die Anwendung mit dem Kommandozeilenparameter /forcereports auf.
- Voraussetzung ist, dass die Reporting-Parameter in der Anwendung unter Extras, Optionen... bereits erfasst wurden (zu beachten bei Erstinstallationen), dass der dort angegebene Ordner innerhalb der Reporting Services bereits existiert und die Datenquelle enthält, und dass die Report-Dateien (*.rdl) im Anwendungsverzeichnis liegen (die werden als Teil der ZIP-Dateien mit ausgeliefert).
- Sie können das tun, während Benutzer mit der Anwendung arbeiten.
- Sie können /forcereports jederzeit verwenden, um sicher zu stellen, dass die Berichte korrekt in die SQL Server Reporting Services hochgeladen sind (z. B. nachdem versehentlich Berichte daraus gelöscht wurden). Wenn Sie sich also nicht sicher sind, ob alles auf aktuellem Stand ist, können Sie das mit /forcereports sicherstellen.
- /forcereports setzt voraus, dass Sie als jemand angemeldet sind, der Reports hochladen darf.
Unbeaufsichtigte Installation von Updates
Sie können die Anwendung auch mit den folgenden Kommandozeilenoptionen aufrufen, um die Updateinstallation vollständig zu automatisieren (Groß-/Kleinschreibung ist unerheblich):
- /FORCEDB erzeugt alle Datenbankobjekte außer Tabellen neu: Rollen, Sichten, gespeicherte Prozeduren sowie Zugriffsrechte.
- /FORCEREPORTS lädt alle Berichte in die SQL Server Reporting Services hoch.
- /YES beantwortet Rückfragen automatisch mit Ja.
- /QUIT beendet die Anwendung sofort nach der Aktualisierung.
Die Anwendung gibt folgende Rückgabecodes an Batchdateien zurück:
- 0: Die Aktualisierung verlief fehlerfrei.
- 1: Allgemeiner Fehler.
- 2: Die Datenbank war nicht erreichbar.
- 3: Der Benutzer verweigerte eine notwendige Aktualisierung der Datenbankstruktur.
- 4: Die Aktualisierung der Datenbankstruktur schlug fehl.
- 5: Die Datenbank liegt in einer neueren Version vor als von der Anwendung erwartet.
- 6: Beim Hochladen von Berichten in die SQL Server Reporting Services ist ein Fehler aufgetreten.
Mit einer Batchdatei wie der folgenden können Sie eine vollautomatische Aktualisierung der Datenbank vornehmen:
start /wait SFAnwendungsname.exe /forcedb /forcereports /yes /quit
if errorlevel 1 echo FEHLER!
start /wait sorgt dafür, dass das Batchfile erst weiterläuft, wenn die Anwendung sich wieder beendet hat (sie würde ansonsten parallel zur Batchdatei weiterlaufen, weil es eine Windows- und keine Kommandozeilenanwendung ist). SFAnwendungsname.exe steht für den Namen der ausführbaren Datei der Anwendung. Die Angabe von /forcedb /forcereports /yes /quit sorgt dafür, dass auf jeden Fall alle Datenbankobjekte erzeugt sind, falls nötig automatisch und ohne Rückfrage eine Datenbankaktualisierung vorgenommen wird, dass ggf. Berichte in die SQL Server Reporting Services hochgeladen werden, und das sich das Programm danach sofort beendet.
Sie können danach die von cmd.exe definierte Variable errorlevel abfragen, um auf das Resultat geeignet zu reagieren.
Stellen Sie bitte sicher, dass das Batchfile mit einem Benutzerkonto angemeldet läuft, welches dbowner-Rechte in der jeweiligen Datenbank hat und ggf. Berichte in die SQL Server Reporting Services hochladen darf. Andernfalls ist eine automatische Aktualisierung nicht möglich. Wichtig: Normale Benutzer der Anwendung dürfen keinen dbowner-Zugriff haben, sondern lediglich Mitglied in den jeweils richtigen von der Anwendung automatisch angelegten Anwendungsrollen sein!