Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2011, 10h42   #1
Membre du Club
 
Inscription : juin 2008
Messages : 65
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 65
Points : 50
Points : 50
Par défaut [REXX/ISPF/JCL] Probème réinit LMDINIT

Bonjour,

Dans un REXX appelé par JCL, je fais plusieurs listes de datasets en utilisant les service ISPF LMD*.

La structure globale ressemble à ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DO i = 1 TO nombreRequetes

 controlesRequete

 "ISPEXEC LMDINIT LISTID(REN"!!i!!") LEVEL("!!filtre!!")"   
 "ISPEXEC LMDLIST LISTID(&REN"!!i!!") OPTION(LIST) DATASET(fic)"

 DO WHILE RC = 0
  Traitements...
  "ISPEXEC LMDLIST LISTID(&REN"!!i!!") OPTION(LIST) DATASET(fic)"
 END                                                             
"ISPEXEC LMDFREE LISTID(&REN"!!i!!")"                           

END
Les résultats que j'obtiens ne sont pas ceux attendus : il semblerait que j'ai un problème d'initialisation.

Concrètement avec les datasets suivants :
Code :
1
2
3
4
5
6
7
8
9
RENAME.TESTA1
RENAME.TESTA2
RENAME.TESTA3
RENAME.TESTB1
RENAME.TESTB2
RENAME.TESTC1
RENAME.TESTC2
RENAME.TESTC3
La série de filtres :
Code :
1
2
3
4
RENAME.TESTA*
RENAME.TESTB*
RENAME.TESTC*
fonctionne.
Cependant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RENAME.TESTB*
RENAME.TESTA*
RENAME.TESTC*

donne : 
RENAME.TESTB1
RENAME.TESTB2
puis
 Rien pour RENAME.TESTA*
puis
RENAME.TESTC1
RENAME.TESTC2
RENAME.TESTC3
Et
Code :
1
2
3
4
5
6
7
8
9
10
11
12
RENAME.TESTB*
RENAME.TEST*

donne : 
RENAME.TESTB1
RENAME.TESTB2
puis
RENAME.TESTB2
RENAME.TESTC1
RENAME.TESTC2
RENAME.TESTC3
Et
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RENAME.TESTA*
RENAME.TEST*

donne : 
RENAME.TESTA1
RENAME.TESTA2
RENAME.TESTA3
puis
RENAME.TESTA3
RENAME.TESTB1
RENAME.TESTB2
RENAME.TESTC1
RENAME.TESTC2
RENAME.TESTC3
Avec ces tests, je dirai que lors d'une succession de LMDINIT, ces derniers ne démarrent qu'à partir du dernier dataset retourné par la liste précédente.
J'ai cherché dans la documentation, et mon code me semble correct. Y aurait-il un buffer à vider ou une manipulation spéciale pour réinitialiser que j'aurai loupée ?

Merci.
Pico----- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 11h19   #2
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur et formateur Mainframe
Secteur : Conseil

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
Bonjour,

Ré-initialise ta variable nommée fic avant le LMDINIT.
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 11h27   #3
Membre du Club
 
Inscription : juin 2008
Messages : 65
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 65
Points : 50
Points : 50
Merci Bernard : ça fonctionne !

Donc c'est la clause DATASET du LMDLIST qui gère l'itérateur de lecture ?
Pico----- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 11h30   #4
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
c'est cela.
extrait de la doc:
Citation:
To start at the beginning of the list set the dataset-var to blanks.
a+
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 11h31   #5
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur et formateur Mainframe
Secteur : Conseil

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
Exactement.

Il en va de même pour le service LMMLIST quand tu fais des boucles du même style que la tienne mais sur des membres de PDS.
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 11h42   #6
Membre du Club
 
Inscription : juin 2008
Messages : 65
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 65
Points : 50
Points : 50
Merci pour ces réponses !

J'en ai profité pour télécharger le "ISPF Services Guide" que étrangement je n'avais pas...
Pico----- est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h53.


 
 
 
 
Partenaires

Hébergement Web