PDA

View Full Version : noch eine Änderung die plötzlich die Umwandlung verhindert



Seiten : [1] 2

dibe
28-04-25, 13:33
Ein PGM hat



D XXX DS Dim(120) inz qualified
D F1 1A
D F2 1A
D ... Diverse Felder verschiedener Größen



im Pgm ist ein

CLEAR *ALL XXX


Das wird jetzt bemeckert.
Was ist den die alternative?

Danke

Fuerchau
28-04-25, 13:41
CLEAR XXX;
*all ist eigentlich eine Konstantenergänzung wie z.b. eval x = *all x'00'.

dibe
28-04-25, 13:48
aber das ging doch vorher und ist ja auch beschrieben

https://www.ibm.com/docs/en/i/7.5.0?topic=codes-clear-clear

(bei uns eingebaut mit v5R4)

B.Hauser
28-04-25, 19:14
Was ist denn genau die Fehlermeldung?

Der CLEAR hat sich nicht geändert.

Fuerchau
28-04-25, 21:09
Nun ja, ggf. wird nur genauer geprüft. *all gilt für occurs, da clear nur die für aktuelle Ebene einer Variablen gilt.
DIM ist permanent erreichbar, occurs muss per "n occurs array<array>" positioniert werden, was heute i.d.R. durch DIM eben einfacher ist.</array>

dibe
29-04-25, 08:26
*RNF5393 Faktor 2 einer Operation Clear oder Reset ist ungültig

Fuerchau
29-04-25, 09:34
Das ist doch eine Aussage:

https://www.ibm.com/docs/en/i/7.4.0?topic=irc-reset-all-is-no-longer-allowed-array-data-structures-in-free-form-calculations

Die Betonung liegt ja auf Free-Form. Occurs hat sich da auch überholt, da man dies locker mit DIM ersetzen kann. Nur die Zugriffe sind dann minimal anzupassen:
- Statt n occur array, eval ai = n
- Zugriff dann bei qualified ds(ai).feld oder feld(ai) bei nicht qualified.

Man beachte:
No change has been made to fixed-form calculations.

Da man Free/Fixed mischen kann, kannst du diese Zeile dann ja ggf. in fixed machen. Free/End-Free sind da nicht mehr erforderlich.

camouflage
29-04-25, 09:54
Bis 7.3 ging dies noch, ab 7.4 wird dieser Fehler produziert. M.M. ist das ein Bug. Mit occurs wird kein Fehler ausgegeben.

Wie war das noch mit Rückwärtskompatiblität?

dibe
29-04-25, 10:29
@Fuerchau
Das ist ein FIX-Format Pgm

@camouflage
Danke für die Bestätigung.
Da werden wir uns wohl angewöhnen müssen nach jedem PTF / Releasewechsel alles sicherheitshalber einmal durch zu wandeln.
Wenn es Zeitlich eng ist, möchte mann solche 'Fehler' nicht zusätzlich bereinigen
Wir machen jetzt statt des clear *all eine
for x = 1 To %elem(xxx)
clear
endfor

nicht schön, aber funktioniert wieder.

Vielen Dank
Dietlinde Beck

Fuerchau
29-04-25, 10:53
Rückwärtskompatiblität: binär aber nicht Source, da das Programm ja auch ohne Umwandlung läuft.