Erweiterungen
Dateien
Mit der Definition einer Datei können Dateien mit den Metadaten verteilt werden.
Die Verteilung der Dateien einer AppDesigner-Lösung geschieht für den Client
- auf dem Sage 100 Client während des Starts der OLStart.exe und vor dem Start von MSAccess.
und auf dem Server
- auf dem Application Server unmittelbar nach dem Start des Dienstes bevor Isolationsprozesse bzw. Business-Logik gestartet wird.
Das muss geschehen bevor Sage 100-Logik geladen wird, da sonst Dateien gesperrt sein können, die man austauschen möchte.
Die Abarbeitung der zu installierenden Dateien erfolgt in der Reihenfolge, in der sie in der USysFileCache<versionnr>-Tabelle (Globale Datenbank) gespeichert sind. Dabei wird pro Datei eine Revision ermittelt und in die Tabelle (Spalte Version) geschrieben. Beim Verteilen wird eine Datei (AppDesigner.Solution.<partnerid>.<packageid>.info) angelegt. In diese Datei wird pro zu verteilender Datei die Version geschrieben. Ist diese Info-Datei bei einer Verteilung bereits vorhanden, werden Version der globalen Datenbank und Version aus der Info-Datei verglichen. Unterscheiden sich die Versionen, wird die Datei neu verteilt. Durch Löschen der .info-Datei kann eine erneute Aktualisierung der Dateien ausgelöst werden.
Kriterien für die Aktualisierung
- Unterschiedliche Versionsinformation
Die Versionsinformation ist ein Hashwert und keine Versionsnummer, so dass nur festgestellt wird, ob Dateien verschieden sind. Unterscheiden sich die installierten Dateien von denen in der globalen Datenbank gespeicherten, dann werden sie ausgetauscht. Dadurch können auch ältere Versionen wieder installiert werden. - Unterschiedliche Anzahl an Dateien in der Installation und in der Datenbank
Beim Import eine Lösung über den AppDesigner wird nichts installiert. Die zu installierenden Dateien werden lediglich in der oben genannten Tabelle zur Verteilung bereitgestellt.
Es wird gewartet, bis alle aufgerufenen Exe-Dateien beendet sind, erst dann wird die Sage 100 gestartet. Allerdings gibt es eine Ausnahme. Damit die Sage 100 nicht „hängen“ bleibt, wenn während der Installation eine der Exe-Dateien nicht beendet werden kann, ist intern ein Zeitlimit von 20 sec eingestellt. Wenn diese Zeit abgelaufen ist, wird die Sagede-Shared.Solution.Downoad.exe ebenfalls beendet. Wenn dann noch Installationsvorgänge laufen, kann es sein, dass Dateien gesperrt sind, während die Sage 100 gestartet ist. Dann wird unter Umständen solange gewartet, bis Dateien wieder frei sind, um die Installation fortzusetzen.
Bereich | Eigenschaft | Wert |
---|---|---|
Allgemeines | Name (Name) | Name des Eintrags |
Beschreibung (Description) | Eine Beschreibung der Datei | |
Kategorie (Catogary) | Dient zur Strukturierung der Einträge | |
Installation | Dateiversion (Fileversion) Ab Version 9.0.4 | Info zur Dateiversion rein informativ, d.h. keine Auswertung bei der Installation auf ältere bzw. neuere Version |
Dateipfad (FilePath) | Voller Pfad zu der Datei inklusive Dateiname. Gültiger Pfad zu einer Datei, der Pfad kann Platzhalter ($[SharedPath]) enthalten. Es kann auch auf Unterverzeichnisse im Shared-Verzeichnis verweisen werden. Soll auf die Datei "test.exe" im Unterverzeichnis "Test" verweisen werden, so kann man über den Auswahldialog gehen, oder man trägt "$[SharedPath]Test\test.exe" ein. | |
Abw. Installationsverzeichnis (DeploymentPath) Ab Version 9.0.4 | Abweichendes Installationsverzeichnis für die Dateiverteilung Gültiger Pfad zu einem Dateiverzeichnis; der Pfad kann Platzhalter enthalten | |
Installationsziel (DeploymentTarget) | Definiert wo die Datei installiert werden soll:
| |
Aktion nach Installation (DeploymentAction) | Gibt an, welche Aktion nach dem Kopieren ausgeführt werden soll:
| |
Argumente (Arguments) Ab Version 9.0.4 | Befehlszeilenargumente für das Ausführen von Exe- und Batch-Dateien nur für Dateien mit der Dateierweiterungen ".exe", ".bat" und ".cmd" verfügbar |
Ereignisse
Ereignisse enthalten die Definitionen von Zuordnungen von Event-Handler zu Events der Applikation (vormals DCM), die mit der Lösung verteilt werden sollen (vormals OL.DCM).
Eine Kombination von Einträgen in OL.DCM und Ereignissen innerhalb einer Installation ist zulässig.
Ein identischer Eintrag (alle Eigenschaften identisch) in OL.DCM und eines Ereignisses ist nicht zulässig.
Bereich | Eigenschaft | Wert |
---|---|---|
Allgemeines | Name (Name) | Name des Eintrags |
Beschreibung (Description) | Eine Beschreibung der Zuordnung | |
Ereignis | Name des Ereignisses (EventName) | Der Name eines Ereignisses, das von der Applikation ausgelöst wird, an das man sich mit diesem Event-Handler hängen möchte. |
Name der Assembly (AssemblyName) | Voller Pfad zu der Assembly inklusive Dateiname. Gültiger Pfad zu einer .Net Assembly, der Pfad kann Platzhalter ($[SharedPath]) enthalten. | |
Name der Klasse (ClassName) | Name der Klasse inklusive Namespace, die die Event-Handler-Implementierung enthält. | |
Aufrufreihenfolge (Order) | Definiert die Reihenfolge, in der Event-Handler aufgerufen werden. | |
Überprüfung der Version (CheckVersion) | Definitiert, ob die Version der Erweitungs-Assembly gegen die Version der Applikation geprüft werden soll. |
Schnittstellen (Ap Interfaces) Ab Version 9.0.4
Schnittstellen dienen zur Definition von API-Definitionen zum externen Zugriff auf Datenquellen, Datenreferenzen, Datensätze, Datenstrukturen und Datenwertlisten.
Die Definitionen der Schnittstellen liegen im Verzeichnis "ApInterfaces". Pro Schnittstelle existiert eine eigene Datei. Der zur Referenzierung verwendete Name wird als Dateiname verwendet.
Die Dateien enthalten jeweils die Definition einer Schnittstelle, die wie folgt aufgebaut ist (Attribute, die in AppDesigner-Übersichten angezeigt werden sollen (nicht nur in Detailansichten), sind unterstrichen):
Bereich | Eigenschaft | Wert |
---|---|---|
Allgemeines | Name (Name, PatnerId, PackageId) | Name der Schnittstelle (für Anwender nicht sichtbar) |
Titel (Title) | Titel der Schnittstelle (für Anwender sichtbar) | |
Version | MajorVersion, MinorVersion, Revision (Major-Version, Minor-Version, Revision) | Hauptversion, Unterversion, Revision |
API-Endpunkt (Api Endpoint)
Die Definitionen der API-Endpunkte liegen im Verzeichnis "ApiEndpoints". Pro Endpunkt existiert eine eigene Datei. Der zur Referenzierung verwendete Name wird als Dateiname verwendet.
Die Dateien enthalten jeweils die Definition eines Endpunkts, die wie folgt aufgebaut ist (Attribute, die in AppDesigner-Übersichten angezeigt werden sollen (nicht nur in Detailansichten), sind unterstrichen):
Bereich | Eigenschaft | Wert |
---|---|---|
Allgemeines | Name (Name, PatnerId, PackageId) | Name des Endpunkts |
Titel (Title) | Titel des Endpunkts (für Anwender in der Dokumentation sichtbar) | |
Beschreibung (Description) | Kurze Dokumentation des Endpunkts (für Anwender in der Dokumentation sichtbar) | |
API-Schnittstelle (GroupName) | Name der API-Schnittstelle, gültige API-Schnittstelle in der gleichen Lösung. Wird vom AppDesigner gesetzt. | |
Typ (Type) | Typ des Elements: 1000 = ApiEndpoint. Wird vom AppDesigner gesetzt. | |
Daten | Name Datenschicht (ReferenceName) | Partner-Kennung, Lösungs-Kennung und Name für die verwendete Datenherkunft. Gültige Datenquelle, Datenreferenz, Datensatz, Datenstruktur, Datenwerteliste |
Referenztyp (ReferenceType) | Typ der gebundenen Datenherkunft (ResourceType) 9 = Datenquelle, 22 = Datenreferenz, 29 = Datensatz, 32 = Datenstruktur, 48 = Datenwertliste Wird vom AppDesigner gesetzt. | |
Datensatzfilter (FilterExpression) | Zusätzliche Bedingungen, welche die WHERE-Bedingung der SQL-Abfrage zur Laufzeit erweitern. Format:
| |
Operationen | Kann erstellen? (CanPost?) | Können über den Endpunkt Daten angelegt werden? Ja/Nein Je nach Referenztyp nicht unterstützt, d.h. ggf. ist Nein nicht änderbar. |
Kann lesen? (CanGet?) | Können über den Endpunkt Daten gelesen werden? Ja/Nein Abhängig vom Typ der ausgewählten Datenherkunft. Kann überschrieben werden, falls die Datenherkunft die Operation nicht unterstützt. | |
Kann aktualisieren? (CanPut?) | Können über den Endpunkt Daten aktualisiert werden? Ja/Nein Abhängig vom Typ der ausgewählten Datenherkunft. Kann überschrieben werden, falls die Datenherkunft die Operation nicht unterstützt. | |
Kann löschen? (CanDelete?) | Können über den Endpunkt Daten gelöscht werden? Ja/Nein Abhängig vom Typ der ausgewählten Datenherkunft. Kann überschrieben werden, falls die Datenherkunft die Operation nicht unterstützt. | |
Lizenzierung | für Wawi? (UseForWawi?) | Bei Wawi verwenden? Ja/Nein |
für Rewe? (UseForRewe?) | Bei Rewe verwenden? Ja/Nein | |
Land (Country) | Land (additiv, -1 = alle Länder):
| |
Lizenz-Kürzel (LicenseTokens) | Applikationskürzel der zu prüfenden Lizenz (nur in Nicht-Sage-Lösungen verwendbar und änderbar) | |
Lizenz-Kürzel für Sage (SageLicenseTockens) | Applikationskürzel der zu prüfenden Lizenz (nur in Sage-Lösungen verwendbar und änderbar) |
API-Endpunkt (Api Endpoint) - Felder
Die Dateien enthalten außerdem die Definitionen der Datenfelder des Endpunkts.
Die Definitionen der Datenfelder sind jeweils wie folgt aufgebaut (*1 = Primärschlüssel; Attribute, die in AppDesigner-Übersichten angezeigt werden sollen (nicht nur in Detailansichten), sind unterstrichen):
Bereich | Eigenschaft | Wert |
---|---|---|
Allgemeines | Feldname *1 (Name | gültiger Feldname der durch "ReferenceName" referenzierten Datenherkunft |
Externer Feldname *1 (ExternalName | Optionaler von der Datenherkunft abweichender öffentlicher Feldname in der API | |
Feldtitel (Title) | Titel des Feldes (für Anwender in der API-Dokumentation sichtbar) | |
Beschreibung (Description) | Beschreibung des Feldes (für Anwender in der API-Dokumentation sichtbar) | |
Beziehungen | Name des Detail-Endpunkts (SubApiEndpointName, SubApiEndpointPartnerId, SubApiEndpointPackageId | Name-/Partner-/Lösung-Kennung eines Detail-Endpunkts |
Lizenzierung | nicht für Wawi? (HideForRewe?) | Ja/Nein. Feld bei Einsatz in Wawi komplett ausblenden |
nocht für Rewe? (HideForRewe?) | Ja/Nein. Feld bei Einsatz in Rewe komplett ausblenden | |
Lizenz-Kürzel (LicenseTokens) | Applikationskürzel der zu prüfenden Lizenz (nur in Nicht-Sage-Lösungen verwendbar und änderbar) | |
Lizenz-Kürzel für Sage (SageLicenseTockens) | Applikationskürzel der zu prüfenden Lizenz (nur in Sage-Lösungen verwendbar und änderbar) |
Die Beschreibung der Ereignisse der Applikation steht nur Partner des Developer Programms zur Verfügung. Die Beschreibung ist auch über das Developer Programm zu beziehen.