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.

BereichEigenschaftWert
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:

  • 0 = Client
  • 1 = Server
  • 2 = Client und Server

Aktion nach Installation

(DeploymentAction)

Gibt an, welche Aktion nach dem Kopieren ausgeführt werden soll:

  • 0 = Keine weitere Aktion
  • 1 = Im GAC installieren
  • 2 = Exe-Datei ausführen
  • 3 = Zip-Datei entpacken Ab Version 9.0.4

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.

BereichEigenschaftWert
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):

BereichEigenschaftWert
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):

BereichEigenschaftWert
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:

  • Aus Sicherheitsgründen kann auf dem Client nicht direkt in SQL formuliert werden.
  • Stattdessen wird eine Ausdruckssyntax unterstützt, der einem vereinfachten SQL entspricht (Syntax siehe auch http://sage.github.io/SData-2.0/pages/core/0212/).
    • Ergänzend wird die Maskierung mit doppelten Anführungsstrichen ( " ) automatisch in einzelne Anführungsstriche ( ' ) umgewandelt. Die Operatoren "=", "<>", ">", ">=", "<", "<=", "*", "/", "Not", "And" und "Or" werden ebenfalls in die entsprechenden SData-Operatoren umgewandelt.
  • Im Ausdruck können nur die Felder (Feldnamen) des zugrundeliegenden Datensatzes verwendet werden.
  • Es werden keine Platzhalter unterstützt.
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):

  • 1 = Deutschland
  • 2 = Schweiz
  • 4 = Österreich
  • 32 = international

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):

BereichEigenschaftWert
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.