Neue Termine für K2 Trainings im März!

Es stehen wieder Trainingstermine für die K2 Plattform an. Dieses mal gleich mehrere, verteilt mit unterschiedlichen Schwerpunkte!

Alle Termine finden im Park Inn by Radisson Frankfurt Airport Hotel statt.

Diese Trainings werden angeboten:

16.-18. März Blackpearl Core Training
Dieses Training ist das Basistraining für den Umgang mit K2 SmartObjects zur Datenanbindung, den K2 Workflow Designern und der Verwaltungsoberfläche (keine Programmierkenntnisse erforderlich)

19.-20. März Smartforms Builder Training
Dieses Training setzt auf dem Blackpearl Core Training auf und konzentriert sich auf K2 Smartforms, also dem UI Design (keine Programmierkenntnisse erforderlich)

23.-24. März Blackpearl Extensions Training
Für all diejenigen die lernen möchten, wie man die APIs und K2 Serviceschnittstellen von K2 richtig nutzt, bieten wir auch ein Entwicklertraining an (Programmierkenntnisse .Net erforderlich)

Interesse? Einfach eine Email an k2ne@k2.com schicken, angeben werde daran Teilnehmen soll (Anzahl und Firma) und wir werden uns zeitnah melden.

 

Das K2 Worklist Control (Smartforms 1.0.6)

Einige Neuheiten die mit Smartforms 1.0.6 ausgerollt wurden, habe ich bereits in anderen Posts dargestellt („Mehr aus der SharePoint UI herausholen“, „Error Handling“). Eine weitere wichtige Komponente ist das Worklist Control, also die Aufgabenliste von K2.

Hierbei handelt es sich um eine Weiterentwicklung des klassischen K2 Worklist Webparts für SharePoint bzw. der Worklist wie sie im K2 Workspace genutzt wurde. Der Vorteil an dem Control ist offensichtlich dass man es auf jeder beliebigen View und somit auf jedem Formular platzieren kann. Das bedeutet, unabhängig von Solution und führendem System (SharePoint, Smartform, Workspace etc.) kann man seine Aufgaben direkt abrufen und bearbeiten! Das Control kann sowohl global, alle Aufgaben eines Benutzers anzeigen oder vorgefiltert, je nach Workflow oder Solution. SiteCollection Grenzen oder WebApplikation Einschränkungen gibt es hierbei nicht.

Verbesserungen im Vergleich zur klassischen Worklist

  • Konfigurierbare Ansicht
    Aus einer Vielzahl von Spalten kann man sich nun die Worklist gemäß den Ansprüchen konfigurieren.
    config
  • Elemente ein- bzw. ausblenden (Toolbar, Filter, Suche)
  • Task Optionen können deaktiviert werden (Redirect, Share [früher Delegate], Sleep, Release)
    hidefeatures

 

  • Übersetzbar mit dem K2 Multilingual Control (Link)Einfache Ansicht (deutsch)multilingualeasy1
    Einfache Ansicht (english)
    multilingualeasy2

    Angepasste Ansicht (deutsch)
    multilingualadvanced1
    Angepasste Ansicht (english)
    multilingualadvanced2

Hinweis: Die Flaggensymbole habe ich in dem Beispiel selbst ergänzt. Die Sprachauswahl kann auch automatisch anhand der Browsersprache gesetzt werden. Selbstverständlich können auch andere Buttons oder Symbole zu diesem Zweck verwendet werden.

Details, wie zum Beispiel die Vergleichsoperatoren, sind ebenfalls übersetzbar

multilingualdetails

 

Wie oben bereits erwähnt, kann man dieses Control nun auch in eigenen Lösungen platzieren. Im unserem Beispiel „Quote To Cash“ habe ich die Worklist im Dashboard ergänzt. Zur Laufzeit könnte das dann so aussehen:

solutioninteg

Nach einem Klick auf den Toolbar Button, wird die inviduelle Aufgabenliste dann im Modaldialog dargestellt. Dies ist nur eines von vielen möglichen Einsatzszenarien wie man das K2 Worklist Control einsetzen kann. Da jedes Smartform eine eigene URL hat, kann man zum Beispiel auch aus Email Benachrichtigungen oder in SharePoint Webparts darauf verweisen.solutioninteg1

Verbessertes Error Handling mit K2 Smartforms 1.0.6

Unter den zahlreichen Verbesserungen in SF 1.0.6 findet sich auch die verbesserte Fehlerbehandlung. War es in der Vergangenheit noch so, dass alle Fehler zur Laufzeit eines K2 Smartforms direkt in einem Popup dargestellt wurden, kann man nun mit einer Regel ggf. Fehler abfangen und zum Beispiel nach Abhängigkeit des Fehlertyps mit einer eigenen, benutzerfreundlichen Fehlermeldung arbeiten oder auf eine passende Landingpage weiterleiten.

Fehler abfangen

Das funktioniert pragmatisch auf View- und Formularebene und zwar über sog. View-Methoden. Jede Ansicht und jedes Formular haben ab sofort entsprechende Methoden im Rules Wizard. Somit ist es möglich ein ganzes Set an Regeln auszuführen, falls auf der Ansicht oder dem Formular ein Fehler auftritt.

error_1

 Welche Informationen gibt es über den Fehler?

Die Details zum Fehler findet man im Kontext Browser unter den System Values. Es wird unterschieden zwischen

  • Error Message
  • Error Details
  • Error Type

error_2Basierend auf diesen Informationen kann man nun eine eigene Fehlerbehandlung implementieren, zum Beispiel anhand des Error Type

error_3

error_4

Und entsprechend dann darauf reagieren

error_5

 

Try-Catch-Funktion

Zusätzlich zu den View- und Form Methoden gibt es auch eine neue Condition (“error occured”) und eine neue Action (“stop rule execution”) in dem Rules Designer. Kombiniert man beide, kann man eine Art “Try-Catch” Funktion implementieren.

error_6

Im folgenden Beispiel wird eine SmartObject Methode ausgeführt welche intern einen Webservice nutzt. Antwortet der Service nicht, kann man dies mit einer eigenen Meldung dem Anwender verdeutlichen 🙂

error_7

In Verbindung mit dem Multilingual Control kann man die Fehlermeldungen bzw. Seiten übrigens auch mehrsprachig gestalten!

Weitere Informationen zu dem Thema Error Handling gibt es wie immer auf der K2 Website! (Knowledge  Base)

Mit K2 Smartforms mehr aus der SharePoint UI herausholen!

Am 25.März wird K2 For SharePoint öffentlich zum Download bereitgestellt werden. Höchste Zeit für mich, ein paar besondere Features unserer App einmal genauer vorzustellen.

Grundsätzlich handelt es sich bei K2 For SharePoint um die neue Integration von K2 Blackpearl in SharePoint 2013. Das bedeutet, durch simples Aktivieren der App, hat man die komplette Bandbreite der K2 Features browserbasiert im Zugriff:

  • Formulardesign
  • Workflow
  • Datenintegration
  • Reports

Nutzt man die K2 App zum Beispiel für eine Liste, muss zunächst definiert werden, welche der oben genannten Features die App bereitstellen soll. In meinem Beispiel begnüge ich mich mit dem Punkt Formulardesign (ich will ein Smartform für New, Edit und Display Forms nutzen) und aktiviere die App auf einer default Issue List.

issuelistschema

Zunächst mal der Vergleich zwischen dem “New Form” der SharePoint UI und dem Smartform, das von der App automatisch erzeugt wird.

spui

smartformui

 

Auf den ersten Blick sind die optischen Unterschiede nicht so deutlich (zB Richtext – Editor), jedoch hat man durch die Konvertierung in das Smartform eine Vielzahl von Optionen gewonnen, die es im SharePoint per default überhaupt nicht gibt. Ich demonstriere dies an dem Multi-Lookup Control der Spalte “Related Issues”. Auf den Screenshots oben sieht man beide Versionen: SharePoint und Smartform. Nun ist es eine Eigenschaft von dieser SharePoint Spalte (Type: Lookup) dass man alle referenzierten Listitems für die Auswahl angeboten bekommt. Der einzige einschränkende Faktor könnten die Permissions sein. Eine Möglichkeit die Elemente anhand von Kriterien zu filtern gibt es nicht!

Angenommen wir hätten nun eine Anforderung nach der das Feld “Related Issues” abhängig von der Kategorieauswahl die Elemente filtern soll. D.h. nicht nur statisch konfiguriert, sondern dynamisch zur Laufzeit des Formulars! Dank der Rules Engine die ein Smartform steuern, ist dies sehr einfach umzusetzen. Zunächst erstellt man dazu eine Regel für das Dropdown Control der Kategorien.

rule1

Und konfiguriert dort ganz einfach über eine Action dass bei jeder Änderung des Kategorie Controls, die Datenquelle für das Multi-Lookup Control neu gefiltert wird.

rule2

Über den Punkt configure muss man nur eine Drag & Drop Aktion ausführen und zwar den Wert des Category Controls als Input Parameter für die Filtermethode binden.

configureDer Rest wird von der Engine automatisch gemacht und man hat sofort das gewünschte Ergebnis zur Laufzeit.

Beispiel: Kategorie Hardware

hardware

Beispiel: Kategorie Software

software

 

Dies ist nur ein kleines Beispiel an einem einzigen Control. Aber selbstverständlich könnte man auch hier die Anpassungen noch weiter ausbauen, zum Beispiel in folgende Richtungen:

  • Laden der “Related Issues” aus einer anderen SharePoint Liste auf der Issue Site
  • Laden der “Related Issues” aus einer anderen SiteCollection
  • Laden der “Related Issues” aus einer anderen WebApplication
  • Laden der “Related Issues” aus einer beliebigen Datenquelle (SAP, CRM, Oracle, SQL, Webservice)

Alles natürlich unter dem Motto: no code solution 🙂

 

K2 Smartforms – die erweiterbare Forms Engine

Immer wieder werde ich gefragt, ob man K2 Smartforms überhaupt erweitern kann oder ob es sich dabei um ein “geschlossenes” Produkt handelt. Die Frage ist nachvollziehbar, denn es gibt heutzutage Web / JS Frameworks wie Sand am Meer und Entwickler wollen natürlich wissen, ob man sich bei der Investition in K2 Smartforms diese Optionen aussperrt bzw. das aufgebaute Wissen nicht nutzen kann.

Dies ist nicht der Fall. K2 Smartforms werden über IIS gehostet und liefern als Output HTML / JavaScript und können mit allen auf dem Markt verfügbaren .Net / JS Controls angereichert werden. Natürlich müssen diese Controls  über die K2 API integriert werden, funktionale Einschränkungen gibt es dabei zur Laufzeit allerdings nicht. Es können auch externe HTML Widgets integriert werden – diese sind dann rein über die URL parametrisierbar. Dies ist wohl der einfachste Weg der Integration, wie hier mit dem Stock Exchange chart.

quote_to_cash_stockchart

Für komplexere Controls kann die API genutzt werden. Interessant wird es vor allem dann, wenn die Rules-Engine und das Event-System von K2 Smartforms genutzt werden müssen. Deutlich wird dies am Beispiel des K2 Smartforms Calendar Control. Sobald der Anwender einen Kalendereintrag erstellt oder ändert, aktualisiert sich eine andere View auf dem Smartform.

fullcalendar

Eine Demo für dieses Calendar Control gibt es bereits auf Youtube. Integriert wurde hierbei ein freies jQuery Control (http://arshaw.com/fullcalendar)

Wer noch weitere Demos und Beispiele sucht, kann sich auch auf dem K2 Underground umsehen. Dort gibt es auch eine HighCharts Integration welche ebenfalls auf Youtube begutachtet werden kann.