50 AS/400 Tips und Techniken Teil 8

10. November 2007 | Von | Kategorie: Tools, Hot-Tips

Der Artikel enthält 50 hochwertige Programmierer Tips. Der 9 teilige Artikel enthält Programmiertips in allen gängigen Programmier-Sprachen.

Tips und Techniken für die AS/400

Der 8. Teil der jährlichen Tips und Techniken jetzt online:
Thema: SYSTEMVERWALTUNG

Blitz Links:
  Deaktivierung von Statusmeldungen
Deklarieren von Systemdateien zur Vermeidung der interaktiven Kompilierung
Einrichtung von Gruppenjobs in drei Sekunden
Einrichtung von Abkürzungen für Benutzerbefehle (Fastpaths)
Vereinfachte Parametereingabe durch Symbole
Druck einer Liste der gesamten installierten IBM-Software
Ermittlung der Bibliotheksgröße
Ermittlung getrennter Jobs
Beachten Sie bei der PFT-Bestellung den Medientyp
Vereinfachung von Sicherungsvorgängen
Programmleistung
Einfachere Gesamtsystemspeicherung
Vergleich der PTF-Stufen vor dem Upgrade

SYSTEMVERWALTUNG

 

Deaktivierung von Statusmeldungen

Wenn Sie ein CL-Programm ausführen, um eine Datei zu kopieren oder eine Abfrage durchzuführen, wird in der Regel eine Statusmeldung wie „Copying member or Label…“ oder „Query running…“ am unteren Bildschirmrand eingeblendet. Es kann jedoch auch Situationen geben, in denen Sie eine eigene Meldung einblenden möchten oder in denen Sie vorziehen, daß der Benutzer keine Statusmeldung sieht. Aus Sicherheitsgründen kann es von Vorteil sein, wenn neugierige Benutzer nicht über Abfrage- oder Kopierprozesse informiert sind. Weniger Statusmeldungen verringern auch das nachlässige Umgehen der Benutzer mit Statusmeldungen, so daß wichtige Sondermeldungen nicht so leicht ignoriert werden.
Mit dem Befehl CHGJOB (Job ändern) und dem Parameter STSMSG(*NONE) (siehe Abbildung 11) können Sie die Anzeige von Standardmeldungen verhindern. Mit dieser Technik wird ein aktiver Job abgefangen, der einem bestimmten Benutzerprofil zugehört. Sie müssen den Wert der Job-Statusmeldung aufzeichnen, während Sie ihn abfangen, bevor Sie ihn temporär durch Ihren eigenen Wert *NONE ersetzen können, um die Statusmeldungen zu deaktivieren. Später können Sie die Job-Meldungswerte wiederherstellen. Das Beispielprogramm kopiert eine Datei, fragt sie verdeckt ab, stellt den Originalwert für den STMSG-Parameter wieder her und gibt die Jobsteuerung an den Benutzer zurück.

Deklarieren von Systemdateien zur Vermeidung der interaktiven Kompilierung

Sie können ein Programm, das Systemdateien verwendet, in Stapeln kompilieren und die interaktive Kompilierung verhindern, indem Sie die Systemdatei in Ihrem Programm benennen und die reale Datei übergehen. Wenn Sie beispielsweise die Datei verwenden, die mit dem Befehl DSPOBJD (Objektbeschreibung anzeigen) erstellt wurde, müssen Sie QADSPOBJ in Ihrem Programm deklarieren (siehe den Code in Abbildung 12).
Mit dieser Technik müssen die Programme nie wieder interaktiv kompiliert werden. Das Verfahren ist auch auf RPG III und RPG IV (ILE RPG) anwendbar. Der Tip stammt aus dem Programmer Reference Summary (SX41-3720). Das Handbuch ist eines der besten Nachschlagewerke für Programmierer. Es enthält die Systemwerte und ihre Beschreibungen, gebräuchliche APIs, alle ermittelbaren Fehlermeldungen und andere wichtige Hinweise. Außerdem enthält das Handbuch sämtliche von Befehlen benutzten Dateien.

Einrichtung von Gruppenjobs in drei Sekunden

Gruppenjobs steigern die Produktivität der Programmier und Benutzer. Dies gilt besonders für Situationen, in denen mehrere Mitarbeiter einen Einzelsitzungs-Terminal gemeinsam benutzen. Da Gruppenjobs von vielen nicht genau verstanden werden, werden sie nicht oft eingesetzt.
Es gibt eine Methode, mit der Gruppenjobs in wenigen Sekunden gestartet werden können (allerdings mit nur zwei Jobs in der Gruppe). Geben Sie dazu folgenden Befehl ein:

CALL	PGM(QSYS/QSCATTN)

Dieser Befehl erstellt einen Gruppenjob (mit dem Originaljob als Teildatei), und schaltet dann zum zweiten Job in der Gruppe. Durch ein erneutes Aufrufen des Programms können Sie zwischen beiden Jobs in der Gruppe hin- und her schalten.
Sie können sich die Arbeit noch leichter machen, indem Sie das Programm QSCATTN als Abrufprogramm spezifizieren. Wenn Sie anschließend zwischen den beiden Jobs hin- und her schalten möchten, müssen Sie nur die ATTN-Taste drücken. Legen Sie das Abrufprogramm mit dem folgenden Befehl fest:

SETATNPGM 	PGM(QSYS/QSCATTN)

Verwenden Sie den Befehl CHGPRF (Profil ändern) wie folgt, wenn Sie QSCATTN zu Ihrem permanenten Abrufprogramm machen möchten:

CHGPRF	ATNPGM(QSYS/QSCATTN)

Einrichtung von Abkürzungen für Benutzerbefehle (Fastpaths)

Abkürzungen für Benutzerbefehle haben eine deutliche Arbeitserleichterung für die einzelnen Benutzer zur Folge. Beispielsweise nimmt es deutlich weniger Zeit in Anspruch, wenn die Benutzer für den Zugriff auf das Menü MENU01 „M1″ statt „GO MENU01″ eingeben können. Dasselbe gilt für die Eingabe von „QRY1″ statt „RUNQRY *NONE FILE RCDSLT(*YES)“. Die Kurzbefehle lassen sich mit dem Befehl CRTCMD (Befehl erstellen) leicht einrichten. Definieren Sie den Befehl als Konstante, und spezifizieren Sie QCMDEXC als Befehlsverarbeitungs-Programm (CPP). Durch die Festlegung von QCMDEXC entfällt die Notwendigkeit, ein CPP zu schreiben.
Abbildung 13 zeigt an einem Beispiel, wie Sie eine Befehlsabkürzung für die Benutzer erstellen. Der Befehl M1 wird in der Bibliothek QGPL mit den in den PARM-Anweisungen abgebildeten Parametern erstellt. Der Parameter CONSTANT in der zweiten PARM-Anweisung zeigt die Länge des Befehls. Dieser Wert kann eine beliebige Zahl bis maximal 32 sein. Der Beispielbefehl ruft QCMDEXC in der Bibliothek QSYS auf und blendet ein Benutzermenü ein.

Vereinfachte Parametereingabe durch Symbole

Die Eingabe von Befehlen mit Listen – zum Beispiel die Eingabe des Befehls SAVOBJ (Objekt speichern) mit einer Objektliste – in einer Befehlszeile ist ein aufwendiger Vorgang. Durch die folgenden Symbole läßt sich die Eingabe der Parameter wesentlich vereinfachen:

  • Geben Sie „&“ ein, drücken Sie Field Exit und anschließend Enter in jedem Zeilenobjekt, wenn Sie das Feld für zusätzliche Informationen in der Zeile erweitern möchten.
  • Geben Sie „+“ ein, drücken Sie Field Exit und anschließend Enter, wenn Sie weitere Listenelemete an das Ende einer Objektliste anfügen möchten (z.B. Dateien oder Workstations), die in einem Befehl aufgeführt sind.
  • Geben Sie „<“ ein, drücken Sie Field Exit und anschließend Enter in einem Listenelement, wenn Sie das Element löschen möchten. Dieselbe Funktion wird auch dann ausgeführt, wenn Sie nur Field Exit drücken.
  • Geben Sie „>“ ein und drücken Sie Field Exit in einem Listenelement, wenn Sie an dieser Position Daten einfügen möchten.

Druck einer Liste der gesamten installierten IBM-Software

Wenn Sie GO LICPGM eingeben und Option 10 wählen, wird eine Liste mit in Ihrem System installierten IBM-Softwarepaketen angezeigt. Allerdings ist diese Liste unter Umständen unvollständig, und außerdem kann sie nicht ausgedruckt werden. Natürlich können Sie die Liste über die Print Screen-Taste ausdrucken. Das kann jedoch bedeuten, daß Sie 15 verschiedene Bildschirme in einem unübersichtlichen Format ausdrucken müssen. Außerdem besteht die Gefahr, daß Sie einzelne Bildschirme vergessen, oder daß Daten abgeschnitten werden. Der folgende Befehl DSPSFWRSC (Softwareressourcen anzeigen) zeigt nicht nur alle Namen der Softwarepakete an, sondern er druckt auch den Namen der Bibliotheken mit aus, in denen sich die jeweiligen Softwarepakete befinden:

DSPSFWRS	C	OUTPUT(*PRINT)

Ermittlung der Bibliotheksgröße

Mit dem Befehl DSPLIB (Bibliothek anzeigen) läßt sich die Größe einer Bibliothek besonders schnell feststellen:

DSPLIB LIB(YOURLIB) OUTPUT(*PRINT)

Die Festlegung der Option OUTPUT(*PRINT) ist wichtig, da andernfalls nur die Größe der einzelnen Objekte in der Bibliothek angezeigt wird. *PRINT zeigt nicht nur die Größe der einzelnen Objekte an, sondern auch die Gesamtgröße der Bibliothek am Ende des Berichts. Bei der Gesamtgröße handelt es sich um die Summe aller Objekte plus der Größe des Bibliotheksobjekts (LIB). Sie können statt dem *LIB-Parameter auch *ALLUSR oder *ALL spezifizieren, wenn Sie die Größe aller Nicht-IBM-Bibliotheken oder Systembibliotheken ermitteln möchten. Wenn Sie *ALLUSR oder *ALL verwenden, müssen Sie den Job als Stapeljob ausführen, weil in diesen Werten zu viele Ressourcen beansprucht werden, um DSPLIB interaktiv ausführen zu können.

Schlagworte: , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.