PDA

View Full Version : Option(*varsize)



Robi
10-08-01, 09:56
Hallo, *All

In einer Prozedur habe ich die Schnittstelle
folgendermassen def. :
D GETVORGS PI 3
D empf_ZYKL 3 const
D chg_STAT 2 Option(*varsize)
D empf_JN 1 const option(*nopass)

Wenn ich nun chg_stat 1-stellig übergebe
kommt MÜLL an (immer mal was anderes)

Bsp
d AuftZykl s 3 inz('ABC')
d AuftStat s 1 inz('0')

(AuftZykl und AuftStat sind in echt Dateifelder)

c eval vorgang=getVorgs(AuftZykl:AuftStat)

empfangen wird in getVorgs ABC 00

wenn ich testweise chg_stat auf 7 stellen
ändere, kommt ABC 00Ns3.. an
%len und %size geben falsche Werte zurück

Was kann ich tun, um in der Prozedur die empfangene Feldlänge zu bestimmen

(chg_Stat kann nicht CONST werden da ich es ggf. in der Procedur verändern muß und diesen Wert im rufenden Program auch brauche.

Danke
Robi

Fuerchau
11-08-01, 13:16
*varsize bedeutet immer eine Struktur, die in den Stellen 1-2 die Längeninformation beinhaltet:

D VarLen_Field ds
d VarLen_Len 5I
d VarLen_Data NNNA

wobei NNN die maximal mögliche Länge darstellt.

Bei der Übergabe ist die Längeninformation immer mitzugeben.