Mit dem AVACloud Webservice haben Sie eine einfache Möglichkeit, alle Anforderungen von Ausschreibung, Vergabe und Abrechnung (AVA) in Ihrer JavaScript basierten Anwendung abzubilden, zum Beispiel direkt im Browser. In diesem Beispiel sehen Sie, wie Sie einen Authentifizierungstoken von Dangl.Identity erhalten und dann eine GAEB Datei auswerten.
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 JavaScript Client einfach möglich.

Sourcecode des JavaScript - GAEB Projekts

Der Sourcecode des gesamten Projekts ist auf GitHub verfügbar. Sie können es gleich herunterladen und loslegen.

Sie können diese Demo sofort live testen: Link zur live Demo.

Projekt Erstellen & AVACloud Client Hinzufügen

Wenn Sie ein neues Projekt erstellen können Sie direkt das npm Paket @dangl/avacloud-client-javascript hinzufügen. Sie finden den Client im Verzeichnis des Moduls unter bundle.js.

Das postinstall Skript in diesem Projekt kopiert den Client direkt nach dist/avacloud.bundle.js, welches Sie in Ihrer Webanwendung referenzieren können. Für Einsätze in Produktivumgebungen empfehlen wir, bundle.min.js zu nutzen, um die Downloadzeiten Ihrer Website gering zu halten.

App Entry

Als Eingangspunkt für die Demo dient eine einfache Html Seite, index.html. Sie können den lokalen Server mit dem Befehl npm run serve starten, danach ist die Demo unter http://localhost:8080 verfügbar.

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 geben Sie in die dafür vorgesehenen Formularfelder ein. 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.

Achtung: AVACloud nutzt JWT Authentifizierungstoken, um Benutzer zu identifizieren. Geben Sie niemals den Token, den Sie in der Demo sehen, an Dritte weiter. Beim Einsatz von AVACloud Funktionen mittels JavaScript in Ihrer App sollten Sie Anfragen an AVACloud immer über Ihren eigenen Server leiten um die Herausgabe Ihrer Zugangsdaten zu verhindern. Sprechen Sie uns an, gerne Beraten wir Sie bei allen Themen rund um Sicherheit in Webservices.

GAEB Auswertung in JavaScript

Für die Anbindung von GAEB 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 JavaScript 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 Methode listAllPositions() zeigt nun exemplarisch, wie Sie das Projektmodell auswerten können. Dazu werden alle Positionen des Projekts in einer Liste dargestellt.

Neue GAEB Dateien Erstellen

Natürlich können Sie auch einfach neue GAEB Dateien mit JavaScript und 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 definieren wir den destinationGaebType: 'GaebXml_V3_2' und senden den Request an AVACloud. Als Ergebnis erhalten Sie eine GAEB Datei!

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