Rational Developer for System z

Accès aux variables d'environnement dans un exemple de programme COBOL

Vous devez parfois extraire de manière dynamique la valeur d'une variable d'environnement lors de l'exécution. Cette rubrique fournit un bref exemple COBOL qui illustre un moyen d'accéder à une variable d'environnement.

  1. Ouvrez la perspective Projets z/OS.
  2. Créez un projet COBOL ou PL/I de poste de travail. Dans l'assistant Nouveau projet, sélectionnez l'option Créez un groupe de propriétés et associez-le au projet.
  3. Editez le groupe de propriétés et cochez les cases Paramètres COBOL locaux, Paramètres PLI locaux, et Options de liens dans la page Catégories. Acceptez les valeurs par défaut dans ces pages et sauvegardez le groupe de propriétés.
  4. Créez un programme COBOL appelé Cblenv.cbl dans le projet et collez-y l'exemple de code suivant :
           Division d'identification.
           ID du programme.  Cblenv.
    
           Division de données.
           Section Working-Storage.
           01 P pointer.
           01 ENVVAR pic x(32) value Z"PATH".
           01 P2 POINTER.
           01 ENVARSTG PIC X(1000).
           01 var-len pic 9(4) binary.
           Division de procédure.
                 Set P to address of ENVVAR.
                 Set P2 to address of ENVARSTG.
           >>CALLINT OPTLINK
                      Call "XENVVAR"
                             using BY value P,
                             BY VALUE P2.
           >>CALLINT
                 Display "PATH = " ENVARSTG
                 Move 0 to var-len
                 Inspect ENVARSTG tallying var-len for characters
                  before initial x"00"
                  Display "TRIMMED PATH = " ENVARSTG (1:var-len)
               Goback.
  5. Créez un programme PL/I appelé XENVAR.pli dans le projet et collez-y l'exemple de code suivant :
    %process macro;
     %dcl OUTBUFSZ char;
     %OUTBUFSZ = '1000';
     XENVVAR: proc(xp,xp2) options (nodescriptor);
       dcl envar char(32) based (xp);
       dcl xp ptr byvalue;
       dcl xp2 ptr byvalue;
       dcl enval char(OUTBUFSZ);
       dcl venval char(OUTBUFSZ) varyingz;
       dcl envlen fixed bin(31);
     
       /****************************************************************/
       /* Cette unité est nécessaire pour interrompre toute condition non traitée.   */
       /* Elle doit également contenir l'instruction goto pour sortir de l'unité. */
       /****************************************************************/
       on anycond
         begin;
          display('  XENVAR ====> error occurred '||oncode());
           goto goto_label;
         end;
       call plifill(xp2, '00'x, OUTBUFSZ);
       enval = getenv(xp->envar);
       venval = trim(enval);
       envlen = length(venval);
          /*enforce null terminated */
       IF envlen > (OUTBUFSZ - 1) THEN envlen = (OUTBUFSZ - 1);
       call pliover( xp2, addr(venval),envlen);
     goto_label:
      return ;
     end;
  6. Cliquez à l'aide du bouton droit de la souris sur Cblenv.cbl et sélectionnez Affecter comme point d'entrée. Cette action modifie l'icône dans le fichier Cblenv.cbl, pour indiquer que le programme COBOL est le programme principal.
  7. Pour recompiler le projet, cliquez dessus à l'aide du bouton droit de la souris et sélectionnez Recompiler un projet. Une fois que le projet a été compilé, un dossier intitulé BuildOutput est ajouté au projet. Il doit contenir le fichier Cblenv.exe. Si ce fichier n'est pas généré, corrigez les erreurs de compilation signalées dans la Liste d'erreur distante et recompilez le projet. Si des références non résolues sont signalées lors de l'association, les erreurs de lien peuvent être consultées dans la Vue de la console distante.

    Icône Linux Rational Developer for System z ne prend pas en charge les générations COBOL ou PL/I locales sur la plateforme Linux.


Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)