Es wird Zeit für einen besseren Service

ServiceNow: eine Plattform zum Aufbau von IT Services

Martin Mohr

© Shutterstock / PureSolution

ServiceNow ist eine Plattform, mit der es möglich ist, Geschäftsprozesse schnell und einfach zu automatisieren. Eine Vielzahl von alltäglichen Problemen können mit ServiceNow ohne tiefgreifende Programmierkenntnisse gelöst werden. In diesem Artikel geben wir eine kurze Einführung in die Plattform und zeigen, wie man mit wenigen Schritten eine eigene Anwendung aufsetzen kann. Weiterhin gehen wir auf die Möglichkeiten ein, sich mit ServiceNow vertraut zu machen.

ServiceNow ist als APaaS (Application Platform as a Service) konzipiert. Das bedeutet, dass alle benötigten Ressourcen in der Cloud liegen. Die komplette IT-In-frastruktur wird vom Provider gemanagt, und man kann sich voll auf die Entwicklung der Geschäftsprozesse konzentrieren. Um eine Applikation zu entwickeln, werden bestehende Teile der Plattform zusammengefügt und konfiguriert. Die Applikationen werden für den Browser erzeugt, alternativ kann man auch für mobile Geräte optimierte Anwendungen generieren lassen. Abbildung 1 gibt einen Überblick, welche Bereiche von ServiceNow out of the box unterstützt werden.

Abb. 1: Übersicht der Module der ServiceNow-Plattform

Natürlich ist es auch möglich, eigenen Code in die Applikation einzubauen. Dieser Code wird dann in Java-Script geschrieben. Es existieren viele zusätzliche Funktionalitäten, um seinen eigenen Code in die vorhandene Plattform zu integrieren. Alle Konfigurationen an den Modulen können über ein Webinterface erledigt werden. Die Änderungen an der Umgebung und im Source Code können in verschiedenen Source-Code-Manangementtools wie zum Beispiel GitHub abgespeichert werden.

Mit dem IntegrationHub kann man ServiceNow an bestehende Fremdanwendungen ankoppeln. Zu vielen Systemen gibt es bereits vorhandene Schnittstellen, die nur noch konfiguriert werden müssen. Durch den Einsatz von sogenannten MID-Servern ist es möglich, ServiceNow in vorhandene Firmennetzwerke einzubinden. Die Versionen von ServiceNow tragen Namen von bekannten Städten. Für die Anfangsbuchstaben einer neuen Version wird immer der nächste höhere Buchstabe in Alphabet gewählt. So kann man anhand des Namens feststellen, wie aktuell eine Version ist. Gerade bei Internetsuchen kann es vorkommen, dass man Informationen über ältere Versionen von ServiceNow findet. Die aktuelle Version heißt Orlando. Die Vorgängerversionen haben die Namen New York und Madrid. Für die beiden nächsten Versionen stehen die Namen schon fest: Paris und Quebec. Die Plattform unterstützt immer die aktuelle und die Vorgängerversionen – es besteht also kein Grund, eine Anwendung immer gleich auf die aktuelle Version anheben zu müssen. Es ist allerdings ratsam, eine neue Anwendung immer auf der aktuellen Version zu entwickeln. Man wird nicht gezwungen, eine Migration durchzuführen. Meist ist es eher so, dass man migrieren möchte, um in den Genuss neuer Features zu kommen.

Eine ServiceNow-Instanz ist, obwohl sie auf der Plattform des Providers läuft, komplett eigenständig. Die URLs der einzelnen Instanzen enden alle auf .service-now.com. Der Teil davor kann relativ frei gewählt werden. Es ist möglich, beliebig viele unterschiedliche Applikationen innerhalb einer Instanz zu betreiben, die einzige Grenze ist hierbei die bestellte CPU-Leistung. In realen Umgebungen hat man üblicherweise mehr als eine Instanz (Entwicklung, Integration, Produktion usw.). Jede Instanz lässt sich beliebig verwalten und updaten. Die einzelnen Instanzen haben ihre eigene Datenhaltung, d. h., es existiert für jede eine unabhängige, isolierte Datenbank.

Einstieg

Um zu zeigen, wie schnell man mit ServiceNow eine Applikation erstellen kann, benötigen wir zunächst eine persönliche Entwicklerinstanz. Nachdem man sich als Entwickler registriert hat, kann man eine kostenfreie Entwicklerinstanz bestellen. Die Registrierung wird über den Button Create an Account direkt auf der Entwicklerhomepage [1] von ServiceNow vorgenommen. Für die Registrierung werden nur der Name und die E-Mail-Adresse benötigt. Nach wenigen Minuten erhält man eine Bestätigungsmail mit dem Aktivierungslink. Nun muss man noch das Developer Agreement akzeptieren, um Zugang zum Entwicklerbereich zu erhalten. Abbildung 2 zeigt die Entwicklerhomepage. Mit dem Button Request an Ins-tance kann man sich eine kostenfreie persönliche Entwicklerinstanz bestellen. Hierbei kann man auswählen, welche Version die Instanz haben soll. Wir wählen die aktuelle Version Orlando aus, die Instanz ist nach kurzer Zeit einsatzbereit. Man kann sich mit dem angezeigten Passwort direkt einloggen. Es handelt sich dabei um ein Einmalpasswort, das direkt beim Einloggen geändert werden muss. Wird die Developerinstanz nicht verwendet, wird sie nach spätesten 24 Stunden schlafen gelegt. Man muss sie dann wieder wecken, bevor man sie verwenden kann. Nach 10 Tagen Untätigkeit wird die Instanz jedoch gelöscht. Hier muss man aufpassen, dass man Teile, die man weiterverwenden möchte, in Git abgelegt hat. Vor dem Löschen einer Instanz wird ein Back-up erstellt, das im Fall der Fälle wieder eingespielt werden kann.

Abb. 2: Die ServiceNow-Entwicklerhomepage

Bevor wir mit dem ersten Projekt starten, werfen wir erst noch einen Blick auf die Entwicklerhomepage. Hier sind viele wichtige Informationen zu finden.

Entwicklerhomepage

Die Navigation des Entwicklerbereichs ist übersichtlich gehalten. Auf Abbildung 2 ist zu sehen, wie sich die Navigation in vier große Blöcke aufteilt.

Learn: Die ServiceNow-Plattform bietet eine Vielzahl von Onlinetrainings (Courses). Darüber hinaus kann man einen bestimmten Lernpfad (Lerning Plans) einschlagen. Ein Lernpfad ist eine Sammlung von Trainings, die das Ziel haben, ein bestimmtes Skillset zu erlangen, z. B. „Application Devloper“. Die Trainings werden dabei in einer sinnvollen Reihenfolge angeboten. Neben den kostenfreien Trainings gibt es auch kostenpflichtige Online- oder On-Site-Trainings, die mit einer Zertifizierung abgeschlossen werden können. Diese Trainings haben immer einen qualifizierten Trainer, der den Lernstoff vorstellt. Außerdem sind immer Übungen (Labs) mit eingebaut, in denen die Teilnehmer den Lernstoff selbstständig vertiefen können. Es ist auch jederzeit möglich, den Trainern Fragen zu stellen, um individuelle Antworten zu erhalten.

Reference: In diesem Bereich findet sich die komplette Dokumentation der ServiceNow-Plattform. Hierbei ist die Beschreibung aller APIs und Bibliotheken besonders hervorzuheben. Allerdings muss man darauf achten, die Inhalte für die richtige Version aufzurufen.

Guide: In diesem Bereich finden sich Anleitungen zum Lösen konkreter Problemstellungen.

Connect: Wie der Name schon vermuten lässt, ist der Connect-Bereich dazu gedacht, mit anderen Anwendern in Verbindung zu treten. Es findet sich neben dem moderierten Benutzerforum auch ein Blog für aktuelle Themen. In einem weiteren Bereich wird auf die aktuellen Veranstaltungen rund um ServiceNow hingewiesen. Kurz gesagt, findet sich hier alles, was ein Entwickler benötigt, um sich mit anderen Entwicklern zu vernetzen.

Zusätzlich wird in der oberen Navigation immer angezeigt, auf welche Version von ServiceNow sich der Inhalt bezieht. Das ist gerade bei Reference oder beim Learning sehr wichtig, da viele Funktionen nur in bestimmten Versionen vorkommen. Auch die Lerninhalte der Onlinetrainings sind auf die entsprechende Version angepasst.

Die erste eigene Applikation

Wir wollen nun mit ServiceNow eine eigene Applikation erstellen. Dazu melden wir uns zuerst in unserer Testinstanz als Admin-User an. Dann starten wir unter dem Menüpunkt System Applications das ServiceNow Studio, die Umgebung, um Applikationen zu erstellen und weiterzuentwickeln. Als Alternative zur Navigation können Sie oben links in das Suchfeld (Filter Navigation) „Studio“ eingeben und dann auf Studio klicken (Abb. 3).

Abb. 3: ServiceNow Studio mit Hilfe des Filter Navigators aufrufen

Das ServiceNow Studio öffnet sich nun in einem neuen Tab (Abb. 4). Da wir eine komplett leere Installation haben, können wir im Moment nur eine neue Applikation erstellen oder eine bestehende Applikation aus den Source Code Repository importieren. Wenn schon einige Applikationen existieren, kann man hier auswählen, welche Applikation man bearbeiten möchte.

Abb. 4: Startseite vom ServiceNow Studio

Wir wählen den Punkt Create Application. Es startet ein Wizard, der uns durch alle Schritte bis zur fertigen Applikation leitet. Auf dem Willkommensfenster klicken wir auf den Button Let’s get started, um den Prozess zu beginnen. Das Willkommensfenster wird nur beim ersten Erstellen einer Applikation gezeigt.

Der folgende Dialog fragt nach dem Namen der Applikation und einer Kurzbeschreibung. Der Scope wird hier automatisch generiert. Er wird intern als eindeutiger Bezeichner verwendet, um die Teile der Applikation zuordnen zu können. Wenn Sie keine wirklich guten Gründe haben, den Scope zu ändern, verwenden Sie hier am besten den vorgeschlagenen Eintrag. Optional können Sie ein Logo hinterlegen, das später in der Kopfzeile der Applikation erscheint. Wir nennen unsere Applikation einfach „Beispielapplikation“. Mit einem Klick auf den Button Create wird die Applikation erstellt. Nun wird gefragt, welche Rolle verwendet werden soll, um den Zugriff auf die Applikation zu steuern. Hier gibt es zwei Möglichkeiten:

  • Eine im System bereits vorhandene Rolle verwenden
  • Eine neue Rolle für die Applikation erstellen

Wir erstellen nun mit dem Button Create new role eine eigene Rolle für die Applikation. Dabei wird der Scope dem Rollennamen vorangestellt (Abb. 5). Sie können hier auch mehrere Rollen anlegen. Mit Rollen werden die Berechtigungen innerhalb einer Applikation gesteuert.

Abb. 5: Erstellen einer eigenen Rolle

Mit dem Button Continue gelangen Sie zum nächsten Schritt des Prozesses. Hier wird nach dem Standardlayout der Applikation gefragt. Für den Anfang ist eine Classic-Applikation vollkommen okay. Im folgenden Dialog werden wir gefragt, welche Tabelle wir für die Applikation verwenden möchten. Hier können Sie wie bei den Rollen eine bestehende Tabelle auswählen oder eine neue erstellen. Wir entscheiden uns für das Erstellen einer neuen Tabelle und klicken auf den Button Create new table. Jetzt wird es interessant, wir haben drei Möglichkeiten zur Auswahl:

  • Upload spreadsheet: Mit dieser Option kann man eine Tabelle direkt aus einen Excel Sheet erzeugen. Das ist eine gute Möglichkeit, aus bereits vorhandenen Formularen Onlineanwendungen zu machen.
  • Extend a table: Man kann in ServiceNow bereits im System vorhandene Tabellen als Basis nehmen und erweitern. So erbt man auch Funktionen, die schon vorhanden sind, was bei Standardfunktionalitäten einen großen Teil der Entwicklungsarbeit einsparen kann.
  • Create table from scratch: Tabellen können auch einfach von Grund auf neu erstellt werden. Das ist für viele Anwendungen das Mittel der Wahl.

Wir wählen Option 3, weil sie am besten zu unseren Anforderungen passt. Nun können wir die einzelnen Tabellenspalten nach Bedarf definieren. Eine Tabellenspalte hat ein Label, einen Namen und den Datentyp. Neben einigen ServiceNow-spezifischen Datentypen können alle üblichen Datentypen verwendet werden. Das Label ist immer der für den User sichtbare Name. Was hier als Name bezeichnet wird, ist der technische Name der Spalte. Möchte man aus Skripten heraus auf Einträge dieser Spalte zugreifen, muss immer der technische Name verwendet werden. Eine fertige Definition einer Tabelle zeigt Abbildung 6. Um die Eingaben zu speichern, klicken Sie auf den Button Continue. Nun wird nach dem Namen der Tabelle gefragt, auch hier gibt es ein Label und einen technischen Namen. Das ist ein Verfahren, das in ServiceNow generell verwendet wird, um eine Internationalisierung der Anwendung zu ermöglichen. Das Label kann sich pro Sprache ändern, der Name ist immer derselbe. Wir geben der Tabelle das Label „Messwerte“.

Abb. 6: Tabellendefinition für unsere Beispielapplikation

Sie können der Tabelle noch einige zusätzliche Eigenschaften geben. Da ist zum einen die Checkbox Make extensible. Mit dieser Eigenschaft kann man zulassen, dass weitere Tabellen von der aktuellen Tabelle abgeleitet werden. Das kann in manchen Fällen sehr nützlich sein, wird aber in unserem Beispiel nicht benötigt. Viel interessanter ist die Checkbox auto-number. Mit ihr kann man einen synthetischen Schlüssel auf der Tabelle erzeugen lassen. Der Autor ist der Meinung, dass ein solcher Schlüssel immer eine gute Idee ist. Er muss allerdings einräumen, dass es dadurch auch schon zu stundenlangen Gesprächen mit den Datenbankdesignern gekommen ist. Diese haben oft eine andere Meinung: warum ein zusätzlicher synthetischer Primärschlüssel, wenn es einen zusammengesetzten natürlichen Primärschlüssel gibt?

In das Feld managing access können zusätzliche Rollen eingetragen werden, die auf die Daten der Tabelle Zugriff haben sollen. Die zu Anfang des Prozesses erstellte Rolle hat bereits vollen Zugriff auf die Tabelle. Um zum nächsten Schirm zu gelangen, klicken Sie nun wie gewohnt auf Continue. Als Nächstes erscheint eine Art Füllerseite, wir klicken hier einfach wieder Continue. Auf dem nächsten Screen können wir auswählen, welche Tabellen in der Anwendung verwendet werden sollen. Bei unserem einfachen Beispiel ist das recht trivial. Wir verwenden nur die eine Tabelle. Es können bei größeren Anwendungen aber mehrere Tabellen verwendet werden. Wir klicken auf Done with tables.

Unsere Beispielapplikation ist prinzipiell fertig. Mit einem Klick auf start wird das Erzeugen aller Applikationsdateien gestartet. Wir haben an der Stelle die Möglichkeit, einige Grundparameter zu verändern, bevor wir mit create die endgültige Generierung starten. Jetzt ist die Applikation einsatzbereit. Mit einem Klick auf Done with apps verlassen wir den Wizard und werden noch einmal gefragt, was wir als Nächstes tun wollen. Wir klicken auf Done, um wieder ins Studio zu gelangen.

Falls Sie beim Erstellen der Applikation einen Punkt nicht ganz korrekt ausgefüllt haben, ist das kein Problem. Es ist möglich, alle Aktionen, die wir mit dem Wizard erledigt haben, auch nachträglich im Studio auszuführen und so Änderungen vorzunehmen. Eine Ausnahme sind Tabellen. Sie müssen gelöscht und neu angelegt werden. Das liegt daran, dass ihre technischen Namen nicht verändert werden können. Um zu überprüfen, ob die Applikation angelegt wurde, wechseln wir zurück auf den Tab, in dem die ServiceNow-Anwendung noch offen ist. Hier geben wir in den Filter Navigator „Messwerte“ ein, um unsere Applikation zu finden. Nun passiert etwas Unerwartetes: die Applikation ist nicht zu finden.

Ein genereller Tipp für den Umgang mit ServiceNow: Falls eine Komponente, die gerade erstellt wurde, nicht sichtbar ist, sollte man an der entsprechenden Stelle die F5-Taste zum Aktualisieren des Browsers drücken. Es kommt manchmal vor, dass der Browser noch veraltete Seiten anzeigt. Nach dem Drücken der F5-Taste ist unsere Applikation vorhanden und wir können mit Create New einen neuen Record anlegen (Abb. 7).

Abb. 7: Neuen Datensatz anzeigen

Der Autor bevorzugt zwar einseitige synthetische Schlüssel, möchte sie aber nicht im Frontend sehen. Um den Schlüssel aus der Anzeige zu entfernen, wechseln wir zurück in den Tab mit dem Studio. Im Studio können wir die Applikation mit einem Klick wieder zum Editieren öffnen. Wir sehen alle Elemente der Applikation auf der linken Seite in einer Baumstruktur. Sobald wir ein Element links auswählen, öffnet sich rechts der dazu passende Editor. Mit dem Editor können wir die einzelnen Elemente bequem editieren. Jedes Element wird in einem separaten Tab geöffnet, sodass es möglich ist, mehrere Elemente parallel zu bearbeiten.

Klicken Sie nun auf die Messwerte-Default View. Auf der rechten Seite öffnet sich daraufhin der Formdesigner (Abb. 8). Mit ihm kann man festlegen, wie ein bestimmtes Formular aussehen soll. Um den Schlüssel aus der Anzeige zu löschen, klicken wir auf das kleine x und danach auf save. Schon ist der Wert aus der Anzeige verschwunden. Sie können das im ersten Tab überprüfen. Der Formdesigner kann im Allgemeinen recht intuitiv bedient werden, ist aber auch ein sehr mächtiges Tool, das viele Funktionen beinhaltet.

Abb. 8: Die Messwerte-Review im Formdesigner

Test

Bisher haben wir immer als Administrator gearbeitet. Um unsere erste ServiceNow-Applikation besser testen zu können, legen wir uns einen User für die Applikation an. Der User bekommt die Rolle, die wir zu Beginn angelegt haben. Um einen User anzulegen, klicken wir im Menü auf System Security | Users and Groups | Users. Um die Suche etwas zu erleichtern, können Sie in den Filternavigator direkt „Users“ eingeben. Klicken Sie einfach auf New, um den Dialog zum Erstellen eines Users zu öffnen. Geben Sie als User ID „beispiel“ ein, setzen ein Passwort und klicken auf Submit. Im unteren Teil sehen Sie nun den Bereich, in dem man dem User Berechtigungen zuweisen kann. Hier geben wir dem User die Rolle, die wir anfangs erstellt haben. Sie sollte mit einem kleinen x beginnen (x_<NUMMER>_beispiel.beispielrolle). Um ins Rollensuchmenü zu gelangen, klicken wir auf edit.

Es gibt nun zwei Möglichkeiten, mit dem User zu testen. Wir könnten uns ausloggen und als Beispieluser wieder einloggen. Die elegantere Methode besteht darin, über die Funktion „Impersonate User“ die Identität des Users anzunehmen. Die Impersonate-Funktion ist nützlich, wenn man eine Anwendung mit unterschiedlichen Rollen testen möchte. Die Funktion hilft auch, den Supportfehler einzelner User besser nachvollziehen zu können. Um die Impersonate-Funktion zu verwenden, muss man das Passwort eines Users nicht kennen. Natürlich können nur Administratoren diese Funktion verwenden. Die Funktion kann in produktiven Instanzen auch deaktiviert werden. Die Impersonate-Funktion findet sich im Drop-down-Menü hinter dem Administrator-Icon. Aktiviert man sie, öffnet sich ein Suchdialog, mit dem sich der gewünschte User suchen lässt. Das Annehmen einer anderen Identität wird in den Systemlogs festgehalten.

Wenn wir die Identität des beispiel-Users angenommen haben, sehen wir die Navigation aus Abbildung 9. Sie hat erheblich weniger Punkte als die des Administrators. Wir können in den vorhandenen Einträgen browsen, einzelne Einträge bearbeiten oder neue anlegen. Um wieder die Identität des Administrators anzunehmen, klicken Sie im Drop-down-Menü auf End Impersonation.

Abb. 9: Die Benutzeransicht

REST Service anbinden

ServiceNow ermöglicht es, über ein REST API auf Tabellen zuzugreifen. Wir wechseln dazu wieder auf den Tab mit dem Studio. Hier findet sich unter Data Model | Tables | Messwerte unsere Datentabelle. Im unteren Bereich befindet sich unter Related Links ein Eintrag Explore REST API. Er führt zum API Explorer von ServiceNow (Abb. 10). Mit ihm kann man beliebige REST Calls gegen das API auslösen und testen. Das API selbst kann aber auch mit einem beliebigen REST-Client oder aus einem Programm heraus aufgerufen werden. Startet man einen externen Aufruf, muss man sich mit einem User authentifizieren, der über Berechtigungen in der Tabelle verfügt. Hier können Sie den beispiel-User verwenden, um auf die Messwerte-Tabelle zuzugreifen. Den Zugriff via REST API auf Tabellen kann man in Studio aktivieren oder deaktivieren.

Abb. 10: Der API Explorer von ServiceNow

Fazit

ServiceNow ist eine zeitgemäße Lösung, um Geschäftsanwendungen zu entwickeln. Es deckt alle alltäglichen Anforderungen ab und bietet darüber hinaus noch eine Vielzahl nützlicher Erweiterungen wie zum Beispiel die Unterstützung mobiler Anwendungen. Für den Betrieb einer ServiceNow-Anwendung ist keine eigene Infrastruktur nötig. Alle Kosten, die durch den Provider entstehen, sind zu 100 Prozent transparent. Alternativ kann man sich allerdings auch für eine On-Premises-Lösung entscheiden. Wie das kleine Beispiel gezeigt hat, kann man einfach funktionierende Anwendungen erstellen und diese auch mit geringem Aufwand pflegen. Viele wichtige Funktionalitäten sind bereits out of the box vorhanden und können leicht konfiguriert werden. Es ist aber auch durch den Einsatz von eigenem JavaScript-Code möglich, komplexe Funktionen zu implementieren. Hier konnten wir nur einen sehr kleinen Teil der Möglichkeiten beleuchten.

Für den Einstieg empfiehlt es sich, sich auf der ServiceNow-Website die Möglichkeiten anzusehen. Mit einer eigenen Entwicklerinstanz können Sie in Ruhe ausprobieren, welche Vorteile der Einsatz von ServiceNow bietet. Die Onlinetrainings [2] werden Ihnen beim Einstieg sicher eine große Hilfe sein. Bleibt mir nur, Ihnen viel Spaß beim Entdecken der Plattform zu wünschen.

Verwandte Themen:

Geschrieben von
Martin Mohr
Martin Mohr erblickte im Zeitalter der Magnet-Ringkernspeicher und Hebdrehwähler das Licht der Welt und hat somit die komplette Entwicklung der modernen Computertechnik live miterleben dürfen. Die Vorliebe für alles, was blinkt, hat sich schon in seiner frühen Jugend entwickelt und wurde durch eine Ausbildung zum Elektroniker noch verstärkt. Nach dem Informatikstudium lag sein Beschäftigungsfeld überwiegend in der Entwicklung von Java-Applikationen. Mit dem Raspberry Pi ist die alte Liebe zur Elektronik wieder erwacht.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: