-
RPGLE --> CLLE String wird mit x'00 statt x'40' gefüllt
Moin
wir haben hier ein ILERPG Pgm, das ein CLLE ruft.
Es werden 9 Parameter, alle *CHAR übergeben.
Parameter 1 - 8 kommt 'richtig', wenn leer dann mit x'40' gefüllt.
Diese sind < 32 Byte.
Der 9. Parameter ist 275 Byte groß, wird im RPG mit *blank initialisiert.
Danach wird er aus einer Datei gefüllt. I.d.R. weniger als 275 Stellen.
Die Füllung erfolgt in einer Schleife, ab dem 2. lesen so:
eval Text = %substr(text:1:i*30) + NUTEXT
Im CLLE kommt der String mit 'seinen' Daten + x'00' an.
Auch ein XLATE x'00' auf x'40' im RPGLE hilft nicht.
Das war früher nicht so oder? (Jetzt V7R5)
Kann ich das beeinflusen?
Danke.
der ILEMax
-
Moin,
sind die Parameter im RPGLE eventuell nicht char definiert sondern varchar?
Oder wird das CL nicht einfach mit CALL aufgerufen, sondern per SBMJOB?
-
Nachtrag:
Das ist nur im Batch so.
Das clle prüft ob es interaktiv oder im Batch läuft.
Läuft es interaktiv und wir haben keinen Debug an, submittet es sich selbst.
-
Noch ein Nachtrag..
Habe im Submit(call Pgm Parm(
nun beim letzten Parameter *char 275 mit angegeben.
Jetzt geht es wieder.
Der ILEMax
-
Das ist dann der Fall, wenn du den Umweg über QCMDEXC, also z.B. für SBMJOB machst.
Es galt schon immer beim CMD-Call:
Wenn Zeichen kürzer als 32 angegeben werden, werden sie mit Leerzeichen aufgefüllt, bei längeren Zeichenfolge nur in der angegebenen Länge.
Für die korrekte Länge muss die ganze Zeichenkette komplett mit Leerzeichen aufgefüllt in Hochkommas übergeben werden, incl. ggf. zu verdoppelnder eingebetteter Hochkommas.
Man kann natürlich auch einfach 1 Zeichen mehr übergeben, als das Ziel erwartet. Im Ziel ist das dann nicht zu sehen.
Also beim ILERPG:
dcl-s feld char(275);
call qcmdexc 'SBMJOB .... CALL PGMX PARM(''' + feld + 'x' + ''')
im CLLE/CLP:
dcl &feld char(275)
var &parm char(276)
chgvar &parm (&feld *cat 'x')
-
Also in der Form war das früher nicht!
Das 32 Bit Thema ist bekannt.
Der String wird in 2 ' übergeben (vorne und hinten je 2!)
Das Pgm läuft selten aber schon seit mehreren Jahren.
irgendwas ist anders
Aber egal, mit dem *CHAR 275) geht es wieder
Der ILEMax
-
%substr(text:1:i*30) + NUTEXT
Wenn das Ergebnis des Substr kürzer als 275 ist, steht dein NUTEXT nun mal direkt dahinter.
Ich wüsste nun nicht, was sich da dann geändert haben sollte.
-
???
Nutext ist 30 stellig
1. lesen: i = 0, eval text = nutext
2. lesen bis eof: i = i + 1, eval text = substr(text:1:i*30) + Nutext
so bilden sich Inhalte die zwischen 1 und 275 Byte lang sind
Ja, 275 ist nicht durch 30 Teilbar, macht aber nix!
Diese werden immer in '' in dem 275 er Text String weggegeben
Im CLLE kommt das auch an
beim Submit des CLLE von sich selber wird aus
ABCX'40'x'40'x'40'...
ABCX'00'x'00'x'00'...
Das war nicht so, das Pgm läuft seit Jahren. Selten aber 1-4 mal / Jahr.
Gestern hat es geknallt.
-
Aber wie sieht denn der SBMJOB denn tatsächlich aus. Irgendwo müssen die Hochkomma dann wieder weg interpretiert werden, was zum Abschneiden auf die Länge der Konstanten führt.
-
sbmjob(call pgm(Pgmx) parm('123') ('234') ('9') ('240412') (''ABC '') (''D e f'') ('123457') ('7') (''test text test text test3 text ... mit leerzeichen am ende''))) Job(xyzjob) Jobd(meinejobd)
-
Der lange Text hat jeweils 2 Hochkommata statt 1 oder 3, ggf. ist das ja die Ursache da das eigentlich ein Syntaxfehler ist.
Korrigiere das mal auf 1 Hochkomma.
-
Similar Threads
-
By dholtmann in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 23-03-16, 12:33
-
By lch02 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 12-03-15, 12:20
-
By harkne in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 19-11-13, 10:02
-
By COS in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-02-06, 16:01
-
By ThomasR in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 08-03-05, 11:54
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks