

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na [disponibilidade AWS da modernização do mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Utilitários em lote disponíveis na modernização do AWS mainframe
<a name="utilities-m2"></a>

Os aplicativos de mainframe geralmente usam programas utilitários em lote para executar funções específicas, como classificar dados, transferir arquivos usando FTP, carregar dados em bancos de dados DB2, como descarregar dados de bancos de dados e assim por diante.

Ao migrar seus aplicativos para a modernização do AWS mainframe, você precisa de utilitários de substituição funcionalmente equivalentes que possam realizar as mesmas tarefas que os usados no mainframe. Alguns desses utilitários podem já estar disponíveis como parte dos mecanismos de tempo de execução da modernização do AWS mainframe, mas estamos fornecendo os seguintes utilitários substitutos:
+ M2SFTP: permite a transferência segura de arquivos usando o protocolo SFTP.
+ M2WAIT: espera por um período de tempo especificado antes de continuar com a próxima etapa em um trabalho em lotes.
+ TXT2PDF - converte arquivos de texto em formato PDF.
+ M2DFUTIL: que fornece funções de backup, restauração, exclusão e cópia em conjuntos de dados, semelhantes ao suporte fornecido pelo utilitário ADRDSSU de mainframe.
+ M2RUNCMD - permite executar comandos, scripts e chamadas de sistema da Rocket Software (antiga Micro Focus) diretamente da JCL.

Desenvolvemos esses utilitários em lote com base no feedback dos clientes e os projetamos para fornecer a mesma funcionalidade dos utilitários de mainframe. O objetivo é fazer com que sua transição do mainframe para a modernização do AWS mainframe seja a mais tranquila possível.

**Topics**
+ [

## Localização binário
](#location-utilities)
+ [

# Utilitário em lote M2SFTP
](m2sftp.md)
+ [

# Utilitário em lote M2WAIT
](m2wait.md)
+ [

# TXT2Utilitário de lote de
](txt2pdf.md)
+ [

# Utilitário em lote M2DFUTIL
](m2dfutil.md)
+ [

# Utilitário em lote M2RUNCMD
](m2runcmd.md)

## Localização binário
<a name="location-utilities"></a>

Esses utilitários estão pré-instalados nos produtos Rocket Enterprise Developer (ED) e Rocket Software (ES). Você pode encontrá-los no seguinte local para todas as variantes de ED e ES:
+ 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`

# Utilitário em lote M2SFTP
<a name="m2sftp"></a>

O M2SFTP é um programa utilitário JCL projetado para realizar transferências seguras de arquivos entre sistemas usando o Secure File Transfer Protocol (SFTP). O programa usa o cliente Putty SFTP, `psftp`, para realizar as transferências reais de arquivos. O programa funciona de forma semelhante a um programa utilitário de FTP de mainframe e usa autenticação de usuário e senha.

**nota**  
A autenticação de chave pública não é compatível.

Para converter seu mainframe FTP JCLs para usar SFTP, mude para. `PGM=FTP` `PGM=M2SFTP`

**Topics**
+ [

## Plataformas compatíveis
](#m2sftp-platforms)
+ [

## Instalar as dependências
](#m2sftp-dependencies)
+ [

## Configurar o M2SFTP para AWS a modernização gerenciada do mainframe
](#m2sftp-configure-managed)
+ [

## Configurar o M2SFTP para o tempo de execução da modernização do AWS mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
](#m2sftp-configure-customer-infra)
+ [

## Amostra JCLs
](#m2sftp-jcl)
+ [

## Referência de comando do cliente Putty SFTP (PSFTP)
](#m2sftp-cmd-ref)
+ [

## Próximas etapas
](#m2sftp-next)

## Plataformas compatíveis
<a name="m2sftp-platforms"></a>

Você pode usar o M2SFTP em qualquer uma das seguintes plataformas:
+ AWS Software de modernização de mainframe Rocket (anteriormente Micro Focus) gerenciado
+ Rocket Software Runtime (no Amazon EC2)
+ Todas as variantes dos produtos Rocket Software Enterprise Developer (ED) e Rocket Software Enterprise Server (ES).

## Instalar as dependências
<a name="m2sftp-dependencies"></a>

**Para instalar o cliente Putty SFTP no Windows**
+ Faça o download do cliente [PuTTY SFTP](https://www.putty.org/) e instale-o.

**Para instalar o cliente Putty SFTP no Linux:**
+ Execute o seguinte comando para instalar o cliente SFTP do Putty:

  ```
    sudo yum -y install putty
  ```

## Configurar o M2SFTP para AWS a modernização gerenciada do mainframe
<a name="m2sftp-configure-managed"></a>

Se seus aplicativos migrados estiverem sendo executados no AWS Mainframe Modernization Managed, você precisará configurar o M2SFTP da seguinte forma.
+ Defina as variáveis de ambiente apropriadas do Rocket Enterprise Server para MFFTP. Aqui estão alguns exemplos:
  + `MFFTP_TEMP_DIR`
  + `MFFTP_SENDEOL`
  + `MFFTP_TIME`
  + `MFFTP_ABEND`

  Você pode definir quantas ou quantas dessas variáveis quiser. Você pode configurá-los em seu JCL usando a `ENVAR DD` instrução. Para obter mais informações sobre essas variáveis, consulte Variáveis de [controle do MFFTP](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html) na documentação da Micro Focus.

Para testar sua configuração, consulte [Amostra JCLs](#m2sftp-jcl).

## Configurar o M2SFTP para o tempo de execução da modernização do AWS mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
<a name="m2sftp-configure-customer-infra"></a>

Se seus aplicativos migrados estiverem sendo executados em tempo de execução de modernização de AWS mainframe no Amazon EC2, configure o M2SFTP da seguinte forma.

1. Altere o [caminho do programa Micro Focus JES](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html) para incluir a localização binária dos utilitários em lote. Se você precisar especificar vários caminhos, use dois pontos (`:`) para separar caminhos no Linux e ponto e vírgula (`;`) no 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`

1. Defina as variáveis de ambiente apropriadas do Rocket Enterprise Server para MFFTP. Aqui estão alguns exemplos:
   + `MFFTP_TEMP_DIR`
   + `MFFTP_SENDEOL`
   + `MFFTP_TIME`
   + ``MFFTP\$1ABEND

   Você pode definir quantas ou quantas dessas variáveis quiser. Você pode configurá-los em seu JCL usando a `ENVAR DD` instrução. Para obter mais informações sobre essas variáveis, consulte Variáveis de [controle do MFFTP](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html) na documentação da Micro Focus.

Para testar sua configuração, consulte [Amostra JCLs](#m2sftp-jcl).

## Amostra JCLs
<a name="m2sftp-jcl"></a>

Para testar a instalação, você pode usar um dos seguintes arquivos JCL de exemplo.

**M2 SFTP1 .jcl**

Este JCL mostra como chamar o M2SFTP para enviar um arquivo para um servidor SFTP remoto. Observe as variáveis de ambiente definidas na `ENVVAR DD` instrução.

```
//M2SFTP1 JOB 'M2SFTP1',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to send a file to SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP,
//            PARM='127.0.0.1 (EXIT=99 TIMEOUT 300'
//*
//SYSFTPD  DD  *
RECFM FB
LRECL 80
SBSENDEOL CRLF
MBSENDEOL CRLF
TRAILINGBLANKS FALSE
/*
//NETRC    DD  *
machine 127.0.0.1 login sftpuser password sftppass
/*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
type a
locsite notrailingblanks
cd files
put 'AWS.M2.TXT2PDF1.PDF' AWS.M2.TXT2PDF1.pdf   
put 'AWS.M2.CARDDEMO.CARDDATA.PS' AWS.M2.CARDDEMO.CARDDATA.PS1.txt
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**M2 SFTP2 .jcl**

Este JCL mostra como chamar o M2SFTP para receber um arquivo de um servidor SFTP remoto. Observe as variáveis de ambiente definidas na `ENVVAR DD` declaração.

```
//M2SFTP2 JOB 'M2SFTP2',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to receive a file from SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP
//*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
open 127.0.0.1
sftpuser
sftppass
cd files
locsite recfm=fb lrecl=150
get AWS.M2.CARDDEMO.CARDDATA.PS.txt +
'AWS.M2.CARDDEMO.CARDDATA.PS2' (replace
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**nota**  
É altamente recomendável armazenar as credenciais de FTP em um arquivo NETRC e restringir o acesso somente a usuários autorizados.

## Referência de comando do cliente Putty SFTP (PSFTP)
<a name="m2sftp-cmd-ref"></a>

O cliente PSFTP não suporta todos os comandos de FTP. A lista a seguir mostra todos os comandos que o PSFTP suporta.


| Command | Description | 
| --- | --- | 
|  \$1  |  Executar um comando local  | 
|  tchau  |  Conclua sua sessão de SFTP  | 
|  cd \$1  |  Altere seu diretório de trabalho remoto  | 
|  chmod  |  Alterar permissões e modos de arquivo  | 
|  feche  |  Conclua sua sessão de SFTP, mas não saia do PSFTP  | 
|  del  |  Excluir arquivos no servidor remoto  | 
|  dir  |  Listar arquivos remotos  | 
|  exit  |  Conclua sua sessão de SFTP  | 
|  obter  |  Baixe um arquivo do servidor para sua máquina local  | 
|  help  |  Dê ajuda  | 
|  lcd  |  Alterar diretório de trabalho local  | 
|  lpwd  |  Imprimir diretório de trabalho local  | 
|  ls  |  Listar arquivos remotos  | 
|  ímã  |  Baixe vários arquivos de uma só vez  | 
|  mkdir  |  Crie diretórios no servidor remoto  | 
|  entrada  |  Faça upload de vários arquivos de uma só vez  | 
|  mv  |  Mover ou renomear arquivo (s) no servidor remoto  | 
|  aberto  |  Conecte-se a um host  | 
|  put  |  Upload um arquivo da sua máquina local para o servidor  | 
|  PWD  |  Imprima seu diretório de trabalho remoto  | 
|  sair  |  Conclua sua sessão de SFTP  | 
|  arrepender  |  Continue baixando arquivos  | 
|  arrancar  |  Mover ou renomear arquivo (s) no servidor remoto  | 
|  reputação  |  Continuar carregando arquivos  | 
|  /rm  |  Excluir arquivos no servidor remoto  | 
|  rmdir  |  Remover diretórios no servidor remoto  | 

## Próximas etapas
<a name="m2sftp-next"></a>

Para carregar e baixar arquivos no Amazon Simple Storage Service usando SFTP, você pode usar o M2SFTP em conjunto com o AWS Transfer Family, conforme descrito nas postagens do blog a seguir.
+ [Usando diretórios lógicos AWS SFTP para criar um serviço simples de distribuição de dados](https://aws.amazon.com/blogs/storage/using-aws-sftp-logical-directories-to-build-a-simple-data-distribution-service/)
+ [Ativar a autenticação por senha para AWS Transfer for SFTP usar AWS Secrets Manager](https://aws.amazon.com/blogs/storage/enable-password-authentication-for-aws-transfer-for-sftp-using-aws-secrets-manager/)

# Utilitário em lote M2WAIT
<a name="m2wait"></a>

O M2WAIT é um programa utilitário de mainframe que permite introduzir um período de espera em seus scripts JCL especificando uma duração de tempo em segundos, minutos ou horas. Você pode chamar o M2WAIT diretamente do JCL passando o tempo que deseja esperar como parâmetro de entrada. Internamente, o programa M2WAIT chama o módulo fornecido pela Rocket Software (anteriormente Micro Focus) `C$SLEEP` para aguardar um tempo especificado.

**nota**  
Você pode usar aliases da Micro Focus para substituir o que você tem em seus scripts JCL. Para obter mais informações, consulte [JES Alias](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-D4206FF9-32C4-43E7-9413-5E7E96AA8092.html) na documentação da Micro Focus.

**Topics**
+ [

## Plataformas compatíveis
](#m2wait-platforms)
+ [

## Configurar o M2WAIT para a modernização gerenciada do AWS mainframe
](#m2wait-configure-managed)
+ [

## Configure o M2WAIT para o tempo de AWS execução da modernização do mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
](#m2wait-configure-customer-infra)
+ [

## Amostra de JCL
](#m2wait-jcl)

## Plataformas compatíveis
<a name="m2wait-platforms"></a>

Você pode usar o M2WAIT em qualquer uma das seguintes plataformas:
+ AWS Software de modernização de mainframe Rocket (anteriormente Micro Focus) gerenciado
+ Rocket Software Runtime (no Amazon EC2)
+ Todas as variantes dos produtos Rocket Software Enterprise Developer (ED) e Rocket Software Enterprise Server (ES).

## Configurar o M2WAIT para a modernização gerenciada do AWS mainframe
<a name="m2wait-configure-managed"></a>

Se seus aplicativos migrados estiverem sendo executados no AWS Mainframe Modernization Managed, você precisará configurar o M2WAIT da seguinte forma.
+ Use o programa M2WAIT em seu JCL passando o parâmetro de entrada conforme mostrado em. [Amostra de JCL](#m2wait-jcl)

## Configure o M2WAIT para o tempo de AWS execução da modernização do mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
<a name="m2wait-configure-customer-infra"></a>

Se seus aplicativos migrados estiverem sendo executados em tempo de execução de modernização de AWS mainframe no Amazon EC2, configure o M2WAIT da seguinte forma.

1. Altere o [caminho do programa Micro Focus JES](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html) para incluir a localização binária dos utilitários em lote. Se você precisar especificar vários caminhos, use dois pontos (`:`) para separar caminhos no Linux e ponto e vírgula (`;`) no 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`

1. Use o programa M2WAIT em seu JCL passando o parâmetro de entrada conforme mostrado em. [Amostra de JCL](#m2wait-jcl)

## Amostra de JCL
<a name="m2wait-jcl"></a>

Para testar a instalação, você pode usar o `M2WAIT1.jcl` programa.

Este exemplo de JCL mostra como chamar o M2WAIT e passá-lo por várias durações diferentes.

```
//M2WAIT1 JOB 'M2WAIT',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Wait for 12 Seconds*
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2WAIT,PARM='S012'
//SYSOUT DD SYSOUT=*
//*
//*-------------------------------------------------------------------**
//* Wait for 0 Seconds (defaulted to 10 Seconds)*
//*-------------------------------------------------------------------**
//*
//STEP02 EXEC PGM=M2WAIT,PARM='S000'
//SYSOUT DD SYSOUT=*
//*
//*-------------------------------------------------------------------**
//* Wait for 1 Minute*
//*-------------------------------------------------------------------**
//*
//STEP03 EXEC PGM=M2WAIT,PARM='M001'
//SYSOUT DD SYSOUT=*
//*
//
```

# TXT2Utilitário de lote de
<a name="txt2pdf"></a>

TXT2PDF é um programa utilitário de mainframe comumente usado para converter um arquivo de texto em um arquivo PDF. Este utilitário usa o mesmo código-fonte para TXT2 PDF (z/OSfreeware). Nós o modificamos para ser executado no ambiente de execução do AWS Mainframe Modernization Rocket Software (antigo Micro Focus).

**Topics**
+ [

## Plataformas compatíveis
](#txt2pdf-platforms)
+ [

## Configurar o TXT2 PDF para a modernização AWS gerenciada do mainframe
](#txt2pdf-configure-managed)
+ [

## Configure o TXT2 PDF para o tempo de execução da modernização do AWS mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
](#txt2pdf-configure-customer-infra)
+ [

## Amostra de JCL
](#txt2pdf-jcl)
+ [

## Modificações
](#txt2pdf-mods)
+ [

## Referências
](#txt2pdf-ref)

## Plataformas compatíveis
<a name="txt2pdf-platforms"></a>

Você pode usar o TXT2 PDF em qualquer uma das seguintes plataformas:
+ AWS Modernização de mainframe \$1 Rocket \$1 Software gerenciado
+ Rocket Software Runtime (no Amazon EC2)
+ Todas as variantes dos produtos Rocket Enterprise Developer (ED) e Rocket Enterprise Server (ES).

## Configurar o TXT2 PDF para a modernização AWS gerenciada do mainframe
<a name="txt2pdf-configure-managed"></a>

Se seus aplicativos migrados estiverem sendo executados no AWS Mainframe Modernization Managed, configure o TXT2 PDF da seguinte forma.
+ Crie uma biblioteca REXX EXEC chamada `AWS.M2.REXX.EXEC`. Baixe esses [módulos REXX](https://drm0z31ua8gi7.cloudfront.net/utilities/mf/TXT2PDF/rexx/TXT2PDF_rexx.zip) e copie-os para a biblioteca. 
  + `TXT2PDF.rex`- z/OS Software gratuito TXT2 em PDF (modificado)
  + `TXT2PDFD.rex`- z/OS Software gratuito TXT2 em PDF (não modificado)
  + `TXT2PDFX.rex`- z/OS Software gratuito TXT2 em PDF (modificado)
  + `M2GETOS.rex`: para verificar o tipo de sistema operacional (Windows ou Linux)

Para testar sua configuração, consulte [Amostra de JCL](#txt2pdf-jcl).

## Configure o TXT2 PDF para o tempo de execução da modernização do AWS mainframe no Amazon EC2 (incluindo aplicativos) WorkSpaces
<a name="txt2pdf-configure-customer-infra"></a>

Se seus aplicativos migrados estiverem sendo executados em tempo de execução de modernização de AWS mainframe no Amazon EC2, configure o PDF da seguinte forma. TXT2

1. Defina a variável de ambiente Rocket Software `MFREXX_CHARSET` com o valor apropriado, como “`A`" para dados ASCII.
**Importante**  
Inserir o valor errado pode causar problemas de conversão de dados (de EBCDIC para ASCII), tornando o PDF resultante ilegível ou inoperável. Recomendamos que `MFREXX_CHARSET` a configuração corresponda`MF_CHARSET`.

1. Altere o [caminho do programa Micro Focus JES](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html) para incluir a localização binária dos utilitários em lote. Se você precisar especificar vários caminhos, use dois pontos (`:`) para separar caminhos no Linux e ponto e vírgula (`;`) no 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`

1. Crie uma biblioteca REXX EXEC chamada `AWS.M2.REXX.EXEC``. Baixe esses [módulos REXX](https://drm0z31ua8gi7.cloudfront.net/utilities/mf/TXT2PDF/rexx/TXT2PDF_rexx.zip) e copie-os para a biblioteca. 
   + `TXT2PDF.rex`- z/OS Software gratuito TXT2 em PDF (modificado)
   + `TXT2PDFD.rex`- z/OS Software gratuito TXT2 em PDF (não modificado)
   + `TXT2PDFX.rex`- z/OS Software gratuito TXT2 em PDF (modificado)
   + `M2GETOS.rex`: para verificar o tipo de sistema operacional (Windows ou Linux)

Para testar sua configuração, consulte [Amostra de JCL](#txt2pdf-jcl).

## Amostra de JCL
<a name="txt2pdf-jcl"></a>

Para testar a instalação, você pode usar um dos seguintes arquivos JCL de exemplo.

**TXT2PDF1.jcl**

Esse arquivo JCL de amostra usa um nome DD para a conversão de TXT2 PDF.

```
//TXT2PDF1 JOB 'TXT2PDF1',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* PRE DELETE*
//*-------------------------------------------------------------------**
//*
//PREDEL  EXEC PGM=IEFBR14
//* 
//DD01     DD DSN=AWS.M2.TXT2PDF1.PDF.VB,                      
//            DISP=(MOD,DELETE,DELETE)
//*
//DD02     DD DSN=AWS.M2.TXT2PDF1.PDF,                       
//            DISP=(MOD,DELETE,DELETE)
//* 
//*-------------------------------------------------------------------**
//* CALL TXT2PDF TO CONVERT FROM TEXT TO PDF (VB)*
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=IKJEFT1B
//*
//SYSEXEC  DD DISP=SHR,DSN=AWS.M2.REXX.EXEC
//*
//INDD     DD *
1THIS IS THE FIRST LINE ON THE PAGE 1
0THIS IS THE THIRD LINE ON THE PAGE 1
-THIS IS THE   6TH LINE ON THE PAGE 1
THIS IS THE   7TH LINE ON THE PAGE 1
+____________________________________ - OVERSTRIKE 7TH LINE          
1THIS IS THE FIRST LINE ON THE PAGE 2
0THIS IS THE THIRD LINE ON THE PAGE 2
-THIS IS THE   6TH LINE ON THE PAGE 2 
THIS IS THE   7TH LINE ON THE PAGE 2
+____________________________________ - OVERSTRIKE 7TH LINE                 
/*
//*
//OUTDD    DD DSN=AWS.M2.TXT2PDF1.PDF.VB,
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=VB,BLKSIZE=0)
//*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD DDNAME=SYSIN
//*
//SYSIN    DD *
%TXT2PDF BROWSE Y IN DD:INDD +
OUT DD:OUTDD +
CC YES
/*
//*
//*-------------------------------------------------------------------**
//* CONVERT PDF (VB) TO PDF (LSEQ - BYTE STREAM)*
//*-------------------------------------------------------------------**
//* 
//STEP02 EXEC PGM=VB2LSEQ
//*
//INFILE   DD DSN=AWS.M2.TXT2PDF1.PDF.VB,DISP=SHR             
//*
//OUTFILE  DD DSN=AWS.M2.TXT2PDF1.PDF,                      
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=LSEQ,BLKSIZE=0)
//*
//SYSOUT   DD SYSOUT=*
//*
//
```

**TXT2PDF2.jcl**

Esse exemplo de JCL usa um nome DSN para a TXT2 conversão de PDF.

```
//TXT2PDF2 JOB 'TXT2PDF2',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* PRE DELETE*
//*-------------------------------------------------------------------**
//*
//PREDEL  EXEC PGM=IEFBR14
//* 
//DD01     DD DSN=AWS.M2.TXT2PDF2.PDF.VB,                      
//            DISP=(MOD,DELETE,DELETE)
//*
//DD02     DD DSN=AWS.M2.TXT2PDF2.PDF,                       
//            DISP=(MOD,DELETE,DELETE)
//* 
//*-------------------------------------------------------------------**
//* CALL TXT2PDF TO CONVERT FROM TEXT TO PDF (VB)*
//*-------------------------------------------------------------------**
//* 
//STEP01 EXEC PGM=IKJEFT1B
//*
//SYSEXEC  DD DISP=SHR,DSN=AWS.M2.REXX.EXEC
//*
//INDD     DD *
1THIS IS THE FIRST LINE ON THE PAGE 1
0THIS IS THE THIRD LINE ON THE PAGE 1
-THIS IS THE   6TH LINE ON THE PAGE 1
THIS IS THE   7TH LINE ON THE PAGE 1
+____________________________________ - OVERSTRIKE 7TH LINE          
1THIS IS THE FIRST LINE ON THE PAGE 2
0THIS IS THE THIRD LINE ON THE PAGE 2
-THIS IS THE   6TH LINE ON THE PAGE 2 
THIS IS THE   7TH LINE ON THE PAGE 2
+____________________________________ - OVERSTRIKE 7TH LINE                 
/*
//*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD DDNAME=SYSIN
//*
//SYSIN    DD *
%TXT2PDF BROWSE Y IN DD:INDD +
OUT 'AWS.M2.TXT2PDF2.PDF.VB' +
CC YES
/*
//*
//*-------------------------------------------------------------------**
//* CONVERT PDF (VB) TO PDF (LSEQ - BYTE STREAM)*
//*-------------------------------------------------------------------**
//*
//STEP02 EXEC PGM=VB2LSEQ
//*
//INFILE   DD DSN=AWS.M2.TXT2PDF2.PDF.VB,DISP=SHR             
//*
//OUTFILE  DD DSN=AWS.M2.TXT2PDF2.PDF,                      
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=LSEQ,BLKSIZE=0)
//*
//SYSOUT   DD SYSOUT=*
//*
//
```

## Modificações
<a name="txt2pdf-mods"></a>

Para que o programa TXT2 PDF seja executado no ambiente de execução do AWS Mainframe Modernization Rocket Software, fizemos as seguintes alterações:
+ Alterações no código-fonte para garantir a compatibilidade com o tempo de execução do Rocket Software REXX
+ Alterações para garantir que o programa possa ser executado nos sistemas operacionais Windows e Linux
+ Modificações para suportar o runtime EBCDIC e ASCII

## Referências
<a name="txt2pdf-ref"></a>

TXT2Referências em PDF e código-fonte:
+ [Conversor de texto para PDF](https://homerow.net/rexx/txt2pdf/)
+ [z/OSFerramentas gratuitas TCP/IP e de correio](http://www.lbdsoftware.com/tcpip.html)
+ [TXT2Guia de referência do usuário em PDF](http://www.lbdsoftware.com/TXT2PDF-User-Guide.pdf)

# Utilitário em lote M2DFUTIL
<a name="m2dfutil"></a>

O M2DFUTIL é um programa utilitário em JCL que fornece funções de backup, restauração, exclusão e cópia em conjuntos de dados, semelhantes ao suporte fornecido pelo utilitário ADRDSSU de mainframe. Esse programa retém muitos dos parâmetros SYSIN do ADRDSSU, o que simplifica o processo de migração para esse novo utilitário.

**Topics**
+ [

## Plataformas compatíveis
](#m2dfutil-platforms)
+ [

## Requisitos da plataforma
](#m2dfutil-platform)
+ [

## Suporte futuro planejado
](#m2udfutil-future-support)
+ [

## Locais dos ativos
](#mdfutil-assets)
+ [

## Configure o tempo de execução do M2DFUTIL ou da modernização do AWS mainframe no Amazon EC2 (incluindo 2.0) AppStream
](#mdfutil-dependencies)
+ [

## Sintaxe geral
](#mdfutil-syntax)
+ [

## Amostra JCLs
](#mdfutil-sample-jcls)

## Plataformas compatíveis
<a name="m2dfutil-platforms"></a>

Você pode usar o M2DFUTIL em qualquer uma das seguintes plataformas:
+ Rocket Software (anteriormente Micro Focus) ES no Windows (64 bits e 32 bits)
+ Rocket Software ES em Linux (64 bits)

## Requisitos da plataforma
<a name="m2dfutil-platform"></a>

O M2DFUTIL depende da chamada de um script para realizar um teste de expressão regular. No Windows, você deve instalar o Windows Services for Linux (WSL) para que esse script seja executado.

## Suporte futuro planejado
<a name="m2udfutil-future-support"></a>

Os recursos que atualmente não estão disponíveis no utilitário ADRDSSU de mainframe, mas que estão no escopo futuro, incluem: 
+ M2 gerenciado
+ VSAM
+ Suporte a COPY para a renomeação de nomes de arquivos
+ Suporte a RENAME para RESTORE 
+ INCLUDE e EXCLUDE vários
+ Cláusula BY para subseleção por DSORG, CREDT, EXPDT
+ Cláusula MWAIT para tentar novamente falhas de enfileiramento
+ Suporte ao armazenamento do S3 para DUMP/RESTORE

## Locais dos ativos
<a name="mdfutil-assets"></a>

O módulo de carregamento desse utilitário é chamado `M2DFUTIL.so` no Linux e `M2DFUTIL.dll` no Windows. Esse módulo de carregamento pode ser encontrado em um dos seguintes locais:
+ 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`

O script usado para testes de expressão regular é chamado `compare.sh`. O script pode ser encontrado em um dos seguintes locais:
+ Linux: `/opt/aws/m2/microfocus/utilities/scripts`
+ Windows (32 bits): `C:\AWS\M2\MicroFocus\Utilities\scripts`

## Configure o tempo de execução do M2DFUTIL ou da modernização do AWS mainframe no Amazon EC2 (incluindo 2.0) AppStream
<a name="mdfutil-dependencies"></a>

Configure sua região do Enterprise Server com o seguinte:
+ Adicione as seguintes variáveis em **[ES-Environment]**:
  + `M2DFUTILS_BASE_LOC`: o local padrão para a saída DUMP
  + `M2DFUTILS_SCRIPTPATH`: o local do script `compare.sh` documentado em **Locais dos ativos**
  + `M2DFUTILS_VERBOSE`: [VERBOSO ou NORMAL]. Isso controla o nível de detalhe na saída `SYSPRINT `
+ Verificar se o caminho do módulo de carregamento foi adicionado à configuração `JES\Configuration\JES Program Path`
+ Verifique se os scripts no diretório de utilitários têm permissões de execução. É possível adicionar uma permissão de execução usando o comando `chmod + x <script name>`, no ambiente Linux

## Sintaxe geral
<a name="mdfutil-syntax"></a>

### DUMP
<a name="mdfutil-dump"></a>

Fornece a possibilidade de copiar arquivos do local catalogado atual para um local de backup. No momento, esse local deve ser um sistema de arquivos.

#### Processo
<a name="mdfutil-dump-process"></a>

DUMP executará o seguinte:

1. Crie o diretório do local de destino.

1. Catalogue o diretório do local de destino como membro do PDS.

1. Determine os arquivos a serem incluídos processando o parâmetro INCLUDE.

1. Desmarque os arquivos incluídos processando o parâmetro EXCLUDE.

1. Determine se os arquivos que estão sendo despejados devem ser EXCLUÍDOS.

1. Coloque em fila os arquivos a serem processados.

1. Copie os arquivos.

1. Exporte as informações do DCB catalogadas dos arquivos copiados para um arquivo secundário no local de destino para auxiliar nas futuras operações de RESTORE.

#### Sintaxe
<a name="mdfutil-dump-syntax"></a>

```
DUMP
TARGET ( TARGET LOCATION  )    -
INCLUDE ( DSN. )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ DELETE ]
```

#### Parâmetros necessários
<a name="mdfutil-dump-requiredparam"></a>

Veja abaixo os parâmetros necessários para DUMP:
+ `SYSPRINT DD NAME`: para conter as informações adicionais de registro
+ `TARGET`: local de destino Pode ser um ou outro.
  + Caminho completo do local de despejo
  + Nome do subdiretório criado no local definido na variável **M2DFUTILS\$1BASE\$1LOC**
+ `INCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida
+ `EXCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida

#### Parâmetros opcionais
<a name="mdfutil-dump-optionalparam"></a>
+ CANCEL: cancele se ocorrer algum erro. Os arquivos que foram processados serão retidos
+ (Padrão) IGNORE: ignore qualquer erro e processo até o final
+ DELETE: se nenhum erro ENQ ocorrer, o arquivo será excluído e não será catalogado

### DELETE
<a name="mdfutil-delete"></a>

Oferece a possibilidade de excluir e não catalogar arquivos em massa. Os arquivos não têm backup.

#### Processo
<a name="mdfutil-delete-process"></a>

DELETE executará o seguinte:

1. Determine os arquivos a serem incluídos processando o parâmetro INCLUDE.

1. Desmarque os arquivos incluídos processando o parâmetro EXCLUDE.

1. Coloque em fila os arquivos a serem processados. Definindo a disposição como OLD, DELETE, KEEP.

#### Sintaxe
<a name="mdfutil-delete-syntax"></a>

```
DELETE
INCLUDE ( DSN )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ DELETE ]
```

#### Parâmetros necessários
<a name="mdfutil-delete-requiredparam"></a>

Veja abaixo os parâmetros necessários para DELETE:
+ `SYSPRINT DD NAME`: para conter as informações adicionais de registro
+ `INCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida 
+ `EXCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida 

#### Parâmetros opcionais
<a name="mdfutil-delete-optionalparam"></a>
+ CANCEL: cancele se ocorrer algum erro. Os arquivos que foram processados serão retidos 
+ (Padrão) IGNORE: ignore qualquer erro e processo até o final

### RESTORE
<a name="mdfutil-restore"></a>

Fornece a possibilidade de restaurar arquivos que tiveram backup previamente DUMP. Os arquivos são restaurados no local catalogado original, a menos que RENAME seja usado para alterar o DSNAME restaurado.

#### Processo
<a name="mdfutil-restore-process"></a>

RESTORE executará o seguinte:

1. Valide o diretório do local de origem.

1. Determine os arquivos a serem incluídos processando o arquivo de exportação do catálogo.

1. Desmarque os arquivos incluídos processando o parâmetro EXCLUDE.

1. Coloque em fila os arquivos a serem processados.

1. Arquivos de catálogo que não são catalogados com base em suas informações de exportação.

1. Se um arquivo já estiver catalogado e as informações do catálogo de exportação forem as mesmas, RESTORE substituirá o conjunto de dados catalogado se a opção REPLACE estiver definida.

#### Sintaxe
<a name="mdfutil-restore-syntax"></a>

```
RESTORE
SOURCE ( TARGET LOCATION ) 
INCLUDE ( DSN )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ REPLACE]
```

#### Parâmetros necessários
<a name="mdfutil-restore-requiredparam"></a>

Veja abaixo os parâmetros necessários para RESTORE:
+ `SYSPRINT DD NAME`: para conter as informações adicionais de registro 
+ `SOURCE`: local de origem. Pode ser um ou outro.
  + Caminho completo do local de despejo
  + Nome do subdiretório criado no local definido na variável **M2DFUTILS\$1BASE\$1LOC**
+ `INCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida
+ `EXCLUDE`: um único DSNAME nomeado ou uma string de pesquisa de DSN do mainframe válida

#### Parâmetros opcionais
<a name="mdfutil-restore-optionalparam"></a>
+ CANCEL: cancele se houver algum erro. Arquivos processados retidos
+ (Padrão) IGNORE: ignore qualquer erro e processo até o final
+ REPLACE: se o arquivo que está sendo restaurado já estiver catalogado e os registros do catálogo forem os mesmos, substitua o arquivo catalogado

## Amostra JCLs
<a name="mdfutil-sample-jcls"></a>

 **Trabalho de DUMP**

Esse trabalho criará um subdiretório chamado `TESTDUMP`. Esse é o local de backup padrão especificado pela variável **M2DFUTILS\$1BASE\$1LOC**. Ele criará uma biblioteca PDS para esse backup chamada `M2DFUTILS.TESTDUMP`. Os dados do catálogo exportado são armazenados em um arquivo sequencial de linhas no diretório de backup chamado `CATDUMP.DAT`. Todos os arquivos selecionados serão copiados para esse diretório de backup.

```
//M2DFDMP JOB 'M2DFDMP',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
//SYSPRINT DD DSN=TESTDUMP.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSIN    DD *
DUMP TARGET(TESTDUMP)               -
     INCLUDE(TEST.FB.FILE*.ABC)     -
 CANCEL
/*
//
```

 **Trabalho DELETE**

Esse trabalho excluirá todos os arquivos do catálogo que correspondam ao parâmetro INCLUDE.

```
/M2DFDEL JOB 'M2DFDEL',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
//SYSPRINT DD DSN=TESTDEL.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  DELETE                               -
     INCLUDE(TEST.FB.FILE*.ABC)        -
 CANCEL
/*
 //
```

 **Trabalho RESTORE**

Esse trabalho restaurará os arquivos que correspondem ao parâmetro INCLUDE do local de backup de `TESTDUMP`. Os arquivos catalogados serão substituídos se o arquivo catalogado for o mesmo da exportação de CATDUMP e a opção REPLACE for especificada.

```
//M2DFREST JOB 'M2DFREST',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
////SYSPRINT DD DSN=TESTREST.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
RESTORE SOURCE(TESTDUMP)               -
     INCLUDE(TEST.FB.FILE*.ABC)        -
 IGNORE
 REPLACE
/*
//
```

# Utilitário em lote M2RUNCMD
<a name="m2runcmd"></a>

Você pode usar o M2RUNCMD, um programa utilitário em lote, para executar comandos, scripts e chamadas de sistema da Rocket Software (antiga Micro Focus) diretamente da JCL, em vez de executá-los em um terminal ou prompt de comando. A saída dos comandos é registrada no log de spool do trabalho em lote.

**Topics**
+ [

## Plataformas compatíveis
](#m2runcmd-platforms)
+ [

## Configure o M2RUNCMD para o tempo de execução de modernização de AWS mainframe no Amazon EC2 (incluindo 2.0) AppStream
](#m2runcmd-configure)
+ [

## Amostra JCLs
](#m2runcmd-sample-jcls)

## Plataformas compatíveis
<a name="m2runcmd-platforms"></a>

É possível usar o M2RUNCMD nas seguintes plataformas:
+ Rocket Software Runtime (no Amazon EC2)
+  Todas as variantes dos produtos Rocket Software Enterprise Developer (ED) e Rocket Software Enterprise Server (ES).

## Configure o M2RUNCMD para o tempo de execução de modernização de AWS mainframe no Amazon EC2 (incluindo 2.0) AppStream
<a name="m2runcmd-configure"></a>

Se seus aplicativos migrados estiverem sendo executados em tempo de execução de modernização de AWS mainframe no Amazon EC2, configure o M2RUNCMD da seguinte forma.
+ Altere o [caminho do programa Micro Focus JES](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/index.html?t=GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html) para incluir a localização binária dos utilitários em lote. Se precisar especificar vários caminhos, use dois-pontos (:) para separar caminhos no Linux e ponto e vírgula (;) no 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`

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

Para testar a instalação, você pode usar qualquer um dos exemplos a seguir JCLs.

 **RUNSCRL1.jcl**

Esse exemplo de JCL cria um script e o executa. A primeira etapa cria um script chamado `/tmp/TEST_SCRIPT.sh` e com conteúdo de dados no stream de `SYSUT1`. A segunda etapa define a permissão de execução e executa o script criado na primeira etapa. Você também pode optar por realizar apenas a segunda etapa para executar o Rocket Software e os comandos do sistema já 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**

A saída do comando ou script executado é gravada no log de `SYSOUT`. Para cada comando executado, ele exibe o comando, a saída e o 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 exemplo de JCL usa RUNCMD para executar vários 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
/*
//
```