Wenn ich ein Serviceprogramm mit einem einzelnen Modul habe, das drei Unterprozeduren enthält. Gibt es eine Möglichkeit, die Verwendung der einzelnen Unterprozeduren in einer Bibliothek / Datei programmgesteuert zu ermitteln?

So etwas in der Art:

MYLIB/MYSRVPGM  <-- My service program object
  PROC1  <-- My first sub-procedure
  PROC2  <-- My second sub-procedure
  PROC3  <-- My third sub-procedure

Dann habe ich ein ILE-Programm, das PROC1 und PROC3 verwendet, aber nicht PROC2.

MYLIB/MYPGM  <-- My ILE program object which uses PROC1 and PROC3

Ich suche nach einer Möglichkeit, nach PROC1 oder PROC3 zu suchen und das Ergebnis von MYLIB/MYPGM zurückzugeben. Eine Suche nach PROC2 sollte jedoch kein Ergebnis zurückgeben.

Bisher habe ich versucht, DSPPGMREF zu verwenden, aber das gibt nur das Gesamtobjekt (IE: MYLIB/MYSRVPGM) zurück, nicht die einzelnen verwendeten Unterprozeduren.

Eine andere Route, die ich gewagt habe, war die Verwendung von FNDSTRPDM, aber das scannt nur die Quelle nach der Zeichenfolge PROC1. Es könnte in einem Kommentar stehen und ein falsches Positiv zurückgeben.

Ich weiß, dass dafür Tools von Drittanbietern existieren, aber sie sind derzeit aus Kostengründen keine praktikablen Optionen. Kostenlose oder relativ billige können jedoch eine Option sein (mir sind nur keine bekannt). Habe ich kein Glück?

2
d.lanza38 25 Juni 2019 im 23:35

3 Antworten

Beste Antwort

Wenn Sie über die Module für die Programme verfügen, können Sie die QBNLMODI-API (List Module Information) verwenden, um eine Liste der Modulimporte abzurufen. https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/ apis / qbnlmodi.htm

4
Barbara Morris 26 Juni 2019 im 11:59

Das einzige, von dem ich weiß, dass es von vorhandenen * PGM / * SRVPGM-Objekten funktionieren könnte, wäre, etwas um das Debug-APIs

Sie sagten, dass Tools von Drittanbietern keine Option sind. Ich nehme an, Sie meinen die kommerziellen Tools, für die Sie einen hübschen Cent bezahlen würden.

Was ist mit Open Source? Schauen Sie sich die Easy / 400 Überprüfung der Programmbibliothek an

1
Charles 25 Juni 2019 im 22:09

Ich benutze dazu das iSphere-Plugin in RDi. Wenn Sie RDi nicht verwenden, stehen Sie bei der Entwicklung für IBM i bereits hinter dem Achtelfinale. iSphere kann keine Importe direkt finden, verfügt jedoch über eine Quellensuchfunktion, die mir besser gefällt als FNDSTRPDM. Sie können ein Mitglied, eine Quelldatei, alle Quelldateien in einer Bibliothek oder sogar alles in einem RDi-Filter nach einer bestimmten Zeichenfolge durchsuchen.

Ja, es ist eine Quellensuche, aber es ist relativ einfach zu erkennen, ob etwas ein Kommentar ist oder nicht.

1
jmarkmurphy 26 Juni 2019 im 13:14