K2 FIVE und das Microsoft 365 Ökosystem

Kaum sind die ersten Meldungen zum Release von K2 Five veröffentlicht, trudeln natürlich die ersten Fragen ein, wie sich die neue Version mit Microsoft Produkten verbinden lässt.

Hinweis: In diesem Artikel wird immer von K2 Five gesprochen. Zum Launch besteht zwischen der on-premise Version (“K2 Five”) und der Cloud Version (“K2 Cloud Platform”) Funktionsgleichheit.

In der Regel beziehen sich die Fragen auf folgende Systeme bzw. Dienste:

  • Microsoft SharePoint
  • Microsoft O365
  • Microsoft PowerApps und Flow
  • PowerBI

Diejenigen, die sich schon länger mit K2 beschäftigen, werden sicherlich bestätigen dass historisch betrachtet eine synergetische Partnerschaft zwischen Microsoft und K2 besteht. Viele K2 Kunden bewegen sich im Microsoft Umfeld und arbeiten mit K2 in der Regel als Erweiterung für SharePoint Workflows und Formulare oder nutzen die SmartObject Technologie um SharePoint Daten in komplexen Enterprise Prozessen zu integrieren. An diesem Punkt ändert sich nichts, d.h. es gibt weiterhin die Provider Hosted App mit der man über alle SP Versionen (13, 16, online) einheitlich mit K2 arbeiten kann.

So wichtig SharePoint sein mag, O365 geht mittlerweile meilenweit über die SP Inhalte und Funktionen hinaus. Um K2 Integrationen auch in anderen Diensten (u.a. auch via Azure) so einfach wie möglich zu gestalten, wurden nun zwei neue K2 APIs ergänzt: K2 REST Workflow API und K2 ODATA SmartObject API.

Der Service wird mit Swagger beschrieben und die Definition kann mit einem Klick heruntergeladen und in externen Systemen als API verwendet werden. Die Schnittstelle selbst kann direkt getestet werden:

Somit ist es sehr einfach, den K2 Server via Connector in Diensten wie zum Beispiel Microsoft Flow einzubinden. Interpretiert man MS Flow in diesem Szenario als Eventhub, kann man hunderte in MS Flow unterstützte Plattformen als Ausgangspunkt für eine K2 Business App nutzen.

Microsoft Flow eignet sich bestens um Events (wie z.B. eine Statusänderung an einer Salesforce Opportunity, das Hochladen einer Datei in OneDrive oder dem Erstellen einer neuen Trello Card) zu kategorisieren und dann entsprechend den passenden K2 Workflow zu starten.

In dem Beispiel oben wird zunächst geprüft ob der neue Status der Salesforce Opportunity das Wort “Closed” beinhaltet. Falls dies der Fall ist, wird eine Message auf MS Teams und Yammer veröffentlicht, um die Kollegen zu informieren dass eine Opp geschlossen wurde. Letztlich wird dann ein K2 Workflow gestartet um einen vergleichsweise komplexen Geschäftsprozess zu starten – “New Sales Order”.

Wie man sieht, handelt es sich bei diesem Prozess um eine Lösung die sich über Abteilungsgrenzen hinweg verteilt (Sales, Legal und Externe für die digitale Signatur des Angebots mit DocuSign).  Dank der vielseitigen K2 Konnektoren ist auch eine ausgehende direkte Integration zu den genannten Systemen möglich, oder man verwendet einen MS Flow Webhook um ein Event in MS Flow auszulösen. Wie man Microsoft Teams integrieren kann, habe ich in einem anderen Artikel beschrieben.

Auch analytische Lösungen wie Microsoft PowerBI können nun für alle K2 Daten genutzt werden. Hier kommt die ODATA SmartObject API zum Zuge, in deren Admin Schnittstelle konfiguriert werden kann, welche Daten über die API veröffentlicht werden sollen:

Danach kann man den K2 Server als Datenquelle (OData Feed) in PowerBI einbinden und individuelle Reports bauen oder das K2 Content Pack nutzen, wie in diesem Beispiel:

Dies sind nur ein paar Beispiele die aufzeigen, wie einfach man Microsoft Dienste mit K2 ansprechen und erweitern kann.

Neben den Integrationsmöglichkeiten spielt Microsoft noch eine weitere strategische Rolle: Die K2 Cloud Platform wird auf Azure gehostet und betrieben.

 

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone

LAUNCH: K2 Five & K2 Cloud Platform!

Nach monatelangem “Füsse stillhalten!” starten nun endlich die Marketing-Aktivitäten für zwei neue K2 Produkte, K2 Five und K2 Cloud Platform!

Mit K2 Five veröffentlicht K2 eine gänzlich überarbeitete Plattform, die basierend auf jahrelanger Erfahrung, dem Kundenaustausch und Research & Development im Bereich BPM und LowCode App Development entwickelt wurde. Zum Launch besteht zwischen beiden Produkten Funktionsgleichheit, wobei die Cloud Plattform regelmäßiger aktualisiert wird als die onprem Variante.

Im Fokus für dieses Release stehen die Themen:

  • Anwenderfreundlichkeit und intuitive Bedienbarkeit
  • Speed bei der Anwendungsentwicklung
  • Zukunftsfähigkeit durch Öffnung der Plattform für moderne APIs
  • Sicherheit und Governance

Es macht wahrscheinlich am meisten Sinn, zunächst mit den offensichtlichen Neuerungen anzufangen. Ein absoluter Quantensprung ist der neue Workflow Designer. Er vereint die gewohnte Flexibilität mit einfachster Bedienbarkeit, dank eines komplett neuen UI Konzepts. In folgenden Beiträgen werde ich detailliert auf diesen Designer eingehen.

Ein paar Fakten für den Einstieg: der Designer kommt mit “Infinity Canvas” und erlaubt freie Hand bei der Prozessgestaltung. Zudem funktioniert er gleichermaßen Standalone, mit SharePoint onprem und SharePoint online.

Mit dem K2 Workspace steht nun auch eine Landingpage zur Verfügung, die dem Anwender schnellen Zugang zu seinen Aufgaben und relevanten Business Apps und Reports ermöglicht. Die Inhalte können administrativ festgelegt werden!

K2 Workspace – Angepasst für die Abteilung “Operations”

Task Management via K2 Workspace

Auch der K2 Designer wurde komplett überarbeitet und gestaltet sich nun deutlich intuitiver. Dabei wurden die Oberflächen entschlackt und optisch in allen Tools abgeglichen: Forms, Views, SmartObjects und Workflows können nun in einheitlichem Look & Feel gestaltet und bearbeitet werden.

Startseite K2 Designer

Complex Forms Without the Complications

Lange erwartet wurde auch die Möglichkeit, für K2 Artefakte zu bestimmen, wer diese im K2 Designer verwenden oder als Endanwender ausführen darf. Diese Anforderung wird mit dem neuen Authorization Framework adressiert. Als Mitglieder der Security Admin Rolle kann man auf Kategorien (mit Vererbung) oder direkt auf Elementen definieren für wen die Objekte verwendbar sein sollen. Auch hierzu werde ich in den kommenden Beiträgen eingehen.

Die offizielle Website bietet jede Menge Content zum Launch von K2 Five.

https://www.k2.com/platform/platform-overview

 

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone

QNAMaker Bots in K2 Apps einbinden #bots #ai

Wer auf der Suche nach einem einfachen Botsystem für seine Anwendungen ist, sollte sich mit qnamaker.ai (von Microsoft) auseinandersetzen. Der Service ist zwar momentan noch in der Preview, bietet allerdings schon viele Funktionen und v.a. auch eine REST API mit der man seine Bots in eigene Anwendungen integrieren kann.

Info: Wer über eine O365 Subscription verfügt kann mit wenigen Klicks diese Bots auch auf anderen Plattformen nutzen, z.B. MS Teams, Skype For Business etc.

Der wichtigste Aspekt für eine Integration mit K2 ist der Service Endpoint des Bots. Diesen bekommt man an mehreren Stellen präsentiert und so sieht das Ganze aus:

POST /knowledgebases/<urlpart>/generateAnswer
Host: https://westus.api.cognitive.microsoft.com/qnamaker/v2.0
Ocp-Apim-Subscription-Key: <key>
Content-Type: application/json
{"question":"hi"}

Anhand dieser Information kann man sich bereits Gedanken machen, wie die Swagger Datei für den K2 REST Broker auszusehen hat. Mittels Postman o.ä. Tools kann man schnell herausfinden wie die Response des Bots aussieht:

{
 "answers": [
 {
 "answer": "I have found this information: Berlin",
 "questions": [
 "Capital of Germany?"
 ],
 "score": 100
 }
 ]
}

Hat man eine passende Swagger Datei erstellt, kann man die REST Service Instance erstellen und folglich via SmartObject mit dem Bot kommunizieren. 👍

Die Art und Weise der Integration hängt von der Bot-Strategie ab, hier gibt es beliebige Möglichkeiten:

  • Ein Bot als Benutzerhandbuch für Apps (“Wie erstellt man einen Lieferantenvertrag?”)
  • Generischer HR Bot (“Wieviele Urlaubstage habe ich noch?”)
  • Business Data Bot (“Wie groß ist das Restbudget von Kunde X?”)

Steht das SmartObject bereit, kann man mit K2 SmartForms eine Bot-View bauen. Solche Views kann es dann pro Bot geben und können über Anwendungsgrenzen hinweg eingesetzt werden. Hier ein Beispiel:

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone

#HowTo: Swagger Datei für Microsoft Teams Webhook erstellen und in K2 Apps verwenden

Pünktlich (ok, fast!) zum Release von Microsoft Teams liefere ich noch das HowTo zum Thema Webhook Integration nach.

In dem letzten Live Beispiel (Vendor Contract Management) bin ich bereits auf eine mögliche MS Teams Integration in einem “echten” Geschäftsprozess eingegangen. Heute erkläre ich kurz wie die MS Teams Anbindung technisch mit K2 funktioneren kann (es gibt durchaus mehrere Optionen) – und zwar anhand von Webhooks.

Was ist ein Webhook?
Ein Webhook ist ein Service Endpoint, der typischerweise JSON Payload interpretiert und nach dem Aufruf die Inhalte des Payloads verarbeitet. Alle möglichen Plattformen im Netz nutzen mittlerweile dieses Prinzip um eine wirklich sehr einfache Anbindung von externen Systemen zu ermöglichen. So lässt sich das im Folgenden beschriebene Prinzip praktisch 1:1 auf andere Systeme oder gar Plattformen übertragen: IFTTT (Maker Applet), Zapier (Webhooks), Microsoft Flow (Request Trigger) . Glücklicherweise kommt auch MS Teams mit dieser Art von Connector! Siehe hier.

MS Teams Webhook konfigurieren
Webhooks sind Connectoren auf Channelebene. D.h. man kann Webhooks über das Channel-Kontextmenü erstellen und konfigurieren.

Im folgenden Screen einfach auf “Add” klicken und man befindet sich auch schon in Konfiguration

Nachdem man dem Webhook einen Namen und ggf. ein Icon verpasst hat, erhält man auch schon die URL für den Aufruf. Diese URL ist ziemlich einfach zu analysieren – was die Erstellung einer Swagger Datei mit dynamischen Pfad (d.h. eine Datei für mehrere Channels) erleichtert.

https://outlook.office.com/webhook/{1}@{2}/IncomingWebhook/{Key}/{3}

Die URL Parts 1, 2 und 3 sind immer identisch, lediglich der Key weicht für jeden Webhook ab. Hierfür erstelle ich mit einer passenden Swagger Definition ein dynamisches SmartObject, welches dann pro Aufruf den Key als Input-Parameter erwartet. Somit erhalte ich ein typisiertes Object, welches ich direkt in Formularen oder Workflows verwenden kann, ohne mich um nervige String.Replace-Angelegenheiten kümmern zu müssen! Anhand des Keys wird dann definiert, in welchen Channel die Anwendung schreiben soll. Natürlich wäre es auch möglich für jeden Channel eine passende (fixe) Swagger Definition zu erstellen, das ist allerdings redundant und nicht erforderlich. Daraus ergibt sich der erste Teil der Swagger Definition:

{
“swagger”: “2.0”,
“info”: {
“version”: “1.0.0”,
“title”: “MS Teams”,
“description”: “MS Teams with K2 REST BROKER”
},
“schemes”: [
“https”
],
“host”: “outlook.office.com”,
“basePath”: “/webhook”,
“paths”: {
/<1>@<2>/IncomingWebhook/{key}/<3>“: {

Wie formatiert man MS Teams Nachrichten?
Nachrichten in MS Teams können sehr unterschiedlich gestaltet werden. Alle Optionen für die Formatierung sind hier beschrieben:
https://dev.outlook.com/Connectors/GetStarted

Microsoft nennt diese Nachrichten “Connector Cards”, diese können von sehr einfach (nur eine Nachricht) bis sehr komplex (Titel, Untertitel, Nachricht, Bild, Hyperlinks, wiederholte Bereiche etc.) gestaltet werden. Das Layout wird durch über den JSON Payload bestimmt.

Das Schema ist in der Doku beschrieben, ein paar Beispiele außerhalb der K2 Welt:

Einfach (nur Text):

curl -H "Content-Type: application/json" -d "{\"text\": \"Hello World!\"}" <YOUR WEBHOOK URL>

Komplex (mit Formattierungen und Abschnitten):

curl -H "Content-Type: application/json" -d "{\"title\": \"Learn about Office 365 Connectors\", \"text\": \"Visit the [Outlook Dev Portal](https://dev.outlook.com) to learn more about Office 365 Connectors!\", \"themeColor\": \"EA4300\"}" <YOUR WEBHOOK URL>

Woher weiß K2 wie das Schema auszusehen hat?

Als K2 Designer muss man sich nicht um diese Problematik kümmern. Übersetzt man das Schema einmalig in die passende Swagger Datei, sieht das so aus:

"paths": {
 "/<1>@<2>/IncomingWebhook/{key}/<3>": {
 "post": {
 "responses": {
 "200": {
 "description": "Response"
 }
 },
 "parameters": [
 {
 "name": "key",
 "in": "path",
 "description": "MS Teams url part for channel, keep this SECRET",
 "type": "string",
 "required": true
 },
 {
 "name": "Message",
 "in": "body",
 "description": "The message you want to post",
 "schema": {
 "$ref": "#/definitions/TeamMessage"
 },
 "required": true
...
...
 },
 "definitions": { 
 "TeamMessage": {
 "type": "object",
 "properties": {
 "title": {
 "type": "string",
 "required" : true
 },
 "text": {
 "type": "string",
 "required" : true
 },
 "sections": {
 "type": "array",
 "items": {
 "$ref": "#/definitions/Section",
 "required" : false
...
 },
 "Section": {
 "type": "object",
 "properties": {
 "activityTitle": {
 "type": "string"
 },
 "activitySubtitle": {
 "type": "string"
 },
 "activityText": {
 "type": "string"
 },
 "activityImage": {
 "type": "string"
...

Die komplette Swagger Definition findet man hier.

Durch die Konfiguration mit dem REST Broker arbeitet man letztlich mit typisierten SmartObjects – gleichermaßen direkt mit Formularen oder in K2 Workflows!

Test in der K2 Management Site

K2 Smartform

 

Ergebnis

 

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone

Forrester Wave: K2 erneut Strong Performer unter den Mobile Low-Code Development Platforms, Q1 2017

Forrester hat einen neuen Report veröffentlicht und K2 erneut als Strong Performer in der Kategorie Mobile Low-Code Development Platforms anerkannt. Besonderes Gewicht hatten bei der Analyse die Punkte Integration und Handling von Datenquellen (K2 SmartObject Technologie) und die ausgereifte Workflowengine.

Folgende Lösungen sind Bestandteil dieser Forrester Wave:
Alpha Software, Appian, Capriza, i-exceed, K2, Kony, Magic Software, Mendix, Oracle, OutSystems und Salesforce

Den kompletten Report kann man mit einer Forrester Subscription hier downloaden
https://www.forrester.com/report/The+Forrester+Wave+Mobile+LowCode+Development+Platforms+Q1+2017/-/E-RES136055

Weiterführende Resources gibt es auch auf dem offiziellen K2 Blog
https://www.k2.com/resources/blog

 

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone