Criar Programas de Saída de Utilizador com RPG/400
O exemplo seguinte ilustra como configurar um programa de saída de utilizador com o RPG/400*.
** ** SERVIDORES DO OS/400 - PROGRAMA DE SAÍDA DE UTILIZADOR EXEMPLO ** ** O PROGRAMA RPG/400 QUE SE SEGUE ACEITA INCONDICIONALMENTE ** TODOS OS PEDIDOS. PODE SER UTILIZADO COMO INTERFACE ** PARA APLICAÇÕES ESPECÍFICAS. NOTA: REMOVA AS ENTRADAS DE ** SUBROTINAS E DE INSTRUÇÕES EM MAIÚSCULAS PARA OS SERVIDORES ** QUE NÃO REQUEREM O TRATAMENTO ESPECÍFICO DE PROGRAMAS ** DE SAÍDA, PARA OBTER UM MELHOR RENDIMENTO. E* E* DEFINIÇÕES DE MATRIZES NECESSÁRIAS PARA A FUNÇÃO DE TRANSFERÊNCIA E* E SQL REMOTA E* E TFREQ 4096 1 E RSREQ 4107 1 I* I* IPCSDTA DS I 1 10 USERID I 11 20 APPLID I* I* PARÂMETROS ESPECÍFICOS PARA IMPRESSORA VIRTUAL I* I 21 30 VPFUNC I 31 40 VPOBJ I 41 50 VPLIB I 71 750VPIFN I 76 85 VPOUTQ I 86 95 VPQLIB I*
I* PARÂMETROS ESPECÍFICOS PARA A FUNÇÃO DE MENSAGENS I 21 30 MFFUNC I* I* PARÂMETROS ESPECÍFICOS PARA A FUNÇÃO DE TRANSFERÊNCIA I* I 21 30 TFFUNC I 31 40 TFOBJ I 41 50 TFLIB I 51 60 TFMBR I 61 70 TFFMT I 71 750TFLEN I 764171 TFREQ I* I* PARÂMETROS ESPECÍFICOS PARA O SERVIDOR DE FICHEIROS I* I* NOTA: FSNAME PODE TER ATÉ l6MB. I* FSNLEN CONTERÁ O TAMANHO REAL DE FSNAME. I* I B 21 240FSFID I 25 32 FSFMT I 33 33 FSREAD I 34 34 FSWRIT I 35 35 FSRDWR I 36 36 FSDLT I B 37 400FSNLEN I 41 296 FSNAME I* I* PARÂMETROS ESPECÍFICOS PARA FILAS DE DADOS I* I 21 30 DQFUNC I 31 40 DQQ I 41 50 DQLIB I 70 750DQLEN I 76 77 DQROP I 78 820DQKLEN I 83 338 DQKEY I* I* PARÂMETROS ESPECÍFICOS PARA SQL REMOTA I* I 21 30 RSFUNC I 31 40 RSOBJ I 41 50 RSLIB I 51 51 RSCMT I 52 52 RSMODE I 53 53 RSCID I 54 71 RSSTN I 72 75 RSRSV I 764182 RSREQ I* I* PARÂMETROS ESPECÍFICOS PARA O SERVIDOR DE IMPRESSÃO NA REDE I* I 21 28 NPFT I B 29 320NPFID
I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO SPLF0l00 I 33 42 NPJOBN I 43 52 NPUSRN I 53 58 NPJOB# I 59 68 NPFILE I B 69 720NPFIL# I B 73 760NPLEN I 77 332 NPDATA I* I* Servidor de Filas de Dados: I* I* QIBM_QZHQ_DATA_QUEUE formato ZHQ00100 I* I 21 28 DQOFMT I B 29 320DQOFID I 33 42 DQOOBJ I 43 52 DQOLIB I 53 54 DQOROP I B 55 580DQOLEN I 59 314 DQOKEY I* I* PARÂMETROS ESPECÍFICOS PARA O SERVIDOR CENTRAL I* I 21 28 CSFMT I B 29 320CSFID I* Servidor central: I* I* QIBM_QZSC_LM formato ZSCL0l00 para chamadas de gestão de licenças I* I* I 33 287 CSLCNM I 288 295 CSLUSR I 296 302 CSLPID I 303 306 CSLFID I 307 312 CSLRID I B 313 3140CSLTYP I* I* Servidor central: I* I* QIBM_QZSC_LM formato ZSCS0l00 para chamadas de gestão de sistema I* I* I 33 287 CSSCNM I 288 542 CSSCMY I 543 543 CSSNDE I 544 798 CSSNNM I*
I* Servidor central: I* I* QIBM_QZSC_LM formato ZSCN0l00 para obter chamadas de definição de I* conversão I* I* I 21 30 CSNXFM I 29 320CSNFNC I B 33 360CSNFRM I B 37 400CSNTO I B 41 420CSNCNT I* I* PARÂMETROS ESPECÍFICOS PARA O SERVIDOR DE BASES DE DADOS I* I 21 28 DBFMT I B 29 320DBFID I* I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO ZDAD0l00 I 33 160 DBDFIL I 161 170 DBDLIB I 171 180 DBDMBR I 181 190 DBDAUT I 191 318 DBDBFL I 319 328 DBDBLB I 329 338 DBDOFL I 339 348 DBDOLB I 349 358 DBDOMB I* I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO ZDAD0200 I B 33 360DBNUM I 37 46 DBLIB2 I* I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO ZDAQ0l00 I 33 50 DBSTMT I 51 68 DBCRSR I 69 70 DBOPI I 71 72 DBATTR I 73 82 DBPKG I 83 92 DBPLIB I B 93 940DBDRDA I 95 95 DBCMT I 96 351 DBTEXT I* OS SEGUINTES PARÂMETROS SUBSTITUEM DBTEXT PARA O FORMATO ZDAQ0200 I 96 105 DBSQCL I B 133 1360DBSQLN I 137 392 DBSQTX I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO ZDAR0l00 I 33 52 DBLIBR I 53 88 DBRDBN I 89 108 DBPKGR I 109 364 DBFILR I 365 384 DBMBRR I 385 404 DBFFT
I* OS SEGUINTES PARÂMETROS SÃO ADICIONAIS PARA O FORMATO ZDAR0200 I 33 42 DBRPLB I 43 170 DBRPTB I 171 180 DBRFLB I 181 308 DBRFTB I* I* Servidor de Comandos Remotos/Chamada de Programa Distribuída: I* I* QIBM_QZRC_RMT formato CZRC0100 I* RCPGM E RCLIB NÃO SÃO UTILIZADOS PARA CHAMADAS DE COMANDOS REMOTOS I* I 21 28 RCFMT I B 29 320RCFID I 33 42 RCPGM I 43 52 RCLIB I B 53 560RCNUM I 57 312 RCDATA I* I* Servidor de início de sessão: I* I* QIBM_QZSO_SIGNONSRV formato ZSOY0l00 para o servidor de início de I* sessão de TCP/IP I* I 21 28 SOXFMT I B 29 320SOFID I* I*************************************************************** I* I '*VPRT ' C #VPRT I '*TFRFCL ' C #TRFCL I '*FILESRV ' C #FILE I '*MSGFCL ' C #MSGF I '*DQSRV ' C #DQSRV I '*RQSRV ' C #RQSRV I '*SQL ' C #SQL I '*NDB ' C #NDBSV I '*SQLSRV ' C #SQLSV I '*RTVOBJINF' C #RTVOB I '*DATAQSRV ' C #DATAQ I '*QNPSERVR ' C #QNPSV I '*CNTRLSRV ' C #CNTRL I '*RMTSRV ' C #RMTSV I '*SIGNON ' C #SIGN I* C* C* PARÂMETROS DE CHAMADAS DE PROGRAMAS DE SAÍDA C* C *ENTRY PLIST C PARM RTNCD 1 C PARM PCSDTA C*
C* INICIALIZAR VALOR DE RETORNO PARA ACEITAR PEDIDO C* C MOVER '1' RTNCD C* C* PROCESSAMENTO COMUM C* C* LÓGICA COMUM INDICADA AQUI C* C* PROCESSO BASEADO NO ID DO SERVIDOR C* C APPLID CASEQ#VPRT VPRT C APPLID CASEQ#TRFCL TFR C APPLID CASEQ#FILE FILE C APPLID CASEQ#MSGF MSG C APPLID CASEQ#DQSRV DATAQ C APPLID CASEQ#RQSRV RSQL C APPLID CASEQ#SQL SQLINT C APPLID CASEQ#NDBSV NDB C APPLID CASEQ#SQLSV SQLSRV C APPLID CASEQ#RTVOB RTVOBJ C APPLID CASEQ#DATAQ ODATAQ C APPLID CASEQ#QNPSV NETPRT C APPLID CASEQ#CNTRL CENTRL C APPLID CASEQ#RMTSV RMTCMD C APPLID CASEQ#SIGN SIGNON C END C SETON LR C RETRN C* C* SUBROTINAS C* C* C* IMPRESSÃO VIRTUAL C* C VPRT BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* FUNÇÃO DE TRANSFERÊNCIA C* C* SEGUE-SE UM EXEMPLO DO PROCESSAMENTO ESPECÍFICO C* QUE O PROGRAMA DE SAÍDA PODERIA EXECUTAR PARA A FUNÇÃO DE TRANSFERÊNCIA. C*
C* NESTE CASO, OS UTILIZADORES NÃO PODEM SELECCIONAR C* DADOS A PARTIR DOS FICHEIROS INCLUÍDOS NA BIBLIOTECA QIWS. C* C TFR BEGSR C TFFUNC IFEQ 'SELECT' C TFLIB ANDEQ'QIWS' C MOVE '0' RTNCD C END C ENDSR C* C* C* SERVIDOR DE FICHEIROS C* C FICH BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* FUNÇÃO DE MENSAGENS C* C MSG BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* FILAS DE DADOS C* C FILADADOS BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* SQL REMOTA C* C RSQL BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* SERVIDORES C* C* C* INIC DA BASE DE DADOS C* C INISQL BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* BASE DE DADOS BDN (BASE DE DADOS NATIVA) C* C BDN BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C*
C* SQL DE BASE DE DADOS C* C SRVSQL BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* INFORMAÇÕES DE OBJECTOS DE OBTENÇÃO DA BASE DE DADOS C* C OBTOBJ BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* SERVIDOR DE FILAS DE DADOS C* C FILADADOSO BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* IMPRESSÃO NA REDE C* C IMPREDE BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C* C* SERVIDOR CENTRAL C* C* C* SEGUE-SE UM EXEMPLO DO PROCESSAMENTO ESPECÍFICO C* DO QUE O PROGRAMA DE SAÍDA PODERIA EXECUTAR PARA A GESTÃO DE LICENÇAS. C* C* NESTE CASO, O UTILIZADOR "USERALL" NÃO PODERÁ EXECUTAR C* NENHUMA DAS FUNÇÕES FORNECIDAS PELO SERVIDOR C* CENTRAL PARA O QUAL ESTE PROGRAMA É UM PROGRAMA DE C* SAÍDA REGISTADO - INFORMAÇÕES SOBRE LICENÇAS, GESTÃO DE SISTEMA C* OU OBTER UMA DEFINIÇÃO DE CONVERSÃO. C* C CENTRL BEGSR C USERID IFEQ 'USERALL' C MOVE '0' RTNCD C ENDIF C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR C*
C* COMANDOS REMOTOS/CHAMADA DE PROGRAMA DISTRIBUÍDA C* C* NESTE CASO, O UTILIZADOR "USERALL" NÃO PODERÁ EXECUTAR C* COMANDOS REMOTOS NEM CHAMADAS DE PROGRAMA REMOTAS C* C RMTCMD BEGSR C USERID IFEQ 'USERALL' C MOVE '0' RTNCD C ENDIF C ENDSR C* C* SERVIDOR DE INÍCIO DE SESSÃO C* C INISESS BEGSR C* LÓGICA ESPECÍFICA INDICADA AQUI C ENDSR