/
Neuerungen rpg2free

Toolmaker Produkt-Dokumentation

Neuerungen rpg2free

Inhaltsübersicht

Version 24.00.07

Fehlerkorrekturen

Fehler bei der Konvertierung mit Warnhinweisen zur Abkürzung und Konvertierung von Unterroutinen in Prozeduren.

Aufgrund einer Änderung in Version 23.01.01 kann ein Problem (Fehler „Schlüssel existiert bereits“) auftreten, wenn die Umwandlung von Unterprogrammen in Prozeduren angefordert wurde und für diese Zeilen über die grafische Schnittstelle „Behebungsaktionen“ festgelegt werden

Der Fehler tritt bei der zweiten Konvertierung auf, die für dieselbe Komponente durchgeführt wird.

Dieses Problem wurde behoben.

Falsche Konvertierung für MOVE(L) für ein DS-Unterfeld.

Wenn in einer zu konvertierenden RPGLE-Quelle ein Feld geleert (MOVE *BLANKS) und später teilweise durch einen kleineren Wert mit MOVE oder MOVEL geändert wird, dann wird geprüft, ob es möglich ist, beide Anweisungen durch ein einfaches Eval (oder EvalR) zu ersetzen, ohne %Subst verwenden zu müssen.

Ein Fehler kann jedoch auftreten, wenn das betroffene Feld ein Teilfeld einer Datenstruktur ist, das wiederum ein anderes Datenstruktur-Teilfeld überlagert ein anderes DS-Teilfeld ist und zwischen der MOVE *BLANKS-Anweisung und der partiellen MOVE Anweisung gefüllt wird.

Dieses Problem wurde behoben - in diesem Fall wird nicht optimiert.

Der MOVE *BLANKS bleibt (Fld1 = *Blanks) und der MOVE xxx Fld1 wird weiterhin teilweise gefüllt

(%Subst(Fld1:pos:len) = xxx;).

Version 22.02.02

Fehlerkorrekturen

Typ des "gepackten" Feldes geändert in "zoniertes" Feld.

In einem spaltenbasierten RPGLE wird ein Feld über eine Referenz von einem "Zoned field" in C-Specs definiert:

*LIKE  Define  ZonedD5  DefZonedD5

In diesem Fall ist das neue Feld standardmäßig gepackt.

Nach der Konvertierung in die freie Syntax wird es in den Deklarationsspezifikationen mit dem Schlüsselwort Like(ZonedD5) definiert.

In diesem Fall behält es jedoch auch denselben Typ (also "Zoned").

Das ist nicht in Ordnung - das neue Feld muss wie im alten RPGLE "Packed" sein.

Das Problem wurde behoben: In diesem Fall wird nicht das Schlüsselwort "Like(...)" Schlüsselwort, sondern es definiert das Feld als Packed(...).

Verlust von 1 oder 2 Zeichen für Kommentare zu einer Deklarationsangabe.

Wenn die Felddeklarationen von C-Specs nach D-Specs verschoben und in die freie Form konvertiert werden, oder wenn bestehende D-Specs in die freie Form konvertiert werden und in der alten Zeile ein Kommentar vorhanden ist, der von Spalte 81 bis 100 reicht, kann die konvertierte Zeile die letzten 1 oder 2 Zeichen des Kommentars verlieren.

Dieses Problem wurde behoben.

Verbesserungen

MOVEL in ein Array-Element: Ergebnis verbessert

In der zu konvertierenden RPGLE-Quelle können wir auf diese Art von Anweisungen stoßen:

Das Feld ArrX ist als Char(10) mit Dim(nnn) definiert

MOVEL *BLANK   ArrX(5)
MOVEL 'AB'     ArrX(5)

Vor dieser Version wurde es umgewandelt, wie folgt:

ArrX(5) = *Blank;
%Subst(ArrX(5):1:2) = 'AB';

Es gab bereits ein Optimierungsverfahren für diese Art von Befehlsfolge, das sie durch ein einfaches "eval Ergebnis_Feld = '...'"); ersetzte. Das wurde aber nur für einfache Felder und nicht für Arrays gemacht.

Jetzt wird es auch für Array-Elemente gemacht, wenn das gleiche Array-Element (oder das ganze Array) gelöscht wird (Arr(X) = 'AB';)

Konvertierung für SCAN/CHECK/CHECKR, wenn das Ergebnis ein Array ist.

Vor dieser Version blieb der Op-Code SCAN/CHECK/CHECKR in "spaltenweiser" Syntax (keine Konvertierung), wenn er mit einem Array (ohne Index) im Ergebnisfaktor verwendet wurde.

Jetzt werden auch diese Fälle in die freie Syntax konvertiert.

Es wird ein Algorithmus mit einer Schleife verwendet, der die Positionen und speichert sie im Ergebnis-Array, eine nach der anderen.

Version 11.00.07

Fehlerkorrekturen

Fehler im Konvertierungsprozess, wenn sich eine JDE-Datei in der Bibliotheksliste befindet.

Nur für die IBM i - Standalone-Version (Befehl ACVTRPGFRE): Wenn die JDE-Datei F9801 in der Library List gefunden wurde, dann konnte ein Umwandlungsfehler auftreteten.

Dieses Problem wurde behoben

Fehler bei der Umwandlung für MOVE 0

Wenn in einer RPGLE-Quelle für dasselbe Ergebnisfeld ein MOVE- und ein MOVEL-Befehl verwendet wurden, dann war das Ergebnis der Umwanldung nicht korrekt und konnte nicht kompiliert werden.

Zum Beispiel:

MOVE    0 BESTNR
[...]
MOVEL 234 BESTNR

Dieses Problem wurde behoben

Version 10.09.11

Fehlerkorrekturen

Fehler in der konvertierten Quelle, beim Ersetzen durch %ParmNum in einer freien Zeile, die Kommentare vor Spalte 80 enthält.

Wenn die Konvertierung eine Parameternummer durch %ParmNum(param_name) ersetzen muss, kann es zu einem Fehler kommen, wenn die alte Zeile

  • bereits in der freien Syntax war
  • und einen Kommentar vor Spalte 80 enthält

In solchen Fällen wurde der Kommentar auf die beiden Zeilen aufgeteilt und war nicht korrekt.
Beispiel:

Alte Quelle:

if %parms > 5; // nur wenn gewünscht: Fehlermeldung liefern


Neue Quelle:

if %parms > = %ParmNum(EdsMsg) hlermeldung liefern
; // nur wenn gewünscht: Fe

Dieses Problem wurde behoben: Wenn möglich, verwendet es die vor dem Kommentar verfügbaren Leerzeichen; ansonsten wird der komplette Kommentar in die zweite Zeile verschoben.


ACVTRPGFRE schlägt fehl, wenn ein Programm eine leere Copy-Anweisung enthält.

Wenn in der zu konvertierenden Quelle eine /COPY-Anweisung vorhanden ist und das entsprechende Element der COPY-Klausel leer ist (keine Datensätze), endet die Konvertierung in die freie Syntax mit Fehlermeldungen.

Dieses Problem wurde behoben.

Fehler im Makro RPG_FREE: wenn der Wert  'ACVTRPGFREE' für PARM 300 Zeichen überschreitet (in Verwendung mit ARCAD Skipper)

Wenn das ARCAD-Skipper Makro "RPG_FREE" für eine Konvertierung verwendet wird, dann war die Länge des Parameters für den Befehl ACVTRPGFREE zu kurz (300 Zeichen). Es wurde die Fehlermeldung "Wert 'ACVTRPGFREE' für PARM übersteigt 300 Zeichen" gesendet.

Dieses Problem wurde behoben - die Grenze wurde im Befehl ACALLPGM auf 600 Zeichen geändert.

Version 10.09.03

Verbesserungen

Konvertierte Quellen behalten die Änderungsdaten der Ausgangs-Quelle

Der Parameter SRCDATE (Source line date) hat einen neuen, dritten Wert zur Auswahl bekommen: *KEEP. Er bewirkt:

  • Programmzeilen, die bei der Konvertierung geändert werden behalten ihr Änderungsdatum
  • Neu hinzugefügte Zeilen bekommen das aktuelle Datum

Lizenzkey ist nur noch 16 Stellen lang

Related content

rpg2free Fehlersuche und -behebung
rpg2free Fehlersuche und -behebung
More like this
Fehlersuche und -behebung TCUx
Fehlersuche und -behebung TCUx
More like this
directword Fehlersuche und -behebung
directword Fehlersuche und -behebung
More like this
zebra4i - Fehlersuche und -behebung
zebra4i - Fehlersuche und -behebung
More like this
Aufbereitungsoptionen in RPGWX-Prozeduren
Aufbereitungsoptionen in RPGWX-Prozeduren
More like this
Die DW...-Befehle
Die DW...-Befehle
More like this