PDA

View Full Version : Arbeiten mit Nachrichtendateien



FNeurieser
17-03-05, 10:50
hallo allerseits,

vielleicht kann mir ja jemand auf die sprünge helfen.

ich arbeite in mehreren programmen mit nachrichtendateien die fehlermeldungen beinhalten. bei auftreten eines fehlers bekommt der user die entsprechende nachricht übermittelt.

nun möchte ich aber eine nachricht mit einer variablen abrufen - z.b.: Dieser Teil muss ein &1 sein.

der parameter &1 erhält in der nachrichtendatei das format *VARY. jetzt ist es so dass der text der sich dahinter verbirgt unterschiedliche längen aufweisen kann z.b. "quadratisch" oder "eckig" oder "rund" etc...

wie muss der aufruf im programm aussehen wenn es heisst:

"Falls für *QTDCHAR, *CHAR, *HEX oder *SPP keine
Länge angegeben ist, dann wird für die Länge der
Wert *VARY angenommen. Falls *VARY angenommen
wird, muss dem vom Befehl SNDPGMMSG bzw. SNDUSRMSG
übergebenen Nachrichtendatenfeld ein binäres Feld
von 2 oder 4 Byte vorangehen, das die tatsächliche
Byteanzahl der übergebenen Daten angibt. Wenn
jedoch *SPP angegeben ist, enthalten die ersten
Byte, auf die der Bereichszeiger zeigt, die
Feldlänge. Deshalb muss das 2- oder 4-Byte-Feld
den Daten, auf die der Bereichszeiger zeigt,
vorangehen, und nicht dem Bereichszeiger, der als
Teil der Nachrichtendaten übergeben wird."

wie muss dann die definition bzw. der aufruf in ILE-RPG aussehen ? (V5.R2)

dank im voraus für eure mithilfe
georg

Fuerchau
17-03-05, 11:01
*VARY sieht per ILE-Definition einfach so aus:

d MyFld 256 varying

Die Länge wird automatisch als 2-Byte-Binärfeld vorangestellt. Oder Alternativ:
d MyFld ds
d myLen 5I 0
d MyText 256

Aber warum machst du es so kompliziert ?
Nehm doch für die Nachricht einfach feste Feldformate (*CHAR 10).
Beim Aufbereiten des Nachrichtentextes werden Leerzeichen am Ende sowieso abgschnitten.