View Full Version : Datenstrukturen: Verhalten bei V7.3 geändert?
dschroeder
24-04-17, 13:30
Hallo,
mir ist gerade ein Problem aufgefallen. Wir haben in einigen Programmen externe Datenstrukturen, die nicht mit "qualified" definiert wurden. Trotzdem konnte ich bisher immer mit qualifizierter Notation darauf zugreifen. Seit wir 7.3 haben, kommt es dabei aber zu einem Kompilierfehler:
dcl-ds ZAKOPSatz extname('SISZAKOP') end-ds;
ZAKOPSatz.zk_betrag = f1.nach_betrag;
RNF7591: Ein Operand eines Ausdrucks für den qualifizierten Namen ist ungültig.
Ist das irgendwo eine Einstellung? Habt ihr das Problem auch? Kann natürlich auch schon bei 7.2 gewesen sein. Wir sind direkt von 7.1 auf 7.3 umgestiegen.
Dieter
Dann weiß ich nicht was ihr gemacht habt.
In V7R1 bekomme ich beim qualifizierten Zugriff auf eine nicht qualifizierte DS einen Compilerfehler 7030, dass die Variable nicht definiert ist.
M.a.W.: das war schon immer so.
Wenn nicht, hatte euer Compiler eben eine Macke die ihr nie mit PTF's behoben habt.
... das ging bei externen DS tatsächlich mal, bei LIKEDS seltsamerweise nicht, dokumentiert war das jedenfalls nicht (RPG ist halt eine "Programmiersprache" der besonderen Art). Jetzt wird es halt enger geprüft. Sicher nicht die letzte Überraschung...
D*B
PS: auf der PUB1 unter V5R3 geht das seltsamerweise auch bei LIKEDS.
dschroeder
24-04-17, 15:57
Vielen Dank für eure Antworten. Dann bleibt uns wohl nichts anderes übrig, als unsere Programme entsprechend anzupassen. Wird ziemlich schwierig, solche Stellen zu finden. Wahrscheinlich müssen wir alles kompilieren und schauen, was schiefgeht.
Dieter
Da hat sich halt ein "Schlendrian" eingeschlichen in dem man sich auf undokumentierte Compiler-Fehler verlassen hat. Da ist man dann schon mal verlassen.
holgerscherer
25-04-17, 09:44
PS: auf der PUB1 unter V5R3 geht das seltsamerweise auch bei LIKEDS.
Ich bin unschuldig! normales V5R3 mit letzten PTFs...
dschroeder
25-04-17, 10:06
Tja, merkwürdig finde ich das auch, dass das bei uns ging. Auf 7.1 hatten wir das neueste TR und auch einen ziemlich aktuellen PTF-Stand, denke ich.
Aber ich habe mich jetzt damit abgefunden, dass ich die PGMs ändern muss.
Geändert in V7R2 (https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rzaq9/rzaq9lpp5770rpgwrapper.htm)
ILE RPG changes
A non-qualified subfield or format cannot be qualified within a subprocedure
It is not valid to use qualified notation, A.B, for subfields and record formats that are not qualified. Before IBM® i 7.2, the compiler did not always detect this error if the reference to the global subfield or record format was in a subprocedure. Starting in 7.2, the compiler detects this error and diagnostic: RNF7591 - An operand of a qualified name expression is not valid is issued at compile time.
dschroeder
28-08-17, 12:52
Danke. Dann habe ich jetzt die offizielle Begründung, warum die Meldung jetzt kommt.