OFFICIUM INSERVIO
Your reliable partner for your business software...
Verteilung von Dateien / Deployment of files
9.0.x
Dienstag, 4. März 2025
Kriterien, wann Sage die Verteilung ausführt
Criteria for When Sage Executes the Distribution
Deutsch
Hintergrund
Mit dem Sage AppDesigner können bekanntermaßen auch Dateien verteilt werden.
Die Verteilung wird vom Sage Applikationsserver im Zusammenhang mit dem Sage Verteilungsdienst übernommen.
Deployment deaktivieren
Das Deaktivieren der AppDesigner-Lösungen, die Dateien verteilen, ist oft in der Praxis nicht möglich, weil viele Anbieter nicht klar die Verteilung von Dateien von den eigentlichen Metadaten-Anpassungen trennen. Die klare Trennung dieser Concerns wäre jedoch wünschenswert.
Stattdessen mischen viele Fachhändler/Tech Partner die Verteilung mit ihren Metadaten-Anpassungen, so dass sich das Deployment nicht durch Deaktivieren der jeweiligen AppDesigner-Lösung ausschalten lässt.
Oft bleibt dann nur nachfolgende Option:
Kriterien, wann Sage die Verteilung ausführt
Es stellt sich die Frage, wann genau die Sage Komponenten eine (erneute) Verteilung der Dateien auslösen.
Dafür gelten folgende Kriterien.
Beim Importieren der AppDesigner-Lösung legt Sage eine *.info-Datei im Shared-Ordner der Installation an. Dies ist eine Information aus Sicht des jeweiligen Clients, wobei natürlich auch ein Server gleichzeitig ein Client ist! Jede durch die AppDesigner-Lösung verteilte Datei ist in dieser Datei dokumentiert und auch der Hash der Datei ist angegeben.
Ändert sich der Hash der Datei oder die Datei wurde gelöscht, dann wird die Verteilung neu angestoßen.
⚠️Sobald irgendeine Lösung neu verteilt werden muss, wird das Deployment für alle Lösungen neu gestartet.
Dies ist eine häufige "Stolperfalle", die viele Fachhändler/Tech Partner nicht beachten.
Der Neustart des Sage Applikationsservers ist ein wesentlicher "Startpunkt" für die Verteilung und löst in jedem Fall die Prüfung aus, ob eine Neuverteilung nötig ist.
⚠️Eine weitere "Stolperfalle" ist: Die Ersteller einer AppDesigner-Lösung, die Dateien verteilen, sollten unter gar keinen Umständen dieselbe Datei mehrfach in die Verteilung der Lösung aufnehmen. Als Verteiler von Lösungskomponenten ist man ggf. versucht, diesen Weg einzuschlagen, weil man ggf. irgendeiner "Worker"-Anwendung (*.exe) gebaut hat, die man mit verschiedenen Parametern dann mehrfach in der Lösung in der Datei-Liste verteilen möchte.
Dies sorgt für die allergrößten Probleme bei der Verteilung und führt dazu, dass die Verteilung im Grunde immer wieder nach jedem Server-Neustart ausgeführt wird und dass die Clients bei jedem Start die Anweisung zur Prüfung der Verteilung erhalten.
Zitat von Sage zu dem Problem:
Die Dateien werden immer aktualisiert, sobald der Server (Globale Datenbank) die gleiche Datei mehrfach enthält. Ist die gleiche Datei mit dem gleichen Zielverzeichnis mehrfach in den Metadaten auf dem Server gespeichert, führt dies dazu, dass der Update-Mechanismus immer ausgelöst wird. Der Grund ist, dass diese Datei in der Liste der serverseitigen Metadaten nur einmal vorkommt, auf den Clients in der jeweiligen *.info-Datei jedoch dann mehrfach. Die Prüfung auf Updates führt also immer zu einer unterschiedlichen Anzahl von Dateien auf den Clients und dem Server.
English
Background
With Sage AppDesigner , it is well known that files can also be distributed via AppDesigner solution files.
The distribution is handled by the Sage Application Server in conjunction with the Sage Distribution Service.
Disabling Deployment
Disabling AppDesigner solutions that distribute files is often not feasible in practice, as many providers do not clearly separate file distribution from actual metadata adjustments. However, a clear separation of these concerns would be desirable.
Instead, many resellers/tech partners mix file distribution with their metadata adjustments, making it impossible to disable deployment simply by deactivating the respective AppDesigner solution.
In many cases, the only remaining option is:
Criteria for When Sage Executes the Distribution
The question arises as to when exactly the Sage components trigger a (repeated) distribution of files.
The following criteria apply.
When importing the AppDesigner solution, Sage creates an *.info file in the Shared folder of the installation. This is information from the perspective of the respective client, although, of course, a server can also be a client at the same time! Every file distributed by the AppDesigner solution is documented in this file, along with its hash value.
If the file hash changes or the file is deleted, the distribution process is triggered again.
⚠️ As soon as any solution requires redistribution, the deployment for all solutions is restarted.
This is a common pitfall that many resellers/tech partners overlook.
Restarting the Sage Application Server is a key trigger for the distribution process and will always initiate a check to determine whether redistribution is necessary.
⚠️ Another critical pitfall:
Developers of an AppDesigner solution that distributes files should never include the same file multiple times in the solution's distribution list.
As a solution component distributor, there may be a temptation to take this approach - especially if a worker application (.exe) has been built, which is intended to be distributed multiple times within the solution using different parameters.
This causes major issues in the distribution process and results in continuous redistributions after every server restart. Consequently, clients receive a distribution check request every time they start up.
Sage’s Statement on the Issue:
Files are always updated whenever the server (Global Database) contains the same file multiple times. If the same file is stored multiple times in the metadata on the server with the same target directory, the update mechanism is always triggered. The reason for this is that the file appears only once in the server-side metadata list, but multiple times in the respective .info file on the clients. As a result, the update check consistently leads to a mismatch between the number of files on the clients and on the server.
