MIDRANGE 09/2018

28 TECHNIK & INTEGRATION MIDRANGE MAGAZIN · 09/2018 IBM i 7.3 – RPG-Neuerungen Next Generation für RPG-Funktionen Mit großen Schritten geht es in Richtung 7.3, des neuen Release des Betriebssystems IBM i für unsere System-i-Maschinen. Bereits jetzt sind signifikante Neuerungen im Vormarsch und wecken Lust auf den Einsatz des neuen Release – und diese machen auch vor RPG nicht halt. Einige dieser Neuerungen sind bereits in TR-Updates zu finden, die für 7.2 zur Verfügung stehen und einen Ausblick auf die neueste Generation der RPG-Funktionen bieten. R PG – die „altmodische“ Program- miersprache, wie sie von „Ken- nern“ immer wieder gerne kommen- tiert wird, setzt ihre Verjüngungskur auch mit der Version 7.3 weiter fort. Zu- gegeben, einige Neuerungen sind drin- gend und bilden eine konsequente Not- wendigkeit – denn ein eingeschränktes freies Format (bezogen auf die nutzba- ren Spalten) ist eben nicht frei. Das än- dert sich mit der Version 7.3. Denn jetzt steht dem RPG-Entwickler ein größerer Codierbereich zum Schreiben der Pro- grammcodes zur Verfügung. Mit der Anweisung **FREE in der ersten Programmzeile wird dem Editor und dem Compiler mitgeteilt, dass der Code bereits in der ersten Spalte begin- nen kann. Die Beschränkung auf nur 80 Spalten fällt damit ebenfalls weg. Somit steht für das Codieren nun end- lich die volle Bandbreite bzw. Spalten- anzahl zur Verfügung. Aber Achtung: Ein guter Programm- code zeichnet sich auch und insbeson- dere durch eine gute Lesbarkeit aus. Deshalb liegt es an den Anwendungs- entwicklern, diese neue Codieroption im RPG auch sinnvoll einzusetzen. Mit der neuen **FREE-Anweisung fällt allerdings auch die Mischnutzung von Fix- und Free-Format-RPG weg. In einem **FREE-Programmcode werden ausschließlich Free-Format-Anweisun- gen unterstützt. Mit Hilfe von /COPY- und /INCLUDE-Anweisungen lassen sich aber auch „ältere“ Free-Format- Elemente einbinden, deren Codierfor- mate die nun hinfällige Beschränkung auf die Spalten 6 bis 80 aufweisen. Die bisherigen Sonderspalten 6 und 7 sind in dieser Free-Format-Version hinfällig. Neue Built-in Function%SCANR Die Erweiterungen der Built-in Func- tions in RPG sind auch in den letzten Release-Versionen immer wieder als sinnvolle Ergänzung und Erleichterung für die RPG-Entwicklung bereitgestellt worden. Die bisherige%SCAN BIF wird mit 7.3 um die BIF%SCANR erweitert. Wenn Sie bereits mit %SCAN gearbei- tet haben, dann wird Ihnen die Funk- tionsweise von%SCANR sicher sehr nützlich erscheinen. %SCANR arbeitet ähnlich wie%SCAN, nur quasi „anders herum“. Während bei der Verwendung von%SCAN das erste übereinstimmen- de Ergebnis verarbeitet wurde, wird mit %SCANR das letzte Ergebnis zurück- geliefert. Das spart Verarbeitungszeit und erleichtert das Codieren (Bild 1). Hier wird das letzte Vorkommen des /-Zeichens gesucht, um den Datei- namen zu ermitteln. Der Codeblock für diese Anforderung lässt sich mit Hilfe von%SCANR im Vergleich zu anderen RPG-Lösungen deutlich reduzieren. Der Aufbau der %SCANR BIF ist wie folgt zu verwenden:  %SCANR(Suchargument : Suchzei- chenfolge {: Startposition {: Länge}}) Wenn Sie die BIF%SCAN bereits einsetzen und kennen, dann wird Ihnen sicher auffallen, dass bei der BIF%SCANR die Startposition und die Länge mit angegeben werden können. Dabei handelt es sich um optionale Parameter. Werden diese nicht angege- ben, dann nutzt %SCANR die gesamte zu durchsuchende Zeichenfolge. Diese optionalen Argumente sind auch in einer weiteren Neuerung in RPG 7.3 zu finden: der Erweiterung in der Built-in Function%SCAN, mit der nun auch die Länge mit angegeben wer- den kann. Erweiterung der Built-in Function%SCAN Neben der neuen BIF%SCANR wurde auch die bereits bestehende BIF%SCAN angepasst. Hier besteht nun die opti- onale Nutzung der eingeschränkten Suche. Dazu hat IBM die BIF um den Parameter Start / Ende erweitert. Auf diese Weise kann nun gezielter in einer Zeichenfolge nach den betreffenden Vorkommen gesucht werden (Bild 2).

RkJQdWJsaXNoZXIy NDM3NDQ=