Frage

Unter z/OS möchte ich ein REXX- oder CLIST-Skript schreiben, um einen sequentiellen Datensatz in einen anderen zu kopieren und dann ein anderes Skript (REXX) ​​auszuführen.Das andere Skript erwartet, dass ein bestimmtes Sicherheitsdatenblatt vorhanden ist, und ich möchte in der Lage sein, eine von vielen Optionen auf dieses Mitglied zu kopieren, bevor ich das zweite Skript ausführe.Dies ist von TSO, daher habe ich keinen Zugriff auf die schicken ISPF-Sachen.

Also im Grunde genommen:

Copy 'level1.level2.name.type1' to 'level1.level2.name'
runother p1 p2 p3

Der runother Das Rexx-Skript verwendet „level1.level2.name“, um seine eigene Magie zu entfalten – ich stelle nur für jede meiner Möglichkeiten eine andere bereit.

Ich brauche also ein Skript namens „xx42“, das „level1.level2.name.42“ kopiert und das ich dann für andere Werte als 42 ändern kann.Noch besser wäre es, dieses Skript so zu parametrisieren, dass ich es einfach verwenden kann

xx 42 p1 p2 p3

oder

xx 27 p1 p2 p3

anstatt für jeden Wert ein Skript zu haben.Dies würde das angegebene Sicherheitsdatenblatt kopieren und dann Parameter übergeben p1, p2 Und p3 durch zu runother.

War es hilfreich?

Lösung 2

Nach einigem Hin und Her habe ich herausgefunden, dass man die erforderlichen Datensätze manuell zuweisen und ausführen kann IEBGENER um die Kopie zu machen:

/* REXX */

"ALLOC FI(SYSPRINT) DUMMY REUSE"
"ALLOC FI(SYSIN) DUMMY REUSE"
"ALLOC FI(SYSUT1) DA('LEVEL1.LEVEL2.NAME.42') SHR REUSE"
"ALLOC FI(SYSUT2) DA('LEVEL1.LEVEL2.NAME') SHR REUSE"
"IEBGENER"
RC2 = RC
"FREE FI(SYSUT1)"
"FREE FI(SYSUT2)"
"FREE FI(SYSPRINT)"
"FREE FI(SYSIN)"
IF RC2 ^= 0 THEN DO
  SAY "IEBGENER FAILED."
  END
ELSE DO
  RUNOTHER P1 P2 P3
  END

Andere Tipps

Auf der Suche nach etwas anderem bin ich auf diesen Beitrag gestoßen.(d. h.Ich habe keine zwei Jahre gebraucht, um diese Antwort zu formulieren) und dachte, dass zukünftige Mainframianer (existieren wir noch?) sie vielleicht nützlich finden könnten.

Sie könnten auch eine SMCOPY durchführen:

address TSO "SMCOPY FDS('LEVEL1.LEVEL2.NAME.42') TDS('LEVEL2.LEVEL2.NAME')"

FDS – vom Datensatz, TDS – zum Datensatz.Wenn TDS nicht vorhanden ist, erhalten Sie einen Rückkehrcode 4, die Kopie wurde jedoch ausgeführt.Sie können SMCOPY auch zum Kopieren von Bibliotheksmitgliedern verwenden.

Sie können SORT auch verwenden, um eine Kopie von SORTIN nach SORTOUT zu erstellen.Sie könnten diese JCL in einen Prozess mit Parametern einschließen oder SET-Anweisungen usw. verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top