Zu Halloween: Operation am offenen Herzen…

Ab und zu kommt es vor, dass man in einer Live-Datenbank was ändern muss. 20 oder mehr Anwender arbeiten in FileMaker, aber es muss unbedingt eine Änderung in einem Script gemacht werden, weil zum Beispiel ein Fehler vorliegt.
Wie geht man damit um? Es gibt sicherlich mehrere Methoden, um sicher zustellen, das niemand nicht freigebend Funktionen ausführt.

Eine Methode ist sicherlich, dass man in einer Kopie des Scripts arbeitet, die Änderungen durchführt und danach in das richtige Script die Änderungen kopiert. Funktioniert. Ist sicher. Verwende ich sehr oft.

Wenn jedoch ein Anwender einen Fehler in einer Funktion berichtet, muss ich die Funktion schnell sperren und reparieren. Dazu habe ich mir folgende Arbeitsweise angewöhnt. Ich füge vor den Script drei Bindestriche ein „—„. Das lässt sich schnell wiederfinden und hat eine funktionelle Bedeutung:

Am Anfang meiner Scripts befinden sich folgende Skriptschritte:

#--- = Script in Arbeit ( Deaktiveren wenn Script fertig )
If [ Left ( Get ( ScriptName ) ; 3 ) = "---" and Left ( Get ( AccountPrivilegeSetName ) ; 5 ) ≠ "admin" ]
Show Custom Dialog [ Title: "In Bearbeitung"; Message: "TAO SOLUTIONS bearbeitet im Moment diese Funktion. Sie steht
Ihnen in Kürze zur Verfügung."; Default Button: “OK”, Commit: “No” ]
Halt Script End If
#

Ich überprüfe, ob die ersten drei Zeichen des aktuell laufenden Scripts drei Bindestriche sind. Gleichzeitig überprüfe ich, ob der ausführende Anwender kein Entwickler ist. Entwickler-Account-Namen sind bei uns immer mit admin_entwicklername aufgebaut. Wenn die ersten 5 Zeichen „admin“ sind, ist es somit ein Entwickler. Führt ein Anwender dieses Script aus, wird er informiert und das Script wird angehalten.

Dadurch kann ein Entwickler die Funktion (das Script) immer testen und der Anwender bekommt einen Hinweis, dass die Funktion in Bearbeitung ist.

Wenn die Entwicklung abgeschlossen ist und ich die Funktion für die Anwender freigeben möchte, brauche ich nur die drei Bindestriche am Anfang des Scriptnamens zu entfernen.

Advertisements