Erstellen einer Prozedur für die Berechnung von Feldern in einem Sportförderprojekt 1. Prozedur in der Datenbank verminet definieren Im SQL Server Management Studio (SSMS) die Tabellen der Datenbank verminet öffnen. Auf der Tabelle vsystem.procedures eine Rechtsklick ausführen, und Oberste 200 Zeilen bearbeiten wählen. Im rechten Fenster in die Zeile mit dem Sternchen in die Spalte procedure_id klicken und eine Eins, für die erste Berechnungsprozedur, bzw. die nächste freie Nummer, für eine weitere Berechnungsprozedur, als ID eintragen. Mit der TAB-Taste in die Spalte procedure_name wechseln. Hier den Prozedurnamen nach Datenbankkonventionen eintragen. Gemeint ist der Speicherort der Prozedur in der Datenbank. Er setzt sich zusammen aus Datenbankname, dem Besitzer (dbo) und dem eigentlich zu vergebenen Namen. z. B. vermidat.dbo.procedure_name Mit der TAB-Taste in die Spalte display_name wechseln. Hier den anzuzeigenden Namen eintragen. Dieser wird später in den Projektdefinitionen aus einer Dropdownliste mit vorhandenen Berechnungsprozeduren für jedes Projekt ausgewählt. z. B. Berechnungen für Wettkampfkosten Die Eintragungen abschließend durch klicken in eine andere Zeile speichern/übernehmen. (Die roten Ausrufezeichen in den Zellen der neuen Zeile verschwinden.) 2. Prozedur in der Anwendung einem Sportförderprojekt zuordnen Bei der Anwendung VermiNet mit der Berechtigung für Eintragungen in der Administration der Sportförderung anmelden. Administration – Sportförderung – Projektdefinition – Projektdefinition öffnen. Im Bereich Berechnungsformel den Dropdownpfeil klicken und die Bezeichnung der Berechnungsprozedur auswählen. Hier darauf achten, dass die Felder aus der Berechnung auch im Projekt genutzt werden! 3. Datenbank vermidat anlegen und Benutzer hinzufügen (einmalig beim Anlegen der ersten Prozedur erforderlich) Im SSMS die Datenbank vermidat anlegen. Dazu Rechtsklick auf Datenbanken und „neue Datenbank …“ wählen. Als Datenbankname vermidat eintragen und mit OK bestätigen. Die Datenbank vermidat erweitern - Sicherheit erweitern – Rechtsklick auf Benutzer – „Neuer Benutzer …“. Rechts neben Anmeldebutton auf Suchen klicken – Durchsuchen klicken – VerminetAppPool markieren und mit zweimal OK bestätigen. Anmeldename in Feld Benutzername kopieren. Mitgliedschaft in Datenbankrolle = db_owner markieren und mit OK bestätigen. 4. Prozedur in Datenbank vermidat anlegen Im SSMS vermidat erweitern –Programmierbarkeit erweitern - Rechtsklick auf Gespeicherte Prozeduren – „Neue gespeicherte Prozedur …“ Es öffnet sich ein Abfragefenster mit Voreinstellungen zum Erzeugen einer Prozedur. Da der Aufruf in vermidat erfolgt, wird die Prozedur hier angelegt! Im Abschnitt CREATE PROCEDURE hinter dem Text CREATE PROCEDURE den Text „<Procedure_Name, sysname, PrecedureName>“ vollständig ersetzen durch den in Schritt 1 in der Spalte procedure_name als eigentlichen Prozedurnamen vergebenen Text ersetzen. Unter der Zeile mit dem Kommentar „- - Add the parameters for the stored procedure here“ anstelle der beiden Beispielzeilen eintragen: @id int. z. B. CREATE PROCEDURE [dbo].[procedure_name] -- Add the parameters for the stored procedure here @id int AS Nun zwischen den Tags BEGIN und END unter dem Kommentar „- -Insert statements für procedure here“ die Formeln für die Berechnungen eintragen. Syntax: UPDATE Datenbank.Tabelle SET Datenbank.Tabelle.Feldname = Formel oder Wert WHERE foerderung_id = @id Mehrere Berechnungen in derselben Tabelle werden in der SET-Anweisung durch ein Komma getrennt (SET Berechnung1 , Berechung2)! BEGIN UPDATE verminet.foerderung.foerderung SET verminet.foerderung.foerderung.summe_zwischen_bescheid = verminet.foerderung.foerderung.summe_bescheid_1 , verminet.foerderung.foerderung.freie_zahl_17 = 111 * 5 WHERE foerderung_id = @id END Das Abfragefenster zur Erstellung der jeweiligen gespeicherten Prozedur für spätere Änderungen in den Berechnungen wegspeichern! Alternativ kann die vorhandene Prozedur zum Bearbeiten in einem Abfragefenster geöffnet werden (dann steht dort statt CREATE – ALTER). Vor dem Ausführen der Abfrage zur Erzeugung der Prozedur mit CREATE, muss die vorhandene Prozedur gelöscht werden! 5. Berechnungsprozedur testen In VermiNet als Bearbeiter eines Sportförderprojektes anmelden. Einen vorhandenen Datensatz zur Bearbeitung öffnen oder eine neuen Datensatz anlegen und ausfüllen. Mit dem Klick auf Speichern wird die Berechnung für diesen Datensatz durchgeführt. Dann den Datensatz neu öffnen und Berechnung überprüfen. Merke: Es wird so jeder Datensatz einzeln durch Klicken auf Speichern berechnet! Verwendung von Berechnungsprozeduren für Stapelbearbeitung in einem Sportförderprojekt Dem Sportförderprojekt wird diese Prozedur NICHT fest zugewiesen, sondern NUR DANN temporär, wenn die Berechnung ausgeführt werden soll! Vorgehen: Die Prozedur für die Berechnung wird im Prinzip angelegt, wie für eine einzelne Berechnung erstellt. Dier Unterschied besteht in der WHERE-Anweisung. Diese legt die Gültigkeit für die Berechnung fest. Bei der Stapelbearbeitung muss diese Anweisung alle Anträge eines Projekts für ein Jahr umfassen. Dafür verwenden wir die Eintragungen in den Feldern konfiguration_id und jahr. WHERE-Anweisung in Prozedur für Stapelbearbeitung BEGIN UPDATE verminet.foerderung.foerderung SET verminet.foerderung.foerderung.summe_zwischen_bescheid = verminet.foerderung.foerderung.summe_bescheid_1 , verminet.foerderung.foerderung.freie_zahl_17 = 111 * 5 WHERE konfiguration_id = 6 AND jahr = 2013 END Die Nummer hinter konfiguration_id = ist die ID des Sportförderprojekts aus der Tabelle verminet.foerderung.konfiguration. Dort nachschauen und hier eintragen. Das Jahr bestimmt, für welches Jahr dieses Sportförderprojekt berechnet werden soll. Würde hier kein Jahr eingetragen, würden ALLE Datensätze für dieses Projekt berechnet. (Im Script werden die Zahlen in Hochkomma gesetzt, dann erfolgt die Anzeige im SSMS in Rot.) Die Berechnung per Stapelbearbeitung: • Die Berechnungsprozedur dem Projekt zuweisen und die Projektdefinition speichern. • In der Sportförderung EINEN Datensatz dieses Projekts öffnen und SPEICHERN. • Die Berechnungsprozedur dem Projekt wieder wegnehmen (leere erste Zeile wählen) und Projektdefinition speichern. Muss die Berechnung wiederholt werden, den Vorgang erneut ausführen.