-
Open List of Messages (QGYOLMSG) - Valid Field 0302
Guten Abend!
Ich versuche momentan mit der API Open List of Messages den Nachrichtentext aus einer bestimmten MSGQ zu lesen.
Hierzu muss man ja die Valid Field Identifiers verwenden.
0201 | CHAR(*) | Replacement data or immediate message text | 0301 | CHAR(*) | Message | 0302 | CHAR(*) | Message with replacement data |
Das auslesen von 0201 sowie 0301 funktioniert ohne Probleme.
Allerdings erhalte ich bei 0302 recht kryptische Werte zurück.
Im MSGF ist mein Nachrichtentext folgend definiert:
WERT1: &1
&1 -> *CHAR 9
Mein Test:
Zunächst rufe ich ein kleines Test CL PGM auf, in dem ein SNDPGMMSG mit dem MSGDTA Wert 'NEWSBOARD' ausgeführt wird.
Nun starte ich mein RPG mit dem API Aufruf und erhalte für die einzelnen Felder folgende Werte zurück:
0201 | NEWSBOARD
| 0301 | WERT1: &1
| 0302 | WERT1: Ø
Hex: E6C5D9E3 F17A4000 00800000 00000038
|
Hat jemand eine Idee woran es liegen könnte?
Herzlichen Dank im voraus.
-
Verwendest du auch QGYGTLE zum lesen der einzelnen Sätze ?
Zum Auslesen der Werte definierst du am Besten entsprechende Strukturen mit einem Based-Pointer. Mit der Pointer-Arithmetik kannst du dann die Basis der jeweiligen DS (je nach Typ) setzen und gezielt auswerten.
Ohne Pointer geht das mit diesen API's nicht.
-
Hallo!
Ja ich verwende QGYGTLE zum einlesen.
Die von dir vorgeschlagene Technik mit Pointern ist bei mir momentan schon im Einsatz & funktioniert.
Allerdings kämpfe ich leider noch immer mit dem Problem beim Valid Field Identifier 0302.
Beim überprüfen meiner 0302 DS ist mir aufgefallen das ich mein Reserved Feld als 1 Char definiert habe, allerdings in der API Def. es als CHAR(*) definiert wurde.
Wie realisiert Ihr sowas am besten?
-
So eindeutig geht das aus der Beschreibung nicht hervor.
Normalerweiser ist char(*) eben ein Pointer.
In API's ist es manchmal auch ein Integer (10I 0) mit der relativen Anfangsposition, ob zum Satz oder zur Liste geht auch nicht eindeutig draus hervor.
Ich würde beides mal probieren, entweder als "*"-Pointer oder eben als 10I 0.
-
 Zitat von Fuerchau
So eindeutig geht das aus der Beschreibung nicht hervor.
Normalerweiser ist char(*) eben ein Pointer.
In API's ist es manchmal auch ein Integer (10I 0) mit der relativen Anfangsposition, ob zum Satz oder zur Liste geht auch nicht eindeutig draus hervor.
Ich würde beides mal probieren, entweder als "*"-Pointer oder eben als 10I 0.
CHAR(*) heißt in den API-Dokumentationen, dass es sich um einen alphanumerischen Parameter mit unbestimmter Länge handelt.
Deshalb müssen solche Variablen entweder mit einer fest vorgegebenen Länge und Datentyp A definiert oder eben als Pointer übergeben werden.
Die Übergabe über Pointer ist der Default beim Aufruf von Programmen, d.h. Schlüssel-Wort CONST oder VALUE wird immer ein Pointer auf den Parameter übergeben.
Auf keinen Fall dürfen solche Variablen mit variabler Länge Varying definiert werden.
Die tatsächliche Länge der Variablen muss in den meisten Fällen in einem anderen Parameter (oder Datenstruktur-Unterfeld) übergeben werden (oder wird in einem solchen entsprechend zurückgegeben).
... und 10I 0 ist falsch. Solche Variablen werden als BINARY(4) angegeben.
Birgitta
-
Guten Tag!
Herzlichen dank für eure Antworten.
Soweit ich das verstanden habe, sollte meine Definition des Reserved Felds keine Probleme verursachen.
Ich werd jetzt noch etwas rumtesten (die Hoffnung stirbt zuletzt )aber sollte es nicht klappen, bleibt mir wohl leider keine andere Möglichkeit übrig als mir den Messagetext inkl. Variablen manuell zusammen zu setzen.
Sollte noch jemand Vorschläge haben: Nur her damit!
-
Moin,
vielleicht schon etwas älter, k.a. ob's hilft
QGYOLMSG & GUI0044 - Page 2 - System iNetwork Forums
viel Erfolg
Robi
Last edited by Robi; 29-03-11 at 09:50.
Grund: falscher link
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Wenn es nur darum geht, eine Nachricht zu lesen und mit Variablen zu ergänzen ist doch dieses API wesentlich einfacher:
Retrieve Message (QMHRTVM) API
-
Leider deckt diese API nicht all meine Anforderungen ab.
Dennoch herzlichen dank an alle! 
Sollte sich was neues ergeben, meld ich mich!
Similar Threads
-
By fdh in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 01-06-10, 07:35
-
By emax in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-10-06, 11:01
-
By psd-400 in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 07-10-04, 12:06
-
By jo400 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 01-06-04, 20:34
-
By woki in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 13-04-04, 12:09
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