PDA

View Full Version : API QCLSCAN: Fehler nach ändern der CCSID (CHGJOB)



edv90020
09-07-09, 13:46
Hallo Forum,

folgendes Problem habe ich zu beklagen:

Mein Job/Benutzerprofi läuft mit folgenden Einstellungen:

LANGID DEU
CNTRYID DE
CCSID 273

Änder ich nun diese Einstellungen mit

CHGJOB LANGID(HUN) CNTRYID(HU) CCSID(870)

läuft nun der QCLSCAN auf Fehler :(

Weitere Nachrichteninformationen

Nachrichten-ID . . . . : CPF3CF1
Sendedatum . . . . . . : 09.07.09 Sendezeit . . . . . . : 14:22:52

Nachricht . . . : Fehlercodeparameter ungültig.

Ursache . . . . : Das Format des Fehlercodeparameters ist nicht korrekt.
Fehlerbeseitigung: Den Fehlercodeparameter korrigieren und die Anforderung
wiederholen. Das korrekte Format für den Fehlercodeparameter ist unter dem
Thema "APIs" im Information Center
(IBM System i and i5/OS Information Center (http://www.ibm.com/eserver/iseries/infocenter)) zu finden.


Der Witz an der Sache: Änder ich die CCSID am USRPRF und melde mich neu an, läuft der QCLSCAN ohne Probleme :confused:

Ich bin schon am verzweifeln. Kann mir jemand weiterhelfen?! Mit dem CPF-Fehler komme ich nicht weiter!

Vielen Dank im voraus.

Slawo

Fuerchau
09-07-09, 15:58
Gib doch mal die Quelle als Beispiel.

edv90020
09-07-09, 16:14
Gib doch mal die Quelle als Beispiel.


C #ICF1 IFNE *BLANKS
C Z-ADD #IFRS UFRS 5 0
C MOVE *BLANKS A256X1 256
C MOVE *BLANKS A256X2 256
C LC:UC XLATE #ICF1 A256X2 ALLES GRßBUCHST.
C LC:UC XLATE #ICF2 A256X1 ZUM VERGLEICHEN
C CALL 'QCLSCAN'
C PARM A256X1 ZU SUCHEN IN ...
C PARM 256 N3X1 3 0 LÄNGE
C PARM UFRS N3X2 3 0 START
C PARM A256X2 ZU SUCHENDER STRING
C PARM 256 N3X3 3 0 LÄNGE
C PARM '1' A1X1 1 TRANSLATE=TRUE
C PARM '1' A1X2 1 TRIM=TRUE
C PARM '?' A1X3 1 WILD
C PARM N3X4 3 0 ERGEBNIS
C Z-ADD N3X4 #OILN
C END

Nicht wundern warum der die Parameter hin und her geschoben werden: wir verwenden ein Case-Tool zum generieren von RPG!

Fuerchau
09-07-09, 16:53
Das sieht mir danach aus, dass QCLSCAN sich intern was merkt und mit diesem gemerkten nach CCSID-Wechsel nicht zurechtkommt.

Mach nach einem CHGJOB besser einen RCLRSC.
CCSID-Wechsel kann auch in anderen Programmen zu Problemen führen, wenn sie noch aktiv sind (*INLR=*OFF, ODP's usw.).

edv90020
09-07-09, 17:04
Mach nach einem CHGJOB besser einen RCLRSC.


Gute Idee aber leider hat´s nicht geklappt...

edv90020
09-07-09, 17:12
Noch eins ist mir aufgefallen:
Wir haben mehrere Systeme bzw. LPAR und auf zwei Systemen habe ich kein Problem und auf drei Systemen läuft das API auf fehler.

Gibt es evtl. mehrere Versionen vom API die über eine DTAARA oder ähnliches gesteuert wird ?
(Das hatte ich auch beim Befehl CPYTOIMPF: auf einigen Systemen lief der Befehl rund und einige nicht da eine ältere Version über die DTAARA angesprochen wurde)

Fuerchau
09-07-09, 17:46
Unterschiedlicher PTF-Stand kann immer eine Ursache sein.

edv90020
10-07-09, 07:44
Gibt es zum QCLSCAN API eine Alternatie ? In betracht auf ILE RPG stellt das API ein zu kleines Ergebnisfeld mit 3,0 zur Verfügung was uns früher oder später noch zu Problemen fürhen wird !!!

Fuerchau
10-07-09, 08:36
Wenn man keine Wildcard benötigt, einfach %scan.
Mittels C-Funktionen lassen sich reguläre Ausdrücke verwenden (RegEx).

In meiner Toolbox findet sich auch ein ähnliches Werkzeug.

edv90020
10-07-09, 09:02
Hallo Fuerchau,

erstmal vieln Dank für deine Informationen.:)

Bei gelegenheit werde ich bei der IBM nachfragen und das Ergebnis hier natürich veröffentlichen.