Anmelden

View Full Version : QUSRTVUS 8 binary in Receiver Variablen



harkne
29-08-17, 15:41
Hallo zusammen,

ich verwende das API QUSLJOB welches mir im Userspace die Daten ablegt.
Als Format habe ich JOBL0200 angegeben und ich möchte die Informationen für die Felder Nr. 0101, 1906 und 1406. Bei 0101 (Jobstatus) und 1906 (Subsystem) funktioniert alles prima, die sind auch character. Bei 1406 ist aber im Handbuch 8binary angegeben und hier weiß ich nicht wie ich es im RPG definieren soll damit ich die richtigen Werte erhalte. 1 bis 8b0 akzeptiert er nicht. Kann mir jemand weiter helfen ?

Viele Grüße harkne

Fuerchau
29-08-17, 16:02
Einfach als 20U definieren.
20I = 64-Bit mit Vorzeichen, 20U = 64Bit ohne Vorzeichen.
Genauso eben auch 10I oder 10U für 4-Byte Integers.

B.Hauser
29-08-17, 16:07
8 Byte binary bedeutet, dass es sich um einen Integer-Wert handelt, dessen Maximal-Wert in 4 Byte gespreichert werden müssen. Da ein Byte 256 unterschiedliche Werte aufnehmen kann, musst Du entsprechend hochrechnen.

Langer Rede kurzer Sinn, musst Du mit 20I 0 definieren.

Binär-Felder, die mit mit 20U 0 müssen, werden in APIs eigentlich als USigned Binray angegeben.

Birgitta

BenderD
29-08-17, 16:36
... ich empfehle statt QUSRTVUS QUSPTRUS. EInfacher ist es, wenn man die OpenSource Komponente APILIST nimmt, gibt's auf meiner Webseite (Jon Paris hat mal einen Artikel dazu geschrieben:
http://ibmsystemsmag.com/blogs/idevelop/january-2015/more-open-source-rpg--list-apis-made-easy/).

D*B

harkne
29-08-17, 21:33
Dann habe ich es doch richtig gemacht. Ich habe es als 20u 0 definiert (in der Beschreibung steht BINARY(8), UNSIGNED. Ich war mir nur nicht sicher, da der Wert eigentlich NUMBER OF AUXILIARY I/O REQUESTS liefert und ich nicht mit damit gerechnet habe einen Wert zu erhalten, denn ich habe den Job mittels SBMJOB übertragen und dieser hat lediglich eine Division durch 0 durchgeführt und ist auf MSGW gegangen. Dass ich dann bei mehreren Aufrufen Werte (mal 22 mal 300) erhalte, damit habe ich nicht gerechnet und ich habe erst gedacht es liegt an der Definition der Ergebnisvariablen. Vielen Dank für die Hilfe

Pikachu
31-08-17, 09:53
Data types and APIs (https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/apiref/data.htm)

andreaspr@aon.at
01-09-17, 08:07
Wenn du IBM i 7.1 hast gibt es auch die ACTIVE_JOB_INFO UDTF.
Damit kannst du via SQL quasi ein WRKACTJOB auslesen.

lg Andreas

harkne
06-09-17, 14:44
Vielen Dank für alle Antworten.