

AWS El servicio de modernización de mainframes (experiencia en entornos de ejecución gestionados) ya no está abierto a nuevos clientes. Para obtener prestaciones similares a las del Servicio de Modernización de AWS Mainframe (experiencia en entornos de ejecución gestionados), explore el Servicio de Modernización de AWS Mainframe (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte Cambio en la disponibilidad de la modernización del [AWS mainframe.](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Utilidad por lotes M2RUNCMD
<a name="m2runcmd"></a>

Puede utilizar M2RUNCMD, un programa de utilidad por lotes, para ejecutar comandos, scripts y llamadas al sistema de Rocket Software (anteriormente Micro Focus) directamente desde JCL, en lugar de ejecutarlos desde un terminal o una línea de comandos. El resultado de los comandos se registra en el registro spool del trabajo por lotes.

**Topics**
+ [Plataformas admitidas](#m2runcmd-platforms)
+ [Configurar M2RUNCMD para el tiempo de ejecución de modernización de AWS mainframe en Amazon EC2 (incluida la versión 2.0) AppStream](#m2runcmd-configure)
+ [Ejemplo JCLs](#m2runcmd-sample-jcls)

## Plataformas admitidas
<a name="m2runcmd-platforms"></a>

Puede utilizar M2RUNCMD en las siguientes plataformas:
+ Rocket Software Runtime (en Amazon EC2)
+  Todas las variantes de los productos Rocket Software Enterprise Developer (ED) y Rocket Software Enterprise Server (ES).

## Configurar M2RUNCMD para el tiempo de ejecución de modernización de AWS mainframe en Amazon EC2 (incluida la versión 2.0) AppStream
<a name="m2runcmd-configure"></a>

Si las aplicaciones migradas se ejecutan en el entorno de ejecución de modernización de AWS mainframe en Amazon EC2, configure M2RUNCMD de la siguiente manera.
+ Cambie la [ruta del programa JES de Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/index.html?t=GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html) para incluir la ubicación binaria de las utilidades por lotes. Si necesita especificar varias rutas, utilice dos puntos (:) para separarlas en Linux y punto y coma (;) en Windows.
  + Linux: `/opt/aws/m2/microfocus/utilities/64bit`
  + Windows (32 bits): `C:\AWS\M2\MicroFocus\Utilities\32bit`
  + Windows (64 bits): `C:\AWS\M2\MicroFocus\Utilities\64bit`

## Ejemplo JCLs
<a name="m2runcmd-sample-jcls"></a>

Para probar la instalación, puede utilizar cualquiera de los siguientes ejemplos JCLs.

 **RUNSCRL1.jcl**

En este JCL de ejemplo se crea un script y se ejecuta. El primer paso crea un script denominado `/tmp/TEST_SCRIPT.sh` y con contenido a partir de datos de `SYSUT1` internos. El segundo paso establece el permiso de ejecución y ejecuta el script creado en el primer paso. También puedes elegir realizar solo el segundo paso para ejecutar el software Rocket y los comandos del sistema ya existentes.

```
//RUNSCRL1 JOB 'RUN SCRIPT',CLASS=A,MSGCLASS=X,TIME=1440
//*
//*
//*-------------------------------------------------------------------*
//*  CREATE SCRIPT (LINUX)                                           
//*-------------------------------------------------------------------*
//*
//STEP0010 EXEC PGM=IEBGENER
//*
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//*
//SYSUT1   DD *
#!/bin/bash

set -x

## ECHO PATH ENVIRONMNET VARIABLE
echo $PATH

## CLOSE/DISABLE VSAM FILE
casfile -r$ES_SERVER -oc  -ed -dACCTFIL

## OPEN/ENABLE VSAM FILE
casfile -r$ES_SERVER -ooi -ee -dACCTFIL

exit $?
/*
//SYSUT2   DD DSN=&&TEMP,
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(RECFM=LSEQ,LRECL=300,DSORG=PS,BLKSIZE=0)
//*MFE: %PCDSN='/tmp/TEST_SCRIPT.sh'
//*
//*-------------------------------------------------------------------*
//*   RUN SCRIPT (LINUX)                                              *
//*-------------------------------------------------------------------*
//*
//STEP0020 EXEC PGM=RUNCMD
//*
//SYSOUT  DD  SYSOUT=*
//* 
//SYSIN   DD *
*RUN SCRIPT
 sh /tmp/TEST_SCRIPT.sh
/*
//
```

 **SYSOUT**

El resultado del comando o script que se ejecuta se escribe en el registro `SYSOUT`. Para cada comando ejecutado, muestra el comando, la salida y el código de retorno.

```
************ CMD Start ************   
                                                                                    
CMD_STR: sh /tmp/TEST_SCRIPT.sh                                                                                              
CMD_OUT:                                                                                                                                                                                                                             
+ echo /opt/microfocus/EnterpriseServer/bin:/sbin:/bin:/usr/sbin:/usr/bin    
/opt/microfocus/EnterpriseServer/bin:/sbin:/bin:/usr/sbin:/usr/bin           
+ casfile -rMYDEV -oc -ed -dACCTFIL                                                                       
-Return Code:   0                                                                                                         
Highest return code:    0                                                                                                 
+ casfile -rMYDEV -ooi -ee -dACCTFIL                                                                     
-Return Code:   8                                                                                                         
Highest return code:    8                                                                                                 
+ exit 8                                                                                                                  

CMD_RC=8                                                                                                                  

************  CMD End  ************
```

 **RUNCMDL1.jcl**

Este ejemplo de JCL usa RUNCMD para ejecutar varios comandos.

```
//RUNCMDL1 JOB 'RUN CMD',CLASS=A,MSGCLASS=X,TIME=1440
//*
//*
//*-------------------------------------------------------------------*
//*   RUN SYSTEM COMMANDS                                             *
//*-------------------------------------------------------------------*
//*
//STEP0001 EXEC PGM=RUNCMD
//*
//SYSOUT  DD  SYSOUT=*
//* 
//SYSIN   DD *
*LIST DIRECTORY
 ls
*ECHO PATH ENVIRONMNET VARIABLE
 echo $PATH
/*
//
```