Manual RPG400
Manual RPG400
Manual RPG400
Curso De As/400
ESTUDIANTES INSTRUCTORES
CLASES
GRADOS DEPARTAMENTOS
ESTUDIANTES
TEXTOS SALONES
Se almacenan datos en tablas, archivos, grupos de datos, etc. con un minimo de datos
redundantes.
-1 –
AS/400 BASICO por Wilbert Martínez
RED
JE
RARQUI
CA
R
ELACIO
NAL
El Modelo Relacional.
-2 –
AS/400 BASICO por Wilbert Martínez
TABLA BASE
TABLA = ARCHIVO
RENGLON = REGISTRO
COLUMNA = CAMPO
-3 –
AS/400 BASICO por Wilbert Martínez
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
===>
F3=Exit F4=Prompt F9=Retrieve F12=Cancel F13=Information ssistant
F23=Set initial menú
Este es el menú inicial del AS/400 que es una parte importante del OS/400, que nos ayuda a
ejecutar los comandos y utilerias por medio de opciones de manera un poco más fácil.
Selection or command
===>
El PDM es una herramienta del AS/400 que facilita el control de Bibliotecas, objeto y
fuentes, de una manera rápida y eficiente, favoreciendo a la productividad en la operación. El
PDM forma parte del grupo de herramientas de apoyo del AS/400 conocidas como TooSet/400.
Con el PDM el usuario podrá controlar los siguientes concepto o funciones en AS/400:
• Bibliotecas.
• Objetos.
• Fuentes.
• Opciones definidas por el usuario.
Utilizando PDM el usuario podrá disponer de las siguientes utilerias o facilidades, que a su vez
pertenecen también al TollSet/400.
Source Entry Utility (SEU)
Data File Utility (DFU)
Screen Design Aid (SDA)
Report Layout Utility (RLU)
-5 –
AS/400 BASICO por Wilbert Martínez
Esta pantalla es de entrada a las biblioteca, podemos seleccionar que biblioteca queremos
visualizar o trabajar. Tienen la siguiente opciones:
-8 –
AS/400 BASICO por Wilbert Martínez
Object:
Name . . . . . . . . . . . *ALL *ALL, name, *generic*
Type . . . . . . . . . . . *ALL *ALL, *type
Attribute . . . . . . . . *ALL *ALL, attribute, *generic*,
*BLANK
-9 –
AS/400 BASICO por Wilbert Martínez
Eliminar un objeto.
Utilizar la opción 4 (delete) en el objeto a eliminar.
Renombrar un objeto.
Utilizar la opción 7 (rename) en el objeto a renombrar
Mover un objeto.
1. Utilizar la opción 11 (Move) en el objeto a mover.
2. Especificar la biblioteca destino.
Copiar un objeto:
1. Utilizar la opción 13 (Move) en el objeto a mover.
2. Especificar la biblioteca destino.
Ejecutar un objeto.
Debug interectivo.
Nota: Solo se pueden ejecutar las opciones y teclas de funcion que se encuentren
visualizadas en la pantalla.
-11 –
AS/400 BASICO por Wilbert Martínez
Member:
Name . . . . . . . . . P43500 *ALL, name, *generic*
Type . . . . . . . . . *ALL *ALL, type, *generic*, *BLANK
Al escoger esta opcion 3 del (STRPDM) trabaja con Fuentes (wrkmbrpdm) nos
muetra la pantalla anterior toma los siguientes valores:
Member:
Name : Nombre del Fuente a trabajar, pueden tomar los sigientes valores:
*ALL : Todos los fuentes cotenidos en la biblioteca y el sorfile
Name : EL nombre del fuente a trabajar.
* Generic * : Es un fuente que tenga las cadena que se encuentra definida
dentro de los asteriscos *.
Type : Tipo de fuente a utilizar.
*ALL : Todos los tipos de fuentes que se encuentren en esta biblioteca y en
el soruc file.
Type : Tipo especifico de fuente.
*generic *: desplegara todos aquellos fuentes que cumplan con la cadena
encerrada entre asteriscos (*)
*BLANK : Despliega todos los fuentes con type en blanco.
-12 –
AS/400 BASICO por Wilbert Martínez
File . . . . . . JDEMTY
Library . . . . MTY1 Position to . . . . .
Copiar un fuente
1.- Estando en la pantalla del WRKMBRPDM..
2.- Utilizar la opción 3(copy) en el fuente a copiar
La función copiar funciona como duplicar un fuente, el cual puede existir o no
en la biblioteca y archivo fuente destino. De tal forma que la acción de copiar se
realiza de dos formas:
a). Crea un fuente nuevo en la biblioteca y archivo fuente destino con las
mismas características del fuente origen.
b). Reemplaza un fuente ya existente en la biblioteca y archivo fuente
destino, con las mismas características.
Editar un fuente .
Utilizando la opción 2 (Edit) en el fuente a editar. En esta opción nos mostrara el
SEU
-13 –
AS/400 BASICO por Wilbert Martínez
Ordenar una lista de fuentes por fecha: Utilizan la función <F4> (Display date)
para desplegar las fechas de creación. Y con la Función <F15> (sort date) para
ordenar la fecha.
Indistintamente la función <F15> (sort date) sirve para ordenar : por fecha o por
nombre.
a) Utilizando el PDM.
Trabajando con fuentes (WRKMBRPDM) la opción 25 (find
String) para hacer la búsqueda correspondiente.
b) utilizando el comando FNDSTRPDM
Con el SEU, usted puede trabajar con el fuente de archivos, y los registros
contenidos dentro de ellos.
Opciones permitida:
-14 –
AS/400 BASICO por Wilbert Martínez
Crear fuentes
Editar fuentes
Imprimir fuentes
Copiar registro de un archivo (fuentes) a otro fuente o un archivo de
impresión
-15 –
AS/400 BASICO por Wilbert Martínez
Líneas de formatos: Se pueden utilizar las líneas de formato para verificar la posición de
los estatutos según los estatutos fuentes del lenguaje de alto nivel utilizado. SEU provee de
líneas de formato predefinidas para comandos de los lenguajes de alto nivel utilizados y de
lenguaje de control de AS/40 (CL).
Modo de pantalla completa. El modo de pantalla completa (Full screen mode) es utilizado
en las pantallas de edición y de browse para eliminar teclas de función de la pantalla del SEU,
permitiendo así, tener cuatro líneas más de texto fuente.
Líneas de comandos:. Esta, es usada para realizar varias operaciones, tales como insertar
registros en blancos , copiar registro y llamar al prompt de comandos o lenguajes.
Pantallas de opciones: Este tipo de pantallas son utilizadas para controlar el ambiente del
SEU y para realizar operaciones sobre los fuentes de archivos y archivos de impresión. Las
pantallas de operaciones más usadas son:
- Cambio de defaults de la sesión.
- Opciones de browse/ copy.
- Opciones de Encontrar/ Cambiar.
Sesión split: Esta sesión es utilizar para ver y editar un fuente y visualizar otro en la
misma pantalla de trabajo. También, es posible visualizar dos fuentes en la misma pantalla a la
vez. Si la pantalla de opciones de Browse/Copy es accesada desde una sesión split, es posible
copiar registros desde la fuente que sea mostrado en la pantalla a la fuente que se este utilizando.
-16 –
AS/400 BASICO por Wilbert Martínez
Chequeo de sintaxis. El chequeo de sintaxis es utilizado para verificar los estatutos de los
diferentes lenguajes de alto nivel, incluyendo Basic, Pl/I, cobol, Fortan y RPG, así como el
lenguaje de control del AS/400.
Ventanas de comandos del sistema: Desde esta ventana es posible mandar ejecutar
comandos de AS/400 mientras trabaja con una pantalla de edición del SEU. Para desplegar la
ventanas de comandos del sistema, presione F21. No es posible teclear datos en la pantalla de
edición del SEU mientras la ventana de comandos del sistema se encuentre desplegada.
Para ver una lista de fuentes, usando el comando STRSEU, haga lo siguientes:
1.- Especifique el archivo fuente para el parámetro SRCFILE pero no especifique el fuente
en el parámetro SRCMBR, Especifique el valor del *SELECT para el parámetro SRCMBR.
Teclee el comando STRSEU sin ningún parámetro si la pantalla de trabajo con fuentes
usando SEU fue desplegada.
-17 –
AS/400 BASICO por Wilbert Martínez
Usted puede cambiar la lista de fuentes que aparecen en la pantalla de trabajo con fuentes
usando SEU a que solo los fuentes que cumplan cierto criterio sean incluidos en dicha lista. La
selección de fuente puede ser por:
• Nombre parcial
• Tipo de miembro
• Fecha de creación o de ultimo cambio.
• Texto o texto parcial .
Crear un fuente:
La pantalla de trabajo con miembros usando SEU puede ser accesada especificando
*SELECT para el parámetro SRCMBR en el comando STRSEU.
-18 –
AS/400 BASICO por Wilbert Martínez
La figura anterior nos muestra los tipos de fuentes mas utilizados en AS/400.
-19 –
AS/400 BASICO por Wilbert Martínez
File . . . . . . MTYSRC
Library . . . . MTY1 Position to . . . . .
Para iniciar una sesión del SEU desde el PDM con la opción 2 (EDIT) en la
fuente que de deseamos editar.
Para cambiar los defaults de la sesión en la pantalla de brows, presionando F13. Aquí
podra especificar parametros tales como el numero de renglones a rolar en la pantalla, o forzar la
entrada de letras en solo Mayúsculas.
Tambien es posible cambiar la sesion usando el comando SEU SET
El modo de la pantalla completa le permite remover la linea de formato de la parte
superior de la pantalla y la lista de teclas de funcion de la parte inferior de la misma.
Podemos utilizar le modo de pantalla completa mientra se esta mostrando los fuentes o
archivo de impresión (browsing). Para cambiar de modo campleta:
Mientras se trabaje con un fuente, puede dividir (Split) la pantalla del browse con otro
browse de un fuente o archivo de impresión (spool file). Para dividir (splits) la pantalla :
La linea de división es colocada a la mitad de la pantalla del browse, y ahora puede ver el
fuente o archivo de impresión adicional, en la pantalla. Para mover la linea de división, presione
F6 (move Split line) en la posición que desea que este.
Editar un fuente
• Para mostrar o copiar otro fuente del mismo archivo, teclee el nombre del fuente
en el prompt de browse y presione enter.
• Para mostrar o copiar otro fuente de un archivo diferente, teclee el nombre del
archivo en el prompt de file, el nombre del fuente en el prompt de Browse member y
presione enter.
• Para mostrar o copiar un archivo de impresión, teclee su nombre en prompt spool file.
• Para mostrar o copiar un archivo de impresión de otro usuario, teclee el nombre del
usuario en el campo correspondiente, teclee el nombre del archivo de impresión y
presione enter.
Eliminando un fuente
-22 –
AS/400 BASICO por Wilbert Martínez
Algunos de los valores dependen del tipo de fuente del fuente, mientras que otros
dependen del valor que les sea asignados o de los valores usados en la ultima sesión de
edición.
-23 –
AS/400 BASICO por Wilbert Martínez
COMANDOS DE LINEA
Los comandos de línea se usan para realizar varias funciones sobre los registros en el
fuente. Podemos usar los comandos en líneas para :
• Copiar, eliminar, insertar, mover o imprimir registros.
• Ayuda para teclear y formatear datos de los nuevos registros.
• Cambiar los registros que se ven en la pantalla.
Teclee los comandos de la línea sobre el número de secuencia del registro en el fuente.
Por ejemplo, teclee una D (delete) en el número de secuencia de un registro para eliminarlo del
código fuente. Teclee una D3 para eliminar los tres registros inmediatos del código fuente.
Estos comandos pueden ser tecleados en mayúsculas o minúsculas. SEU convierte
automáticamente los comandos en mayúsculas.
Después de teclear o cambiar los comandos de línea, presione una de las siguientes teclas
para correr los campos.
• Enter
• Una tecla de función valida.
• Avance o retorno de pagina ( Page up o page Ddown).
-24 –
AS/400 BASICO por Wilbert Martínez
La siguiente tabla lista los comandos de línea del SEU. Todos los comandos de línea son
validos en las sesiones de edición en split o Full mode. Esta tabla indica los comandos de línea
que son validos para sesiones de despliegue (browse).
Posicionamiento Y n. n n.n
absoluto N A An B Bn
Antes / Después Y COLS
Columnas Y/N C Cn CC
Copiar Y/N CR CRn CCR
Copiar repetidamente Y/N D Dn DD
Borrar Y X Xn XX
Excluir Y F F? Fxx
Formato N I In
Inserción N IF IFn IF? IF?n
Insertar con formato N IP IP? Ipxx
Insertar con prompt Y LP LPn LLP
Imprimir línea N M Mn MM
Mover N O On OO
Solapar N P P? Pxx
Prompt Y + +n - -n
Posición relativa N RP RPn RPP
Repetir Y RPPn
Show SF SFn SL SLn
Comandos de SEU
Podemos usar los comandos del SEU para realizar operaciones de encontrar/cambiar, para
salir de la sesión y para establecer los defaults de la misma. Los comados proveen un fast path
para estas operaciones, los cuales también pueden ser accesadas através de las pantallas de
opciones. Los valores tecleados por medio de los comandos del SEU aparecerán en dichas
pantallas.
Los comandos deben ser tecleados sobre la línea de comandos del SEU . Para recuperar
el comando anterior presione F9 (retrive). Es posible mover el cursor desde el área de datos a la
línea de comandos del SEU y regresar al área de datos por medio de la tecla F10 (curso).
-25 –
AS/400 BASICO por Wilbert Martínez
La siguiente tabla muestra los comandos para los diferentes tipos de sesión.
SALIR DE SEU
Podemos salir del SEU usando la pantalla de salida. Para accesar a dicha pantalla,
presione F3 (Salir) en la pantalla de edición o en cualquier pantalla de Split. La pantalla de salida
puede usarse para realizar las siguientes operaciones sobre el fuente que se esta editando.
• Salir y crear un nuevo fuente.
• Salir sin crear el fuente.
• Salir y salvar un fuente existente.
• Resecuenciar el fuente editado.
• Imprimir el fuente.
• Ir a la lista de fuente.
• Regresar a edición.
• Cancelar la función de encontrar string por PDM,
-26 –
AS/400 BASICO por Wilbert Martínez
Archivo Fisico
EST_NO 7
0
F Cada archivo fisico esta conformado de tres partes o
EST_NOMB 20
O
A extenciones.
R
DIRECC 20
M
A
A
CLASIFIC 1
T
A 1. Formato. Definicion de los campos de los
O
ESCUELA
cuales se 3 que se compone un registro.
A
CAMINO DE ACCESO PROMEDIO
LA LLAVE ES EST_NO
5 2. Ruta de acceso. definicion de cómo los o por llave).
2
3. Registros pueden ser accesados (en secuencia datos.
D espacio para los registros de los cuales esta hecho el
A archivo.
T
O DATOS
S
Se pueden generar datos en un archivo, por medio de programas interactivos o barch, dfu
(data file utility), el comando de copy.
DSPPFM FILE(LIB NAME/FILE NAME) MBR(*FIRST) => despliega el contenido del arch.
(ej. para verificar datos copiados)
-27 –
AS/400 BASICO por Wilbert Martínez
NIVELES DE UN ARCHIVO:
FILE -LEVEL
RECORD-LEVEL
FIELD-LEVEL
KEY FIELD-LEVEL
SELECT/OMIT-LEVEL
COMP => ej. comp(ge 125), solo toma registros con esta condicion.
RANGE => ej. range(10000 90000), solo toma regs. con esta Condicion.
VALUES => ej. values(‘pend’ ‘conf’ ‘can ‘), regs. con esta condicion.
oprimiendo ayuda en este campo se despliegan todas las opciones existentes.
no se recomienda usar estas funciones (comp, range, values), ya que hace
exclusivo el uso del arch.
ARCHIVO CAMPOS
STUDENT STUDENT NUMBER (STUNO)
STUDENT NAME (STUNAM)
-29 –
AS/400 BASICO por Wilbert Martínez
no se recomienda usar los archivos ‘JOIN’, ya que ocupan mucha area en el equipo,
ademas generalmente se requiere de autorizacion por parte de sistsemas/usuario.
b) Compilar con el comando => ‘CRTXF’ + F4. (tomar las mismas consideraciones
que en el caso de compilar con la opcion 14 dentro de pdm.
CRTLF FILE(*CURLIB/FILE-NAME)
Comandos De Archivos:
programa.)
DSPFFD .-Display file field descrip.(para consultar lista de campos definidos en un archivo y sus
caracteristicas.
Comamdos Para Revisar Compilaciones.
Cuando se compilan archivos, programa, pantalla, ect.. se envía a una cola de procesos
llamada Work with Submitted Jobs (WRKSBMJOB), la cual despliega el estatus de los procesos
que se encuentran en la cola.
Estos estatus son los siguientes:
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
===> ________________
.8....+....9....+....0....+....1....+....2....+....3..
Para revisar la compilación de un programa con la opción 5 (display) del Work with Job
Spooled Files desplegara la siguiente pantalla
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
Message . . . . : RPG provides a Separate-Indicator area for the
file.
* * * * * 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
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 * * * * *
Los errores de compilacion se encuentran al final del spool, para poder visuaizar lo mas
rapido sin tener que que paginar, se teclea en el control ‘B’ o *BOT (Bottom) que nos posiciona
el cursor al final del spool.
En esta parte podemos observar la cantidad de erores que resultaron de la compilacion.Bottom
Tambien nos indica el numero de severidad , la cual nos informa la gravedad del error
Para realizar la compilacion y se cree el objeto, son los errore menores que 30.
Si se repagina (Re. Pag) se encuentran los numeros de errores ocurridos como muetra la
pantalla siguiente:
Display Spooled File
File . . . . . : P550025 Page/Line 25/1
Control . . . . . B Columns 1 - 78
Find . . . . . .
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
P5525MG - CAMBIO DE GREGORIANO A JULIANO
5769RG1 V4R2M0 980228 IBM RPG/400 MTY
M e s s a g e S u m m a r y
* QRG1025 Severity: 40 Number: 8
Message . . . . : Unable to open the /COPY member. Specification
is ignored.
* QRG2120 Severity: 40 Number: 2
Message . . . . : External description not found for file
specified as externally described. File ignored.
* QRG5132 Severity: 30 Number: 3
Message . . . . : Factor 2 entry is not the name of a file or a
record format.
* QRG5176 Severity: 30 Number: 1
Esta pantalla nos indica los numeros de errores generados y la severidad respectivamente,
por lo cual es necesario buscar en que linea ocurio el error, esto es posible tecleando el numero de
-32 –
AS/400 BASICO por Wilbert Martínez
error en la linea del comando Find ......______ el numero de error, presionando la tecla F16 las
veces que se necesiten, ya que el mismo error puede encontrarse en varias lineas del codigo
Gravedad Descripcion
00 Informacion
10 Aviso
20 Error
30 Error grave
40 Error no deberia continuar
50 Terminacion anormal del trabajo
o programa
60 Estado del sistemas
70 Integridad de dispositivos
80 Alerta del sistema
90 Integridad del sistemas
99 Accion
Comando Descipcion
T Posiciona al principio del spool
B Posiciona al final del spool
Wn Se Posiciona en la columas n
W-/+n Se Posiciona en n colunas a partir de
donde se encuentras posicionado
Pn Posiciona le apuntador en la pagina n
-33 –
AS/400 BASICO por Wilbert Martínez
DSPDBR
Nos muestra todos los logicos que están relacionados con este archivo.
La forma de utilizarse es:
⇒ DSPDBR F4101
ó
⇒ 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 –
AS/400 BASICO por Wilbert Martínez
DSPFD
⇒ DSPFD F4101 ó
⇒ DSPFD
<F4> o ENTER
Display File Description (DSPFD)
Nos muestra esta pantalla donde escribimos el nombre del fuente a buscar y la librería
donde se encuentra, si no sabemos el nombre de la librería con *libl lo toma de la librería donde
lo encuentre primero
Esto es parte de lo que nos muestra el 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 –
AS/400 BASICO por Wilbert Martínez
-36 –
AS/400 BASICO por Wilbert Martínez
DSPFFD
Este comando nos sirve para ver todos los campos y las características de cada uno de los
campos que forman al archivo.
⇒ DSPFFD F4101
ó
⇒ DSPFFD
con <F4> ó enter nos lleva a la siguiente pantalla donde damos el nombre del archivo y
la librería donde se encuentra
DSPOBJD
Despliega la misma pantalla solo que ahora para buscar el objeto, damos el nombre y la librería
donde se encuentra, si no sabemos el nombre de la librería con *libl lo toma de la librería donde
lo encuentre primero, hay que especificar el tipo de objeto a buscar
-37 –
AS/400 BASICO por Wilbert Martínez
WRKOBJ
Trabajando con objetos, con este comando podemos manejar los objetos, nos muestra la
lista de objetos que se encuentran en la librería seleccionada y después manejar este objeto como
copiar, borrar, cambiar de librería al objeto, entre otras cosas.
⇒ WRKOBJ P 4190
ó
⇒ WRKOBJ
Al oprimir <F4> ó enter nos muestra la sig. Pantalla, donde especificaremos el objeto, o
bien si queremos ver todos los objetos en el nombre del objeto darle *all
Work with Objects (WRKOBJ)
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
La opción 8 nos despliega los atributos del objeto, una de las facilidades que nos permite esta
opción es saber en donde se encuentra el fuente de este objeto, esta opción la obtenemos si en ves
de presionar enter, presionamos F4 lo cual nos desplegara la siguiente pantalla.
Bottom
F3=Exit F4=Prompt F5=Refresh -38 – F12=Cancel F13=How to use this display
F24=More keys
AS/400 BASICO por Wilbert Martínez
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
Design Screens
Crear un nuevo registro: Con la opción 1(Add) nosotros podemos crear una
nueva pantalla.
Copiar un registro : Con la opción 3 (copy) nosotros podemos copiar el registro.
Diseñar la pantalla : Con la opción 12 (Desing image) con esta opción se diseña o
se modifica el registro de pantalla.
Work with Display Records
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
-41 –
AS/400 BASICO por Wilbert Martínez
Para los campos que tienen interrelación con la información existente en el AS/400, se
utilizan diferentes representaciones, dependiendo del tipo, ya sean numérico o carácter; la tabla
siguiente demostrara las diferentes representaciones.
Ejemplo :
+IIIIII En este ejemplo se define un campo de input de 6 caracteres.
+OOOO En este ejemplo se define un campos de output de 4 caracteres.
+BBBBBB En este ejemplo se define un campo de input/outoput de 6 caracteres.
Otra forma mas sencilla para definir los campos en la pantalla es escribiendo el carácter
“+” Seguido de el tipo a usar y entre paréntesis “( )” la longitud utilizada.
Ejemplo:
+I(6) En este ejemplo se define un campo de input de 6 caracteres.
+O(4) En este ejemplo se define un campo de output de 4 caracteres.
+B(6) En este ejemplo se define un campo de input/outoput de 6 caracteres.
Para definir un campo numérico se siguen los mismos pasos que para un carácter, solo
que se utiliza los siguiente:
Ejemplo:
+3333 O +3(4) En este ejemplo se define un campo de input numérico de 4
posiciones.
+6666 O +6(4) En este ejemplo se define un campo de output numérico de 4
posiciones.
+999999 O +9(6) En este ejemplo se define un campo de input/outoput numérico
de 6 posiciones.
Para definir un campo numerico con decimales solo es necesario indicar un punto ( . )
apartir de cuantos decimales se utilicen, ejemplo
+66.66 or +6(4,2) En este ejemplo es un campo numérico de 2 posiciones con dos
decimales.
-42 –
AS/400 BASICO por Wilbert Martínez
En la cual especificamos el archivo a utilizar así como la librería donde se encuentra como
también el registro a utilizar.
Record . . . : I4105X
Bottom
F3=Exit F12=Cancel
En la cual podemos escoger los campos que necesiten para la pantalla y especificarle de
que tipo la usaremos.
-43 –
AS/400 BASICO por Wilbert Martínez
Consulta de alumnos
Nombre BBBBBBBBBBBBBBB
Apellidos BBBBBBBBBBBBBBB
Direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
Telefono BBBBBBBBB
Ciudad &2
En el ejemplo anterior se selecciono el campo 2 en del archivo, esto nos pondrá el campo
en pantalla con las mismas características del campo del archivo.
Eliminando campos
Para eliminar un campo solo es necesario teclear una “D” o “d” a la izquierda del
campo que se desee eliminar y presione enter.
-44 –
AS/400 BASICO por Wilbert Martínez
Mover un espacio.
Para mover los campos uno o más espacios solo es necesario teclear un ‘>’ si se
desea mover a la derecha y ‘<’ un para la izquierda, se puede mover los espacios que se
desee, dependiendo de la cantidad de el símbolo ‘< , >’ que se teclee.
Modificando un campo.
Nombre ?BBBBBBBBBB
direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB
33333333-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
333333-
En el podemos modificar el nombre del campo así como el tamaño del campo
Nota: solo en los campos definidos por el usuario podemos cambiar el tamaño,
pero los campos referenciado de los archivos no.
Nombre *BBBBBBBBBB
direccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB
33333333-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
333333-
Esta opción nos desplegara la siguiente pantalla donde se encuentran todos los atributos
del campo, en el se pueden modificar los atributos según sea la necesidades del usuario, los mas
usuales son los siguientes:
-45 –
AS/400 BASICO por Wilbert Martínez
Display attributes : Nos despliega todos los atributos del campo ejemplo: Underline, high
intensity, no visualizarlo, protegerlo etc. En el cual se selecciona con “Y” y ligarlo un indicador
para poder utilizarlo en el programa.
Select Display Attributes
F3=Exit F12=Cancel
Keying Options : En esta opción podemos especificar los funciones en los campos por
ejemplo rellenar con blancos o rellenar con ceros.
Select Keying Options
F3=Exit F12=Cancel
-46 –
AS/400 BASICO por Wilbert Martínez
-47 –
AS/400 BASICO por Wilbert Martínez
Valide los datos de entrada de los campos, por medio de rangos, compararlos con un
Valor o definir una lista de valores.
Define Validity Check Keywords
Error Message
Para definir un mensaje para un campo se utiliza la opción de Error Message, el cual nos
despliega la siguiente pantalla, en la cual se asigna un indicador para poder controlarlo en el
programa y se escribe el mensaje que se requiera, El numero de indicador nos sirve para que
cuando en el programa ocurra un error asignado a este se activa y se refleja en al pantalla
inferior o sea en la línea 24.
-48 –
AS/400 BASICO por Wilbert Martínez
Par definir las teclas de función que se usaran en la pantalla se deben especificar a nivel
registro esto es que se debe estar en la pantalla display record y con la opción 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
-49 –
AS/400 BASICO por Wilbert Martínez
Para indicar el uso de una tecla de función se teclea ‘CFnn ’ y el número de la función que
se utilice, ejemplo para definir la tecla F3 que seria la de salida o F12 para cancelar la operación
tendría que definir en keyword CF03 o CF12 receptivamente, la cual se le asigna un indicador,
por lo general se opta por el numero de la función.
El ambiente DDS es el metodo nativo preferentemente para describir datos en el equipo as/400 y
consiste en lo siguiente:
1.- archivos fisicos.
2.- archivos logicos.
3.- archivos de pantalla.
4.- archivos para impresión (reportes).
todos los archivos descritos por DDS pueden ser usados por todos los componentes de software
del as/400.
OBJETIVOS.
Codificar especificaciones de descripcion de datos DDS y crear archivos fiscos en el equipo
as/400.
Explicar la funcion de los campos de archivos referenciados y codificar la DDS para crear un
archivo para la base de datos del equipo as/400.
El ‘rpg’ maneja formatos fijos al generar programas. Estos formatos requieren un orden
determinado y es el siguiente: (estos son los mas comunes)
(H) CONTROL
(F) DESCRIPCION ARCHIVOS
(E) ADICIONALES
(I) ENTRADA
-50 –
AS/400 BASICO por Wilbert Martínez
C) CONTROL
(O) SALIDA (este es poco comun en ‘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
-51 –
AS/400 BASICO por Wilbert Martínez
Pmt SeqNbr FromFile ToFile Tbl /Rcd /Tbl Len P/B/L/R Dec
A/D
E 0049.00 _______ ______ TTDOCO ____ _10 __8 ___ __0
___
AltName Len P/B/L/R Dec A/D Comment
_______ ___ _ _ _ ________
-52 –
AS/400 BASICO por Wilbert Martínez
-53 –
AS/400 BASICO por Wilbert Martínez
Las especificaciones de entrada (i) describen los registros y campos a ser usados en el programa.
No se necesitan las especificaciones de entrada (i) para los archivos descritos externamente.
FMT N .....I..............Namedconstant+++++++++C.........Fldnme.............
0020.00 I 'abcdefghijklmnopqrstuvw -C MINS
0021.00 I 'xyz'
Las Especificaciones De Calculo (C) Describen Las Operaciones A Realizar Por El Programa E
Indican El Orden En Que Deben Realizarse.
FMT C .....CL0N01N02N03Factor1+++Opcde.Factor2+++ResultLenDHHiLoEqComments++++
0125.00 C* Read master file input.
-54 –
AS/400 BASICO por Wilbert Martínez
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) ACTIVADO => ‘ON’ = ‘1’
B) DESACTIVADO => ‘OFF’ = ‘0’
SALIDA DE LEER UN
DETALLE REGISTRO
CALCULOS MOVER
DE DATOS
DETALLE A CAMPOS
-55 –
AS/400 BASICO por Wilbert Martínez
PROGRAMACION BATCH
VS.
PROGRAMACION
INTERACTIVA
PROGRAMACION BATCH
ARCHIVO
HISTORICO
DE VENTAS
INFORME DE
VTAS
ENERO
2,345.70
FEBRERO
PROGRAMA DE 8,200.00
ANALISIS DE ………………..
VENTAS
-56 –
AS/400 BASICO por Wilbert Martínez
PROGRAMACION
INTERACTIVA
PROGRAMA DE
CONSULTA DE ARCHIVO DE
CLIENTES CLIENTES
- IDENTIFICACION DE PANTALLAS
-57 –
AS/400 BASICO por Wilbert Martínez
EJEMPLO:
IDENTIFICACION DE ARCHIVOS
DIAGRAMA DE ENTIDAD-
RELACION
CURSOS PROGRAMACION
CURSOS
CURSOS INSCRIPCIONES
IDENTIFICACION DE ARCHIVOS
-58 –
AS/400 BASICO por Wilbert Martínez
STATUS 1
K NUMCLI
IDENTIFICACION DE PANTALLAS
. PANTALLAS EXISTENTES
Opción 3 de SDA
DDS
. PANTALLAS NUEVAS
Opción 1 de SDA
DDS
OPERACIONES ARITMETICAS
ADD (SUMAR)
SUB (RESTAR)
MULT (MULTIPLICAR)
SQRT (RAIZ CUARADA)
DIV (DIVIDIR)
Z-ADD (INICIALIZA Y MUEVE NUMERO)
5.- En las operaciones: add, sub, mult y div, el factor 1 puede omitirse.
Ejemplo
Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETLL I4101 71
- Posiciona el apuntador antes del registro que sea mayor o igual al argumento de búsqueda y
con el indicador en el Hi verifica que se cumpla esta condición
Ejemplo
Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETLL I4101 72
En este caso es al revés el indicador se activara si ningún registro es mayor o igual a la llave
-60 –
AS/400 BASICO por Wilbert Martínez
70
80
85
-61 –
AS/400 BASICO por Wilbert Martínez
SETGT
Posiciona el apuntador antes de el primer registro que sea mayor a la llave dada
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
KEY SETGT FILE ó REG. In In
READ
Hace una lectura secuencial al archivo
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
READ File ó Reg.
File ó Reg.- nombre del File o registro que se va a leer
Ejem.
Factor 1 OpCode Factor2 Hi Lo Eq
READ I41021
READE
Es parecido al read, con la diferencia de que lee solo los registros que sean iguales a la llave. El
indicador se prendera cuando el registro leido no sea igual a la llave dada ó cuando se llegue al
fin del archivo
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
Key READE File ó Reg. 81
Ejem.
Factor 1 OpCode Factor2 Hi Lo Eq
IMITM READE I4101 81
-62 –
AS/400 BASICO por Wilbert Martínez
Suponiendo que el valor de IMITM=1542 y que el archivo I41021 estuviera llaveado por IMITM
solo van a leer los registros del F4101 cuyo IMITM sea igual a 1542, y el indicador 81 se
prendería cuando ya no sean iguales los registros a la llave buscada.
El READE casi siempre se maneja en conjunto con el SETLL, para primero posicionar el
apuntador y luego ir leyendo los registros que sean iguales a la llave especificada.
READP
Lee el registro anterior, al que esta posicionado actualmente, hace una lectura regresiva
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
READP File ó Reg. 81
Ejem.
Factor 1 OpCode Factor2 Hi Lo Eq
READP I4101A 81
Por ejemplo si el registro en el que se encuentra actualmente
45
50 al hacerle el READP
52 en el que se encuentra actualmente
60
CHAIN
Posiciona y lee el registro que cumpla con la llave dada, este comando es utilizado para hacer una
busqueda directa.
El indicador se activara cuando no se encuentre ningún registro que cumpla con la llave, si
indicador esta apagado quiere decir que se encontró el registro, lo lee y se posiciona en el primer
registro que cumpla con la llave.
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
Key CHAIN File ó Reg. 81
Ejem.
Factor 1 OpCode Factor2 Hi Lo Eq
LIKY01 CHAIN I41021 81
-63 –
AS/400 BASICO por Wilbert Martínez
Operaciónes aritméticas:
ADD
Operación de suma
Sintaxis
Factor 1 OpCode Factor2
Valor1 ADD Valor2 Resultado
Resultado= Valor1 + Valor2
Ejem.
Factor 1 OpCode Factor2
Precio ADD Iva CantT 15 2
NOTA: hay que definir los campos de trabajo en este caso CantT se definio como un campo
númerico de 15 enteros con 2 decimales, solo es necesario definirlos una vez, el campo de Precio
e Iva deben haber estado definidos si no provenian de ningún archivo.
SUB
Operación de resta
Sintaxis
Factor 1 OpCode Factor2
Valor1 SUB Valor2 Resultado
Resultado= Valor1 – Valor2
Ejem.
Factor 1 OpCode Factor2
CantInv SUB CantVend CantRest 15 0
-64 –
AS/400 BASICO por Wilbert Martínez
MULT
Operación de multiplicación
Sintaxis
Factor1 OpCode Factor2 Resultado Len Dec
Valor1 MULT Valor2 Resultado 15 0
Resultado= Valor1 * Valor2
Nota: el campo de Resultado debe estar definido, es decir hay que especificar que sea númerico,
su longuitud y número de decimales
DIV
Operación de división
Sintaxis
Factor1 OpCode Factor2 Resultado Len Dec
Valor1 DIV Valor2 resultado 15 0
Resultado= Valor1/ Valor2
SQRT
Raíz cuadrada
Ejem.
-65 –
AS/400 BASICO por Wilbert Martínez
RaízC= 10
-66 –
AS/400 BASICO por Wilbert Martínez
Mover Datos
Z-ADD
La operación Z-ADD sirve para inicializar el campo de resultado con el valor del factor1, esta
operación solo es valida para campor numéricos
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Z-ADD Valor2 Resultado 15 0
Valor2= cantidad con la que se va a inicializar el campo de resultado
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
Z-ADD 500 Cant 15 0
Quedaria
Cant= 500
Nota: ambos deben ser de tipo numérico, con el Z-ADD no se utiliza el factor1
MOVE
Esta operación es utilizada para mover datos y alinearlos a la derecha, la operación MOVE
transfiere los caracteres del factor 2 al campo de resultado . el movimiento empieza con el
carácter que esta más a la derecha del factor 2.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
MOVE Campo2 Campo3 20
Hay varias maneras en que se pueden mover los datos con move a continuacion se dan algunos
ejemplos para el move
Caso1
Cuando ambos campos son de tipo carácter y el campo de resultado es más largo que el factor 2
Ejem
ANTES
Factor2= F I L E
Resultado= S O F T W A R E
DESPUES
-67 –
AS/400 BASICO por Wilbert Martínez
Resultado= S O F T F I L E
Caso 2
Cuando ambos campos son de tipo númerico y el campo de resultado es más largo que el factor 2
ANTES
Factor2= 7 8 9
Resultado= 1 2 3 4 5 6
DESPUES
Resultado= 1 2 3 7 8 9
Caso 3
El factor 2 es númerico y el campo resultado es tipo carácter y es más largo que el factor2
ANTES
Campo1= 2 3 4
Campo2= u n o d o s
D
ESP
UES
Campo2= u n o 2 3 4
Caso 4
Ambos campos son de tipo carácter solo que el campo de resultado es más corto que el factor2
ANTES
Factor2= u n o d o s
Resultado= t r e s
DESPUES
Resultado= o d o s
Caso 5
Ambos campos son numericos el campo resultado es más corto que el factor2
ANTES
Campo1= u n o d o s
Campo2= t r e s
-68 –
AS/400 BASICO por Wilbert Martínez
DESPUES
Campo2= o d o s
MOVEL
La operación MOVEL transfiere los caracteres del factor2 al campo de resultado, empieza a
mover los caracteres de izquierda a derecha del factor 2 al campo de resultado.
La forma en que mueve los caracteres es muy parecida a la del MOVEL solo que al revés
empieza a mover de izquierda a derecha.
Estos son algunos ejemplos
Caso 1
El campo resultado es más largo que el del factor2, ambos campos son de tipo carácter
ANTES
Factor2= F I LE
Resultado= S O F T W A R E
DESPUES
Resultado= F I L E W A R E
Caso 2
El campo resultado es más largo que el del factor2, ambos campos son de tipo numerico
ANTES
Factor2= 1 2 3 4
Resultado= 5 6 7 8 9 0 1 2
DESPUES
Resultado= 1 2 3 4 9 0 1 2
Los demás ejemplos son parecidos a los vistos en el move solo que en lugar de alinear el campo
del factor2 a la derecha lo alinea a la izquierda al utilizar el movel
MOVEA
Mueve todos los campos de un arreglo a una variable
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
MOVEA NomArregl VarResult Lon
o g
-69 –
AS/400 BASICO por Wilbert Martínez
Por ejemplo si tenemos un arreglo llamado NAME de longuitud 10 tipo caracter y se quiere
mover a una variable llamada alumno de la misma longuitud y tipo.
-70 –
AS/400 BASICO por Wilbert Martínez
NAME
E D G A R O M A R
1 2 3 4 5 6 7 8 9 10
Condicionales y Ciclos
IFxx
Condición IFxx, es un condicional para realizar determinada acción o no
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Campo1 Ifxx Campo2
{Operac
ELSE
{Operac
ENDIF
Ejem
-71 –
AS/400 BASICO por Wilbert Martínez
-72 –
AS/400 BASICO por Wilbert Martínez
CASxx
Este comando permite hacer una selección de la subrutina a ejecutar; si se cumple la comparación
entre el factor1 y el factor2, la subrutina especificada en el campo resultante es ejecutada.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Campo1 CASxx Campo2 NomSubrutina
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
Mov CASEQ ‘b’ Baja
CABxx
Este comando permite hacer una comparación entre el factor1 y el factor2; si esta comparación
resulta verdadera el programa mandara el control al TAG asociado con la etiqueta especificada
en el campo resultante
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Campo1 CABxx Campo2 Etiqueta
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
Mov CABEQ ‘1’ Alta
DO
Inicia y procesa un grupo de operaciones y se llevan acabo tantas veces como se especifique en el
contador o variable
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
DO Cte. ó Var
{Operac
ENDDO
ejem
Factor1 OpCode Factor2 Resultad Len Dec
DO 10
Add 2 Sum 2 0
ENDDO
Estará sumando 2 a Sum hasta que sean 10 veces, que es lo que se especifico
-73 –
AS/400 BASICO por Wilbert Martínez
DOWxx
Este ciclo se va a llevar acabo mientras la condición especificada para este ciclo sea verdadera
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Campo1 DOWxx Campo2
{Operac
ENDDO
EXSR
Manda ejecutar una subrutina, puede ser ejecutada desde el menú principal o de cualquier otra
subrutina que la mande ejecutar.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
EXSR NomRutina
NomRutina.- nombre de la subrutina que se va a ejecutar
BEGSR… ENDSR
El begsr marca el inicio de una subrutina y con el endsr se cierra el bloque de la subrutina
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Precios BEGSR
Bloque
De la
Rutina
ENDSR
EXFMT
Permite enviar y leer un formato de pantalla
Sintaxis
-74 –
AS/400 BASICO por Wilbert Martínez
GOTO,TAG
El Goto permite variar el flujo de un programa, al llegar a el Goto Etiqueta manda el control del
programa a donde se encuentra la etiqueta especificada en el Goto. Esto se hace con el TAG
Etiqueta que marca la parte del programa a donde se mandara el control del programa cuando se
ejecute el GOTO.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
GOTO Etiqueta
{cuerpo
{del pgm
TAG Etiqueta
Actualización de Registros
UPDAT
Actualiza los cambios hechos a un registro
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
UPDAT NomRegistro
ó Archivo
Nota: primero hay que posicionar el apuntador en el registro que se desea actualizar
ejem
Factor1 OpCode Factor2 Resultad Len Dec
UPDAT V01200
DELET
Borra el registro en que esta posicionado actualmente el apuntador
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
DELET NomRegistro
Ó Archivo
-75 –
AS/400 BASICO por Wilbert Martínez
WRITE
Escribe un registro nuevo en el archivo especificado, para esto el archivo en el que se desea
escribir debe estar declarado en la hoja F una A en la columna de Adición.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
WRITE NomRegistro
o File
ejem
Factor1 OpCode Factor2 Resultad Len Dec
WRITE I4111
Definición de llaves
KLIST
Define una llave compuesta, se utiliza para declarar una lista de campos llave (KFLD). Esta lista
puede ser usada como argumento de busqueda.
Los KFLDs son los campos que forman la llave como campos de archivos, valores fijos o
variables; pueden ser de uno a más campos.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
NomKey KLIST
KFLD Campo1
KFLD Campo2
KFLD Campo3
NomKey .- nombre con el que se identificara la llave, este es el nombre con el cual se llamara la
llave para una busqueda.
Campo1…3.- son los campos que forma a esta llave
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
LIKY01 KLIST
KFLD LIMCU
-76 –
AS/400 BASICO por Wilbert Martínez
KFLD LILOCN
KFLD LIITM
Parámetros
PLIST
Define un nombre único para la lista de parámetros que recibirá o pasara el programa, al ser
ejecutado o mandado ejecutar con la operación CALL
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
*ENTRY PLIST
PARM Parámetro1 Lon1 #de
c
PARM Parámetro2 Lon2
PARM Parámetro3 Lon3
PARM.- Define cada uno de los parámetros que componen la lista de parámetros del programa
Lon1..n.- longuitud de cada uno de los parámetros y tipo
CALL
Manda llamar un programa para ser ejecutado, si el programa al que va a ser llamado requiere
que le sean pasado parámetros se especificaran aquí, al mandarlo ejecutar con el comando CALL
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Move Dato1 ParaEntr1
Movel Dato2 ParaEntr2
“ “ “
Movel Daton ParaEntrn
CALL Programa
PARM ParaSal1
PARM ParaSal2
“ “
PARM ParaSaln
Dato1..n .- son los datos de entrada que requiere el programa que se esta llamando para ejecutado
ParaEnt1..n.- nombres de los parámetros, pueden ser iguales o no, lo que si es importante es el
oreden en que son dados, deben ser en el mismo orden en que son especificados en el programa
llamado y del mismo tipo.
ParaSal1..n .- son los parámetros que regresa el programa.
OPEN
Comando para abrir un archivo
-77 –
AS/400 BASICO por Wilbert Martínez
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
OPEN Archivo
CLOSE
Cierra un archivo abierto
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
CLOSE Archivo
SETOF
Apaga los indicadores especificados en el Hi,Lo,Eq le asigna el valor de 0 al indicador
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
SETOF In In In
Ejem
Factor 1 OpCode Factor2 Hi Lo Eq
SETOF 82
SETON
Operación para activar los indicadores contenidos en Hi,Lo,Eq le asigna el valor de 1 al
indicador.
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
SETON In In In
Ejem
Factor 1 OpCode Factor2 Hi Lo Eq
SETON 81
Manejo de Arreglos
LOKUP
Hace una búsqueda a un arreglo o tabla
Sintaxis
Factor 1 OpCode Factor2 Hi Lo Eq
Argumento LOKUP Arreglo ó tabla In
-79 –
AS/400 BASICO por Wilbert Martínez
Ejem.
Factor 1 OpCode Factor2 Hi Lo Eq
500 LOKUP Precios 81
El arreglo de precios contiene los sig elementos
100
300
500
800
:
en este caso el indicador 81 se prendera, ya que el valor 500 si existe en el arreglo
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
XFOOT Arreglo VarResul Long #dec
Ejem
Factor1 OpCode Factor2 Resultad Len Dec
XFOOT ArreIva Suma 15 2
Manejo de Cadenas
CAT
Une dos cadenas de caracteres en una sola
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
String1 CAT String2 StringRes 20
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
Nom1 CAT Nom2 Nombre 20
Nom1= Maria
Nom2=Cristina
Al concatenar de esta manera quedaria asi:
Nombre= Maria Cristina
-80 –
AS/400 BASICO por Wilbert Martínez
O si se quiere que al concatenar quite los espacios, o deje solo algunos la sintaxis es
Factor1 OpCode Factor2 Resultad Len Dec
String1 CAT String2:n StringRes 20
n.- número de espacios entre los string
Ejem.
Factor1 OpCode Factor2 Resultad Len Dec
Nom1 CAT Nom2:1 Nombre 20
Nom1= Maria
Nom2=Cristina
Al concatenar de esta manera quedaria asi:
Nombre= Maria Cristina
La operación SCAN checa la variable tipo carácter o arreglo especificado en el factor2 con el
argumento especificado en el factor1. Si el argumento fue encontrado, la posición del el primer
carácter de el argumento es pasado al campo resultante. Si un arreglo numerico es especificado
como el campo resultante, cada ocurrencia del argumento encontrado en factor2 es pasado en un
correspondiente elemento del arreglo.
Sintaxis
Factor1 OpCode Factor2 Resultad Len Dec
Argumento:1 SCAN NomVar Posicion Long #Dec
Apellido= Gu
Name=Pablo Guzmán
Al hacer el SCAN
ResPos=7
-81 –
AS/400 BASICO por Wilbert Martínez
-82 –
AS/400 BASICO por Wilbert Martínez
-83 –
AS/400 BASICO por Wilbert Martínez
-84 –
AS/400 BASICO por Wilbert Martínez
-85 –
AS/400 BASICO por Wilbert Martínez
-86 –
AS/400 BASICO por Wilbert Martínez
-87 –
AS/400 BASICO por Wilbert Martínez
-88 –
AS/400 BASICO por Wilbert Martínez
-89 –
AS/400 BASICO por Wilbert Martínez
• INTERACTIVO
PALABRA CALVE O POSICIONAL
CON SOLOCITUD (PROMPT)
• COMPILABLE
RAPIDO
LOGICA POTENTE
MANEJO DE ERRORES
MANIPULACION DE DATOS
INTERFACE CON PANATALLA Y DB.
• DISEÑO PARA CONTROLAR EL FLUJO DE UNA APLICACIÓN.
PGM (opcional)
DCLF ( archivo)
DCL (variables)
MONMSG
IF
ELSE
SNDRCVF
[PROGARMA]
SNDMSG
CHGVAR
MONMSG
GOTO TOP
ENDPGM(optional)
Reglas de codificación
Nombre de variable.- Para almacenar y actualizar datos y recibir parámetros. Debe
empezar con el carácter ‘&’.
Dos puntos (:)._ Separa la etiqueta del mandato
Blancos. Separa los parámetros de un mandato.
Paréntesis ( ) .- Separa las palabras claves y valores.
Diagonal (/). Conecta las partes de nombres calificados.
Apóstrofe ‘ ‘ .- Al comienzo y al final de una serie de caracteres en comillas, tal como
‘ALL’.
-90 –
AS/400 BASICO por Wilbert Martínez
DCL
Toda las variable en un cl siempre se declara con el carácter ‘&’ antes del nombre de la variable.
Ejemplo:
(1) DCL &A *LGL VALUE (‘1’)
(2) DCL &B *CHAR 5 ABCD
(3) DLC &c *DEC (5 2) 543.21
CHGVAR.
Constantes
Otras variable
Expresiones
Ejemplos de CHRVAR
1.- CHGVAR &MONT –37.2
2.- CHGVAR &NAME ‘TOM SMITH’
3._ CHGVAR &CODE A
4.- CHGVAR &COUNT (&CONTEO + 1)
5.- CHGVAR &IN20 (&IN10 *OR &IN15)
6.- CHGVAR &IN99 (&OPCION = 90)
7.- CHGVAR &AMT ((&PRECIO. & DESCUENTO /0 * & CANT)
-91 –
AS/400 BASICO por Wilbert Martínez
Usar CHGVAR para cambiar tipo de datos, en un CL podemos cambiar el tipo de dato que
tengamos de un valor numérico a carácter o viceversa.
%SS ( *LDA
nombre –variable
]- Posicion-inicial longitud )
1 2 3 .... X Y
X= posición – inicial.
Y= longitud.
-92 –
AS/400 BASICO por Wilbert Martínez
Ejemplo de %SUBSTRING
DESPUÉS &NAME: B
ejemplo 2
usar una variable para posición inicial
PGM
DCL VAR (&TEAM) TYPE(*CHAR) VALUE (ABCDEFGHIJKL)
DCL VAR(&LIB) TYPE (*CHAR) LEN (6) VALUE (IWLIBX)
CONCATENACION
Resultado
*CAT Serie Serie
Serie1 Serie2
1 2
A B b *TCAT Serie2 A Serie
b
A b b
*BCAT Serie2 A b
Ejemplo de concatenación:
Cliente XYZ corporación, numero de cuentea 54321, su crédito vencido por 30 días.
PGM
DCL &CUSNAME *CHAR 25 ‘XYZ CORPORATION’
DCL &CUSNUM *DEC (5 0)
DCL &CUSNUMALPH *CHAR 5
DCL &DAYS *DEC 30
DCL &DAYSALPH *CHAR 3
-93 –
AS/400 BASICO por Wilbert Martínez
-94 –
AS/400 BASICO por Wilbert Martínez
CONDICION
Cuando deseamos condicionar un programa CL solo puede ejecutar un comando o una etiqueta
después de la condición.
IF COND ( exprecion ) THEN (comando)
ELSE CMD(comando)
Operadores relacionales :
Operadores relacionales
< *LT Menor que
= *EQ Igual
> *GT Mayor que
<= *LE Menor igual
_< *NL No menor
_> *NG No mayor
>= *GE Mayor igual
_= *NE No igual o distinto
Ejemplo :
Otra forma de usar el IF para que ejecute mas de una línea se utiliza la siguiente sentencia
IF COND (condición) THEN (DO)
CALL PGM1
CALL PGM2
END DO
ELSE CMD (DO)
CALL PGM3
CALL PGM4
ENDDO
-96 –
AS/400 BASICO por Wilbert Martínez
EJEMPLO 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 supervisar mensajes de error dentro de un programa
ALCOBJ
CPF1002 No puede asignar objetos.
CPF1040 Numero maximo de objetos asignados en el sistema
CPF1085 Objetos no asignados
CPF5739 No puede asignarse o liberar archivo(S) DDM
Ejemplo
MONMSG MSGID(CPF2182) CMPDTA(PLALIB)
-97 –
AS/400 BASICO por Wilbert Martínez
EXEC – (Opcional)
Mandato CL
-98 –
AS/400 BASICO por Wilbert Martínez
Ejemplo:
1 CHGOBJ OBJ(IWLIB/APR010 OBJTYPE(*PGM) /* existencia*/
MONMSG..............
2 CHKOBJ OBJ(APPVEND) OBJTYPE(*PGM) + /* existencia*/
MBR(APPVAND) AUTO(*DLT) /*y autorizacion*/
MONMSG............
Ejemplo de supervisar mensajes
PGM
DCL...
/*NVEL DE PROGRAMA
MONMSG CPF9801 EXCE(GOTO NO ENCONT)
MONMSG CPF7302
/* FIN NIVEL DE PROGRAMA
CHKOBJ PYPMAST *FILE
CHKOBJ GLPMAST *FILE
DE NUEVO: CRTPF QTEMP/WORK.....
MONMSG CPF7302 EXEC (DO)
DTLF QTEMP/WORK
GOTO DE NUEVO
ENDDO
CRTPF PLALIB/PYPTRAN
GOTO FIN
NO ENCONT: SNDURSMSG TOMSGQ(*EXT) MSG(‘ NO ENCUENTRA EL
ARCHIVO+ CHECAR LISTA DE BILBIOTECA DE LA SESIOBN’0
-99 –
AS/400 BASICO por Wilbert Martínez
FIN: ENDPGM
-100 –
AS/400 BASICO por Wilbert Martínez
-101 –
AS/400 BASICO por Wilbert Martínez
-102 –
AS/400 BASICO por Wilbert Martínez
-103 –
AS/400 BASICO por Wilbert Martínez
-104 –
AS/400 BASICO por Wilbert Martínez
-105 –
AS/400 BASICO por Wilbert Martínez
-106 –
AS/400 BASICO por Wilbert Martínez
-107 –
AS/400 BASICO por Wilbert Martínez
-108 –
AS/400 BASICO por Wilbert Martínez
-109 –