K2 Business Apps für SharePoint 2013

Momentan gibt es wöchentlich Neues von der K2 Dev Abteilung. Aktuell zwar noch im Alpha Status und nur für Demos gedacht, kann ich aber endlich in einem ersten Post die Features der K2 Integration in SharePoint 2013 vorführen! Was macht den Unterschied zur Plattform momentan aus? Mit den K2 Business Apps wird die Smartforms Engine “nativ” in SharePoint integriert. Das bedeutet die bisher genutzte Webpart Integration wird nicht mehr nötig sein, Formulare können direkt an SharePoint Ansichten (“new”, “edit”, “display” und auch Listenansichten) gekoppelt werden. Für eine Liste ist die K2 App über das Ribbon zu erstellen

listeurlaub

Das Grundgerüst wird hierbei automatisch von der Engine erstellt. Es gibt zunächst drei Möglichkeiten

 

createk2app

Data Application
Die Data Application erstellt nur die SmartObjects basierend auf dem Listenschema. Diese können dann wie üblich in anderen Prozessen, Formularen, Reports oder schlichten Benachrichtigungen genutzt werden.

Forms Application
Im Vergleich zu einer Data Application werden bei der Forms Application zusätzlich noch Smartforms automatisch erzeugt. D.h. hiermit kann man sich mit wenigen Klicks ein neues UI für das Listenschema erstellen lassen.

Workflow Application
Mit der Workflow Application werden automatisch SmartObjects, Smartforms und ein Workflow Template für dieses Listenschema erstellt. Diese Option werde ich auch im Beispiel Urlaubsantrag wählen.

Nach ein paar administrativen Einstellungen, zB wann der Workflow starten soll, Names des Workflows, Berechtigungen etc. kann man auch schon einen Workflow designen. Ich erstelle mir für diese Demo einen überschaubaren Workflow mit Benachrichtungen, Status Update und einfachem Freigabeschritt.

urlaubworkflow

Nach dem Bereitstellen erkennt man was die Engine im Hintergrund erstellt hat. Formulare, Ansichten, SmartObject und Workflow!

urlaubelemente

Von nun an, nutzt diese SP Liste Smartforms als UI Engine und ich kann die Formulare mit allen Features der Engine ausstatten! Das werde ich in einem der folgenden Posts tun. Bis dahin begnüge ich mich mit dem OOTB Ergebnis, zB für das “new” Form.

urlaubnewsf

K2 Endpoint Service Broker + SharePoint Webservice

Seit dem Release von Blackpearl 4.6.5 gibt es OOTB einen neuen Service Broker. Mit dem Endpoint Service Broker kann man sich ein SmartObject für einen beliebigen Webservice, WCF Service oder eine .Net Assembly erstellen lassen. In diesem Beispiel zeige ich anhand der Webservice Schnittstelle von SharePoint wie sich die K2 Plattform nun sehr einfach um neue Funktionen erweitern lässt – und zwar ohne zusätzliche Programmierung. Konkret werde ich mir ein SmartObject erstellen, mit dem ich neue SharePoint SiteCollections erstellen kann.

Im SmartObject Services Tester Tool kann man sich am schnellsten orientieren und die neuen Typen identifizieren. Im Screenshot rot markiert.

smotester_endpoint

 

Einen recht guten Überblick über die Möglichkeiten der SharePoint Webservice Schnittstelle liefern die Seiten des MSDN. Dort findet man heraus, dass man zum Erstellen von SiteCollections den Admin Webservice verwenden muss. Zu finden unter <URLcentraladmin>/_vti_adm/Admin.asmx
Kennt man die URL des Dienstes, kann man sich über das Tester Tool mit wenigen Rechtsklicks eine ServiceInstance und das passende SmartObject generieren lassen.

smotester_instance

 

Service Instance

smo

SmartObject

Danach kann man theoretisch aus dem Tester Tool bereits SiteCollections erstellen. Um den Broker zu testen, würde dies sicher ausreichen. Allerdings braucht man in der echten Welt doch immer ein Frontend. Da wir nun ein SmartObject in der Hand haben, gibt es mehrere Einsatzmöglichkeiten:

  • Aufruf in einem K2 Workflow mit entsprechender Parametrisierung. Der Workflow kann von verschiedenen Systemen gestartet werden, zB SharePoint (Ereignisgesteuert), InfoPath, Websites, Windows Anwendungen etc.
  • Aufruf mit Hilfe eines Smartforms, synchron. Das bedeutet ich erstelle mir für das SMO (SmartObject) ein Smartforms UI und binde den Aufruf direkt an ein Ereignis au f dem Formular (zB ein Button Clickevent) .
  • Aufruf mit Hilfe eines Smartforms, asynchron. In diesem Fall erfasse ich die Daten auf einem Smartform und nutze das Formular um den Workflow zu starten. Genau wie im ersten Ansatz könnte man so noch eine Freigabe einbauen und auch die ggf. lange Laufzeit (abhängig vom gewählten SiteTemplate) zum Erstellen der SiteCollection verschleiern indem man den Benutzer sofort auf eine Landingpage weiterleitet.

Das Endergebnis könnte dann so aussehen:

neuesitecoll

 

MSDN SharePoint Webservices
http://msdn.microsoft.com/en-us/library/ee705814(v=office.14).aspx

SmartObject Services Tester Tool Verzeichnis
<Installationsverzeichnis>\K2 blackpearl\Bin