Mit dem sogenannten “PSOS Bug” ist ein Verhalten des Befehls “Perform Script on Server” gemeint, welches dazu führen kann, dass während des Script-Ablaufs benötigte Datenbank-Dateien auf dem Server gar nicht oder mit falschen Berechtigungen geöffnet werden.
Bug Beispiel 1
Nils Waldherr zeigte das Verhalten anhand eines vorbereiteten Demo-Setups. Dazu hatte er im Vorfeld bereits zahlreiche Tests mit unterschiedlichen Versionen des FileMaker Servers von v18 über v19 bis zur aktuellen v20 Version inkl. einiger Unterversionen unter verschiedenen Betriebssystemen durchgeführt. Bei seinen Tests zeigte sich, dass der Fehler durch zwei unterschiedliche Bedingungen zu Stande kommt, die sich gegenseitig beeinflussen. Zwar hat Claris das Verhalten, welches zum Bug führt, wohl zwischen den Server-Versionen bereits geändert, jedoch den eigentlichen Fehler damit nicht wirklich behoben.
Die Demo-Dateien von Nils lassen sich für eigene Tests von github laden:
https://github.com/fmgarage/fm-issues/tree/main/issues/230706-psos-credentials
Bug Beispiel 2
Marcel Moré hatte eine ähnliche Beobachtung gemacht und zeigte ebenfalls ein Demo-Setup mit mehreren Dateien, die während eines PSOS-Aufrufs zusammen wirken. Eine besondere Gefahr ergibt sich bei der Verwendung von Formel-Feldern, welche ihre Ergebnisse aus Feldern unterschiedlicher Datenbank-Dateien berechnen. Wird aufgrund des PSOS-Bugs eine benötigte Datei im Ablauf des Server-Scripts nicht geöffnet, so tritt keine Fehlermeldung auf, sondern die Ergebnisse werden stattdessen unvollständig berechnet. Dies ist natürlich eine böse Falle, wenn ein Setup mit mehreren Dateien, das lokal fehlerfrei läuft, auf PSOS umgestellt wird.
Als Workaround wird angeraten, alle benötigten Dateien vorher auf dem Client-Rechner zu öffnen, bevor das PSOS-Script gestartet wird:
https://community.claris.com/en/s/question/0D50H00006h9HroSAE/perform-script-on-server-scripting-error-100-perform-find
(Danke an Jörg Köster für den Hinweis zum schon etwas älteren Eintrag im Claris-Forum!)
Fazit
Fazit: Der Fehler lässt sich vermeiden, wenn vorher auf dem Client-Rechner, welcher den PSOS-Aufruf startet, alle im Server-Script erforderlichen Dateien mit den gleichen Berechtigungen geöffnet sind. Sofern auf dem Client eine für das Server-Script benötigte Datei nicht geöffnet ist, oder mit anderen Berechtigungen geöffnet ist, kann dies unter manchen Server-Versionen zum beschriebenen Fehler führen.