Dauerhafte RPGUmwandlungsoptionen per/COPY

4. Dezember 2013 | Von | Kategorie: Tools, Hot-Tips

IBM ist redlich bemüht bei der Weiterentwicklung von RPG rückwärtskompatibel zu alten Compilerversionen zu bleiben. Dies ist zweifelsohne eine der größten Stärken von RPG, gleichzeitig aber auch ein wesentlicher Schwachpunkt.

balaton12_camp__MG_7098Neue Optionen, die nach und nach zu RPG hinzugefügt worden sind, werden aus genau diesen Kompatibilitätsgründen default-mäßig deaktiviert. Um sie zu aktivieren, muss ein entsprechendes Schlüsselwort zu den HAnweisungen hinzugefügt werden.

Der einfachste Weg, seinen etablierten Satz an H-Anweisungen fest zu verankern, ist, diese H-Anweisungen in ein separates SrcMbr zu schreiben und das Sr incMbr per / COPY standardmäßig an den Anfang seiner RPG-Quellen zu übernehmen.

Bleibt die Frage, welche Compiler- Optionen standardmäßig aufgenommen werden sollen. Nachfolgend eine Liste interessanter Optionen:

Option(*SRCSTMT):

Ohne diese Option erzeugt der RPG Compiler bei der Umwandlung neue Zeilennummern. Bei einem Laufzeitfehler wird entsprechend eine Fehlernachricht mit einer Zeilennummer angezeigt, die nicht notwendigerweise mit der ihrer RPG-Quelle übereinstimmt. Üblicherweise muss man dann erst wieder eine aktuelle Umwandlungsliste erzeugen, um die Zeilennummer dort zu suchen. Mit der Option *SRCSTMT vermeiden Sie diesen Aufwand, da die Fehlermeldungen die Zeilennummern des Source- Codes verwenden.

Option(*NODEBUGIO):

Ausgesprochen lästig beim Debuggen eines Programms ist der schrittweise Weg des Debuggers durch alle Felder der Ein- oder Ausgabe-Bestimmungen. Dies vermeiden Sie, indem Sie die Option *NODEBUGIO angeben.

EXTBININT(*YES):

Seit seinen ersten Anfängen hat RPG einen langen Weg zurückgelegt. Anfangs nur mit den Datentypen gepackte und betonte Dezimalzahlen sowie alphanumerische Felder vertraut, wurde die betagte Programmiersprache unter anderem um neue Datentypen wie Binärfelder, vorzeichenlose und vorzeichenbehaftete Integerfelder erweitert. Was auch immer die Compilerentwickler sich dabei gedacht haben: Wenn RPG auf ein binäres Integerfeld einer extern beschriebenen Datei stößt, wird dieses als RPG-Datentyp B eingelesen, aber vor jeder der Rechenoperationen temporär in ein gepacktes numerisches Feld umgewandelt, anschließend die Kalkulation durchgeführt und das Ergebnis wieder in ein Integerfeld zurückverwandelt. Naturgemäß verlangsamt dies die Programmausführung erheblich. Vermeiden können Sie dieses Verhalten mit der Aktivierung der Option EXTBININT. Dadurch verwendet RPG direkte Integer-Berechnungen und macht nicht mehr den Umweg über gepackte Zahlen.

DFTACTGRP(*NO):

Ohne Angabe dieses Wertes wird ein RPG-Programm in einem Kompatibilitätsmodus zu dem klassischen Original Program Model (OPM) umgewandelt. Dadurch läuft das Programm nicht nur in der so genannten Default Activation Group, sondern verhält sich auch in jeder anderen Hinsicht als reines OPM Programm, das keine ILE-Fähigkeiten hat und häufi ger als erwünscht deaktiviert wird.  

Schlagworte: , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.