Rational Developer for System z

Acceder a variables de entorno en un programa COBOL de ejemplo

A veces es necesario recuperar dinámicamente el valor de una variable de entorno durante la ejecución. En este tema se proporciona un breve ejemplo de COBOL que muestra una forma de acceder a una variable de entorno.

  1. Pase a la perspectiva Proyectos z/OS.
  2. Cree un proyecto COBOL o PL/I de estación de trabajo. En el asistente de proyecto nuevo, seleccione la opción para Crear un grupo de propiedades nuevo y asociarlo al proyecto.
  3. Edite el grupo de propiedades y seleccione los recuadros de selección Valores COBOL locales, Valores PL/I locales y Opciones de enlace en el separador Categorías. Acepte los valores predeterminados de estas páginas y guarde el grupo de propiedades.
  4. Cree un programa COBOL llamado Cblenv.cbl en el proyecto y pegue el código de ejemplo siguiente en el archivo:
           Identification Division.
           Program-ID.  Cblenv.
    
           Data Division.
           Working-Storage Section.
           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.
           Procedure Division.
                 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. Cree un programa PL/I llamado XENVAR.pli en el proyecto y pegue el código de ejemplo siguiente en el archivo:
    %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);
     
       /****************************************************************/
       /* This necesario en unidad para atrapar condición no manejada.   */
       /* También debe tener la sentencia goto para salir de la unidad. */
       /****************************************************************/
       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. Pulse con el botón derecho sobre Cblenv.cbl y seleccione Nominar como Punto de entrada. Esta acción hace que el icono cambie en Cblenv.cbl, para indicar que el programa COBOL es el programa principal.
  7. Para reconstruir el proyecto, pulse con el botón derecho sobre él y seleccione Reconstruir proyecto. Una vez construido el proyecto, se le añade una carpeta llamada BuildOutput. Debe contener Cblenv.exe. Si no se genera este archivo, arregle los errores de compilación de los que se informa en la Lista de errores remotos y vuelva a construir el proyecto. Si en tiempo de enlace se informa de referencias no resueltas, pueden darse errores de enlace en la vista Consola remota.

    Icono de Linux Rational Developer for System z no soporta construcciones PL/I o COBOL locales en la plataforma Linux®.


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)