-
Trigger / ILE RPG
Ich habe einen Trigger in ILE RPG geschrieben und den Trigger via ADDPFTRG der physischen Datei hinzugefügt.
Der Trigger wird vom DB-System aktiviert. Laut IBM-Doku, muß via API QMHSNDPM eine *ESCAPE-Nachricht gesendet werden; habe ich. Trotzdem erhalte ich keinen Hinweis, wenn ich mit DFU einen Datensatz lösche, der lt. Trigger nicht gelöscht werden darf.
Mit Hilfe des Debuggers habe ich kontrolliert, dass das API zum Senden der Nachticht aufgerufen wird. Ergebnis: positiv.
Hier der entsprechende Sourcecode:
EVAL SNDMSGD = 'Fehler Trigger: C1UNFTRG!'
EVAL SNDMSGD = 'QCPFMSG QSYS '
EVAL SNDMSGERR1=66
EVAL SNDMSGERR2 =0
EVAL SNDMSGERR3 = *BLANKS
EVAL SNDMSGERR4 = *BLANKS
EVAL SNDMSGERR5 = *BLANKS
C*
CALL 'QMHSNDPM'
PARM 'CPF9898' SNDMSGID
PARM SNDMSGF
PARM SNDMSGD
PARM 25 SNDLEN
PARM '*ESCAPE' SNDMSGTYP
PARM '*' SNDPGMQ
PARM 1 SNDSTCNT
PARM *BLANKS SNDMSGKEY
PARM SNDMSGERR
Die Parameter sind in einer DS definiert.
Mit welchen Werte muss ich die API-Parameter versorgen, um die Nachricht an das DB-System weiterzuleiten ?
-
Hallo Frank !
Ich nehme mal an, Du möchtest eine Nachricht am Bildschirm ausgeben. (Das geht aus Deiner Beschreibung nicht so genau hervor).
Probiere mal den Wert des Call-Stack-Counters
PARM 1 SNDSTCNT
auf 2 oder 3 zu ändern.
Dieser Wert gibt an, wieviele Programmstapel zurück die Msg ausgegeben werden soll. Ist der Wert falsch, sieht man z.B. die Msg im JOBLOG, aber nicht in der Msg-Zeile des Bildschirms. Es ist zwar etwas nervig, aber meistens klappt es. (Ich schaffe es oft auch erst nach etwas rumprobieren. So ist das, wenn man nicht genau weiss, was man tut.. *grins*)
Sollte das nicht helfen, mal versuchen den MsgType (PARM '*ESCAPE' SNDMSGTYP
) zu ändern. (z.B. *COMP)
Gruß
Jörg
[Dieser Beitrag wurde von JoergZ am 16. Mai 2001 editiert.]
-
Das Problem ist, dass das Programm in ILE-RPG geschrieben ist. Wenn Sie den Trigger mal mittels Debug anhalten und den Callstack betrachten, sehen Sie dass der 1. Eintrag über ihrem Programmmodul nicht die Datenbank ist, sondern eine Startprozedur an die Sie auch die Escape-Nachricht senden.
Ermitteln Sie den korrekten Stapeleintrag anhand des Callstacks und senden Sie die Escape-Nachricht genau an diesen (irgendwas mit QDB...).
[Dieser Beitrag wurde von Fuerchau am 17. Mai 2001 editiert.]
-
Danke für die prompte Hilfe.
Ich konnte im IBM-Handbuch "DB2 UDB for AS/400 Advanced Database Function" die korrekte Parameterversorgung finden. In der Tat muss bei einem ILE-Programm der Name der Programmnachrichtenwarteschlange nach einer bestimmten Regel gebildet werden:
Konstante: "_QRNP_PEP_" + "Name des Moduls".
Nach dieser Änderung wurde die Escapenachricht an das DB-System gesandt.
Ziel war, dass auch beim Hinzufügen/Ändern oder Löschen eines Datensatzes z.B. via ODBC eine entsprechende Meldung weitergeleitet und vom DB-System kein Commit ausgelöst wird.
Similar Threads
-
By homue in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 18-07-07, 16:47
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Squall in forum IBM i Hauptforum
Antworten: 82
Letzter Beitrag: 19-10-06, 15:37
-
By Squall in forum IBM i Hauptforum
Antworten: 31
Letzter Beitrag: 28-09-06, 17:53
-
By Angela in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 10:11
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