AppGyver | No code Development | leicht erklärt Deutsch

AppGyver | No code Development | leicht erklärt Deutsch

Grundlagen SAP AppGyver

SAP AppGyver ist natürlich von sich selbst überzeugt, sie versprechen die weltweit erste professionelle No-Code Platform zu sein. Jeder soll mit Hilfe von AppGyver befähigt werden Apps zu bauen – Sie haben richtig gelesen wirklich jeder. Und noch dazu für alles was der Markt aktuell so hergibt wie: Mobile, Desktop, Browser, TV Applikation und vieles mehr. Appgyver wirbt in dicken Lettern:

You will never go back to coding. Seriously. 

Wir sehen uns nun an ob sie halten was sie versprechen!

Inhaltsverzeichnis

  • Was is AppGyver?
  • Welche unterschiedlichen Entwickler-Skills und Ebenen gibt es?
  • Wie funktioniert die No-Code Plattform?
  • Was brauche ich um meine Apps zu veröffentlichen?
  • Vorteile und Nachteile AppGyver No-Code Entwicklung

Was ist AppGyver?

AppGyver ist nicht nur ein Werkzeug, sondern aus Expertensicht der CloudDNA das Schweizertaschenmesser für die moderne App Entwicklungen. Sie können auch ohne Programmierausbildung und mit etwas technischer Affinität damit arbeiten. Die eigentliche Grundidee dahinter ist es, Entwicklungen von Apps allen Nutzern zu ermöglichen.

Welche unterschiedlichen Entwickler-Skills und Ebenen gibt es?

Das Prinzip ist einfach und klar: Je höher die Komplexität der Entwicklung ist, umso stärker ausgeprägte Fähigkeiten sollte der Enwickler mitbringen. Wir haben für euch eine kleine Skizze vorbereitet um alles besser zu veranschaulichen.

Beginnend mit:

No-Code Entwicklung ⇒ AppGyver

Low-Code Entwicklung ⇒ Fiori Elements

Pro-Code Entwicklung ⇒ SAPUI5 / SAP Fiori

AppGyver  Developer Skills
SAP-Fiori-Elements-Das-Praxishandbuch

Experttalk AppGyver

Wie funktioniert die No-Code Plattform?

Die ersten Schritte um eine Applikation zu bauen gehen über SAP AppGyver im Composer, dort finden Sie den App Builder. Im App Builder finden Sie sich schnell und leicht zurecht. Und es kann in grossen Schritten zügig und effizient weitergebaut werden. Sie haben Zugriff auf über 500(!!) Bausteine aus denen Sie ihre Anwendung zusammensetzen können. Eine unglaublich scheinende Anzahl – auch wir waren skeptisch und haben es überprüft. Es stimmt tatsächlich, dass man in AppGyver gemeinsam mit dem dahinterliegenden Marketplace auf mehr als 500 Bausteine kommt. Ausserdem ist es  auch möglich eingene Bausteine in Form sogenannten Custom Controls zu definieren. Dabei können Sie Bausteine wie Bilder, Eingabefelder, Checkboxen oder maskierte Passwortfelder und vieles mehr zu eigenen Controls kombinieren und diese in anderen Apps wiederverwenden.

Die AppGyver Apps sind aus Seiten aufgebaut. Im Composer ziehen Sie per Drag and Drop einfach die wünschten Bausteine in den View Canvas Bereich und konfigurieren sie.

Tja, so einfach kann progammieren gehen… Als gestandene SAP und Cloud Entwickler waren wir anfangs extrem skeptisch. Aber wir sind mittlerweile absolut von AppGyver begeistert.

Aus unserer Expertensicht wird AppGyver ein Gamechanger für SAP. Der Zukauf der finnischen Entwicklerschmiede und damit die Integration ins SAP Produktportfolio war eine fantastische Entscheidung des Walldorfer Softwareriesen.

Was brauche ich um meine Apps zu veröffentlichen?

SAP AppGyver stellt nur geringe Ansprüche zur Veröffentlichung der Apps. Sie sind nicht an ein bestimmtes Betriebssystem gebunden, um die App für Endsysteme wie iOS oder Android bauen zu können. Für die Kompilierung des Codes, die häufig auch Build genannt wird, ist keine spezielle Software auf Ihrem Rechner erforderlich. Der Build erfolgt stattdessen innerhalb eines Cloud-Services den SAP bereitstellt. Auch an dieser Stelle lässt sich wieder mal erkennen, dass SAP ein ernsthafter Cloud Anbieter geworden ist. Auch für den Entwickler gibt es einen gravierenden Vorteil. Damit ist in der Praxis eine vollständig vom verwendeten System unabhängige Entwicklung der Apps möglich. d.h. wenn Sie eine App für Apple Smartphones entwickeln benötigen Sie keinen Mac.

Nachdem der Build erfolgreich war, können Sie die fertige App aus dem Cloud-Service beziehen. Auch die Veröffentlichung läuft schlicht und einfach über die diversen Stores wie dem App Store von Apple oder dem Google Play Store ab. Hierfür stehen Ihnen die erforderlichen Funktionen ebenfalls bereit, um dem Anwender diesen Schritt zu erleichtern. Wir haben ja bekanntlich auch ein Buch über die SAP Mobile Services geschrieben. Dort zeigen wir wie umständlich die Veröffentlichung teilweise sein kann. Zusätzlich können Sie in AppGyver eigene Deployment-Pipelines festgelegen, um die Veröffentlichungen zu beschleunigen und diese den eigenen Bedürfnissen anzupassen.

Vorteile AppGyver No-Code Entwicklung

Die Vorteile liegen klar auf der Hand. Sie können ohne Programmierkenntnisse schnell und leicht zu einem überraschend guten Ergebnis kommen. Aus Unternehmersicht könnten Sie die in verschiedenen Abteilung vorhanden Man- und Womenpower einsetzen, um einen Teil ihrer Apps bauen zu lassen. Die selbst gebaute App kann unverzüglich auf  PCs, Smartphones, Tablets und TVs getestet werden.

SAP Mobile Services

Nachteile AppGyver No-Code Entwicklung

Mit der No-Code Entwicklung erlangen Sie nicht die absolute Freiheit über Ihre gebaute Apps.  No-Code Apps sind daher eher Apps mit geringen Komplexität.  Sind die gestellten Anforderungen hoch sollten Sie sich mit dem Gedanken spielen zumindest auf Low-Code oder gegebenenfalls auf Pro-Code Entwicklung zu setzen.

Senden Sie uns gerne eine Anfrage mit ihren Anforderung.

Unser Tipp setzen sie auf unser SAPUI5 Training im offizileen SAP Schulungskatalog: Titel HOUI5. Schauen Sie vorbei

Groovy Script Payload Logging | Anleitung

Groovy Script Payload Logging | Anleitung

Groovy Script Payload Logging Tutorial –  Let´s Get Groovy Teil 3

 

Willkommen beim 3. Teil unserer mehrteiligen Blogserie über Groovy Script. Heute schauen wir uns das Groovy Script Payload Logging genauer an.

Inhaltsverzeichnis :

  • Wie funktoniert das Groovy Script Payload Logging ?
  • SAP Training
  • Anleitung Groovy Payload Logging
  • Tutorial Groovy Payload Logging mit Log Level
  • Mehr über Groovy Scripts und SAP Cloud Integration

Wie funktioniert das Groovy Script Payload Logging ?

Eine typische Anforderung stellt das Schreiben von Attachments in Message Processing Log dar. Nachfolgenden zeigen wir Ihnen wie diese Anforderung mit Groovy gelöst werden kann. Bitte beachten Sie, dass für das Message Processing Log eine Größenbeschränkung besteht die Sie der Dokumentation der SAP BTP entnehmen können.

SAP Training Groovy Script

Die SAP Cloud Integration bietet Ihnen die Möglichkeit Groovy Skripts zu verwenden. In dem von uns entwickelten SAP Standard Training WDEI1 zeigen wir Ihnen wie Sie Groovy richtig verwenden.

Anmeldung WDEI1 Training

Der SAP WDEI1  bietet Ihnen ein 5-tägige praxisnahe Einführung in Entwicklung, Architektur und Sicherheit der SAP Cloud Platform Integration.

 Mehr über das  Training: Dieser Kurs ist komplett von uns erstellt und wird nur vom Team CloudDNA gehalten, es bietet Ihnen  praxisorientierte Hands- on Qualität

Anleitung Groovy Payload Logging

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
 //Body  als String auslesen
 def body = message.getBody(java.lang.String);  //Message Log Instanz holen
 def log = messageLogFactory.getMessageLog(message);  //Prüfen ob das Log vorhanden ist
 if(log != null) {
 //Schreiben der String Property
 log.setStringProperty("WDEI1 Logging", "MPL String Property"); 
 //Schreiben des Attachments
 log.addAttachmentAsString("WDEI1 Gruppe 00 - Message Body", body, "application/xml");
 }  return message;
}

Selbstverständlich sollten Sie beim Schreiben in Message Processing Log die Log Konfiguration berücksichtigen. Sie haben über eine Exchange Property die Möglichkeit auf die Log Konfiguration zuzugreifen.

 

Tutorial Groovy Payload Logging mit Log Level

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
 //Body 
 def body = message.getBody(java.lang.String); 
 def map = message.getProperties();
 def logConfig = map.get("SAP_MessageProcessingLogConfiguration");
 def logLevel  = logConfig.logLevel as String; 
 if(logLevel.equals("DEBUG") || logLevel.equals("TRACE") ) {
 def messageLog = messageLogFactory.getMessageLog(message);
 if(messageLog != null) {
 messageLog.addAttachmentAsString("Outgoing Message", body, "text/plain")
 }
 }  return message;
}

Möchten sie mehr über die Groovy Skripts  und die SAP Cloud Integration erfahren dann bleiben sie dran:

 

SAP Cloud Integration Groovy Secure Store

SAP Cloud Integration Groovy Script Exception Status

SAP Cloud Integration Grundlagen und Expertenwissen

CloudDNA Monitoring Suite für SAP® Cloud Integration

SAP Cloud Integration Quickstarter Workshop

Wir freuen uns sie in unseren Trainings begrüssen zu dürfen, und unterstützen sie in ihren Projekten. 

SAP Fiori Elements ABAPConf 2021 Report – CDS Tipps Tricks

SAP Fiori Elements ABAPConf 2021 Report – CDS Tipps Tricks

SAP Fiori Elements List Reports

CDS Tipps & Tricks

Im Rahmen der ABAPConf 2021 durfte die CloudDNA GmbH einen Vortrag zum Thema SAP Fiori Elements – CDS Tipps und Tricks halten.

Dabei zeigen wir Ihnen gängige Anwendungsfälle in der Entwicklung von SAP Fiori Elements Apps. 

Listendarstellung (@UI.lineItem)

@Metadata.layer: #CUSTOMER  annotate view ZC_AC_FLIGHTS with
{
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical; 
}

Listendarstellung mit Header (@UI.headerInfo)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'  annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical; 
}

Listendarstellung mit Suche (@Search)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'  annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical; 
}

Listendarstellung mit Filtern (@SelectionFields)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'  annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 @UI.selectionField: [{ position: 10 }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 @UI.selectionField: [{ position: 20 }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 @UI.selectionField: [{ position: 30 }]
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical; 
}

Listendarstellung mit Value Help (@Consumption.valueHelp)

Listendarstellung mit Select Filter (@ObjectModel.resultSet.sizeCategory)

Listendarstellung mit Date Range (@Consumption.filter.selectionType)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'  annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 @UI.selectionField: [{ position: 10 }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 @UI.selectionField: [{ position: 20 }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 @UI.selectionField: [{ position: 30 }]
 @Consumption.filter.selectionType: #INTERVAL
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical;
}

Listendarstellung LineItem Status Indicator (@UI.lineItem.criticality)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'
@UI.lineItem: [{criticality: 'SeatsCritical'}]
annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH }]
 @UI.selectionField: [{ position: 10 }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 @UI.selectionField: [{ position: 20 }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 @UI.selectionField: [{ position: 30 }]
 @Consumption.filter.selectionType: #INTERVAL
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical;
}

Listendarstellung LineItem Link (@UI.lineItem.type: #WITH_URL)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'
@UI.lineItem: [{criticality: 'SeatsCritical'}]
annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH, type: #WITH_URL, url: 'Url' }]
 @UI.selectionField: [{ position: 10 }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 @UI.selectionField: [{ position: 20 }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 @UI.selectionField: [{ position: 30 }]
 @Consumption.filter.selectionType: #INTERVAL
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM }]
 Seatsocc;  @UI.hidden: true
 SeatsCritical; 
}

Listendarstellung LineItem Progress Indicator (@UI.datapoint.visualization)

@Metadata.layer: #CUSTOMER
@Search.searchable: true
@UI.headerInfo.typeName: 'Flight'
@UI.headerInfo.typeNamePlural: 'Flights'
@UI.lineItem: [{criticality: 'SeatsCritical'}]
annotate view ZC_AC_FLIGHTS with
{
 @Search.defaultSearchElement: true
 @UI.lineItem: [{ position: 10, importance: #HIGH, type: #WITH_URL, url: 'Url' }]
 @UI.selectionField: [{ position: 10 }]
 Carrid;  @UI.lineItem: [{ position: 20, importance: #HIGH }]
 @UI.selectionField: [{ position: 20 }]
 Connid;  @UI.lineItem: [{ position: 30, importance: #HIGH }]
 @UI.selectionField: [{ position: 30 }]
 @Consumption.filter.selectionType: #INTERVAL
 Fldate;  @UI.lineItem: [{position: 40, importance: #MEDIUM }]
 Price;  @UI.lineItem: [{position: 50, importance: #MEDIUM, type: #AS_DATAPOINT }]
 @UI.dataPoint: {targetValueElement: 'Seatsmax', visualization: #PROGRESS, criticality: 'SeatsCritical'}
 Seatsocc;  @UI.hidden: true
 SeatsCritical;
}

Solltet ihr die ABAPConf 2021 verpasst haben kommt Ihr hier zu You tube , ab 5:22:40 gehts mit unserem Beitrag CDS Tipps & Tricks für Fiori Elements Entwicklung

Unsere Empfehlung SAP Fiori Elememts das Handbuch klicken sie hier: SAP Fiori Elements das Praxishandbuch

SAP Fiori Elements - Das Praxishandbuch
SAP 3 to RUN – SAP Training zum Wunschtermin

SAP 3 to RUN – SAP Training zum Wunschtermin

Wie es mal so ist ein Kollege hat Urlaub, der andere  steckt in Terminen fest – gerade wenn Trainingszeit ist. Wir zeigen euch die beste und einfachste Lösung die SAP bietet. Suchen sie mit ihrem Team einen passenden Termin und folgen sie unserem Leitfaden.  So erreichen sie unkompliziert und rasch ihr Ziel.  SAG JA zum Training – SAG JA zu SAP 3 to Run   

SAP 3 to RUN – Der Leitfaden

Die SAP bietet eine Reihe von Kursen und Trainings an zu fixen Terminen. Doch leider finden sie keinen passenden Termin oder haben keine Lust zu reisen. In dem Fall empfehlen wir ihnen die Aktion SAP 3 to RUN –> SAP-Schulungen on demand.

 

Die Prinzipien sind einfach und klar:

Sichern sie sich mit SAP 3 to RUN ihr SAP Training zu ihrem Wunschtermin und Wunschort mit einer Teilnehmerzahl von mindestens 3 Personen.

Sie wählen sowohl Klassenraumtraining oder SAP Live Class, wie auch den Termin. Ausserdem gibt es die Option den Trainingsort frei zu wählen. Zur Auswahl stehen Walldorf, Ratingen, Hamburg, Berlin, Wien und Zürich.

 

 

3 to RUN – Wie melde ich mich an?

1. Auswahl des Kurses: HOUI5 (SAPUI5),WDECPS (Cloud Security), WDEI1 (Cloud Integration)

2. Festlegen Ihrer Anforderungen:  Wunschtermin, Schulungsort und Sprache auswählen.

3. Anfragen: Email mit dem dem entsprechendem Code an.

education.germany@sap.com      -> Code 3TORUNDE
education.austria@sap.com         -> Code 3TORUNAT
education.switzerland@sap.com> Code 3TORUNCH

Klicken sie auf folgende Links um sich anzumelden:

Mehr Informationen zu der Aktion 3 to RUN finden Sie hier:

Deutschland: www.sap.de/3torun

Österreich: www.sap.at/3torun

Schweiz: www.sap.ch/3torun

 

    Das Team der CloudDNA freut sich, sie in ihrem nächsten Kurs oder SAP Training willkommen zu heissen. Wir machen sie und Ihr Team fit!

    WDEI1- SAP Cloud Integration Training in Österreich Deutschland

    WDEI1- SAP Cloud Integration Training in Österreich Deutschland

    Das SAP Training für SAP Cloud Integration – online und live 

    Eine praxisnahe Einführung in Entwicklung und Architektur

     

    WDEI1 SAP Cloud Integration Training

    Kursinhalte zum WDEI1 SAP Training

    • Wir betrachten die praxisnahen Aspekte in Cloud Integration Projekten um sie zu verstehen.
    • Unsere Inhalte sind gekennzeichnet durch hohe praktische Erfahrungen. Wie bieten für Sie auch hier ein Hands- on Training
    • Ausserdem gehört SOAP, HTTPS, REST, OData, SFTP, Mail, XI, ABAP Proxy, ESR, SAP PO natürlich auch dazu.

    Blick in das  SAP Training für die  SAP Cloud Integration

    Wie melde ich mich zum WDEI1 SAP Training an?

    Sie finden das Training  im offiziellen SAP Schulungskatalog und zu buchen über den SAP Education Store! Ob online oder live das Team der CloudDNA freut sich mit Ihnen in die Welt der Cloud einzutauchen.

    Bitte gehen sie auf die offizielle SAP Homepage (https://training.sap.com)

     

    1️⃣ Melden sie sich mit Ihren Daten am SAP Portal an.
    2️⃣ suchen nach WDEI1
    3️⃣ Wichtig! bitte Österreich und/oder Deutschland auswählen um alle Termine zusehen
    4️⃣ passenden Termin auswählen, falls sie kein Datum finden, bleiben Sie dran und holen sich Ihre Informationen zum SAP Training nach Wunschtermin!

    Welche Vorteile bieten SAP Trainings vom Team der CloudDNA

    Wir bieten 90% Hands on Training von Experten für Experten, aus der Praxis für die Praxis, unsere Trainer haben selbst die kompletten Trainings ausgearbeitet und können somit alle Fragen fachlich beantworten. Möchten sie mehr über unsere anderen SAP Kurse erfahren dann klicken sie auf den folgenen Button. 

    SAP TRAINING JA – aber keinen passenden Termin gefunden oder sie wollen nicht verreisen.

    Hier gehts zur Lösung:

    Möchten Sie mehr über Groovy Script erfahren, dann klicken Sie bitte auf das Bild

    Groovy Script Payload Logging
    SAP Trainer Zertifikat 2021 Training Kurs Consultant Clouddna beratung Deutschland Österreich und Schweiz WDECPS WDEI1 HOFIO HOUI5 Fiori Cloud platform Plattform Security Trainer

     

     

     

    Zum guten Schluss haben wir noch Links die Sie interessieren könnten zusammengefasst. Das Team der CloudDNA wünscht viel Spass beim erforschen der  SAP Cloud, bis bald in einem unserer Trainings.

    Expertenwissen zur SAP Cloud Platform Integration

    Wir lassen sie nicht in der Cloud hängen den SAP ( Cloud ) Consulting liegt in unsere DNA.

    Unser Expterten Team aus „Alten Hasen und Jungen Wilden“ steht Ihnen zur Verfügung: Neue Projekte, Fragestellung, Problemanalyse.. alles zum Thema SAP!

    Mit Fragen zum SAP Cloud Connector, zur SAP BTP, zur SAP Cloud Platform, zur SAP CPI, zur SAP Integration Suite und anderen innovativen Themen sind Sie bei uns genau an der richtigen Adresse! Haben Sie Fragen zu unseren Leistungen, Paketen oder Produkten? Kontaktiern Sie uns!

     

    Ihre Nachricht an die CloudDNA: