SDK.REST goes to Web API: AKQ.WEBAPI

Nachdem in CRM 2011 der REST Endpunkt eingeführt wurde, war die JavaScript Bibliothek SDK.REST.js aus dem CRM SDK das Standardwerk, um aus Client-Erweiterungen heraus Datenoperation mit einer CRM Organisation durchzuführen.

Seit kurzem ist der REST Endpunkt offiziell von Microsoft als veraltet markiert und spätestens jetzt sollte man über einen Umstieg auf den seit CRM 2015 U1 verfügbaren Web API Endpunkt nachdenken.

Bei diesem Umstieg kann die JavaScript Bibliothek AKQ.WEBAPI helfen. Diese implementiert nicht nur die aus SDK.REST bekannten Funktionen, sondern bietet zusätzlich den Zugriff auf ACTIONS und FUNCTIONS und unterstützt das Ausführen von FetchXML. Eine detaillierte Beschreibung des Funktionsumfangs kann der Dokumentation entnommen werden.

Folgende Komponenten sind Bestandteil des Download-Pakets:

  • AKQ.WEBAPI.js: JavaScript Bibliothek
  • AKQ.WEBAPI.min.js: minifizierte Version der JavaScript Bibliothek
  • AKQ.Samples.js: Beispiel-Aufrufe sämtlicher Funktionern der Bibliothek
  • AKQ.WEBAPI.Documentation.pdf: Dokumentation

Download AKQ.WEBAPI v1.0

Java für das Web – Vaadin best practice

Vaadin ist ein Framework, das die Erstellung von Rich-Internet-Applications mit Java ermöglicht. Damit entsteht eine Brücke von existierenden Softwarearchitekturen und Skills zur nächsten Generation von Unternehmensanwendungen im Web. Das Framework an sich reduziert die Hürde für die ersten Schritte bereits – Projekte steigern ihre Produktivität und Erfolgschance durch die Anwendung einiger Best Practices, die dieser Artikel vorstellt.

Vollständiger Artikel (in Java-Pro): http://java-pro.de/java-fuer-das-web-vaadin-best-practice/

Eye-Tracking as a Service

Um eine Anwendung möglichst optimal zu gestalten, ist es wichtig, Nutzer bei dem Umgang mit dieser Anwendung zu beobachten. Das gestaltet sich jedoch als schwierig, da ein Nutzer bei der Interaktion mit einer Anwendung viele Denk- und Handlungsschritte gleichzeitig ausführt. Ein automatisiertes Aufnehmen des Nutzers hilft dabei, den Integrationsprozess zu verstehen: Durch Eye-Tracking können seine Maus- und Blickbewegungen dokumentiert werden. Es sind Fixationen und Scanpaths der Nutzerblicke, die bei Softwareanwendungen als auch bei anderen Oberflächen und Umgebungen eine schnellere Benutzbarkeitsbewertung dieser ermöglichen. Dadurch ist die gezielte Steigerung der Benutzerfreundlichkeit von Anwendungen und die Optimierung der Arbeitsplatzgestaltung im Industriebereich über Blickbewegungsanalysen effizienter umsetzbar.

Weiterlesen

Random Number Generators in virtuellen Maschinen

Blockierendes /dev/random

Benötigt ein Prozess auf einem Linux Server eine Zufallsquelle, dann kann er hierfür auf die unter Linux Betriebssystemen üblichen Quellen /dev/random und /dev/urandom zurückgreifen. Hier gibt es einen wesentlichen Unterschied: random blockiert, wenn es keine hinreichend zufälligen Werte mehr liefern kann. Die Quelle urandom hingegen liefert weiter Werte, jedoch sind diese mit abfallender Entropie weniger zufällig.

Virtualisierte Server verfügen in der Regel nicht über Hardwareresourcen, welche sich eignen würden, um zufällige Startwerte für einen Zufallsgenerator zu bilden (beispielsweise ein Trusted Platform Modul, TPM). Auf Grund dessen erschöpft sich der Entropiepool hier sehr schnell und /dev/random liefert keine Werte mehr. Dies kann dann, wie in JDBC Zugriff auf Oracle-Datenbank scheitert mit I/O-Fehler: Connection reset (1) beschrieben, auch dazu führen, dass zwei Applikationen nicht verschlüsselt miteinander kommunizieren können.

Weiterlesen

JDBC Zugriff auf Oracle-Datenbank scheitert mit I/O-Fehler: Connection reset

Warum komme ich plötzlich nicht mehr an die Datenbank?

Mit einer unserer Java-Anwendungen hatten wir plötzlich ein unerklärliches Zugriffs-Problem auf die darunter liegende Oracle Datenbank. Nach der Installation der Anwendung auf einer neuen Virtuellen Maschine scheiterte jeder JDBC-Zugriff auf die Datenbank mit dem Fehler:

[code gutter=”false”]java.sql.SQLRecoverableException: I/O-Fehler: Connection reset[/code]
obwohl der Datenbank Server selbst nicht verändert wurde. Wir konnten den Fehler mit einer einfachen Test Klasse repoduzieren und es wurde schnell klar, es liegt weder an der Anwendung, noch am Datenbank-Server.

Weiterlesen

Geräteübergreifende User Experience bei Industrie 4.0

Wir begleiten den Service-Techniker Björn S. auf dem Weg zu einem Industriekunden mit einer defekten Produktionsanlage. Die Kontaktdaten wie Ansprechpartner und Anschrift erhält er telefonisch von seiner Zentrale. Händisch gibt er die Adresse in sein Navigationsgerät ein und fährt zum Kunden.

Vor Ort angekommen verkabelt er sein Smartphone mit der Sensor-Einheit der defekten Maschine und liest die benötigten Messwerte aus. Den Fehler kann er nicht direkt beheben und beginnt, auf dem kleinen Bildschirm des Telefons einen Fehlerbericht zu verfassen. Der Bericht wird umfangreicher und so will Björn S. auf das Laptop mit der großen Tastatur wechseln. Weil er den Auftrag nicht in unvollständigem Zustand absenden möchte, versendet er den angefangenen Text per E-Mail an sich selbst. Am Laptop übertragt er den Text aus der E-Mail in das Meldungsprogramm und schreibt den Bericht fertig. Er bemerkt: “Ein Foto von dem Schaden wäre für die Zentrale hilfreich”. Björn S. greift sein Smartphone und nimmt ein Foto auf. Wie sendet er dieses in den fast fertigen Bericht am Laptop? Per Bluetooth, als E-Mail-Anlage, per Online-Speicher? Björn S. kennt viele Alternativen, entscheidet sich aber erneut für eine E-Mail an sich selbst. Am Laptop fügt er das Foto ein und sendet den Auftrag ab. Diese Schadensmeldung ist behoben. Mal sehen, welchen Auftrag die Zentrale jetzt für ihn bereitstellt. Er tippt die Adresse für sein nächstes Ziel in das Navigationsgerät …

Service-Techniker Björn S. benutzt die verschiedenen Endgeräte so, wie sie seine Arbeit aktuell unterstützen. Er merkt, dass er beim Wechsel irgendwie ausgebremst wird. So kann er nur bedingt effizient arbeiten, aber kennt für fast alles einen Workaround.

Doch könnte er auch nahtloser und intuitiver arbeiten?

Weiterlesen

Camunda BPM: Testen von Prozessen mit Java Delegates

Motivation

Das Testen von Prozessdefinitionen ist wichtig und fixiert die Erwartungshaltung an die zu entwickelnde Anwendung. Eine sehr schöne Einführung in das Thema  Testautomatisierung für Camunda BPM basierte Anwendungen gibt das Camunda Webinar: https://network.camunda.org/webinars/24

Ein gängiger Ansatz zum Testen von Prozessdefinitionen ist, dass die Implementierungen von Service Aktivitäten gemockt oder komplett gegen eine eigene für Testzwecke angepasste Implementierung ausgetauscht werden und somit oft ein Prozessdurchlauf im Testkontext erst möglich wird. Für CDI basierte Java Delegates ist dies mit Hilfe von Camunda sehr einfach zu bewerkstelligen.

Wenn jedoch das Projektumfeld es nicht erlaubt auf z.B. die präferierte CDI oder Spring basierte Laufzeitumgebung zurückzugreifen, bleibt oft nur der Weg das Binding zwischen Service Aktivität in der Prozessdefintion und der eigentlichen Implementierung mit Hilfe des konkrete Java Class Namen zu vollziehen. Leider gibt es für diesen Ansatz keine Out-Of-The-Box Unterstützung für Tests.

In diesem Artikel zeigen wir, wie man mit einfachen Mitteln die Camunda Engine erweitern kann, um auch klassische Java Delegates so einfach deren CDI Verwandte testbar zu machen.

Weiterlesen

Eye-Tracking für ein Kundenportal

Aufbau Eye-Tracking Evaluation
Aufbau der Eye-Tracking Evaluation

Verbesserung eines Kundenportals durch Eye-Tracking Daten

Eine Evaluation durch Eye-Tracking gibt dem Auftraggeber viele Aufschlüsse über Positionierung, Wahrnehmung und Verständnis der Elemente durch die Nutzer. Hier geben wir einen Einblick in die Ergebnisse und Verbesserungen nach der Evaluation eines Kundenportals.

Weiterlesen

Wireframing für Responsive Design

Motivation – Toolnutzung vs. Paper Prototyping

Paper Prototyping hat sich als effiziente Methode herausgestellt, um schnell eine Vorstellung von grafischen Oberflächen und der Navigation zwischen ihnen zu entwickeln. Dennoch haben Tools potentielle Vorteile: Die Ergebnisse können weiterbearbeitet und leicht ausgetauscht werden. Und dem Kunden gegenüber kann über das digitale Medium das Verhalten des Prototypen aufgezeigt werden. Gegen Tools spricht oftmals der Einarbeitungsaufwand für die Konzepter und noch stärker gewichtig die Einschränkung auf bestimmte technische Funktionalitäten; die Tools können eben nicht alles. Insbesondere im Bereich des Responsive Designs (RD) haben etablierte Wireframing Tools oftmals keine ausreichende Unterstützung in diesem Bereich angeboten. So auch bei der Betrachtung des Tools Balsamiq, das schon als Standardtool im Konzepterbereich gilt. Wer Responsive Design beauftragt, will aber schon frühzeitig wissen wie sich die Oberfläche “anfühlt”. Wir haben einige Tools beobachtet und geben hier einen kurzen Überblick über deren Möglichkeiten im Responsive Design.
Weiterlesen