Curso Básico de AS400
Curso Básico de AS400
Curso Básico de AS400
Curso de AS/400
Introdução ao AS/400
ESTUDANTES INSTRUTORES
CLASSES
GRADUADOS DEPARTAMENTOS
ESTUDANTES
TEXTOS SALAS
- 1–
O Modelo Relacional.
- 2–
TABELA BASE
TABELA = ARQUIVO
LINHA = REGISTRO
COLUNA = CAMPO
- 3–
1. User tasks
2. Office tasks
3. General system tasks
4. Files, libraries, and folders
5. Programming
6. Communications
7. Define or change the system
8. Problem handling
9. Display a menú
10. Information Assistant options
11. Client Access/400 tasks
Selection or command
===>
Este é menu inicial do AS/400 que é uma parte importante do OS/400, que nos ajuda a executar
os comandos e utilitários por meio de opcões de maneira um pouco mais fácil.
- 4–
Selection or command
===>
- 5–
Esta tela é de entrada a biblioteca, podemos selecionar que biblioteca queremos visualizar
ou trabalhar. Temos as seguintes opções:
- 6–
- 7–
- 8–
Object:
Name . . . . . . . . . . . *ALL *ALL, name, *generic*
Type . . . . . . . . . . . *ALL *ALL, *type
Attribute . . . . . . . . *ALL *ALL, attribute, *generic*,
*BLANK
- 9–
Eliminar um objeto.
Utilizar a opção 4 (delete) no objeto à eliminar.
Renomear um objeto.
Utilizar a opção 7 (rename) no objeto à renomear
Mover um objeto.
1. Utilizar a opção 11 (Move) no objeto à mover.
2. Especificar a biblioteca destino.
Copiar um objeto:
1. Utilizar a opção 13 (Move) no objeto à mover.
2. Especificar a biblioteca destino.
A função de copiar funciona como duplicar un objeto, na qual pode existir ou não na
biblioteca destino. De tal forma que a ação de copiar se realiza de duas formas:
a. Cria um objeto novo na biblioteca destino, com as mesmas características do
objeto original.
b. Regrava um objeto já existente na biblioteca destino. Com as características do
objeto original.
- 10 –
Executar um objeto.
Debug interativo.
- 11 –
Member:
Name . . . . . . . . . P43500 *ALL, name, *generic*
Type . . . . . . . . . *ALL *ALL, type, *generic*, *BLANK
Member:
Name : Nome do fonte à trabalhar, podem tomar os seguintes valores:
*ALL : Todos os fontes contidos na biblioteca e o sorfile
Name : O nome da fonte à trabalhar.
* Generic * : É um fonte que tenha a cadeia que se encoentra definida
dentro dos asteriscos *.
Type : Tipo de fonte à utilizar.
*ALL : Todos os tipos de fontes que se encontram nesta biblioteca e no
source file.
Type : Tipo especifico de fonte.
*generic *: Mostra todos aqueles fontes que cumprem com a cadeia
encerrada entre asteriscos (*)
*BLANK : Mostra todos os fontes com type em blanco.
- 12 –
File . . . . . . JDEMTY
Library . . . . MTY1 Position to . . . . .
Copiar um fonte
1.- Estando na tela do WRKMBRPDM..
2.- Utilizar a opção 3(copy) no fonte à copiar
A função copiar funciona como duplicar um fonte, o qual pode existir ou não na
biblioteca e arquivo fonte destino. De tal forma que a ação de copiar se realiza de
duas formas:
a). Cria uma fonte nova na biblioteca e arquivo fonte destino com as mesmas
características do fonte origem.
b). Regrava um fonte já existente na biblioteca e arquivo fonte destino, com
as mesmas características.
Editar um fonte .
Utilizando a opção 2 (Edit) no fonte à editar. Esta opção nos mostrará o SEU
- 13 –
Ordenar uma lista de fontes por data: Utilizam a função <F4> (Display date) para
mostrar as datas de criação. Y com a Função <F15> (sort date) para ordenar a
data.
Indistintamente a função <F15> (sort date) serve para ordenar : por data ou por
nome.
a) Utilizando o PDM.
Trabalhando com fontes (WRKMBRPDM) a opção 25 (find
String) para achar a busca correspondente.
b) utilizando o comando FNDSTRPDM
Com o SEU, você pode trabalhar com o fonte de arquios, e os registros contidos
dentro deles.
Opções permitidas:
- 14 –
§ Criar fontes
§ Editar fontes
§ Imprimir fontes
§ Copiar registro de um arquivo (fontes) a outro fonte ou um arquivo
de impressão
- 15 –
Linhas de formatos: Se poden utilizar as linhas de formato para verificar a posição dos
estatutos segundo os estatutos fontes da linguagem de alto nivel utilizado. SEU provê de linhas
de formato predefinidas para comandos das linguagens de alto nivel utilizados e de linguagem de
controle de AS/400 (CL).
Modo de tela completa. O modo de tela completa (Full screen mode) é utilizado nas telas
de edição e de browse para eliminar teclas de função da tela do SEU, permitindo assim, ter quatro
linhas a mais de texto fonte.
Teclas de função completas. Cada tela do SEU suporta um conjunto de teclas de função,
usadas para realizar tarefas especificas. Estas teclas, se encontram listadas na parte inferior de
cada tela. Exceto pela tecla F1 (Ajuda) que não é sempre mostrada e sem embargo é válida em
todas as telas, uma tecla de função é valida só se for mostrada na parte inferior da tela.
Linha de comandos:. Esta, é usada para realizar várias operações, tais como insertar
registros em brancos , copiar registro e chamar o prompt de comandos ou linguagens.
Telas de opções: Este tipo de telas são utilizadas para controlar o ambiente de SEU e para
realizar operações sobre os fontes de arquivos e arquivos de impressão. As telas de operações
mais usadas são:
- troca de defaults da sessão.
- Opções de browse/ copy.
- Opções de Encontrar/Alterar.
Sessão split: Esta sessão é para ver e editar um fonte e visualizar outro na mesma tela de
trabalho. Tambem, é possível visualizar dois fontes na mesma tela por vez. Se a tela de opções de
Browse/Copy é acessada desde uma sessão split, é possível copiar registros desde a fonte que
será mostrado na tela a fonte que se está utilizando.
- 16 –
Para ver una lista de fontes, usando o comando STRSEU, faça o seguinte:
1.- Especifique o arquivo fonte para o parametro SRCFILE mas não especifique o fonte no
parametro SRCMBR. Especifique o valor do *SELECT para o parâmetro SRCMBR.
Tecle o comando STRSEU sem nenhum parametro para que a tela de trabalho com fontes
usando SEU seja mostrada.
- 17 –
Você pode alterar a lista de fontes que aparecem na tela de trabalho com fontes usando
SEU a que só os fontes que cumpram certo critério sejam incluidos na dita lista. A seleção de
fonte pode ser por:
• Nome parcial
• Tipo de membro
• Data de criação ou de ultima alteração.
• Texto ou texto parcial .
Criar um fonte:
A tela de trabalho com membros usando SEU pode ser acessada especificando *SELECT
para o parametro SRCMBR no comando STRSEU.
File . . . . . . MTYSRC
Library . . . . MTY1 Position to . . . . .
Para iniciar uma sessão do SEU desde o PDM com a opção 2 (EDIT) na fonte que
desejamos editar.
Para alterar os defaults da sessão na tela de browse, pressione F13. Aqui poderá
especificar parametros tais como o numero de registros a rolar na tela, ou forçar a entrada de
letras em só Maiúsculas.
Tambem é possível alterar a sessão usando o comando SEU SET
O modo da tela completa o permite remover a linha de formato da parte superior da tela e
a lista de teclas de função da parte inferior da mesma.
Podemos utilizar o modo de tela completa mesmo se esta mostrando os fontes ou arquivo
de impressão (browsing). Para alterar de modo campleta:
- 19 –
- 20 –
Mesmo se trabalhe com um fonte, pode dividir (Split) a tela do browse com outro browse
de um fonte ou arquiivo de impressão (spool file). Para dividir (splits) a tela :
A linha de divisão é colocada na metade da tela do browse, e agora pode ver o fonte ou
arquivo de impressão adicional, na tela. Para mover a linha de divisão, pressione F6 (move Split
line) na posição que deseja.
Editar um fonte
Durante a edição de fontes, pode dividir (split) a tela de edição com outra tela de browse
de um fonte ou arquivo de impressão (spooled file). Para dividir a tela.
• Para mostrar ou copiar outro fonte do mesmo arquivo, tecle o nome de fonte
en el prompt de browse y presione enter.
• Para mostrar ou copiar outro fonte de um arquivo diferente, tecle o nome do
arquivo no prompt de file, o nome do fonte no prompt de Browse member e pressione
enter.
• Para mostrar ou copiar um arquivo de impressão, tecle seu nome em prompt spool file.
• Para mostrar ou copiar um arquivo de impressão de outro usuário, tecle o nome do
usuário no campo correspondente, tecle o nome do arquivo de impressão e pressione
enter.
Eliminando um fonte
- 22 –
Alguns dos valores dependem do tipo de fonte, mesmo que outros dependem do valor
que eles são assinalados ou dos valores usados na última sessão de edição.
Durante a sessão de edição, é possível buscar dentro de um fonte uma string de caracteres,
e opcionalmente alterar-la por outra string, usando a tela de opções de Encontrar / Alterar
(Find/Change).
Para acessar dita tela, pressione F14 (Find/Change Option) estando dentro da sessão de
edição . Então, dentro da tela de find/changer poderá fazer o seguinte:
• Encontrar uma string especifica.
• Alterar uma string.
• Encontrar os registros com uma data determinada.
• Encontrar os erros de sintaxes
Durante uma sessão de mostra (browse), pode buscar uma string de caracteres por medio
da tela de opção de encontrar (Find Option). A diferença é que nesta sessão não poderá alterar o
fonte e não poderá encontrar os erros de sintaxes, exceto nos arquivos de impressão.
Para guardar os valores que teclou nos Prompts de encontrar (Find) e alterar (Change),
pressione enter, F16 para encontrar ou F17 para alterar a string de caracteres.
- 23 –
Se a string digitada, é encerrada entre apóstrofes, este signo será ignorado na busca. Para
encontrar um registro numa determinada data:
1. Pressione F14 para acessar a tela de encontrar.
2. Especifique a data no campo search on date..
3. Especifique 1,2,3 no campo de comparação/compare.
4. Pressione F16 para encontrar o seguinte registro com a data especificada.
Tambem, podemos usar a operação de encontrar para localizar os erros de sintaxes
detectados no código fonte do fonte. Para encontrar estes erros tecle ‘*ERR’ ou “* ERR” e o
campo de encontrar/find. Quando pressionar F16 (Find), SEU localizará qualquer erro de sintaxe
encontrado pelo checador de sintaxes.
COMANDOS DE LINHA
Os comandos de linha se usam para realizar várias funções sobre os registros no fonte.
Podemos usar os comandos nas linhas para :
• Copiar, eliminar, insertar, mover ou imprimir registros.
• Ajuda para teclar e formatar dados dos novos registros.
• Alterar os registros que se veêm na tela.
Tecle os comandos da linha sobre o número de sequencia do registro na fonte. Por
exemplo, tecle um D (delete) no número de sequencia de um registro para elimina-lo do código
fonte. Tecle um D3 para eliminar os três registros imediatos do código fonte.
Estes comandos podem ser teclados em maiúsculas ou minúsculas. SEU converte
automaticamente os comandos em maiúsculas.
Depois de teclar ou alterar os comandos de linha, pressione uma das seguintes teclas para
correr os campos.
• Enter
• Uma tecla de função válida.
- 24 –
A seguinte tabela lista os comandos da linha de SEU. Todos os comandos de linha são
válidos nas sessões de edição em split ou Full mode. Esta tabela indica os comandos de linha que
são válidos para sessões de mostra (browse).
COMANDOS DE SEU
Podemos usar os comandos do SEU para realizar operações de encontrar/alterar, para sair
da sessão e para estabelecer os defaults da mesma. Os comados proveem um fast path para estas
operações, os quais tambem podem ser acessadas através das telas de opções. Os valores teclados
por meio dos comandos do SEU aparecerão nas ditas telas.
Os comandos deven ser teclados sobre a linha de comandos do SEU . Para recuperar o
comando anterior pressione F9 (retrieve). É possível mover o cursor desde a área de dados até a
linha de comandos do SEU e regressar à área de dados por meio da tecla F10 (cursor).
- 25 –
SAIR DE SEU
Podemos sair do SEU usando a tela de saída. Para acessar a dita tela, presione F3 (Sair)
na tela de edição ou em qualquer tela de Split. A tela de saída pode usar-se para realizar as
seguintes operações sobre o foente que se está editando.
• Sair e criar um novo fonte.
• Sair sem criar o fonte.
• Sair e salvar um fonte existente.
• Resequenciar o fonte editado.
• Imprimir o fonte.
• Ir à lista de fonte.
• Regressar à edição.
• Cancelar a função de encontrar string por PDM,
- 26 –
Arquivo Físico
Se podem gerar dados em um arquivo, por meio de programas interativos ou batch, DFU
(Data File Utility), ou comando de copy.
- 27 –
NIVEIS DE UM ARQUIVO:
FILE -LEVEL
RECORD-LEVEL
FIELD-LEVEL
KEY FIELD-LEVEL
SELECT/OMIT-LEVEL
- 28 –
ARQUIVO CAMPOS
STUDENT STUDENT NUMBER (STUNO)
STUDENT NAME (STUNAM)
- 29 –
CRTLF FILE(*CURLIB/FILE-NAME)
Comandos de Arquivos:
- 30 –
DSPPGMREF.- Display Program Reference (para consultar que arquivos se estão utilizando em
um programa.)
DSPFFD .-Display File Field Descrip.(para consultar lista de campos definidos em um arquivo e
suas caracteristicas.
Comamdos para revisar compilações.
Quando se compilam arquivos, programa, tela, ect.. se envia a uma área de processos
chamada Work with Submitted Jobs (WRKSBMJOB), na qual mostra o status dos processos que
se encontram na área.
Estes status são os seguintes:
Bottom
Parameters or command
===>
F3=Exit F4=Prompt F5=Refresh F9=Retrieve F11=Display schedule data
F12=Cancel
- 31 –
Bottom
Parameters for options 1, 2, 3 or command
===> ________________
Para revisar a compilação de um programa com a opção 5 (display) do Work with Job
Spooled Files mostrará a seguinte tela
* * * * * E N D O F M E S S A G E S U M M A R Y * * * * *
P5525MG - CAMBIO DE GREGORIANO A JULIANO 1/P550025 01/14/99 09:46:48 Page 26
5769RG1 V4R2M0 980228 IBM RPG/400 MTY
F i n a l S u m m a r y
Message Count: (by Severity Number)
TOTAL 00 10 20 30 40 50
85 7 0 1 65 12 0
Program Source Totals:
Records . . . . . . . . . . : 794
Specifications . . . . . . : 391
Table Records . . . . . . . : 1
Comments . . . . . . . . . : 400
Compile stopped. Severity level 40 errors found in file.
* * * * * E N D O F C O M P I L A T I O N * * * * *
Bottom
F3=Exit F12=Cancel F19=Left F20=Right F24=More keys
- 32 –
Esta tela nos indica os números de erros generados e a severidade respectivamente, pelo
qual é necessário buscar em que linha ocorreu o erro, isto é possivel teclando o numero do erro na
linha do comando Find ......______ o numero do erro, pressionando a tecla F16 tantas vezes que
se necessitem, já que o mesmo erro pode encontrar-se em várias linhas do código
Gravidade Descrição
00 Informação
10 Aviso
20 Erro
30 Erro grave
40 Erro não deveria continuar
50 Terminação anormal do trabalho
ou programa
60 Estado do sistema
70 Integridade de dispositivos
80 Alerta do sistema
90 Integridade do sistema
99 Ação
Comando Descrição
T Posiciona ao principio do spool
B Posiciona ao final do spool
Wn Posiciona na coluna n
W-/+n Posiciona na n coluna a partir de
onde se encontra posicionado
Pn Posiciona o apontador na pagina n
- 33 –
DSPDBR
Nos mostra todos os lógicos que estão relacionados com este arquivo.
A forma de utilizar-se é:
⇒ DSPDBR F4101
ou
⇒ DSPDBR <F4>
Display Data Base Relations (DSPDBR)
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+..
.
1/15/99 Display Data Base Relations
DSPDBR Command Input
File . . . . . . . . . . . . . . . . . . . : FILE F4101
Library . . . . . . . . . . . . . . . . . : *LIBL
Member . . . . . . . . . . . . . . . . . . : MBR *NONE
Record format . . . . . . . . . . . . . . . : RCDFMT *NONE
Output . . . . . . . . . . . . . . . . . . : OUTPUT *
Specifications
Type of file . . . . . . . . . . . . . . . : Physical
File . . . . . . . . . . . . . . . . . . . : F4101
Library . . . . . . . . . . . . . . . . . : ELAPRDDTAX
Member . . . . . . . . . . . . . . . . . : *NONE
Record format . . . . . . . . . . . . . . : *NONE
Number of dependent files . . . . . . . . : 18
Files Dependent On Specified File
Dependent File Library Dependency JREF Constraint
F4101JA ELAPRDDTAX Data 1
F4101LJ ELAPRDDTAX Data
F4101LK ELAPRDDTAX Data
F4101LI ELAPRDDTAX Data
F4101LA ELAPRDDTAX Data
F4101LB ELAPRDDTAX Data
F4101LC ELAPRDDTAX Data
F4101LD ELAPRDDTAX Data
F4101JD ELAPRDDTAX Data 1
F4101JE ELAPRDDTAX Data 1
F41021JC ELAPRDDTAX Data 2
F43090JA ELAPRDDTAX Data 2
F4101LB JDFSRC73 Data
- 34 –
DSPFD
Este comando mostra a descrição completa de um arquivo, como a biblioteca onde se encontra o
fonte, o file, a data em que foi criada e por quem foi criado, o tipo de arquivo, número de campos
que o formam, total de registros, e todos os atributos do arquivo, etc.
⇒ DSPFD F4101 ou
⇒ DSPFD
<F4> o ENTER
Display File Description (DSPFD)
Nos mostra esta tela donde escrevemos o nome do fonte a buscar e a biblioteca onde se
encontra.
Esta é parte do que nos mostra o DSPFD
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
1/15/99 Display File Description
DSPFD Command Input
File . . . . . . . . . . . . . . . . . . . : FILE F4101
Library . . . . . . . . . . . . . . . . . : *LIBL
Type of information . . . . . . . . . . . . : TYPE *ALL
File attributes . . . . . . . . . . . . . . : FILEATR *ALL
System . . . . . . . . . . . . . . . . . . : SYSTEM *LCL
File Description Header
File . . . . . . . . . . . . . . . . . . . : FILE F4101
Library . . . . . . . . . . . . . . . . . . : ELAPRDDTAX
Type of file . . . . . . . . . . . . . . . : Physical
File type . . . . . . . . . . . . . . . . . : FILETYPE *DATA
Auxiliary storage pool ID . . . . . . . . . : 01
Data Base File Attributes
Externally described file . . . . . . . . . : Yes
File level identifier . . . . . . . . . . . : 0980401202049
reation date . . . . . . . . . . . . . . . : 04/01/98
Text 'description' . . . . . . . . . . . . : TEXT Item Master
Distributed file . . . . . . . . . . . . . : No
DBCS capable . . . . . . . . . . . . . . . : No
Maximum members . . . . . . . . . . . . . . : MAXMBRS *NOMAX
Number of constraints . . . . . . . . . . . : 0
Number of triggers . . . . . . . . . . . . : 0
Number of members . . . . . . . . . . . . . : 1
Member size . . . . . . . . . . . . . . . . : SIZE *NOMAX
Allocate storage . . . . . . . . . . . . . : ALLOCATE *NO
Contiguous storage . . . . . . . . . . . . : CONTIG *NO
Preferred storage unit . . . . . . . . . . : UNIT *ANY
Records to force a write . . . . . . . . . : FRCRATIO *NONE
Maximum file wait time . . . . . . . . . . : WAITFILE *IMMED
Maximum record wait time . . . . . . . . . : WAITRCD 10
Max % deleted records allowed . . . . . . . : DLTPCT *NONE
- 35 –
DSPFFD
Este comando nos serve para ver todos os campos e as características de cada um dos campos que
formam o arquivo.
⇒ DSPFFD F4101
ou
⇒ DSPFFD
com <F4> ou enter nos leva a seguinte tela onde damos o nome do arquivo e a biblioteca
donde se encontra
DSPOBJD
Mostra a mesma tela só que agora para buscar o objeto, damos o nome e a biblioteca donde se
encontra, se não sabemos o nome de a biblioteca com *libl o toma da biblioteca donde o
encontre primero, tem que especificar o tipo de objeto a buscar
- 36 –
WRKOBJ
Trabalhando com objetos, com este comando podemos manejar os objetos, nos mostra a
lista de objetos que se encontram na biblioteca selecionada e depois manejar este objeto como
copiar, apagar, alterar de biblioteca o objeto, entre outras coisas.
⇒ WRKOBJ P 4190
ou
⇒ WRKOBJ
Ao pressionar <F4> o enter nos mostra a seg. tela, donde especificaremos o objeto, ou se
queremos ver todos os objetos no nome do objeto dar *all
Work with Objects (WRKOBJ)
Nesta tela é onde se manuseiam os objetos no campo Opt dependendo da opção selecionada se
podem copiar, renomear, apagar,etc. o objeto selecionado
Work with Objects
Bottom
Parameters for options 5, 7 and 13 or command
===>
F3=Exit F4=Prompt F5=Refresh F9=Retrieve F11=Display names and types
F12=Cancel F16=Repeat position to F17=Position to
A opção 8 nos mostra os atributos do objeto, uma das facilidades que nos permite esta opção é
saber em onde se encontra o fonte deste objeto, esta opção a obtemos se em vez de pressionar
enter, pressionamos F4 o qual nos mostrará a seguinte tela.
- 37 – Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys
No ambiente AS/400 existe uma tela que se conhece como um arquivo de mostra. Uma
tela é criada para que o operador interaja com o AS/400, observando informação, entrando com
dados e fazendo alterações dentro de um processo, as telas podem ser menus, mensagens do
processo, etc. em conclusão uma tela seria um intermediário entre o usuário e o processo. Para
criar uma tela se pode utilizar o utilitário SEU mas existe outro utilitário que é de grande ajuda a
qual é o SDA (Screen Design Aid). Cada vez que se realiza uma tela, esta se compila.
Para entrar no utilitário SDA teclamos o comando STRSDA <ENTER> , a seguinte tela
mostra a tela do utilitário SDA, onde podemos desenhar menus, telas e a prova de arquivo de
telas STRSDA <ENTER>.
1. Design screens
2. Design menus
3. Test display files
Selection or command
===>1
F1=Help F3=Exit F4=Prompt F9=Retrieve F12=Cancel
A seguinte tela será onde especificamos o nome de nossa tela e o arquivo de fontes
onde vai ser guardada, assim como a biblioteca onde se localizará.
Design Screens
- 38 –
Criar um novo registro: Com a opção 1(Add) nós podemos criar uma nova tela.
Copiar um registro : Com a opção 3 (copy) nós podemos copiar o registro.
Eliminar um registro: Com a opção 4 (delete) se elimina um registro.
Renomear um registro: Com a opção 7 (Rename) se renomea o registro.
Selecionar teclas : Com a opção 8 (Select keyword) se seleciona as teclas de
função que se usaram para o registro de tela.
Bottom
F3=Exit F12=Cancel F14=File-level keywords
F15=File-level comments F17=Subset F24=More keys
Bottom
F3=Exit F12=Cancel F14=File-level keywords
F15=File-level comments F17=Subset F24=More keys
No anterior se vê informação sobre nossa tela e seu registro, devemos especificar de que
tipo, se é uma tela normal utilizamos o tipo RECORD, e os tipos de telas que são mais comuns
são telas de Sub-Files e estilos de menus.
Add New Record
Para os campos que tem interrelação com a informação existente no AS/400, se utilizam
diferentes representações, dependendo do tipo, já sendo numérico ou caracter; a tabela seguinte
demostrará as diferentes representações:
No SDA é possivel definir campos pelo usuário ou campos que se encontram num
arquivo. Para definir um campo pelo usuário só necessita por o carácter “+” e especificar o
tipo que se deseja utilizar :
Exemplo :
+IIIIII Neste exemplo se define um campo de input de 6 caracteres.
+OOOO Neste exemplo se define um campo de output de 4 caracteres.
+BBBBBB Neste exemplo se define um campo de input/outoput de 6 caracteres.
Outra forma mais comum para definir os campos na tela é escrevendo o carácter “+”
Seguido do tipo a usar e entre parenteses “( )” o tamanho utilizado.
Exemplo:
+I(6) Neste exemplo se define um campo de input de 6 caracteres.
+O(4) Neste exemplo se define um campo de output de 4 caracteres.
+B(6) Neste exemplo se define um campo de input/outoput de 6 caracteres.
Para definir um campo numérico se seguem os mesmos passos que para um caracter, só
que se utiliza o seguinte:
Exemplo:
+3333 O +3(4) Neste exemplo se define um campo de input numérico de 4
posições.
+6666 O +6(4) Neste exemplo se define um campo de output numérico de 4
posições.
+999999 O +9(6) Neste exemplo se define um campo de input/outoput numérico
de 6 posições.
Para definir um campo numerico com decimais só és necessário indicar um ponto ( . )
apartir de quantos decimais se utilizem, exemplo
+66.66 or +6(4,2) Este exemplo é um campo numérico de 2 posições com dois
decimais.
- 40 –
Record . . . : I4105X
Bottom
F3=Exit F12=Cancel
Na qual podemos escolher os campos que necessitem para a tela e especifica-la de que
tipo a usaremos.
- 41 –
Consulta de alumnos
Nombre BBBBBBBBBBBBBBB
Apellidos BBBBBBBBBBBBBBB
Direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
Telefono BBBBBBBBB
Ciudad &2
No exemplo anterior se seleciono o campo 2 no arquivo, este nos porá o campo em tela
com as mesmas características do campo do archivo.
Eliminando campos
Para eliminar um campo só é necessário teclar um “D” ou “d” à esquerda do
campo que se deseja eliminar e pressionar enter.
- 42 –
Mover um espaço.
Para mover os campos um ou mais espaços só é necessário teclar um ‘>’ se se
deseja mover à direita e ‘<’ um para a esquerda, se pode mover os espaços que se deseja,
dependendo da quantidade do símbolo ‘< , >’ que se tecle.
Modificando um campo.
Nombre ?BBBBBBBBBB
direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB
33333333-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
333333-
Para obter informação dos campos definidos na tela só se antepõe o caracter “*” no
campo que se requeira.
Pantalla de practica DD/DD/DD
TT:TT:TT
Nombre *BBBBBBBBBB
direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB
33333333-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
333333-
- 43 –
Esta opção nos mostrará a seguinte tela onde se encontram todos os atributos do campo,
onde se podem modificar os atributos segundo sua necessidade de usuário, os mais usuais são os
seguintes:
- 44 –
Display attributes : Nos mostra todos os atributos do campo, exemplo: Underline, high
intensity, não visualiza-lo, protege-lo etc. Na qual se seleciona com “Y” e liga-lo um indicador
para poder utiliza-lo no programa.
F3=Exit F12=Cancel
Keying Options : Nesta opção podemos especificar as funções nos campos por exemplo:
preencher com brancos ou preencher com zeros.
Select Keying Options
F3=Exit F12=Cancel
- 45 –
- 46 –
Valida os dados de entrada dos campos, por meio de ranges, compara-los com um Valor
ou definir uma lista de valores.
Define Validity Check Keywords
Error Message
Para definir uma mensagem para um campo se utiliza a opção de Error Message, na qual
nos mostra a seguinte tela, na qual se assinala um indicador para poder controla-lo no programa
e se escreve a mensagem que se requer. O número de indicador nos serve para que quando no
programa ocurra um erro assinalado este se ativa e se reflita na tela inferior ou seja na linha 24.
- 47 –
Para definir as teclas de função que se usarão na tela se devem especificar o nivel de
registro, isto é, que se deve estar na tela display record e com a opção 8 (select keyword).
Work with Display Records
Bottom
F3=Exit F12=Cancel F14=File-level keywords
F15=File-level comments F17=Subset F24=More keys
Record . . . : VFIN001
Y=Yes
General keywords . . . . . . . . _
Indicator keywords . . . . . . . Y
Application help . . . . . . . . _
Help keywords . . . . . . . . . . _
Output keywords . . . . . . . . . _
Input keywords . . . . . . . . . _
Overlay keywords . . . . . . . . _
Print keywords . . . . . . . . . _
ALTNAME keyword . . . . . . . . . ______
Record . . . : VFIN001
Bottom
F3=Exit F12=Cancel
- 48 –
Para indicar o uso de uma tecla de função se tecla ‘CFnn ’ e o número da função que se
utiliza, exemplo para definir a tecla F3 que seria a de saída ou F12 para cancelar a operação tería
que definir no keyword CF03 ou CF12 receptivamente, a qual se lhe assinala um indicador,
geralmente se opta pelo numero da função.
todos os arquivos descritos por DDS podem ser usados por todos os componentes de software do
AS/400.
OBJETIVOS.
Codificar especificações de descrição de dados DDS e criar arquivos físicos no equipamento
AS/400.
Explicar a função dos campos de arquivos referenciados e codificar a DDS para criar um arquivo
para a base de dados do equipamento AS/400.
O ‘RPG’ maneja formatos físicos ao gerar programas. Estes formatos requerem uma ordem
determinada e é o seguinte: (estes são os mais comuns)
(H) CONTROL
(F) DESCRIÇÃO DE ARQUIVOS
(E) ADICIONAIS
- 49 –
(I) ENTRADA
C) CONTROL
(O) SAÍDA (este é pouco comun em ‘JDE’)
SEU==> P550004
FMT FX . ..Ffilename+ IPEAF........L..I........Device+......KExit++++Entry++A....U
0034.00 FF0001 IF E K DISK UC
0035.00 FF41021LAIF E K DISK UC
0036.00 F I41021 KRENAMEI41021A
0037.00 FF550004 O E K DISK UC
0038.00 FDSP01 CF E Workstn
0039.00 FR550004 O E Printer
Pmt SeqNbr Filename Typ Desig EOF Seq Fmt Mode RAT Device K
FX 0034.00 F0001__ I F _ _ E _ K DISK___
_
Exit Entry A/U Cond
_____ ______ _ UC
- 50 –
Pmt SeqNbr FromFile ToFile Tbl /Rcd /Tbl Len P/B/L/R Dec
A/D
E 0049.00 _______ ______ TTDOCO ____ _10 __8 ___ __0
___
- 51 –
- 52 –
FMT N .....I..............Namedconstant+++++++++C.........Fldnme.............
0020.00 I 'abcdefghijklmnopqrstuvw -C MINS
0021.00 I 'xyz'
- 53 –
FMT C .....CL0N01N02N03Factor1+++Opcde.Factor2+++ResultLenDHHiLoEqComments++++
0125.00 C* Read master file input.
0127.00 C READ I4102A 99LR
0130.00 C CANTID MULT COSUNI $PRECI
USO DE INDICADORES
FMT C .....CL0N01N02N03Factor1+++Opcde…Factor2+++ResultLenDHHiLoEqComments++++
0153.00 C READ CLIENTES 99
0154.00 C *IN99 IFEQ ‘0’
0155.00 C MOVELMCU $MCU
0156.00 C …….
0157.00 C MOVE ‘1’ *IN33
ESTADOS DE UN INDICADOR:
A) ATIVADO => ‘ON’ = ‘1’
B) DESATIVADO => ‘OFF’ = ‘0’
SAÍDA DE LER UM
DETALHE REGISTR
O
CALCULOS DE MOVER
DETALHE DADOS
A CAMPOS
- 54 –
PROGRAMAÇÃO BATCH
VS.
PROGRAMAÇÃO INTERATIVA
PROGRAMAÇÃO BATCH
ARQUIIVO
HISTÓRICO
DE VENDAS
INFORME DE VENDAS
TOTAL 2,345.70
FEBRERO 8,200.00
PROGRAMA DE ………………..
ANALISE DE
VENDAS
- 55 –
PROGRAMAÇÃO
INTERATIVA
PROGRAMA DE
CONSULTA DE ARQUIVO DE
CLIENTES CLIENTES
- IDENTIFICAÇÃO DE TELAS
- 56 –
EXEMPLO:
DESCRIÇÃO DO PROGRAMA
IDENTIFICAÇÃO DE ARQUIVOS
DIAGRAMA DE ENTIDADE-RELACION
CURSOS INSCRIÇÕES
IDENTIFICAÇÃO DE ARQUIVOS
- 57 –
IDENTIFICAÇÃO DE TELAS
. TELAS EXISTENTES
Opção 3 de SDA
DDS
. TELAS NOVAS
Opção 1 de SDA
DDS
OPERAÇÕES ARITMÉTICAS
ADD (SOMAR)
SUB (SUBTRAIR)
MULT (MULTIPLICAR)
SQRT (RAIZ QUADRADA)
DIV (DIVIDIR)
Z-ADD (INICIALIZA E MOVE NÚMERO)
5.- Nas operações: add, sub, mult e div, o fator 1 pode omitir-se.
O comando SETLL é usado para posicionar o apontador num registro buscado, o apontador se
posicionará acima do registro que seja igual ou maior à chave dada como parâmetro de busca.
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
KEY SETLL FILE ou REG. In In
Exemplo
Fator 1 OpCode Fator2 Hi Lo Eq
IMKY01 SETLL I4101 71
- Posiciona o apontador antes do registro que seja maior ou igual ao argumento de busca e com
o indicador no HI verifica que se cumpra esta condição
Exemplo
Fator 1 OpCode Fator2 Hi Lo Eq
IMKY01 SETLL I4101 72
Neste caso é o inverso e o indicador se ativará se nenhum registro for maior ou igual à chave
- 60 –
SETGT
Posiciona o apontador antes do primeiro registro que seja maior à chave dada
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
KEY SETGT FILE ou REG. In In
KEY.- é a chave que se vai usar para posicionar o apontador no registro buscado
FILE ou REG.- nome do arquivo ou registro que se vai fazer o SETGT
READ
Faz uma leitura sequencial ao arquivo
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
READ File ou Reg.
File ou Reg.- nome do file ou registro que se vai ler
Exemplo.
Fator 1 OpCode Fator2 Hi Lo Eq
READ I41021
READE
È parecido ao read, com a diferença de que lê só os registros que sejam iguais à chave. O
indicador se prenderá quando o registro lido não seja igual à chave dada ou quando se chegue ao
fim do arquivo
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
Key READE File ou Reg. 81
KEY.- é a chave que se vai usar para posicionar o apontador no registro buscado
FILE ou REG.- nome do arquivo ou registro que se vai fazer o READE
Exemplo.
Fator 1 OpCode Fator2 Hi Lo Eq
IMITM READE I4101 81
- 61 –
Supondo que o valor de IMITM=1542 e que o arquivo I41021 estivera chaveado por IMITM só
vão a lêr os registros do F4101 cujo IMITM seja igual a 1542, e o indicador 81 se prendería
quando já não sejam iguais os registros à chave buscada.
O READE quase sempre se maneja em conjunto com o SETLL, para primero posicionar o
apontador e logo ir lendo os registros que sejam iguais à chave especificada.
READP
Lê o registro anterior, ao que está posicionado atualmente, faz uma leitura regressiva
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
READP File ou Reg. 81
Exemplo.
Fator 1 OpCode Fator2 Hi Lo Eq
READP I4101A 81
Por exemplo se o registro em que se encontra atualmente
45
50 ao fazer o READP
52 no que se encontra atualmente
60
CHAIN
Posiciona e lê o registro que cumpra com a chave dada, este comando é utilizado para fazer uma
busca direta.
O indicador se ativará quando não se encontre nenhum registro que cumpra com a chave, se o
indicador está apagado quer dizer que se encontrou o registro, o lê e se posiciona no primeiro
registro que cumpra com a chave.
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
Key CHAIN File ou Reg. 81
KEY.- é a chave que se vai usar para posicionar o apontador no registro buscado
FILE ou REG.- nome do arquivo ou registro que se vai fazer o CHAIN
Exemplo.
Fator 1 OpCode Fator2 Hi Lo Eq
LIKY01 CHAIN I41021 81
- 62 –
Operações aritméticas:
ADD
Operação de soma
Sintaxe
Fator 1 OpCode Fator2
Valor1 ADD Valor2 Resultado
Resultado= Valor1 + Valor2
Exemplo.
Fator 1 OpCode Fator2
Preço ADD Iva QuantT 15 2
NOTA: Tem que definir os campos de trabalho neste caso QuanT se definiu como um campo
númerico de 15 inteiros com 2 decimais, só é necessário defini-los uma vez, o campo de preço e
Iva devem estar definidos se não vem de nenhum arquivo.
SUB
Operação de subtração
Sintaxe
Fator 1 OpCode Fator2
Valor1 SUB Valor2 Resultado
Resultado= Valor1 – Valor2
Exemplo.
Fator 1 OpCode Fator2
QuantInv SUB QuantVend QuantRest 15 0
- 63 –
MULT
Operação de multiplicação
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Valor1 MULT Valor2 Resultado 15 0
Resultado= Valor1 * Valor2
Nota: o campo de resultado deve estar definido, tem que especificar que seja númerico, seu
tamanho e número de decimais
DIV
Operação de divisão
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Valor1 DIV Valor2 resultado 15 0
Resultado= Valor1/ Valor2
SQRT
Raiz quadrada
Exemplo.
RaízC= 10
- 64 –
Mover Dados
Z-ADD
A operação Z-ADD serve para inicializar o campo de resultado com o valor do fator1, esta
operação só é valida para campos numéricos
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Z-ADD Valor2 Resultado 15 0
Valor2 = quantidade com que se vai inicializar o campo de resultado
Exemplo.
Fator1 OpCode Fator2 Resultado Len Dec
Z-ADD 500 Quant 15 0
Que daria
Quant = 500
Nota: ambos devem ser do tipo numérico, com o Z-ADD não se utiliza o fator1
MOVE
Esta operação é utilizada para mover dados e alinhar-los à direita, a operação MOVE transfere os
caracteres do fator 2 ao campo de resultado.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
MOVE Campo2 Campo3 20
Há várias maneiras que se podem mover os dados com move, a continuação se dão alguns
exemplos para o move
Caso1
Quando ambos campos são de tipo carácter e o campo de resultado é mais largo que o fator 2
Exemplo
ANTES
Fator2= F I L E
Resultado= S O F T W A R E
DEPOIS
Resultado= S O F T F I L E
- 65 –
Caso 2
Quando ambos campos são de tipo númerico e o campo de resultado é mais largo que o fator 2
ANTES
Fator2= 78 9
Resultado= 1 2 3 4 5 6
DEPOIS
Resultado= 1 2 3 7 8 9
Caso 3
O fator 2 é númerico e o campo resultado é tipo carácter e é mais largo que o fator2
ANTES
Campo1= 234
Campo2= u md o i s
DEPOIS
Campo2= u md 2 3 4
Caso 4
Ambos campos são de tipo caracter só que o campo de resultado é mais curto que o fator2
ANTES
Fator2= u md o i s
Resultado= t r e s
DESPUES
Resultado= d o i s
Caso 5
Ambos campos são numéricos, o campo resultado é mais curto que o fator2
ANTES
Campo1= u md o i s
Campo2= t r e s
DEPOIS
Campo2= d o i s
- 66 –
MOVEL
Caso 1
O campo resultado é mais largo que o do fator2, ambos campos são de tipo carácter
ANTES
Fator2= F I LE
Resultado= S O F T W A R E
DEPOIS
Resultado= F I L E W A R E
Caso 2
O campo resultado é mais largo que o do fator2, ambos campos são de tipo numérico
ANTES
Fator2= 1 2 3 4
Resultado= 5 6 7 8 9 0 1 2
DEPOIS
Resultado= 1 2 3 4 9 0 1 2
Os demais exemplos são parecidos aos vistos no move só que em lugar de alinhar o campo do
fator2 à direita o alinha à esquerda ao utilizar o MOVEL
MOVEA
Move todos os campos de um array para uma variable
Sintaxe
Fator1 OpCode Fator2 Resultad Len Dec
MOVEA NomArray VarResult Long
Por exemplo se temos um array chamado NAME de tamanho 10, tipo caracter e se quer mover
para uma variável chamada ALUNO do mesmo tamanho e tipo.
- 67 –
NAME
E D G A R O M A R
1 2 3 4 5 6 7 8 9 10
Condicionais e Ciclos
IFxx
Condição IFxx, é um condicional para realizar determinada ação ou não
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Campo1 Ifxx Campo2
{Operac
ELSE
{Operac
ENDIF
Exemplo
- 68 –
CASxx
Este comando permite fazer uma seleção da subrotina a executar; se se cumpre a comparação
entre o fator1 e o fator2, a subrotina especificada no campo resultante é executada.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Campo1 CASxx Campo2 NomSubrotina
Exemplo.
Factor1 OpCode Factor2 Resultad Len Dec
Mov CASEQ ‘b’ Baixa
CABxx
Este comando permite fazer uma comparação entre o fator1 e o fator2; se esta comparação
resultar verdadeira o programa mandará o controle ao TAG associado com a etiqueta
especificada no campo resultante
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Campo1 CABxx Campo2 Etiqueta
Exemplo.
Fator1 OpCode Fator2 Resultado Len Dec
Mov CABEQ ‘1’ Alta
DO
Inicia e processa um grupo de operações e se levam à cabo tantas vezes como se especifique no
contador ou variavel
Sintaxes
Fator1 OpCode Fator2 Resultado Len Dec
DO Cte. Ou Var
{Operac
ENDDO
ejem
Fator1 OpCode Fator2 Resultado Len Dec
DO 10
Add 2 Sum 2 0
ENDDO
Estará somando 2 a Sum até que sejam 10 vezes, que é o que se especificou
- 69 –
DOWxx
Este ciclo se vai a levar à cabo até a condição especificada para este ciclo seja verdadeira
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Campo1 DOWxx Campo2
{Operac
ENDDO
EXSR
Manda executar uma subrotina, pode ser executada desde o menu principal ou de qualquer outra
subrotina que à mande executar.
Sintaxes
Fator1 OpCode Fator2 Resultado Len Dec
EXSR NomRotina
NomRotina.- nome da subrotina que se vai executar
BEGSR… ENDSR
O BEGSR marca o inicio de uma subrotina e com o ENDSR se encerra o bloco da subrotina
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Preços BEGSR
Bloco
Da
Rotina
ENDSR
- 70 –
EXFMT
Permite enviar e lêr um formato de tela
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
EXFMT NomTela
GOTO,TAG
O Goto permite variar o fluxo de um programa, ao chegar ao Goto, Label manda o controle do
programa aonde se encontra o label especificado em Goto. Isto se faz com o TAG Label que
marca a parte do programa aonde se mandará o controle do programa quando se execute o
GOTO.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
GOTO Label
{corpo
{do pgm
TAG Label
Atualização de Registros
UPDATE
Atualiza as alterações feitas num registro
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
UPDAT NomRegistro
ou Arquivo
Nota: primeiro tem que posicionar o apontador no registro que se deseja atualizar
exemplo
Fator1 OpCode Fator2 Resultado Len Dec
UPDAT V01200
DELET
Apaga o registro em que está posicionado atualmente o apontador
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
DELET NomRegistro
ou Arquivo
- 71 –
WRITE
Escreve um registro novo no arquivo especificado, para este arquivo em que se deseja escrever
deve estar declarado na letra F uma A na coluna de Adição.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
WRITE NomRegistro
Ou File
exemplo
Fator1 OpCode Fator2 Resultado Len Dec
WRITE I4111
Definição de chaves
KLIST
Define uma chave composta, se utiliza para declarar uma lista de campos chave (KFLD). Esta
lista pode ser usada como argumento de busca.
Os KFLDs são os campos que forman a chave como campos de arquivos, valores fixos ou
variaveis; podem ser de um a mais campos.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
NomKey KLIST
KFLD Campo1
KFLD Campo2
KFLD Campo3
NomKey .- nome com o que se identificará a chave, este é o nome com o qual se chamará a
chave para uma busca.
Campo1…3.- são os campos que formam esta chave
- 72 –
Exemplo.
Fator1 OpCode Fator2 Resultado Len Dec
LIKY01 KLIST
KFLD LIMCU
KFLD LILOCN
KFLD LIITM
Parâmetros
PLIST
Define um nome único para a lista de parâmetros que receberá ou passará o programa, ao ser
executado o comando executar com a operação CALL
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
*ENTRY PLIST
PARM Parâmetro1 Tam1 #dec
PARM Parâmetro2 Tam2
PARM Parâmetro3 Tam3
PARM.- Define cada um dos parâmetros que compõem a lista de parâmetros do programa
Tam1..n.- Tamanho de cada um dos parâmetros e tipo
CALL
Manda chamar um programa para ser executado, se o programa que vai ser chamado requer que
sejam passado parâmetros se especificam aqui, ao manda-lo executar com o comando CALL
Sintaxis
Fator1 OpCode Fator2 Resultado Len Dec
Move Dado1 ParaEntr1
Movel Dado2 ParaEntr2
“ “ “
Movel Dadon ParaEntrn
CALL Programa
PARM ParaSal1
PARM ParaSal2
“ “
PARM ParaSaln
Dado1..n .- são os dados de entrada que requerem o programa que se esta chamando para
executado
ParaEnt1..n.- nomes dos parâmetros, podem ser iguais ou não, o que é importante é a ordem em
que são dados, devem ser na mesma ordem em que são especificados no programa chamado e do
mesmo tipo.
ParaSal1..n .- são os parâmetros que regressa o programa.
- 73 –
OPEN
Comando para abrir um arquivo
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
OPEN Arquivo
CLOSE
Fecha um arquivo aberto
Sintaxes
Fator1 OpCode Fator2 Resultado Len Dec
CLOSE Arquivo
SETOF
Apaga os indicadores especificados em Hi,Lo,Eq e assinala o valor de 0 ao indicador
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
SETOF In In In
Exemplo
Fator 1 OpCode Fator2 Hi Lo Eq
SETOF 82
SETON
Operação para ativar os indicadores contidos em Hi,Lo,Eq e assinala o valor de 1 ao indicador.
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
SETON In In In
Exemplo
Fator 1 OpCode Fator2 Hi Lo Eq
SETON 81
- 74 –
Manuseio de Arrays
LOKUP
Faz uma busca a um array ou tabela
Sintaxe
Fator 1 OpCode Fator2 Hi Lo Eq
Argumento LOKUP Array ou tabela In
- 75 –
Exemplo.
Fator 1 OpCode Fator2 Hi Lo Eq
500 LOKUP Preços 81
O array de preços contem os seguintes elementos
100
300
500
800
:
neste caso o indicador 81 se prenderá, já que o valor 500 se existe no array
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
XFOOT Array VarResul Long #dec
Exemplo
Fator1 OpCode Fator2 Resultado Len Dec
XFOOT ArraIva Soma 15 2
Manuseio de Strings
CAT
Une duas strings de caracteres em uma só
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
String1 CAT String2 StringRes 20
Exemplo.
Fator1 OpCode Fator2 Resultado Len Dec
Nom1 CAT Nom2 Nome 20
Nom1= Maria
Nom2=Cristina
Ao concatenar desta manera daria assim:
Nome= Maria Cristina
- 76 –
Nom1= Maria
Nom2=Cristina
Ao concatenar desta manera temos assim:
Nome= Maria Cristina
A operação SCAN checa a variavel tipo carácter ou array especificado no fator2 com o
argumento especificado no fator1. Se o argumento foi encontrado, a posição do primeiro caracter
do argumento é passado ao campo resultante. Se um array numérico é especificado como o
campo resultante, cada ocurrência do argumento encontrado no fator2 é passado num
correspondente elemento do array.
Sintaxe
Fator1 OpCode Fator2 Resultado Len Dec
Argumento:1 SCAN NomVar Posição Long #Dec
Apelido= Gu
Name=Pablo Guzmán
Ao fazer o SCAN
ResPos=7
- 77 –
A linguagem de controle é:
A única interface consistente para todas as funções do sistema, com um CLP podemos controlar
programas de aplicação.
• INTERATIVO
q PALAVRA CHAVE OU POSICIONAL
q COM SOLICITAÇÃO (PROMPT)
• COMPILAVEL
q RÁPIDO
q LÓGICA POTENTE
q MANUSEIO DE ERROS
q MANIPULAÇÃO DE DADOS
q INTERFACE COM TELA E DB.
• DESENHO PARA CONTROLAR O FLUXO DE UMA APLICAÇÃO.
PGM (opcional)
DCLF (arquivo)
DCL (variáveis)
MONMSG
IF
ELSE
SNDRCVF
[PROGRAMA]
SNDMSG
CHGVAR
MONMSG
GOTO TOP
ENDPGM(opcional)
Regras de codificação
Nome de variavel.- Para armazenar e atualizar dados e receber parâmetros. Deve
trabalhar com o caracter ‘&’.
Dois pontos (:)._ Separa o label do comando
Brancos. Separa os parâmetros de um comando.
Parenteses ( ) .- Separa as palavras chaves e valores.
Barra (/). Conecta as partes de nomes qualificados.
Apóstrofe ‘ ‘ .- Ao começo e ao final de uma série de caracteres, tal como ‘ALL’.
- 78 –
DCL
Todas as variaveis numa CL sempre se declaram com o caracter ‘&’ antes do nome da variável.
Exemplo:
(1) DCL &A *LGL VALUE (‘1’)
(2) DCL &B *CHAR 5 ABCD
(3) DLC &c *DEC (5 2) 543.21
CHGVAR.
Constantes
Outras variáveis
Expressões
Exemplos de CHRVAR
1.- CHGVAR &MONT –37.2
2.- CHGVAR &NAME ‘TOM SMITH’
3._ CHGVAR &CODE A
4.- CHGVAR &COUNT (&CONTA + 1)
5.- CHGVAR &IN20 (&IN10 *OR &IN15)
6.- CHGVAR &IN99 (&OPÇÃO = 90)
7.- CHGVAR &AMT ((&PREÇO. & DESCONTO /0 * & QUANT)
- 79 –
Usar CHGVAR para alterar o tipo de dados, numa CL podemos alterar o tipo de dado que
tenhamos de um valor numérico a carácter ou vice-versa.
(
%SS *LDA
nome –variavel ]- Posição-inicial tamanho )
Conteúdo da variável ou *LDA :
1 2 3 .... X Y
X= posição – inicial.
Y= tamanho.
- 80 –
Exemplo de %SUBSTRING
DEPOIS &NAME: B
Exemplo 2
Usar uma variável para posição inicial
PGM
DCL VAR (&TEAM) TYPE(*CHAR) VALUE (ABCDEFGHIJKL)
DCL VAR(&LIB) TYPE (*CHAR) LEN (6) VALUE (IWLIBX)
CONCATENAÇÃO
Resultado
Serie1 *CA Serie2 Serie Serie
T 1 2
A B bC *TCA Serie2 A Serie
T
A B C *BCAT Serie2 ABC D
A D D
b *BCA Serie2 A D
T Serie2
Exemplo de concatenação:
Cliente XYZ corporação, número de conta 54321, seu crédito vencido por 30 dias.
PGM
DCL &CUSNAME *CHAR 25 ‘XYZ CORPORAÇÃO’
DCL &CUSNUM *DEC (5 0)
DCL &CUSNUMALPH *CHAR 5
DCL &DAYS *DEC 30
- 81 –
- 82 –
CONDIÇÃO
Quando desejamos condicionar um programa CL só pode executar um comando ou um label
depois da condição.
IF COND ( expressão ) THEN (comando)
ELSE CMD(comando)
Operadores relacionais :
Operadores relacionais
< *LT Menor que
= *EQ Igual
> *GT Maior que
<= *LE Menor igual
_< *NL No menor
_> *NG No maior
>= *GE Maior igual
_= *NE Não igual ou diferente
Exemplo :
Outra forma de usar o IF para que execute mais de uma linha se utiliza a seguinte sentença
IF COND (condição) THEN (DO)
CALL PGM1
CALL PGM2
END DO
ELSE CMD (DO)
CALL PGM3
CALL PGM4
ENDDO
- 83 –
- 84 –
EXEMPLO CVTDAT
PGM
DCL VAR (&DATE) TYPE (*CHAR) LEN(6)
DCL VAR (& YMRD) TYPE (*CHAR) LEN(6)
RTVSYSVAL SYSVAL(QDATE) TOVAR(&YRMD) +
FORMFTM(*SYSVAL) TO FMT(*YMD) TOSEP (*NONE)
CALL PGM(PYC50) PARM(&YRMD)
....
....
....
ENDPGM
MONMSG
Este comando se utiliza para supervisionar mensagens de erro dentro de um programa
ALCOBJ
CPF1002 Não pode assinalar objetos.
CPF1040 Número máximo de objetos assinalados no sistema
CPF1085 Objetos não assinalados
CPF5739 Não pode assinalar-se ou liberar arquivo(s) DDM
Exemplo
- 85 –
EXEC – (Opcional)
Comando CL
Exemplo:
1 CHGOBJ OBJ(IWLIB/APR010 OBJTYPE(*PGM) /* existência*/
MONMSG..............
2 CHKOBJ OBJ(APPVEND) OBJTYPE(*PGM) + /* existência*/
MBR(APPVAND) AUTO(*DLT) /*e autorização*/
MONMSG............
Exemplo de supervisão de mensagens
PGM
DCL...
/*NIVEL DE PROGRAMA
MONMSG CPF9801 EXCE(GOTO NÃO ENCONT)
MONMSG CPF7302
/* FIM NIVEL DE PROGRAMA
CHKOBJ PYPMAST *FILE
CHKOBJ GLPMAST *FILE
DE NOVO: CRTPF QTEMP/WORK.....
MONMSG CPF7302 EXEC (DO)
DTLF QTEMP/WORK
- 86 –
GOTO DE NOVO
ENDDO
CRTPF PLALIB/PYPTRAN
GOTO FIM
NÃO ENCONT: SNDURSMSG TOMSGQ(*EXT) MSG(‘ NÃO ENCONTRA O
ARQUIVO+ CHECAR LISTA DE BIBLIOTECA DA SESSÃO’)
FIM: ENDPGM
- 87 –