2010-08-13 5 views
0

J'ai besoin de vérifier une chaîne dans un fichier GDG, par exemple, pour vérifier 'ABCDEFG' dans le fichier: AAA.BBB.CCC.DDD (0).Est-ce que CLIST peut accéder au membre PDS et au fichier GDG?

SI OUI, annexer cette chaîne 'ABCDEFG' à la partie inférieure d'un élément de PDS:

ABD.EFG.HIG (noms).

SI LES DEUX FICHIERS SONT DES FICHIERS PSD, il n'y a pas de problème, alors que j'ai changé de membre GDG et PDS, cela n'a pas fonctionné.

Mon programme Clist ne peut pas allouer un fichier gdg, et ne peut pas non plus ajouter à un membre. Il a surmonté le membre, lorsque j'ai attribué le fichier à SHR et OLD. MOD n'a pas fonctionné dans un fichier membre.

Répondre

1

Le clist peut accéder à un GDG mais vous devez convertir le nom de fichier d'une référence relative gdg (0) en nom de jeu de données complet. Dans votre exemple, vous devrez référencer le fichier comme: AAA.BBB.CCC.DDD.G1234V00 (où G1234V00 est l'identificateur de la version la plus récente).

Généralement, vous pouvez le faire en écrivant une routine pour exécuter une commande LISTCAT sur l'ensemble de données, SYSTRAP la sortie, puis en analysant le nom qualifié complet dans une variable CLIST.

Exemple:

PROC 0 

    /* This illustrates a basic clist method using SYSTRAP */ 
    /* to extract a fully qualified GDG dataset name  */ 

    CONTROL NOFLUSH NOPROMPT NOLIST NOCONLIST NOSYMLIST NOMSG MAIN 

    /* Target dataset name */ 
    SET GDG = 'RAPP.RAP000.YQ.TAX.YQINFO.BK'      

    /* SET SYSTRAP LIMIT and execute IDCAMS LISTC command */ 
    SET &SYSOUTTRAP = 300           
    LISTC ENTRIES(&GDG)            

    /* Calculate line number of last entry in LISTC results */ 
    SET &I = &SYSOUTLINE-21 

    /* calculate ending position of GDG name in report */ 
    SET &L = &LENGTH(&GDG) + 23 

    /* extract SYSTRAP data into clist string variable */ 
    SET &C = &&SYSOUTLINE&I 

    /* substring data from SYSTRAP line into clist variable and list */ 
    SET &D = &SUBSTR(17:&L,&STR(&C))        
    WRITE &D              
END 

Exemple de sortie ...

RAPP.RAP000.YQ.TAX.YQINFO.BK.G8203V00


Questions connexes