View Full Version : Parameter eines Programms ermitteln?
RobertMack
06-02-13, 11:53
...untersuche mal einen Dump:
1) Programm ohne Parameter aufrufen = RNQ0222
2) Antwort D = Spool QPPGMDMP
3) Suche nach _QRNL_PRMCPY_ im Spool = _QRNL_PRMCPY_FELD1 POINTER SPP:*NULL
4) Suche nach FELD1 = FELD1 CHAR(10) NOT ADDRESSABLE
Das schöne daran ist, dass es diese Information im Joblog nicht gibt.
Beim CALL in einem CLP steht im Joblog lapidar "Call enthält Parameter", wenn LOGCLPGM eingeschaltet ist.
Bei allen anderen Calls wird absolut nichts protokolliert, schießlich weiß ja jedes Programm was es tut und erwartet.
Nur der arme Programmierer fängt da ohne Quellen das Raten an und das kann sehr schnell sehr teuer werden.
...untersuche mal einen Dump:
1) Programm ohne Parameter aufrufen = RNQ0222
2) Antwort D = Spool QPPGMDMP
3) Suche nach _QRNL_PRMCPY_ im Spool = _QRNL_PRMCPY_FELD1 POINTER SPP:*NULL
4) Suche nach FELD1 = FELD1 CHAR(10) NOT ADDRESSABLE
Suche nach NOT ADDRESSABLE im Dump sollte auch reichen
Solange Debuginformationen vorhanden sind...
:confused: welche debuginformationen brauche ich denn für einen dump?
Solange ein Programm nicht mit CHGPGM ... RMVOBS(...) bearbeitet wurde, sind die Infos da.
Aber was hilft es, wenn der Parameter als CHAR(845) ausgewiesen wird und sich dahinter halt eine DS verbirgt?
Hallo an Alle,
es gibt die API "Retrieve Program Interface Information (QBNRPII). Diese liefert die Parameterschnittstelle. Allerdings kommen die Informationen als PCML Daten daher. IBM RAD verwendet diese API um aus einem IBM i Programm einen Webservice zu machen. Du findest sie im IBM Information Center.
Vielleicht hilft dir diese API.
Grüsse Siegfried