Sie haben die cloudbasierte Entwicklungsumgebung Orion auf Ihrer IBM i installiert und ausprobiert, wie wir es im ersten Teil durchgegangen sind? Toll – dann willkommen zurück, denn wir machen direkt da weiter, wo wir aufgehört haben.

Wie im ersten Teil dieses Beitrags gezeigt, kann mit Orion neben der reinen Web-Entwicklung von HTML, CSS und Javascript-Code auch RPG-Code erfasst werden und wird sogar per Syntax-Highlight unterstützt. Ich gebe zu, dass die Integration für den Entwickler noch etwas entfernt von Optimum ist, denn ein direktes Kompilieren oder gar Debuggen geht noch nicht, jedoch kann man sich hier mit recht einfachen Mitteln selbst behelfen, bis IBM oder ein gutmütiges Mitglied der Community (hoffentlich bald) eine bessere Integration mit dem RPG Compiler und Debugger realisiert hat. Von daher ist Orion zumindest derzeit noch keine Alternative zum Rational Developer for i.
Nichtsdestotrotz ist Orion bereits eine interessante Alternative zu SEU und EDTF, will man RPG in Free Form erfassen, denn das macht mit SEU oder EDTF nicht wirklich Spaß, zumal die neuen Anweisungen von SEU nicht erkannt und dementsprechend als Fehler angeprangert werden. Hinzu kommt, dass Orion in jedem beliebigen Browser läuft und der Entwickler daher unter anderem auch von einem Tablet oder Smartphone auf seinen Code zugreifen kann, sofern das notwendig oder gewünscht ist. Auf jeden Fall muss es nicht eine vorkonfigurierte Workstation sein, wie im Falle von RDi.

Bitte ein Git

Ebenfalls von sehr großem Vorteil ist die Integration von Git in Orion. Bei Git handelt es sich um ein Quellcodeverwaltungssystem von Linus Torvalds, seines Zeichens „Vater“ von Linux, der Git eben genau wegen Linux entwickelt hat, da seine Anforderungen an ein Quellcodeverwaltungssystem von keinem anderen Produkt erfüllt wurden. Näheres habe ich bereits in anderen Artikeln im TKL erläutert.
Git erblickte 2005 das Licht der Welt und hat seitdem einen Siegeszug angetreten, der noch größer ist als der von Linux selbst, denn mittlerweile wird Git von so ziemlich allen Herstellern, allen Programmiersprachen und Entwicklungstools unterstützt und ist bei den meisten sogar Standard.
Warum? Weil Git nicht einfach nur Quellcode versionieren kann, sondern auch dafür sorgt, dass er sich immer an der richtigen Stelle befindet – da, wo der Entwickler ihn braucht. Soll heißen, dass Git im Gegensatz zu anderen Quellcode-Versionierungssystemen, wie zum Beispiel Subversion, keinen zentralen Server benötigt, sondern lokal betrieben wird.

Mit der entsprechenden Konfiguration repliziert Git den eingecheckten Quellcode auf alle konfigurierten Rechner, die den Code bei Bedarf weiter replizieren können. Damit haben alle Beteiligten stets den aktuellen Quellcode und können sehen, wer was zuletzt geändert hat.

Doch wollen wir uns hier nicht mit Git-Details herumschlagen, sondern uns anschauen, wie Git innerhalb von Orion mit unserem RPG-Code funktioniert.
Zuletzt sind wir bei unserem ersten Orion-Projekt OrionTKL stehengeblieben und hatten dort als Beispiel ein Mini-RPG-Programm „OrionRPG1.rpgle“ erstellt.

Sollten Sie Orion aktuell nicht gestartet haben, so starten Sie es einfach mit diesem Befehl, den man sinnvollerweise direkt in die QSTRUP einbauen sollte:

STRQSH CMD('/QOpenSys/QIBM/ProdData/OPS/Orion/orion')

Damit wird der Batch-Job QORION im Subsystem QHTTPSVR gestartet.
Beenden können Sie Orion folgendermaßen:

STRQSH CMD('/QOpenSys/QIBM/ProdData/OPS/Orion/stopOrion')

RPG trifft Git

Gehen Sie in den Browser Ihrer Wahl und öffnen Sie Orion über http://192.168.1.1:2025, wobei Sie hier bitte die IP bzw. DNS Ihrer IBM i eingeben.

Öffnen Sie nun Ihr Projekt und klicken Sie links auf das zweite Symbol von oben, welches für Git steht. Am oberen Bildschirmrand erscheint daraufhin eine Combo-Box „Repositories“, die Sie bitte anklicken und im sich öffnenden Fenster auf „Init Repository“ klicken. Der angezeigte Dialog fordert Sie auf, einen neuen Ordner anzugeben. Hier klicken Sie jedoch auf „More“:

Es erscheint ein weiterer Dialog, in welchem Sie „Existing folder“ auswählen:

Nun erscheint ein Dialog, in dem Sie einen existierenden Ordner auswählen können. Hier trennt Orion nach Git-Dateisystem und Orion Content. Da unser OrionTKL-Projekt als Orion Content angelegt wurde, wählen wir es aus und sehen dann unser Projekt, das wir durch einen Klick auswählen und mit „OK“ bestätigen.

Wir erhalten die Auswahl noch einmal in der Anzeige „Init Git Repository“ und bestätigen erneut mit „OK“, woraufhin das Git Repository initialisiert wird.

Der erste Commit

Orion zeigt uns nun die Änderungen an, die sich seit dem letzten Commit – den es ja noch nicht wirklich gab – an unserem Arbeitsverzeichnis ergeben haben. Für alle, die meine Serie „Programmieralternativen für AS/400-Programmierer“ im TKL nicht gelesen haben bzw. es schon wieder vergessen haben: Mit Commit teilt man Git mit, dass man die Änderungen, die man an seinem Quellcode durchgeführt hat, nun in das Git Repository übergibt (commit).

Die Anzeige sollte wie folgt aussehen:

Wie zu sehen, ist die Git-Integration in Orion auch in der Lage, die einzelnen Zweige (Branches) eines Projekts zu verwalten. Damit wir „commiten“ können, geben wir oben einen Kommentar ein (sehr wichtig und ein weiterer Vorteil einer Quellcodeverwaltung, denn es hilft einem dabei, disziplinierter zu arbeiten) und wählen unten unsere RPG-Quelldatei aus. Danach klicken wir auf den grünen „Commit“-Button oben rechts.

Doch statt den Commit auszuführen, fordert uns Orion bzw. Git auf, weitere Informationen einzugeben, denn bisher haben wir ja noch nie mit Git gearbeitet. Das heißt, Git kennt uns noch nicht. Deshalb geben wir Git nun noch unseren Namen und unsere E-Mail-Adresse an, wobei wir diese zweimal erfassen müssen, denn in diesem Fall sind wir sowohl der Autor des Projekts als auch derjenige, der den Commit ausführt. Wenn wir „Save“ anhaken, merkt sich Git aber unsere Daten und wir brauchen das nicht immer wieder zu machen.

Nach erneutem Klick auf den grünen „Commit“-Button, erhalten wir folgende Anzeige:

Um zu sehen, was passiert, wenn wir den Code nun ändern, springen Sie durch Klick auf das Editiersymbol (der Stift ganz oben links in Orion) zurück in den Quellcode.
Fügen Sie nun an einer beliebigen Stelle im Code einen Kommentar ein und ändern Sie eine Zeile des Quellcodes.

Da Orion automatisch speichert, brauchen wir uns glücklicherweise darum nicht zu kümmern und können nun wieder direkt auf das Git-Symbol klicken.
Die Anzeige sollte nun ähnlich wie in der folgenden Abbildung dargestellt aussehen:

Git zeigt die veränderte Zeile in einer anderen Farbe an, ähnlich wie neue Zeilen. Geben Sie wieder einen Kommentar ein und klicken Sie auf „Commit“.

Wenn Sie nun mit der Maus über den Commit im linken Fensterbereich fahren, erhalten Sie weitere Symbole und Auswahlmöglichkeiten angezeigt, die diesen Commit betreffen. So kann man mit dem Haken diesen Commit auschecken, was in unserem Fall jedoch unsinnig wäre, da wir den Code bei uns erstellt haben. Das ist dann interessant, wenn man auf ein externes Repository zugreift, welches zum Beispiel auf GitHub liegen kann (dazu im nächsten Teil mehr). Mit dem runden Pfeil, kann man den aktuellen Quellcode auf den Stand von diesem Commit zurücksetzen – sehr interessant, wenn sich ein Fehler eingeschlichen hat und man „mal schnell“ auf den alten Stand zurückmuss.

Es gibt noch weitere Funktionen, wobei ich die interessanteste und hilfreichste die „side by side“-Anzeige finde. Sie finden sie, wenn Sie den Commit anklicken. Dann wird rechts im Fenster dessen Quellcode angezeigt. In diesem Fenster befindet sich am oberen linken Rand das Symbol zum Umschalten zwischen „side by side“ und „unified“ Differences:

Fazit

Schon wieder sind wir am Ende eines Teils angekommen, aber Orion schauen wir uns auch im nächsten Teil noch einmal an, denn ich könnte mir gut vorstellen, dass es das neue SEU wird. Neben RPG kann man damit auch anderen Quellcode erfassen, was wir uns ebenfalls anschauen werden, ebenso wie die Möglichkeit, Quellcode aus anderen Git Repositories zu uns zu holen. Da IBM mit der Ankündigung des Technology Refresh 1 für IBM i 7.3 auch ein Repository unter anderem für RPG und CL auf Github veröffentlicht hat – https://github.com/OSSILE/OSSILE – wird dieses Thema immer interessanter.
Ich freue mich wie immer auf Ihre Meinungen, Rückmeldungen und Fragen rund um das Thema und wünsche Ihnen viel Spaß mit Ihren Orion-Tests.