Neste post vou apresentar a estrutura inicial de um sistema desenvolvido em Natural/Adabas, criado para disponibilizar diversas rotinas de suporte, consulta, manutenção e administração do InfoPrint Server dentro do ambiente Mainframe. A ideia deste sistema é reunir, em um único ponto de acesso, várias funcionalidades que fazem parte do dia a dia da equipe responsável pelo suporte ao ambiente de impressão. Em vez de o operador precisar executar diferentes programas de forma independente ou conhecer individualmente cada rotina disponível, o sistema apresenta um menu principal, organizado de maneira simples e objetiva, facilitando o acesso às funcionalidades. A primeira tela apresentada ao operador é justamente esse menu. Ela funciona como a porta de entrada da aplicação, permitindo que o usuário escolha a operação que deseja executar por meio de uma opção numérica. Por trás de uma tela aparentemente simples, existe toda uma estrutura de programação. Cada opção do menu está associada a uma determinada rotina, que pode realizar consultas, alterações, criações, exclusões, processamento de informações, execução de backups ou outras tarefas relacionadas ao ambiente do InfoPrint Server.
Programa inicial - infomenu
Esse é o programa Natural que submete um job
Esse é o programa Natural
Esse é o programa Natural
Esse programa - abaixa vamos criar a view
A view criada para fazer essa consulta
Programa Natural
INFO0500 - Programa adicionando id de terminal
INFO0600 - Programa adicionando id da impressora
View criada foi essa
Programa Natural
Programa Natural
Programa Natural
Programa Natural
Programa Natural
Programa Natural
o programa INFO0998 carrega os dados do dataset para o banco Adabas
Opção que temos para criar, alterar e pesquisar os FORMS que temos definidos na instalação
Programa Natural
Programa Natural
Programa Natural
Programa Natural
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFOMENU
07:42:04 ------------------------------------------------------------ 12/08/26
INFOPRINT SERVER INFOPRIN
------------------------------------------------------------------------------
010 - INFOPRINT LOG PRINT 050 - CRIACAO DE PICS
020 - CONSULTAR IMPRESSORA 060 - DELETAR PICS
030 - DISPONIVEL PICS/TICS 070 - BACKUP INFOPRINT
040 - MODIFICAR IMPRESSORA 080 - FORMS INFOPRINT
------------------------------------------------------------------------------
DIGITE A OPCAO DESEJADA 0__
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG QUIT
Programa inicial - infomenu
* ==================================================================== *
* FUNCAO: MENU DE OPCOES PARA O INFOPRINT *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* DATA : 15/12/2024 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
TREQ NAMED ' ' /* NOVAS PFS /*
PF3 = PGM NAMED 'EXIT'
PF11 = 'INFO0107' NAMED 'LOG'
PF12 = PGM NAMED 'QUIT'
* ==================================================================== *
REPEAT
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/32T 'INFOPRINT SERVER'(I) 72T *LIBRARY-ID /
* ==================================================================== *
/2T '-' (78)
/8T '010 - INFOPRINT LOG PRINT '(I)
45T '050 - CRIACAO DE PICS '(I)
/8T '020 - CONSULTAR IMPRESSORA '(I)
45T '060 - DELETAR PICS '(I)
/8T '030 - DISPONIVEL PICS/TICS '(I)
45T '070 - BACKUP INFOPRINT '(I)
/8T '040 - MODIFICAR IMPRESSORA '(I)
45T '080 - FORMS INFOPRINT '(I)
/2T '-' (78)
* ==================================================================== *
// 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
// 30T'TECLE PF3 PARA SAIR'(I)
* ==================================================================== *
IF #ARQ1 EQ 10 FETCH 'INFO0123'
IF #ARQ1 EQ 20 FETCH 'INFO0105'
IF #ARQ1 EQ 30 FETCH 'INFO0101'
IF #ARQ1 EQ 40 FETCH 'INFO0109'
IF #ARQ1 EQ 50 FETCH 'INFO0103'
IF #ARQ1 EQ 60 FETCH 'INFO0104'
IF #ARQ1 EQ 70 FETCH 'INFO0108'
IF #ARQ1 EQ 80 FETCH 'INFO0113'
* ==================================================================== *
IF *PF-KEY EQ 'PF3' OR = 'PF12' TERMINATE
IF *PF-KEY EQ 'PF11' FETCH 'INFO0107'
* ==================================================================== *
END
Opção 10
Essa opção submete um job para ver o log das impressoras do Infoprint;
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0123
07:47:27 ------------------------------------------------------------ 12/08/26
INFOPRINT PRINT LOG
------------------------------------------------------------
TECLE ENTER PARA CONTINUAR
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU
Esse é o programa Natural que submete um job
* ------------------------------------------------------------------- *
* FUNCAO: LISTAR O LOG DO INFOPRINT *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #DBID (A3)
1 #FILE (N3)
1 #ISNSIZE (N1)
1 #NISIZE (N9)
1 #UISIZE (N9)
1 #DSSIZE (N9)
1 #MAXISN (N13)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C04 (A80) INIT
<'//* INFOPRINT LOG DE ERRO NA SYSOUT DO JOB'>
1 #C05 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C06 (A80) INIT <'//STEP1 EXEC PGM=ICEGENER'>
1 #C07 (A80) INIT <'//SYSPRINT DD SYSOUT=A'>
1 #C08 (A80) INIT <'//SYSUT1 DD DSN=AOP.PRINTWAY.MSGFILE,DISP=SHR'>
1 #C09 (A80) INIT <'//SYSUT2 DD SYSOUT=G'>
1 #C10 (A80) INIT <'//SYSIN DD DUMMY'>
1 #Y2K (A1) INIT <'N'>
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET CONTROL 'U'
SET KEY PF3 NAMED 'MENU'
PF8 NAMED ' ' PF9 NAMED ' '
MOVE *INIT-USER TO #USER
REPEAT
RESET INITIAL #Y2K
* ==================================================================== *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78) /
02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM /
02T *TIME(AL=8)
11T '-' (60)
72T *DATE /
30T 'INFOPRINT PRINT LOG' (I) //
11T '-' (60) //
27T 'TECLE ENTER PARA CONTINUAR' (I) //
11T '-' (60) //
*
/28T'TECLE PF3 PARA VOLTAR'(I)
IF *PF-KEY EQ 'PF3'
FETCH 'INFOMENU'
END-IF
* ==================================================================== *
COMPUTE #TOT = 10 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 08/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFOMENU'
END-REPEAT
END
Opção 20
Essa opção pesquisa as impressoras cadastradas no infoprint na carga que foi feita para um arquivo Adabas - essa opção é um menu para pesquisar o nome da impressora e pesquisar o IP
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0105
07:58:25 ------------------------------------------------------------ 12/08/26
CONSULTANDO PICS INFOPRIN
------------------------------------------------------------
10 - PESQUISANDO PICS DA IMPRESSORA
20 - PESQUISANDO IP DA IMPRESSORA
------------------------------------------------------------
DIGITE A OPCAO DESEJADA 0__
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG QUIT
Esse é o programa Natural
* ==================================================================== *
* FUNCAO: MENU DE PESQUISA DE IMPRESSORA *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* DATA : 15/12/2024 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
TREQ NAMED ' ' /* NOVAS PFS /*
PF3 = PGM NAMED 'EXIT'
PF11 = 'INFO0107' NAMED 'LOG'
PF12 = PGM NAMED 'QUIT'
* ==================================================================== *
REPEAT
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/02T *USER
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/32T 'CONSULTANDO PICS'(I) 72T *LIBRARY-ID /
/11T '-' (60)
/24T '10 - PESQUISANDO PICS DA IMPRESSORA'(I)
/24T '20 - PESQUISANDO IP DA IMPRESSORA'(I)
/11T'-' (60)
* ==================================================================== *
// 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
// 30T'TECLE PF3 PARA SAIR'(I)
* ==================================================================== *
IF #ARQ1 EQ 10 FETCH 'INFO0995'
IF #ARQ1 EQ 20 FETCH 'INFO0106'
* ==================================================================== *
IF *PF-KEY EQ 'PF3' OR = 'PF12' FETCH 'INFOMENU'
IF *PF-KEY EQ 'PF11' FETCH 'INFO0107'
* ==================================================================== *
END
Pesquisando Nome da Impressora
INFO0995 - Pesquisando o nome da impressora
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0995
08:22:54 ------------------------------------------------------------ 12/08/26
CONSULTANDO APLICATIVOS
------------------------------------------------------------
DIGITE A PICS .................: ________
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU LOG
Esse é o programa Natural
* -------------------------------------------------------------------- *
* FUNCAO ...: PESQUISAR IMPRESSORAS DO INFOPRINT *
* CRIADO ...: CLAUDEMAR MARTINS DE SA *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 IMPRESSORA-VIEW VIEW OF AAFU-INFOPRINT-PRINTWAY
2 PRINTER-NAME
2 PRINTER-TYPE
2 LOCATION
2 LUNAME
2 DESTINATION
2 OUTPUT-CLASS
2 PRINT-QUEUE-NAME
2 PRINTER-IP-ADDRESS
2 DESCRIPTION
2 LPR-PRINT-FUNCTION
2 LPR-MODE
2 INCLUDE-PRINTWAY-OPTIONS
* -------------------------------------------------------------------- *
1 #PICS (A8)
1 #PRINTER-NAME (A10/01)
1 #PRINTER-TYPE (A20/01)
1 #LOCATION (A53/01)
1 #LUNAME (A10/01)
1 #DESTINATION (A10/01)
1 #OUTPUT-CLASS (A01/01)
1 #PRINT-QUEUE-NAME (A20/01)
1 #PRINTER-IP-ADDRESS (A15/01)
1 #DESCRIPTION (A53/01)
1 #LPR-PRINT-FUNCTION (A02/01)
1 #LPR-MODE (A18/01)
1 #INCLUDE-PRINTWAY-OPTIONS (A9/01)
1 #CONTA (N2)
END-DEFINE
FORMAT LS=180 PS=60
* =====================================================================*
FORMAT KD=ON
SET CONTROL 'U'
SET KEY PF3 = 'INFO0105' NAMED 'MENU'
REPEAT
* =====================================================================
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 27T 'CONSULTANDO APLICATIVOS' (I)
//
11T '------------------------------------------------------------'
//
11T ' DIGITE A PICS .................:' #PICS
//
11T '------------------------------------------------------------'
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3' FETCH 'OPERP600' END-IF
IF *PF-KEY EQ 'PF4' FETCH 'OPERP602' END-IF
* ==================================================================== *
FIND (1) IMPRESSORA-VIEW WITH PRINTER-NAME = #PICS
IF NO RECORDS FOUND
* ==================================================================== *
INPUT USING MAP 'OPERM502'
FETCH 'INFO0995'
END-NOREC
ADD 1 TO #CONTA
* ==================================================================== *
MOVE PRINTER-NAME TO #PRINTER-NAME (#CONTA)
MOVE PRINTER-TYPE TO #PRINTER-TYPE (#CONTA)
MOVE LOCATION TO #LOCATION (#CONTA)
MOVE LUNAME TO #LUNAME (#CONTA)
MOVE DESTINATION TO #DESTINATION (#CONTA)
MOVE OUTPUT-CLASS TO #OUTPUT-CLASS (#CONTA)
MOVE PRINT-QUEUE-NAME TO #PRINT-QUEUE-NAME (#CONTA)
MOVE PRINTER-IP-ADDRESS TO #PRINTER-IP-ADDRESS (#CONTA)
MOVE DESCRIPTION TO #DESCRIPTION (#CONTA)
MOVE LPR-PRINT-FUNCTION TO #LPR-PRINT-FUNCTION (#CONTA)
MOVE LPR-MODE TO #LPR-MODE (#CONTA)
MOVE INCLUDE-PRINTWAY-OPTIONS TO #INCLUDE-PRINTWAY-OPTIONS (#CONTA)
* =====================================================================
INPUT USING MAP 'INFO0996'
END-FIND
FETCH 'INFO0995'
* =====================================================================
END-REPEAT
END
Pesquisando IP da Impressora
Programa INFO0106 - Pesquisando pelo IP
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0106
08:25:38 ------------------------------------------------------------ 12/08/26
CONSULTANDO APLICATIVOS
------------------------------------------------------------
DIGITE O IP ...................: ________________
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU LOG
Esse programa - abaixa vamos criar a view
* -------------------------------------------------------------------- *
* FUNCAO ...: PESQUISAR IMPRESSORAS DO INFOPRINT *
* CRIADO ...: CLAUDEMAR MARTINS DE SA *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 IMPRESSORA-VIEW VIEW OF AAFU-INFOPRINT-PRINTWAY
2 PRINTER-NAME
2 PRINTER-TYPE
2 LOCATION
2 LUNAME
2 DESTINATION
2 OUTPUT-CLASS
2 PRINT-QUEUE-NAME
2 PRINTER-IP-ADDRESS
2 DESCRIPTION
2 LPR-PRINT-FUNCTION
2 LPR-MODE
2 INCLUDE-PRINTWAY-OPTIONS
* -------------------------------------------------------------------- *
1 #PICS (A16)
1 #PRINTER-NAME (A10/11)
1 #PRINTER-TYPE (A20/11)
1 #LOCATION (A53/11)
1 #LUNAME (A10/11)
1 #DESTINATION (A10/11)
1 #OUTPUT-CLASS (A01/11)
1 #PRINT-QUEUE-NAME (A20/11)
1 #PRINTER-IP-ADDRESS (A15/11)
1 #DESCRIPTION (A53/11)
1 #LPR-PRINT-FUNCTION (A02/11)
1 #LPR-MODE (A18/11)
1 #INCLUDE-PRINTWAY-OPTIONS (A9/11)
1 #CONTA (N2)
END-DEFINE
FORMAT LS=180 PS=60
* =====================================================================*
FORMAT KD=ON
SET CONTROL 'U'
SET KEY PF3 = 'INFO0105' NAMED 'MENU'
REPEAT
* =====================================================================
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 27T 'CONSULTANDO APLICATIVOS' (I)
//
11T '------------------------------------------------------------'
//
07T ' DIGITE O IP ...................:' #PICS
//
11T '------------------------------------------------------------'
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3' FETCH 'INFO0105' END-IF
IF *PF-KEY EQ 'PF4' FETCH 'INFO0105' END-IF
* ==================================================================== *
FIND IMPRESSORA-VIEW WITH PRINTER-IP-ADDRESS = #PICS
IF NO RECORDS FOUND
* ==================================================================== *
INPUT USING MAP 'OPERM502'
FETCH 'INFO0995'
END-NOREC
ADD 1 TO #CONTA
* ==================================================================== *
MOVE PRINTER-NAME TO #PRINTER-NAME (#CONTA)
MOVE PRINTER-TYPE TO #PRINTER-TYPE (#CONTA)
MOVE LOCATION TO #LOCATION (#CONTA)
MOVE LUNAME TO #LUNAME (#CONTA)
MOVE DESTINATION TO #DESTINATION (#CONTA)
MOVE OUTPUT-CLASS TO #OUTPUT-CLASS (#CONTA)
MOVE PRINT-QUEUE-NAME TO #PRINT-QUEUE-NAME (#CONTA)
MOVE PRINTER-IP-ADDRESS TO #PRINTER-IP-ADDRESS (#CONTA)
MOVE DESCRIPTION TO #DESCRIPTION (#CONTA)
MOVE LPR-PRINT-FUNCTION TO #LPR-PRINT-FUNCTION (#CONTA)
MOVE LPR-MODE TO #LPR-MODE (#CONTA)
MOVE INCLUDE-PRINTWAY-OPTIONS TO #INCLUDE-PRINTWAY-OPTIONS (#CONTA)
* =====================================================================
PRINT
/
'PRINTER-NAME .........: ' PRINTER-NAME /
'PRINTER-TYPE .........: ' PRINTER-TYPE /
'DESTINATION ..........: ' DESTINATION /
'LOCATION .............: ' LOCATION /
'OUTPUT-CLASS .........: ' OUTPUT-CLASS /
'PRINT-QUEUE-NAME .....: ' PRINT-QUEUE-NAME /
'PRINTER-IP-ADDRESS ...: ' PRINTER-IP-ADDRESS /
'DESCRIPTION ..........: ' DESCRIPTION /
'LPR-PRINT-FUNCTION ...: ' LPR-PRINT-FUNCTION /
'LPR-MODE .............: ' LPR-MODE
/
* -------------------------------------------------------------------- *
END-FIND
* -------------------------------------------------------------------- *
WRITE TITLE LEFT
*TIME(AL=8) 27T 'CONSULTANDO PICS' (I) 71T *DATE
AT END OF PAGE
INPUT ' '
IF *PF-KEY EQ 'PF3'
FETCH 'INFOMENU'
END-IF
END-ENDPAGE
FETCH 'INFO0106'
END-REPEAT
* -------------------------------------------------------------------- *
END
A view criada para fazer essa consulta
08:53:35 ***** NATURAL LIST COMMAND ***** 12/08/2026
User DBAP055 - List DDM AAFU-INFOPRINT-PRINTWAY - Library INFOPRIN
DDM DBID 0 DDM FNR 492 VSAM Name Default Sequence Page 1
T L DB Name F Leng S D Remark
- - -- -------------------------------- - ---- - - ------------------------
* Generation started
* at 2025-06-19 10:30:27
* by user DBAP055
*
1 AA LINE A 80 N
1 AB PRINTER-NAME A 10 N D
1 AC PRINTER-TYPE A 20 N
1 AD LOCATION A 53 N
1 AE LUNAME A 10 N
1 AF DESTINATION A 10 N
1 AG OUTPUT-CLASS A 1 N
1 AH PRINT-QUEUE-NAME A 20 N
1 AI PRINTER-IP-ADDRESS A 15 N D
1 AJ DESCRIPTION A 53 N
1 AK LPR-PRINT-FUNCTION A 2 N
1 AL LPR-MODE A 18 N
1 AM INCLUDE-PRINTWAY-OPTIONS A 9 N
Top of List.
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Short -- - + ++ Canc
Opção 30
Essa opção vamos criar um controle id da impressora e terminal disponivel para cadastro - tem uma view criada no Adabas
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0101
08:48:36 ------------------------------------------------------------ 12/08/26
INFOPRINT SERVER INFOPRIN
LIVRE.....: PICS2698
USUÁRIO...: SUP0169
DATA/HORA.: 18/11/25 15:49:01
LIVRE.....: TICS6828
USUÁRIO...: DBAP055
DATA/HORA.: 20/01/25 11:03:23
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
+TICS +PICS LOG
Programa Natural
* -------------------------------------------------------------------- *
* PROGRAMA : INFO0490 *
* OBJETIVO : EXIBIR PICS/TICS LIVRES *
* NATURAL : 4.1.4 *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
01 CADASTRO VIEW OF AAFU-LUNAME-TCPIP-INFOPRINT
02 AAF-LUNAME
02 AAF-MODEL
02 AAF-USER
02 AAF-DATA
02 AAF-HORA
01 #RESULTADO (A08)
01 #DATAHORA (A17)
END-DEFINE
* -------------------------------------------------------------------- *
FORMAT LS=132 PS=21 KD=ON
SET KEY PF3 PF4 PF8 = ' '
PF4 = PGM NAMED '+TICS'
PF8 = PGM NAMED '+PICS'
WRITE TITLE LEFT
02T '-' (78)
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/32T 'INFOPRINT SERVER'(I) 72T *LIBRARY-ID /
* -------------------------------------------------------------------- *
FIND CADASTRO
WITH AAF-MODEL = 'PICS'
OR AAF-MODEL = 'TICS'
SORTED BY AAF-LUNAME
* -------------------------------------------------------------------- *
COMPRESS AAF-MODEL AAF-LUNAME
INTO #RESULTADO LEAVING NO
* -------------------------------------------------------------------- *
COMPRESS AAF-DATA AAF-HORA
INTO #DATAHORA
* -------------------------------------------------------------------- *
WRITE NOTITLE
26T 'LIVRE.....:' #RESULTADO
/ 26T 'USUôRIO...:' AAF-USER
/ 26T 'DATA/HORA.:' #DATAHORA
/
* -------------------------------------------------------------------- *
AT END OF PAGE
INPUT ' '
DECIDE ON FIRST VALUE OF *PF-KEY
VALUE 'PF4'
FETCH 'INFO0500'
VALUE 'PF8'
FETCH 'INFO0600'
NONE VALUE
FETCH 'INFOMENU'
* -------------------------------------------------------------------- *
END-DECIDE
END-ENDPAGE
END-FIND
* -------------------------------------------------------------------- *
* END-IF
END
INFO0500 - Programa adicionando id de terminal
* -------------------------------------------------------------------- *
* FUNCAO .: ATUALIZA A ULTIMA TICS CADASTRADA PARA CONTROLE *
* AUTOR ..: CLAUDEMAR MARTINS *
* -------------------------------------------------------------------- *
DEFINE DATA
LOCAL
01 LUNAME VIEW OF AAFU-LUNAME-TCPIP-INFOPRINT
02 AAF-LUNAME
02 AAF-MODEL
02 AAF-USER
02 AAF-DATA
02 AAF-HORA
01 #INCREMENTO-LUNAME (N04)
01 #USUARIO (A09)
01 #DATA (A08)
01 #HORA (A08)
END-DEFINE
* -------------------------------------------------------------------- *
FORMAT LS=250 PS=60
* -------------------------------------------------------------------- *
FIND LUNAME WITH AAF-MODEL = 'TICS'
ON ERROR
WRITE 'Erro ao tentar localizar o registro TICS.'
ESCAPE ROUTINE
END-ERROR
* -------------------------------------------------------------------- *
IF *COUNTER > 0
* -------------------------------------------------------------------- *
* INICIALIZA O INCREMENTO COM O VALOR ATUAL E CALCULA O NOVO VALOR
* -------------------------------------------------------------------- *
MOVE AAF-LUNAME TO #INCREMENTO-LUNAME
ADD 1 TO #INCREMENTO-LUNAME
MOVE #INCREMENTO-LUNAME TO AAF-LUNAME
MOVE *INIT-USER TO AAF-USER
MOVE *DATE TO AAF-DATA
MOVE *TIMX TO AAF-HORA
* -------------------------------------------------------------------- *
* ATUALIZA O REGISTRO ENCONTRADO
* -------------------------------------------------------------------- *
UPDATE (0210)
IF *ERROR EQ 0
WRITE 'Registro TICS atualizado com sucesso: ' AAF-LUNAME
END TRANSACTION
FETCH 'INFO0101'
ELSE
BACKOUT TRANSACTION
WRITE 'Erro ao tentar atualizar o registro TICS.'
END-IF
ELSE
* -------------------------------------------------------------------- *
* REGISTRO TICS NãO ENCONTRADO
* -------------------------------------------------------------------- *
WRITE 'Registro TICS não encontrado no arquivo.'
END-IF
END-FIND
* -------------------------------------------------------------------- *
END
INFO0600 - Programa adicionando id da impressora
* -------------------------------------------------------------------- *
* FUNCAO .: ATUALIZA A ULTIMA PICS CADASTRADA PARA CONTROLE *
* AUTOR ..: CLAUDEMAR MARTINS *
* -------------------------------------------------------------------- *
DEFINE DATA
LOCAL
01 LUNAME VIEW OF AAFU-LUNAME-TCPIP-INFOPRINT
02 AAF-LUNAME
02 AAF-MODEL
02 AAF-USER
02 AAF-DATA
02 AAF-HORA
01 #INCREMENTO-LUNAME (N04)
01 #USUARIO (A09)
01 #DATA (A08)
01 #HORA (A08)
END-DEFINE
* -------------------------------------------------------------------- *
FORMAT LS=250 PS=60
* -------------------------------------------------------------------- *
FIND LUNAME WITH AAF-MODEL = 'PICS'
ON ERROR
WRITE 'Erro ao tentar localizar o registro PICS.'
ESCAPE ROUTINE
END-ERROR
* -------------------------------------------------------------------- *
IF *COUNTER > 0
* -------------------------------------------------------------------- *
* INICIALIZA O INCREMENTO COM O VALOR ATUAL E CALCULA O NOVO VALOR
* -------------------------------------------------------------------- *
MOVE AAF-LUNAME TO #INCREMENTO-LUNAME
ADD 1 TO #INCREMENTO-LUNAME
MOVE #INCREMENTO-LUNAME TO AAF-LUNAME
MOVE *INIT-USER TO AAF-USER
MOVE *DATE TO AAF-DATA
MOVE *TIMX TO AAF-HORA
* -------------------------------------------------------------------- *
* ATUALIZA O REGISTRO ENCONTRADO
* -------------------------------------------------------------------- *
UPDATE (0210)
IF *ERROR EQ 0
WRITE 'Registro PICS atualizado com sucesso: ' AAF-LUNAME
END TRANSACTION
FETCH 'INFO0101'
ELSE
BACKOUT TRANSACTION
WRITE 'Erro ao tentar atualizar o registro PICS.'
END-IF
ELSE
* -------------------------------------------------------------------- *
* REGISTRO TICS NãO ENCONTRADO
* -------------------------------------------------------------------- *
WRITE 'Registro PICS não encontrado no arquivo.'
END-IF
END-FIND
* -------------------------------------------------------------------- *
END
View criada foi essa
08:50:16 ***** NATURAL LIST COMMAND ***** 12/08/2026
User DBAP055 - List DDM AAFU-LUNAME-TCPIP-INFOPRINT - Library INFOPRIN
DDM DBID 0 DDM FNR 431 VSAM Name Default Sequence Page 1
T L DB Name F Leng S D Remark
- - -- -------------------------------- - ---- - - ------------------------
* Generation started
* at 2025-01-20 08:22:08
* by user DBAP055
*
1 AA AAF-MODEL A 4 N D
1 AB AAF-LUNAME N 4,0 N D
1 AC AAF-USER A 9 N
1 AD AAF-DATA A 8 N
1 AE AAF-HORA A 8 N
End of List.
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Short -- - + ++ Canc
Tela 40
Essa são as opções disponiveis - Alterar IP e alterar o Form (essa opção altera o formato paisagem/retrato)
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0109
10:12:16 ------------------------------------------------------------ 12/08/26
ALTERACAO DE IMPRESSORAS INFOPRIN
------------------------------------------------------------
10 - ALTERAR IP IMPRESSORA
20 - ALTERAR FORM IMPRESSORA
------------------------------------------------------------
DIGITE A OPCAO DESEJADA 0__
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG QUIT
Programa Natural
* ==================================================================== *
* FUNCAO: MENU DE ALTERACAO DE IMPRESSORAS *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* DATA : 14/10/2025 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
TREQ NAMED ' ' /* NOVAS PFS /*
PF3 = PGM NAMED 'EXIT'
** PF11 = 'INFO0107' NAMED 'LOG'
PF12 = PGM NAMED 'QUIT'
* ==================================================================== *
REPEAT
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/28T 'ALTERACAO DE IMPRESSORAS' (I) 72T *LIBRARY-ID /
* / 72T *LIBRARY-ID /
/11T '-' (60)
/24T '10 - ALTERAR IP IMPRESSORA'(I)
/24T '20 - ALTERAR FORM IMPRESSORA'(I)
/11T'-' (60)
* ==================================================================== *
// 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
// 30T'TECLE PF3 PARA SAIR'(I)
* ==================================================================== *
IF #ARQ1 EQ 10 FETCH 'INFO0102'
IF #ARQ1 EQ 20 FETCH 'INFO0110'
* ==================================================================== *
IF *PF-KEY EQ 'PF3' OR = 'PF12' FETCH 'INFOMENU'
* ==================================================================== *
END
Alterar IP da Impressora
Essa é o menu para alterar o IP da impressora
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0102
10:14:53 ------------------------------------------------------------ 12/08/26
ALTERAR IP IMPRESSORA INFOPRIN
------------------------------------------------------------
PICS ................ : ________
NUMERO DO IP ........ : ___________________
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- *
* FUNCAO: MUDAR O IP DE UMA IMPRESSORA NO INFOPRINT *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #PICS (A08)
1 #IP (A19)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* ALTERAR O IP DA IMPRESSORA #PICS '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'">
1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*">
1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*">
1 #C09 (A80) INIT <"//STDIN DD *">
1 #C10 (A80)
1 #C11 (A80)
**
1 #C12 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'>
1 #C13 (A80) INIT
<'//* GRAVANDO O LOG NO BANCO ADABAS'>
1 #C14 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C15 (A80) INIT
<'//STEP01 EXEC NATURAL,PARM1="SYS=P,MT=0,STACK=(LOG INFOPRIN)"'>
1 #C16 (A80) INIT <'//CMWKF01 DD SYSOUT=Z'>
1 #C17 (A80) INIT <'//CMWKF02 DD SYSOUT=Z'>
1 #C18 (A80) INIT <'//CMPRT01 DD SYSOUT=Z,HOLD=YES'>
1 #C19 (A80) INIT <'//CMPRINT DD SYSOUT=Z'>
1 #C20 (A80) INIT <'//SYSIN DD *'>
1 #C21 (A80)
1 #C22 (A80) INIT <'//FIMABEND ENDIF'>
**
1 #Y2K (A1) INIT <'N'>
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* ==================================================================== *
MOVE *INIT-USER TO #USER
REPEAT
RESET #ARQ
RESET INITIAL #Y2K
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 31T 'ALTERAR IP IMPRESSORA'(I) 72T *LIBRARY-ID /
/
11T '-' (60)
//
11T ' PICS ................ : ' #PICS
//
11T ' NUMERO DO IP ........ : ' #IP
//
11T '-' (60)
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3'
FETCH 'INFOMENU'
END-IF
* ==================================================================== *
IF #PICS = ' '
REINPUT 'NOME DE IMPRESSORA EM BRANCO' MARK *#ARQ ALARM
END-IF
* ==================================================================== *
IF #IP = ' '
REINPUT 'NOME DE IP EM BRANCO' MARK *#IP ALARM
END-IF
* ==================================================================== *
EXAMINE #PICS TRANSLATE INTO UPPER CASE
* ==================================================================== *
COMPRESS 'modify printer ' #PICS 'printer-ip-address = ' #IP
';' INTO #C10
COMPRESS 'display printer '#PICS
';' INTO #C11
* ==================================================================== *
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #PICS INTO #C21
* ==================================================================== *
COMPUTE #TOT = 22 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFOMENU'
END-REPEAT
END
Alterar o Forms da Impressora
Essa é uma opção que usamos muito para alterar o formulario da impressora (retrato/paisagem);
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0110
10:32:02 ------------------------------------------------------------ 12/08/26
ALTERAR FORMS IMPRESSORA INFOPRIN
------------------------------------------------------------
PICS ................ : ________
FORMS ............... : FORM000_
------------------------------------------------------------
FORM0007 - RETRATO
FORM0001 - PAISAGEM
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO: MUDAR O FORM DE UMA IMPRESSORA NO INFOPRINT *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #PICS (A08)
1 #FORMS (A08) INIT <'FORM000'>
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* ALTERAR O IP DA IMPRESSORA #PICS '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'">
1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*">
1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*">
1 #C09 (A80) INIT <"//STDIN DD *">
1 #C10 (A80)
1 #C11 (A80)
**
1 #C12 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'>
1 #C13 (A80) INIT
<'//* GRAVANDO O LOG NO BANCO ADABAS'>
1 #C14 (A80) INIT
<'//* -----------------------------------------------------'>
RESET INITIAL #Y2K
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 31T 'ALTERAR FORMS IMPRESSORA'(I) 72T *LIBRARY-ID /
/
11T '-' (60)
//
22T ' PICS ................ : ' #PICS
//
22T ' FORMS ............... : ' #FORMS
//
11T '-' (60)
/
59T 'FORM0007 ' (I) '- RETRATO'
/
59T 'FORM0001 ' (I) '- PAISAGEM'
/
* 19T 'FORM0007 ' (I) '- RETRATO / ' 'FORM0001 ' (I) '- PAISAGEM'
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3'
FETCH 'INFOMENU'
END-IF
* ==================================================================== *
IF #PICS = ' '
REINPUT 'NOME DE IMPRESSORA EM BRANCO' MARK *#ARQ ALARM
END-IF
* ==================================================================== *
IF #FORMS = 'FORM000 '
REINPUT 'COMPLETE O CAMPO FORMS' MARK *#FORMS ALARM
END-IF
* ==================================================================== *
EXAMINE #PICS TRANSLATE INTO UPPER CASE
EXAMINE #FORMS TRANSLATE INTO UPPER CASE
* ==================================================================== *
COMPRESS 'modify printer ' #PICS 'include-printway-options = ' #FORMS
';' INTO #C10
COMPRESS 'display printer '#PICS
';' INTO #C11
* ==================================================================== *
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #PICS INTO #C21
* ==================================================================== *
COMPUTE #TOT = 22 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFOMENU'
END-REPEAT
END
Opção 50
Essa é o menu que vamos criar uma nova impressora no Infoprint;
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0103
10:35:36 ------------------------------------------------------------ 12/08/26
CADASTRAR IMPRESSORA INFOPRIN
--------------------------------------------------------------------
IMPRESSORA ... ________
DESCRICAO .... _____________________________________________________
LOCALICACAO .. _____________________________________________________
ENDERECO IP .. ___________________
FORMATO ...... FORM0007 (5 - PAISAGEM OU 7 - RETRATO)
--------------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- *
* FUNCAO: CADASTRAR UMA IMPRESSORA NO INFOPRINT *
* AUTOR : CLAUDEMAR MARTINS *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #PICS (A08)
1 #DESCRICAO (A53)
1 #LOCALIZACAO (A53)
1 #IP (A19)
1 #FORM (A08) INIT <'FORM0007'>
1 #USUARIO (A08)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* CADASTRAR IMPRESSORA NO INFOPRINT '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'">
1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*">
1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*">
1 #C09 (A80) INIT <"//STDIN DD *">
1 #C10 (A80)
1 #C11 (A80)
1 #C12 (A80)
1 #C13 (A80)
1 #C14 (A80)
1 #C15 (A80)
1 #C16 (A80)
1 #C17 (A80)
1 #C18 (A80)
1 #C19 (A80)
1 #C20 (A80)
1 #C21 (A80)
1 #C22 (A80)
1 #C23 (A80)
1 #C24 (A80)
1 #C25 (A80)
1 #C26 (A80)
1 #C27 (A80)
1 #C28 (A80)
1 #C29 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'>
1 #C30 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C31 (A80) INIT
<'//* GRAVANDO O LOG NO BANCO ADABAS'>
1 #C32 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C33 (A80) INIT
<'//STEP01 EXEC NATURAL,PARM1="SYS=P,MT=0,STACK=(LOG INFOPRIN)"'>
1 #C34 (A80) INIT <'//CMWKF01 DD SYSOUT=Z'>
1 #C35 (A80) INIT <'//CMWKF02 DD SYSOUT=Z'>
1 #C36 (A80) INIT <'//CMPRT01 DD SYSOUT=Z,HOLD=YES'>
1 #C37 (A80) INIT <'//CMPRINT DD SYSOUT=Z'>
1 #C38 (A80) INIT <'//SYSIN DD *'>
1 #C39 (A80)
1 #C40 (A80) INIT <'//FIMABEND ENDIF'>
1 #Y2K (A1) INIT <'N'>
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* ==================================================================== *
MOVE *INIT-USER TO #USER
REPEAT
RESET #ARQ
RESET INITIAL #Y2K
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 29T 'CADASTRAR IMPRESSORA'(I) 72T *LIBRARY-ID /
/
07T '-' (68) /
/
07T 'IMPRESSORA ...' #PICS /
/
07T 'DESCRICAO ....' #DESCRICAO /
/
07T 'LOCALICACAO ..' #LOCALIZACAO /
/
07T 'ENDERECO IP ..' #IP /
/
07T 'FORMATO ......' #FORM ' (5 - PAISAGEM OU 7 - RETRATO) ' /
/
07T '-' (68)
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3'
FETCH 'INFOMENU'
END-IF
* ==================================================================== *
IF #PICS = ' '
REINPUT 'NOME DE IMPRESSORA EM BRANCO' MARK *#PICS ALARM
END-IF
* ==================================================================== *
IF #IP = ' '
REINPUT 'NOME DE IP EM BRANCO' MARK *#IP ALARM
END-IF
* ==================================================================== *
EXAMINE #FORM TRANSLATE INTO UPPER CASE
EXAMINE #PICS TRANSLATE INTO UPPER CASE
* ==================================================================== *
IF #FORM EQ 'FORM0005'
COMPRESS 'create printer ' #PICS INTO #C10
COMPRESS 'printer-type = ip-printway' INTO #C11
COMPRESS 'lu-classes = {20}' INTO #C12
COMPRESS 'location = "' #LOCALIZACAO '"' INTO #C13
LEAVING NO
COMPRESS 'luname = ' #PICS INTO #C14
COMPRESS 'dcf-routing = yes' INTO #C15
COMPRESS 'include-printway-options = '#FORM INTO #C16
COMPRESS 'destination = ' #PICS INTO #C17
COMPRESS 'output-class = P' INTO #C18
COMPRESS 'netspool-formatting = convert-to-pcl' INTO #C19
COMPRESS 'include-processing = PCL_ACENTO' INTO #C20
COMPRESS 'print-queue-name = ' #PICS INTO #C21
COMPRESS 'printer-ip-address = ' #IP INTO #C22
COMPRESS 'description = "' #DESCRICAO '"' INTO #C23
LEAVING NO
COMPRESS 'lpr-print-function = l' INTO #C24
COMPRESS 'lpr-mode = control-file-first ;' INTO #C25
COMPRESS 'display printer' #PICS ';' INTO #C26
MOVE '/*' TO #C27
MOVE '/*' TO #C28
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #PICS INTO #C39
END-IF
* ==================================================================== *
IF #FORM EQ 'FORM0007'
COMPRESS 'create printer ' #PICS INTO #C10
COMPRESS 'printer-type = ip-printway' INTO #C11
COMPRESS 'lu-classes = {20}' INTO #C12
COMPRESS 'location = "' #LOCALIZACAO '"' INTO #C13
LEAVING NO
COMPRESS 'luname = ' #PICS INTO #C14
COMPRESS 'dcf-routing = yes' INTO #C15
COMPRESS 'include-printway-options = '#FORM INTO #C16
COMPRESS 'destination = ' #PICS INTO #C17
COMPRESS 'output-class = P' INTO #C18
COMPRESS 'netspool-formatting = convert-to-pcl' INTO #C19
COMPRESS 'include-processing = PCL_ACENTO' INTO #C20
COMPRESS 'print-queue-name = ' #PICS INTO #C21
COMPRESS 'printer-ip-address = ' #IP INTO #C22
COMPRESS 'description = "' #DESCRICAO '"' INTO #C23
LEAVING NO
COMPRESS 'lpr-print-function = l' INTO #C24
COMPRESS 'lpr-mode = control-file-first' INTO #C25
COMPRESS 'scs-maximum-line-length = 250' INTO #C26
COMPRESS 'scs-right-margin = 250 ;' INTO #C27
COMPRESS 'display printer' #PICS ';' INTO #C28
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #PICS INTO #C39
END-IF
* ==================================================================== *
IF #FORM NE 'FORM0005' AND #FORM NE 'FORM0007'
REINPUT
'FORMATO DIFERENTE DE FORM0005 / FORM0007' MARK *#FORM ALARM
END-IF
* ==================================================================== *
COMPUTE #TOT = 40 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFOMENU'
END-REPEAT
END
Opção 60
Essa opção deleta impressoras cadastradas no Infoprint - tela
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0104
10:41:37 ------------------------------------------------------------ 12/08/26
DELETAR IMPRESSORA NO INFOPRINT INFOPRIN
------------------------------------------------------------
PICS ................ : ________
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- * * FUNCAO: DELETAR IMPRESSORA NO INFOPRINT * * AUTOR : CLAUDEMAR MARTINS DE SA * * ------------------------------------------------------------------- * DEFINE DATA LOCAL 1 #CALLER (A4) INIT <'NAT '> 1 #JOBNUM (A8) 1 REDEFINE #JOBNUM 2 #JOBA (A3) 2 #JOBN (N5) 1 #I (P3) 1 #RC (B4) 1 #TOT (B2) 1 #ARQ (A32) 1 #PICS (A08) 1 #IP (A19) 1 #C01 (A80) INIT <'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'> 1 REDEFINE #C01 2 FILLER 2X 2 #JOBNAME (A8) 2 #FIL1 (A06) 2 #ACC (A04) 2 #FIL2 (A06) 2 #USER (A07) 1 #C02 (A80) INIT <'//*UQ ALLOW'> 1 #C03 (A80) INIT <'//* ----------------------------------------'> 1 #C04 (A80) INIT <'//* ALTERAR O IP DA IMPRESSORA #PICS '> 1 #C05 (A80) INIT <'//* ----------------------------------------'> 1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'"> 1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*"> 1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*"> 1 #C09 (A80) INIT <"//STDIN DD *"> 1 #C10 (A80) 1 #C11 (A80) * 1 #C12 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'> 1 #C13 (A80) INIT <'//* -----------------------------------------------------'> 1 #C14 (A80) INIT
Opção 70
Essa opção vamos fazer o backup do Infoprint e carregamos as informações das impressoras em um arquivo Adabas
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0108
10:45:48 ------------------------------------------------------------ 12/08/26
CARGA DO INFOPRINT NO ADABAS INFOPRIN
------------------------------------------------------------
TECLE (ENTER) PARA CONTINUAR
------------------------------------------------------------
SUBMETER A CARGA: _ (SIM)
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- *
* FUNCAO: CARREGAR OS DADOS DO INFOPRINT NO ADABAS *
* AUTOR : CLAUDEMAR MARTINS *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A1)
1 #PICS (A08)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (INFO,OSB),CLAUD,CLASS=S,MSGCLASS=A TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* CARREGANDO OS DADOS DO INFOPRINT '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80)
1 #C07 (A80) INIT <'//INVENT DD DSN=AOP.INV.BACKUP(+1),'>
1 #C08 (A80) INIT <'// DISP=(NEW,CATLG),'>
1 #C09 (A80) INIT
<'// DCB=(RECFM=VB,LRECL=32756,BLKSIZE=32760),'>
1 #C10 (A80) INIT
<'// UNIT=SYSDA,SPACE=(CYL,(11,10),RLSE),'>
1 #C11 (A80) INIT <'// VOL=SER=PRD902'>
1 #C12 (A80) INIT <'//STDOUT DD SYSOUT=*'>
1 #C13 (A80) INIT <'//STDERR DD SYSOUT=*'>
1 #C14 (A80) INIT <'//STDENV DD *'>
1 #C15 (A80) INIT <'NLSPATH=/usr/lpp/Printsrv/En_US/%N'>
1 #C16 (A80) INIT <'AOPCONF=/etc/Printsrv/aopd.conf'>
1 #C17 (A80) INIT <'//* ----------------------------------------'>
1 #C18 (A80) INIT <'//* REFRESH NO FILE 492 '>
1 #C19 (A80) INIT <'//* ----------------------------------------'>
1 #C20 (A80) INIT <'//ADADBS EXEC AAFAU240'>
1 #C21 (A80) INIT <'//DDCARD DD *'>
1 #C22 (A80) INIT <'ADARUN PROG=ADADBS,DBID=240'>
1 #C23 (A80) INIT <'//DDKARTE DD *'>
1 #C24 (A80) INIT <'ADADBS REFRESH FILE=492'>
1 #C25 (A80) INIT <'//* ----------------------------------------'>
1 #C26 (A80) INIT <'//* CARREGA OS REGISTROS NO FILE 492 '>
1 #C27 (A80) INIT <'//* ----------------------------------------'>
1 #C28 (A80)
1 #C29 (A80) INIT <'//CMWKF01 DD DSN=AOP.INV.BACKUP(+1),DISP=SHR'>
1 #C30 (A80) INIT <'//CMWKF02 DD SYSOUT=G'>
1 #C31 (A80) INIT <'//CMPRT01 DD SYSOUT=G,HOLD=YES'>
1 #C32 (A80) INIT <'//SYSIN DD *'>
1 #C33 (A80) INIT <'INFO0998'>
1 #Y2K (A1) INIT <'N'>
1 #CSA (A80) INIT <'//AOPBATCH EXEC PGM=AOPBATCH,PARM='>
1 #CSB (A80) INIT <'/pidu -c '>
1 #CSC (A80) INIT <'export //DD:INVENT;'>
1 #CSE (A80) INIT <'/pidu -c "export //DD:INVENT;"'>
1 #1-QUOTE (A1)
1 #2-QUOTE (A1) /* INIT <'"'>
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY PF3 = 'INFOMENU' NAMED 'EXIT'
OPTIONS TQMARK=OFF
* ==================================================================== *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 26T 'CARGA DO INFOPRINT NO ADABAS'(I) 72T *LIBRARY-ID /
/ 11T '-' (60)
/
/ 28T 'TECLE (ENTER) PARA CONTINUAR' (I)
/
/ 11T '-' (60)
/
/29T 'SUBMETER A CARGA:'(I)#ARQ '(SIM)'
* ==================================================================== *
MOVE "'" TO #1-QUOTE
MOVE '"' TO #2-QUOTE
REPEAT
* ==================================================================== *
COMPRESS
#CSA
#1-QUOTE
#CSB
#2-QUOTE
#CSC
#2-QUOTE
#1-QUOTE
INTO #C06
LEAVING NO
* ==================================================================== *
* COMPRESS #CSA '"' #CSB '|' #CSC '|' '"' INTO #C06 LEAVING NO
COMPRESS '//STEP01 EXEC NATURAL,PARM1='
"'SYS=P,MT=0,STACK=(LOG INFOPRIN)'"
INTO #C28 LEAVING NO
* ==================================================================== *
COMPUTE #TOT = 33 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFOMENU'
END-REPEAT
END
o programa INFO0998 carrega os dados do dataset para o banco Adabas
* -------------------------------------------------------------------- *
* FUNCAO - GRAVAR NO BANCO AS INFORMACOES DAS IMPRESSORAS DO INFOPRINT *
* AUTOR - CLAUDEMAR MARTINS DE SA *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #LINE (A80)
1 #PRINTER-NAME (A10)
1 #PRINTER-TYPE (A20)
1 #LOCATION (A53)
1 #LUNAME (A10)
1 #DESTINATION (A10)
1 #OUTPUT-CLASS (A1)
1 #PRINT-QUEUE-NAME (A20)
1 #PRINTER-IP-ADDRESS (A15)
1 #DESCRIPTION (A53)
1 #LPR-PRINT-FUNCTION (A02)
1 #LPR-MODE (A18)
1 #INCLUDE-PRINTWAY-OPTIONS (A09)
1 #POS (I4)
1 IMPRESSORA-VIEW VIEW OF AAFU-INFOPRINT-PRINTWAY
2 PRINTER-NAME
2 PRINTER-TYPE
2 LOCATION
2 LUNAME
2 DESTINATION
2 OUTPUT-CLASS
2 PRINT-QUEUE-NAME
2 PRINTER-IP-ADDRESS
2 DESCRIPTION
2 LPR-PRINT-FUNCTION
2 LPR-MODE
2 INCLUDE-PRINTWAY-OPTIONS
END-DEFINE
* -------------------------------------------------------------------- *
READ WORK FILE 1 #LINE
*
IF #LINE = ' '
ESCAPE TOP
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1, 14) = 'create printer'
MOVE SUBSTRING(#LINE,16,8) TO #PRINTER-NAME
ESCAPE TOP
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1, 18) = ' printer-type = '
MOVE SUBSTRING(#LINE, 19, 11) TO #PRINTER-TYPE
* COMPRESS FULL #PRINTER-TYPE INTO #PRINTER-TYPE LEAVING NO
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1, 13) = ' location = '
MOVE SUBSTRING(#LINE, 15, 53) TO #LOCATION
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1,12) = ' luname = '
MOVE SUBSTRING(#LINE, 13, 10) TO #LUNAME
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1,17) = ' destination = '
MOVE SUBSTRING(#LINE, 18, 53) TO #DESTINATION
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1,18) = ' output-class = '
MOVE SUBSTRING(#LINE, 19, 3) TO #OUTPUT-CLASS
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1,22) = ' print-queue-name = '
MOVE SUBSTRING(#LINE, 23, 8) TO #PRINT-QUEUE-NAME
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE,1,24) = ' printer-ip-address = '
MOVE SUBSTRING(#LINE, 25, 15) TO #PRINTER-IP-ADDRESS
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE,1,17) = ' description = '
MOVE SUBSTRING(#LINE, 18, 60) TO #DESCRIPTION
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE,1,24) = ' lpr-print-function = '
MOVE SUBSTRING(#LINE, 25, 2) TO #LPR-PRINT-FUNCTION
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE,1,14) = ' lpr-mode = '
MOVE SUBSTRING(#LINE, 15, 18) TO #LPR-MODE
END-IF
* -------------------------------------------------------------------- *
IF SUBSTRING(#LINE, 1,30) = ' include-printway-options = '
MOVE SUBSTRING(#LINE, 31, 9) TO #INCLUDE-PRINTWAY-OPTIONS
END-IF
* -------------------------------------------------------------------- *
IF #LINE = ';'
STORE RECORD IN IMPRESSORA-VIEW
MOVE #PRINTER-NAME TO PRINTER-NAME
MOVE #PRINTER-TYPE TO PRINTER-TYPE
MOVE #LOCATION TO LOCATION
MOVE #LUNAME TO LUNAME
MOVE #DESTINATION TO DESTINATION
MOVE #OUTPUT-CLASS TO OUTPUT-CLASS
MOVE #PRINT-QUEUE-NAME TO PRINT-QUEUE-NAME
MOVE #PRINTER-IP-ADDRESS TO PRINTER-IP-ADDRESS
MOVE #DESCRIPTION TO DESCRIPTION
MOVE #LPR-PRINT-FUNCTION TO LPR-PRINT-FUNCTION
MOVE #LPR-MODE TO LPR-MODE
MOVE #INCLUDE-PRINTWAY-OPTIONS TO INCLUDE-PRINTWAY-OPTIONS
END TRANSACTION
* -------------------------------------------------------------------- *
RESET #PRINTER-NAME #PRINTER-TYPE #LOCATION #LUNAME
#DESTINATION #OUTPUT-CLASS #PRINT-QUEUE-NAME
#PRINTER-IP-ADDRESS #DESCRIPTION
* -------------------------------------------------------------------- *
END-IF
END-WORK
END
Opção 80
Opção que temos para criar, alterar e pesquisar os FORMS que temos definidos na instalação
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0113
10:51:41 ------------------------------------------------------------ 12/08/26
FORMULARIOS INFOPRIN
------------------------------------------------------------
10 - CRIAR FORMS PARA O INFOPRINT
20 - ALTERAR TIMEOUT DOS FORMS
30 - PESQUISAR OS FORMS DEFINIDOS
------------------------------------------------------------
DIGITE A OPCAO DESEJADA 0__
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG QUIT
Programa Natural
* ==================================================================== *
* FUNCAO: MENU DE PESQUISA DE IMPRESSORA *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* DATA : 15/12/2024 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
TREQ NAMED ' ' /* NOVAS PFS /*
PF3 = PGM NAMED 'EXIT'
PF11 = 'INFO0107' NAMED 'LOG'
PF12 = PGM NAMED 'QUIT'
* ==================================================================== *
REPEAT
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/35T 'FORMULARIOS'(I) 72T *LIBRARY-ID /
/11T '-' (60)
/24T '10 - CRIAR FORMS PARA O INFOPRINT'(I)
/24T '20 - ALTERAR TIMEOUT DOS FORMS'(I)
/24T '30 - PESQUISAR OS FORMS DEFINIDOS'(I)
/11T'-' (60)
* ==================================================================== *
// 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
// 30T'TECLE PF3 PARA SAIR'(I)
* ==================================================================== *
IF #ARQ1 EQ 10 FETCH 'INFO0114'
IF #ARQ1 EQ 20 FETCH 'INFO0112'
IF #ARQ1 EQ 30 FETCH 'INFO0111'
* ==================================================================== *
IF *PF-KEY EQ 'PF3' OR = 'PF12' FETCH 'INFOMENU'
IF *PF-KEY EQ 'PF11' FETCH 'INFO0107'
* ==================================================================== *
END
Criar FORM
Essa opção criamos um novo form no Infoprint
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0114
10:54:37 ------------------------------------------------------------ 12/08/26
CRIAR FORM NO INFOPRINT INFOPRIN
------------------------------------------------------------------------------
NOME DO FORM ... : ________
DESCRICAO ...... : ___________________________
COMANDO PCL .... : ____________________________________________________
TIMEOUT ........ : ________
------------------------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- *
* FUNCAO: ALTERAR O TIMEOUT DAS IMPRESSORAS DO INFOPRINT *
* AUTOR : CLAUDEMAR MARTINS DE SA *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #FORMS (A08)
1 #DESC (A27)
1 #PCL (A52)
1 #TIMEOUT (A08)
1 #IP (A19)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* ALTERAR O IP DA IMPRESSORA #PICS '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'">
1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*">
1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*">
1 #C09 (A80) INIT <"//STDIN DD *">
1 #C10 (A80)
1 #C11 (A80)
1 #C12 (A80)
1 #C13 (A80)
**
1 #C14 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'>
1 #C15 (A80) INIT
<'//* GRAVANDO O LOG NO BANCO ADABAS'>
1 #C16 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C17 (A80) INIT
<'//STEP01 EXEC NATURAL,PARM1="SYS=P,MT=0,STACK=(LOG INFOPRIN)"'>
1 #C18 (A80) INIT <'//CMWKF01 DD SYSOUT=Z'>
1 #C19 (A80) INIT <'//CMWKF02 DD SYSOUT=Z'>
1 #C20 (A80) INIT <'//CMPRT01 DD SYSOUT=Z,HOLD=YES'>
1 #C21 (A80) INIT <'//CMPRINT DD SYSOUT=Z'>
1 #C22 (A80) INIT <'//SYSIN DD *'>
1 #C23 (A80)
1 #C24 (A80) INIT <'//FIMABEND ENDIF'>
1 #Y2K (A1) INIT <'N'>
END-DEFINE
* ==================================================================== *
OPTIONS TQMARK=OFF
* ==================================================================== *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* ==================================================================== *
MOVE *INIT-USER TO #USER
REPEAT
RESET #ARQ
RESET INITIAL #Y2K
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 28T 'CRIAR FORM NO INFOPRINT'(I) 72T *LIBRARY-ID /
/
02T '-' (78)
//
03T ' NOME DO FORM ... : ' #FORMS
//
03T ' DESCRICAO ...... : ' #DESC
//
03T ' COMANDO PCL .... : ' #PCL
//
03T ' TIMEOUT ........ : ' #TIMEOUT
//
02T '-' (78)
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3'
FETCH 'INFO0113'
END-IF
* ==================================================================== *
IF #FORMS = ' '
REINPUT 'FORMS ESTA EM BRANCO' MARK *#FORMS ALARM
END-IF
* ==================================================================== *
IF #DESC = ' '
REINPUT 'DESCRICAO ESTA EM BRANCO' MARK *#DESC ALARM
END-IF
* ==================================================================== *
IF #PCL = ' '
REINPUT 'PCL ESTA EM BRANCO' MARK *#PCL ALARM
END-IF
* ==================================================================== *
IF #TIMEOUT = ' '
REINPUT 'TIMEOUT ESTA EM BRANCO' MARK *#TIMEOUT ALARM
END-IF
* ==================================================================== *
EXAMINE #FORMS TRANSLATE INTO UPPER CASE
EXAMINE #DESC TRANSLATE INTO UPPER CASE
* ==================================================================== *
COMPRESS 'create printway-options ' #FORMS
';' INTO #C10
COMPRESS ' description = "' #DESC
'";' INTO #C11
COMPRESS ' document-header = "' #PCL
'";' INTO #C12
COMPRESS ' response-timeout = ' #TIMEOUT
';' INTO #C13
* ==================================================================== *
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #TIMEOUT INTO #C23
* ==================================================================== *
COMPUTE #TOT = 25 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFO0113'
END-REPEAT
END
Alterar o timeout do FORM
Essa opção é bem interessante, quando a impressão é feita, o Infoprint tem um tempo para tentar imprimir, esse tempo não pode ser muito alto e nem muito baixo, um tempo que o suporte colocou foi 30 segundos
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0112
10:56:34 ------------------------------------------------------------ 12/08/26
ALTERAR TIMEOUT DAS PICS INFOPRIN
------------------------------------------------------------
TIMEOUT SEGUNDOS .... : ________
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG
Programa Natural
* ------------------------------------------------------------------- *
* FUNCAO: ALTERAR O TIMEOUT DAS IMPRESSORAS DO INFOPRINT *
* AUTOR : CLAUDEMAR MARTINS DE SA *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #ARQ (A32)
1 #TIMEOUT (A08)
1 #IP (A19)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* ----------------------------------------'>
1 #C04 (A80) INIT <'//* ALTERAR O IP DA IMPRESSORA #PICS '>
1 #C05 (A80) INIT <'//* ----------------------------------------'>
1 #C06 (A80) INIT <"//PIDU EXEC PGM=AOPBATCH,PARM='pidu'">
1 #C07 (A80) INIT <"//STDOUT DD SYSOUT=*">
1 #C08 (A80) INIT <"//STDERR DD SYSOUT=*">
1 #C09 (A80) INIT <"//STDIN DD *">
1 #C10 (A80)
1 #C11 (A80)
1 #C12 (A80)
1 #C13 (A80)
1 #C14 (A80)
1 #C15 (A80)
1 #C16 (A80)
1 #C17 (A80)
1 #C18 (A80)
1 #C19 (A80)
1 #C20 (A80)
1 #C21 (A80)
1 #C22 (A80)
1 #C23 (A80)
1 #C24 (A80)
1 #C25 (A80)
**
1 #C26 (A80) INIT <'//IFABEND IF RC EQ 0 THEN'>
1 #C27 (A80) INIT
<'//* GRAVANDO O LOG NO BANCO ADABAS'>
1 #C28 (A80) INIT
<'//* -----------------------------------------------------'>
1 #C29 (A80) INIT
<'//STEP01 EXEC NATURAL,PARM1="SYS=P,MT=0,STACK=(LOG INFOPRIN)"'>
1 #C30 (A80) INIT <'//CMWKF01 DD SYSOUT=Z'>
1 #C31 (A80) INIT <'//CMWKF02 DD SYSOUT=Z'>
1 #C32 (A80) INIT <'//CMPRT01 DD SYSOUT=Z,HOLD=YES'>
1 #C33 (A80) INIT <'//CMPRINT DD SYSOUT=Z'>
1 #C34 (A80) INIT <'//SYSIN DD *'>
1 #C35 (A80)
1 #C36 (A80) INIT <'//FIMABEND ENDIF'>
**
1 #Y2K (A1) INIT <'N'>
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* ==================================================================== *
MOVE *INIT-USER TO #USER
REPEAT
RESET #ARQ
RESET INITIAL #Y2K
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 28T 'ALTERAR TIMEOUT DAS PICS'(I) 72T *LIBRARY-ID /
/
11T '-' (60)
//
15T ' TIMEOUT SEGUNDOS .... : ' #TIMEOUT
//
11T '-' (60)
//30T'TECLE PF3 PARA VOLTAR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3'
FETCH 'INFO0113'
END-IF
* ==================================================================== *
IF #TIMEOUT = ' '
REINPUT 'TIMEOUT ESTA EM BRANCO' MARK *#TIMEOUT ALARM
END-IF
* ==================================================================== *
* EXAMINE #PICS TRANSLATE INTO UPPER CASE
* ==================================================================== *
COMPRESS 'modify printway-options FORM0001 response-timeout = ' #TIMEOUT
';' INTO #C10
COMPRESS 'modify printway-options FORM0004 response-timeout = ' #TIMEOUT
';' INTO #C11
COMPRESS 'modify printway-options FORM0005 response-timeout = ' #TIMEOUT
';' INTO #C12
COMPRESS 'modify printway-options FORM0007 response-timeout = ' #TIMEOUT
';' INTO #C13
COMPRESS 'modify printway-options FORM0008 response-timeout = ' #TIMEOUT
';' INTO #C14
COMPRESS 'modify printway-options FORM0009 response-timeout = ' #TIMEOUT
';' INTO #C15
COMPRESS 'modify printway-options FORM0010 response-timeout = ' #TIMEOUT
';' INTO #C16
COMPRESS 'modify printway-options FORM0012 response-timeout = ' #TIMEOUT
';' INTO #C17
COMPRESS 'display printway-options FORM0001 ;' INTO #C18
COMPRESS 'display printway-options FORM0004 ;' INTO #C19
COMPRESS 'display printway-options FORM0005 ;' INTO #C20
COMPRESS 'display printway-options FORM0007 ;' INTO #C21
COMPRESS 'display printway-options FORM0008 ;' INTO #C22
COMPRESS 'display printway-options FORM0009 ;' INTO #C23
COMPRESS 'display printway-options FORM0010 ;' INTO #C24
COMPRESS 'display printway-options FORM0012 ;' INTO #C25
* ==================================================================== *
COMPRESS 'INFO9033 ' *INIT-USER *PROGRAM #TIMEOUT INTO #C35
* ==================================================================== *
COMPUTE #TOT = 25 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
FETCH 'INFO0113'
END-REPEAT
END
Display dos Forms
Essa tela mostra os forms criados e qual é o formato que imprimi - essa opção como não criamos forms coloquei o formularios que temos, a idéia no futuro é criar um programa natural que consulta os forms no banco de dados
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS INFO0111
11:02:12 ------------------------------------------------------------ 12/08/26
FORMS INFOPRIN
------------------------------------------------------------
RETRATO PAISAGEM
------------------------------------------------------------
FORM0004 FORM0001
FORM0005 FORM0012
FORM0007
FORM0008
FORM0009
FORM0010
------------------------------------------------------------
TECLE ENTER PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT LOG QUIT
Programa Natural
* ==================================================================== *
* FUNCAO: MENU DE PESQUISA DE IMPRESSORA *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* DATA : 15/12/2024 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET KEY
TREQ NAMED ' ' /* NOVAS PFS /*
PF3 = PGM NAMED 'EXIT'
PF11 = 'INFO0107' NAMED 'LOG'
PF12 = PGM NAMED 'QUIT'
* ==================================================================== *
REPEAT
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/37T 'FORMS'(I) 72T *LIBRARY-ID /
/11T '-' (60)
/24T 'RETRATO PAISAGEM' (I)
/11T'-' (60)
/24T 'FORM0004 FORM0001' (I)
/24T 'FORM0005 FORM0012' (I)
/24T 'FORM0007 ' (I)
/24T 'FORM0008 ' (I)
/24T 'FORM0009 ' (I)
/24T 'FORM0010 ' (I)
/11T'-' (60)
* ==================================================================== *
// 30T'TECLE ENTER PARA SAIR'(I)
* ==================================================================== *
IF *PF-KEY EQ 'PF3' OR = 'PF12' FETCH 'INFOMENU'
IF *PF-KEY EQ 'PF11' FETCH 'INFO0107'
* ==================================================================== *
FETCH 'INFO0113'
* ==================================================================== *
END



Existe uma opção para consultar, cadastrar e excluir impressoras diretamente pelo TSO. Porém acho as telas do Infoprint pouco intuitivas e, muitas vezes, confusas para realizar operações ao InfoPrint Server.
ResponderEliminarPensando nisso, foi desenvolvido um sistema em Natural/Adabas com o objetivo de tornar esse processo mais simples, rápido e organizado. Por meio do sistema, as principais operações de gerenciamento das impressoras podem ser realizadas de forma mais intuitiva, sem a necessidade de navegar pelas diversas telas e comandos do TSO.
A proposta é justamente descomplicar o trabalho operacional, disponibilizando uma interface mais amigável para consultar, cadastrar e deletar impressoras, facilitando o dia a dia da equipe responsável pela administração do ambiente InfoPrint Server.