Comment puis-je copier un membre d'un programme de traitement par lots REXX / CList (pas ISPF)?

StackOverflow https://stackoverflow.com/questions/1671578

  •  13-09-2019
  •  | 
  •  

Question

Sous z / OS, je veux écrire un script REXX ou CLIST pour copier une donnée séquentielle ensemble vers un autre, puis exécuter un autre script (REXX). L'autre scénario prévoit une SDS spécifique existe et je veux être en mesure de copier l'une des nombreuses options à ce membre avant d'exécuter le second script. C'est de TSO, donc je n'ai pas accès à l'une des choses ISPF fantaisie.

Donc, en gros:

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

Le runother scénario Rexx utilise « level1.level2.name » pour faire sa propre magie - je suis juste fournir un différent pour chacun de mes possibilités

.

Alors je besoin d'un script appelé « xx42 » qui copie de la level1.level2.name.42 'et je peux alors modifier que pour des valeurs autres que 42. serait encore mieux paramétrez ce script pour que je puisse utiliser simplement

xx 42 p1 p2 p3

ou

xx 27 p1 p2 p3

plutôt que d'avoir un script pour chaque valeur. Ceci copier les paramètres SDS passe ensuite donné p1, p2 et p3 jusqu'à runother.

Était-ce utile?

La solution 2

Après un peu de bidouiller, j'ai compris, vous pouvez affecter manuellement les ensembles de données nécessaires et exécuter IEBGENER pour faire la copie:

/* 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

Autres conseils

Alors que la recherche de quelque chose d'autre, je suis tombé sur ce poste. (À-dire qu'il ne m'a pas fallu 2 ans pour formuler cette réponse) et de la pensée à venir mainframians (ne nous existons encore?) Pourrait être utile.

Vous pouvez également faire un SMCOPY:

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

FDS - du dataset, TDS - à ensemble de données. Si TDS n'existe pas, vous obtiendrez un code de retour 4, mais la copie aura été exécutée. Vous pouvez utiliser SMCOPY pour copier les membres bibliothèque ainsi.

Vous pouvez également utiliser SORT pour faire une copie de SORTIN à SORTOUT. Vous pouvez envelopper que dans un proc JCL avec des paramètres ou utiliser des instructions SET, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top