Groovy Script Value Mapping verwenden  | Anleitung

Groovy Script Value Mapping verwenden | Anleitung

Tutorial Groovy Script Value Mapping

Groovy Script ist ein grosses Thema, wir haben uns für eine mehrteilige Blogserie entschieden und wünschen viel Spass beim Lesen und Ausprobieren!

Inhaltsverzeichnis:

  • Wofür brauche ich ein Value Mapping in Groovy Scripts ?

  • SAP Training

  • Anleitung Groovy Value Mapping Verwendung

  • Mehr über Groovy Script und die SAP Integration Suite

Wofür brauche ich ein Value Mapping in Groovy Scripts?

Die SAP Cloud Integration bietet Ihnen die Möglichkeit Groovy Skripts zu verwenden. Genießen Sie mehr Flexibilität indem Sie Value Mappings verwenden. Value Mappings haben sich bereits auf der SAP XI, SAP PI und SAP PO bewährt und sind auch aus der SAP Cloud Integation nicht wegzudenken. Damit haben Sie die Möglichkeit, Mappings von Werten z.B. von Lieferantennummern unabhängig vom IFlow zu definieren und zu pflegen. Dieses Szenario kommt typischerweise zum Einsatz wenn das Zielsystem andere Werte für Identifier erwartet, als Sie vom Quellsystem geliefert werden. 

In dem von uns entwickelten SAP Standard Training WDEI1 zeigen wir Ihnen wie Sie Groovy richtig und effizient verwenden.

Im nachfolgenden Coding zeigen wir Ihnen, wie Sie in einem Groovy Skript auf ein Value Maping zugreifen können. Im Wesentliche dreht sich wieder einmal alles über die ITApiFactory. Darüber können Sie auf die Value Mapping Api zugreifen.

SAP Training zum Thema Groovy Scripts

Zur Anmelung: Der SAP WDEI1  bietet Ihnen eine 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 Value Mapping Verwendung:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import com.sap.it.api.ITApiFactory
import com.sap.it.api.mapping.ValueMappingApi
def Message processData(Message message) {
 def body = message.getBody(String)
 def valueMapApi = ITApiFactory.getApi(ValueMappingApi.class, null)
 def value = valueMapApi.getMappedValue('sourceAgency', 'sourceIdentifier', 'sourceValue', 'targetAgency', 'targetIdentifier') 
 message.setBody(value)
 return message;
}

Groovy Script Exception Status ist gesetzt – weiter gehts:

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 Payload Logging

SAP Cloud Integration Grundlagen und Expertenwissen

CloudDNA Monitoring Suite für SAP® Integration Suite

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 Buch | Einführung Fiori Elements

SAP Fiori Elements Buch | Einführung Fiori Elements

Herzlich Willkomen zu unserem Buch über das SAP Fiori Elements- Das Praxishandbuch. Heute verschaffen wir uns einen gesamten Überblick über das Buch, es ist im Rheinwerkverlag erschienen und auch über Amazon zu erwerben. Das Autorenteam  der CloudDNA erklärt Ihnen alle Hintergründe zur Entwicklung mit dem Framework.

Inhaltsverzeichnis

Grundlagen SAP Fiori Elements

Was erwartet sie im SAP Fiori Elements Buch?

Experttalk: Vorstellung der Kapitel 

Vorteile und Nachteile

 

 

Grundlagen SAP Fiori Elements 

Egal ob SAP oder Non-SAP, kann das traditionelle Coding kann sehr komplex sein. Sie müssen oft endlos lange Sourcecodes schreiben, Screenelemente anordnen, Boilerplate-Code erstellen und alles testen? Das kann Stunden wenn nicht sogar Tage dauern. Genau an dem Punkt setzt SAP mit SAP Fiori Elements mit einem Low-Code-Ansatz an. Ziel ist es dass Entwickler*innen einfacher und schneller zu einem tollen Ergebnissen kommen. SAP Fiori Elements ist keine Bibliothek, sondern ein Paradigma und eine Sammlung von Best-Practices. SAP Fiori Elements stellt unterschiedliche Floorplans bereit. Damit können Sie Ihre eigene Unternehmens-Apps erstellen um klassische Business Szenarien abzubilden, aber auch um neu und innovative Einenentwicklungen zu implementieren. Dank des darunterliegenden SAP Fiori und SAPUI5-Frameworks erhalten Sie einen einheitliche Optik. Damit können Sie sicherstellen das Ihre Endnutzer effizenter arbeiten und sich schneller in der App zurechtfinden werden. Ausserdem stellt SAP in regelmässigen Abständen neue Designs bereit auf die Sie zugreifen können.

Ein kleiner Hinweis am Rande: Das einheitliche Design bedeutet nicht, dass Sie eingeschränkt werden. Jederzeit können sie Ihre SAP Fiori App mit bekannten Konzepten um benutzerdefinierte Abschnitte erweitern. 

Was erwartet Sie in SAP Fiori Elements – Das Praxishandbuch?

Sie erhalten 445 Seiten geballtes Wissen. In diesem Buch behandeln wir viele interessante Bereiche rund um SAP Fiori Elements. Nach einer Übersicht über die Historie und die Daseinsberchtigung von SAPUI5, SAP Fiori und SAP Fiori Elements geht es zügig weiter. Sie erfahren ausführliche Details zu allen im Kontext der SAP Fiori Elements benötigten Grundlagen. Danach steigen wir in die Floorplans ein. Sie lernen Overview Page, List Report, Analytical List Page und Object Page kennen. Zusätzlich erfahren Sie, wie Apps für die wichtigsten Anwendungsszenarien auf Basis dieser Floorplans erstellt werden. Schon bald werden Sie sicher im Umgang mit Annotationen und den Entwicklungsumgebungen SAP Web IDE und SAP Business Application Studio sein. Ausserdem finden Sie ausführliche Beispiele dazu, wie Sie die Basisanwendungen erweitern können. Die Navigation zwischen den einzelnen Seiten Ihrer App und auch die verschiedenen  Deploymentoptionen werden beschrieben.

Experttalk SAP Fiori Elements – Das Praxishandbuch

Das CloudDNA Autorenteam stellt Ihre Kapitel vor

Maximilian Olzinger, redet über die SAP Fiori Elements Object Page

Daniel Krancz,  erklärt einen Teil  aus dem Kapitel SAP Fiori Elements Floorplan Overview page

Rene Glavanovits zeigt die SAP Fiori Elements List Report und Worklist

Martin Koch über seine Kapitel: SAP Fiori Elements Entwicklung, SAP Fiori Elements Low-Code,  SAP Fiori Elements Progammiermodelle, SAP Fiori Elements Deployment

Das  SAP Fiori Elements Buch können sie bei Amazon kaufen, wir freuen uns über ihre Bewertung.

Vorteile und Nachteile

Vorteile:

  • Wenig UI-Entwicklungsaufwand
  • Low-Code
  • Metadatengesteuert
  • Flache Komplexitätskurve

Nachteile:

  • Erweiterungen werden schnell komplex
  • Läuft nur im SAP Fiori Lauchpad
  • Funktioniert nur mit OData
  • Teilweise unzureichende Dokumentation
  • Kein Offline Support

Folgend haben wir noch andere Blogbeiträge für Sie bereitgestellt:

Groovy Script Secure Store | leicht lernen

Groovy Script Secure Store | leicht lernen

Groovy Script Secure Store Tutorial – Get Groovy Teil 2

Herzlich Willkommen zu unserer 3 teiligen Blogserie zum Thema Groovy Script, weiter geht es mit Teil 2.

Inhaltsverzeichnis:

  • Wie funktioniert es ?

  • SAP Training 

  • Anleitung Groovy Script Secure Store 

Wie funktioniert Groovy Script Secure Store?

Eine gelegentliche Anforderung stellt der Zugriff auf die im Secure Store gespeicherten Credentials dar. Wir zeigen Ihnen im nachfolgenden Skript wie Sie dies unter Verwendung von Groovy umsetzen können.

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 zum WDEI1 Training

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

Erfahren sie mehr über das WDEI1 Training

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 Secure Store

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.json.*;
import com.sap.it.api.ITApiFactory;
import com.sap.it.api.securestore.SecureStoreService;
import com.sap.it.api.securestore.UserCredential;
import com.sap.it.api.securestore.exception.SecureStoreException;
def Message processData(Message message) {
 //Body 
 def body = message.getBody(java.lang.String) as String
 def service = ITApiFactory.getApi(SecureStoreService.class, null) 
 if( service != null) {
 def jsonSlurper = new JsonSlurper()
 def requestObject = jsonSlurper.parseText(body)
 def aliasname = requestObject.alias 
 def credential = service.getUserCredential(aliasname)
 if (credential != null) {
 def username = credential.getUsername()
 def password = credential.getPassword()
 def properties = credential.getCredentialProperties()
 String passwordString = "" 
 if (password.getClass().isArray()) {
 if (password instanceof char[]) {
 passwordString = new String((char[]) password);
 }
 } 
 def json = JsonOutput.toJson([username: username, password: passwordString, properties: properties])
 message.setBody(json)
 }
 } 
 return message;
}

Wir hoffen es hat Ihnen gefallen und es kann weiter gehen:

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

 SAP Cloud Integration Groovy Script Exception Status Code setzen

 SAP Cloud Integration Groovy Payload Logging

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. Das Team der CloudDNA ist ein gute Mischung aus alten Hasen und jungen Wilden wir haben die SAP Cloud in unserer DNA- wir lassen sie nicht in der Cloud hängen- we deliver 

 

 

Groovy Script Exception Status Code setzen  | Anleitung

Groovy Script Exception Status Code setzen | Anleitung

Tutorial Groovy Script Exception Status – Get Groovy Teil 1

Groovy Script ist ein grosses Thema, wir haben uns für eine mehrteilige Blogserie entschieden und wünschen viel Spass beim lesen und ausprobieren!

Inhaltsverzeichnis:

  • Wofür brauche ich den Groovy Script Exception Status ?

  • SAP Training

  • Anleitung Groovy HTTP Status Code setzen

  • Mehr über Groovy Script und die SAP Integration Suite

Wofür brauche ich den Groovy Script Exception Status?

Die SAP Cloud Integration bietet Ihnen die Möglichkeit Groovy Skripts zu verwenden. Optimieren Sie die Fehlerbehandlung in ihren IFlows indem Sie im Groovy Skript den HTTP Status Code setzen. In dem von uns entwickelten SAP Standard Training WDEI1 zeigen wir Ihnen wie Sie Groovy richtig verwenden.

Im nachfolgenden Coding zeigen wir Ihnen, wie Sie in Groovy Skript in einem Exception Subprocess den HTTP Status Code setzen können. Wir haben dazu dem Groovy Script einen Content Modifier vorgeschaltet, der die beiden Variablen ${exception.stacktrace} und ${exception.message} in die Exchange Properties exStacktrace und exMessage speichert. Das Groovy Skript setzt im Body eine XML Nachricht, in der diese beiden Exchange Properties gekapselt sind. Dazu verwenden wird den MarkupBuilder aus dem groovy.xml Paket. Schon kann es los gehen!

SAP Training zum Thema Groovy Scripts

Zur Anmelung: Der SAP WDEI1  bietet Ihnen eine 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 HTTP Status Code setzen:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.xml.MarkupBuilder;
def Message processData(Message message) {
 //Body 
 def body     = message.getBody();
 def props    = message.getProperties(); 
 def exStacktrace = props.get("exStacktrace");
 def exMessage = props.get("exMessage"); 
 def stringWriter = new StringWriter();
 def exceptionBuiler = new MarkupBuilder(stringWriter); 
 exceptionBuiler.exception {
 exceptionMessage(exMessage)
 stacktrace(exStacktrace)
 } 
 message.setHeader("Content-Type", "application/xml")
 message.setHeader("CamelHttpResponseCode", 500) 
 message.setBody(stringWriter.toString());
 return message;
}

Groovy Script Exception Status ist gesetzt – weiter gehts:

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 Payload Logging

SAP Cloud Integration Grundlagen und Expertenwissen

CloudDNA Monitoring Suite für SAP® Integration Suite

SAP Cloud Integration Quickstarter Workshop

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

 

 

Was ist SAP AppGyver ?| No-code Development | Grundlagen lernen

Was ist SAP AppGyver ?| No-code Development | Grundlagen lernen

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 ist 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 SAP 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 offiziellen 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.