Mit dem AVACloud Webservice haben Sie eine einfache Möglichkeit, alle Anforderungen von Ausschreibung, Vergabe und Abrechnung (AVA) in Ihrer Node basierten Anwendung abzubilden, zum Beispiel mit TypeScript oder JavaScript. In diesem Beispiel sehen Sie, wie Sie einen Authentifizierungstoken von Dangl.Identity erhalten und dann eine GAEB Datei nach Excel konvertieren sowie eine kurze Auswertung des Gesamtpreises und der Anzahl der Positionen durchführen.
Andere Fälle, wie z.B. das Konvertieren von GAEB zu GAEB, das Erstellen einer neuen GAEB Datei oder weitere Auswertungen und die Umwandlung zwischen GAEB und dem einheitlichen Dangl.AVA Projektsystem folgen dem selben Prinzip und sind mit dem AVACloud Node Client einfach möglich.

Sourcecode des Node - GAEB Projekts

Der Sourcecode des gesamten Projekts ist auf GitHub verfügbar. Sie können es gleich herunterladen und loslegen. Sie benötigen nur eine aktuelle NodeJs Runtime.

Projekt Erstellen & AVACloud Client Hinzufügen

Wenn Sie ein neues Node Projekt erstellen können Sie direkt den npm Client @dangl/avacloud-client-node hinzufügen.

App Entry

Als Eingangspunkt für den Node Beispielclient definieren Sie einfach folgende Funktion:

Die Variable accessToken ist global verfügbar und wird benutzt, um in diesem Beispiel den Authentifizierungstoken bereitzustellen.

Client Authentifizierung

Die Authentifizierung von AVACloud basiert auf OpenID und nutzt JSON Web Tokens (JWT), um API Aufrufe zu autorisieren. Falls Sie es noch nicht getan haben, können Sie sich bei Dangl.Identity als Entwickler registrieren und 30 Tage kostenlosen Zugang zur AVACloud erhalten. Sollten Sie eine längere Testphase benötigen, sprechen Sie uns bitte einfach an.

Im nächsten Schritt bauen wir eine Funktion, die sich mittels der Client Credentials Methode bei Dangl.Identity anmeldet und Zugriff auf AVACloud gibt:

Die Variablen clientId und clientSecret sind global definiert und müssen von Ihnen bereitgestellt werden. Sie können für die Implementierung der Authentifizierung auch jede kompatible OpenID Connect (OIDC) Library nutzen.
Der Vorgang ist überschaubar - Sie senden Ihre ClientId und Ihr ClientSecret an den Token-Endpunkt von Dangl.Identity https://identity.dangl-it.com/connect/token und erhalten einen 60 Minuten lang gültigen access_token zurück.

GAEB zu Excel Konvertierung

Die erste Aufgabe der Beispielanwendung ist es, eine GAEB Datei mittels AVACloud in eine Microsoft Excel Arbeitsmappe zu transformieren. Auf die gleiche Art und Weise können Sie auch alle anderen Konvertierungen durchführen - zum Beispiel um GAEB Dateien zu reparieren oder in ein anderes Format zu transferieren.

Um eine lokale GAEB Datei einzulesen, nutzen Sie folgendes Snippet:

GAEB Auswertung in Node

Noch nützlicher als das Konvertieren ist für viele Kunden von DanglIT die Umwandlung beliebiger GAEB Dateien in das vereinheitlichte Dangl.AVA Projektmodell. Für die Anbindung an Ihr System müssen Sie nicht mehr alle verschiedenen GAEB Formate und Versionen unterstützen - Sie erhalten eine Programmierschnittstelle zur Integration von GAEB in Ihre Node Anwendung.

Es ist völlig egal, welche Art von GAEB Dateien Sie haben - AVACloud erkennt vollautomatisch den Typ und liefert Ihnen ein einheitliches Datenmodell der GAEB Struktur zurück. Die Methoden getProjectTotalPrice() und getProjectPositionCount() zeigen nun exemplarisch, wie Sie das Projektmodell auswerten können:

Neue GAEB Dateien Erstellen

Natürlich können Sie auch einfach neue GAEB Dateien in Node und TypeScript mit der AVACloud API erstellen. Sehen Sie sich dazu folgendes Snippet an:

Zuerst wird eine lokale Variable avaProject erstellt - das einheitliche Projektformat kann für Exporte in alle GAEB Versionen & Varianten genutzt werden. In diesem Element fügen wir nur eine einzige Position hinzu, mit dem Kurztext Concrete Wall, einer Einheit sowie einer Menge von 10 und einem Einheitspreis von 80. Bitte kontaktieren Sie uns, um Zugriff auf die Dokumentation zu erhalten - dort finden Sie alles über das einheitliche Projektformat.

Im zweiten Schritt nun senden wir den Request an die AVACloud. Als Ergebnis bekommen wir eine GAEB Datei zurück, welche wir lokal abspeichern.

Haben Sie noch Fragen zur Verwendung von AVACloud, um damit in Node schnell und einfach eine GAEB Schnittstelle / Library umzusetzen? Dann kontaktieren Sie uns!