Está en la página 1de 109

AS/400 BASICO por Wilbert Martnez

Curso De As/400
I.- Introduccion A As/400
A) Manejo De Las Bases De Datos
El equipo as/400 trabaja con bases de datos relacionales
!a base de datos relacional as/400" es una colecci#n de conjuntos de in$or%aci#n
a&rupados de tal $or%a que %ini%iza la redundancia entre ellos" per%ite ca%bios ' el
creci%iento en el $uturo
(odos los conjuntos de datos son en base a tablas
Diagrama De Base De Datos
Se al%acenan datos en tablas, arci!os, gru"os de datos, etc con un %ini%o de datos
redundantes
-) *
ES(+,IA-(ES I-S(.+C(O.ES
C!ASES
,E/A.(AME-(OS
0.A,OS
(E1(OS
ES(+,IA-(ES
SA!O-ES
AS/400 BASICO por Wilbert Martnez
#res #i"os De Bases De Datos
$l Modelo %elacional.
eje%plo2 base de datos de educacion
curso nu% clase
codi&o -o%bre inscr instructor tetra salon %a3
l00) Italiano )4 5ictor & 66/) ) 70
l)07 In&les 47 juan e 66/) 4 40
l4)) Espa8ol 9 pedro $ 66/) 4 40
l707 C:ino 44 luis lee 66/) 7 90
l00) Italiano 47 5ictor & 66/) ) 70
l4)4 0rie&o )) :o%ero 66/) ; 79
l4)) Espa8ol ) pedro $ 66/4 4 40
l)07 In&les 0 juan e 66/4 4 40
l00) Italiano 4 5ictor & 66/4 ) 70
l70; <apones 7 :o%ero 66/4 ; 79
l7=0 Cobol >> :o%ero 66/4 9 >>
-4 *
RED
<E
.A.?+I
CA
%
$LACI&
'AL
AS/400 BASICO por Wilbert Martnez
#ABLA BA($
#ABLA ) A%C*I+&
%$',L&' ) %$,I(#%&
C&L-M'A ) CAM.&
(odas las lineas o ren&lones son si%ilares @ un tipo de re&istroA
El arc:i5o puede ser procesado secuencial%ente o en $or%a inde3ada por el ca%po de
clasi$icacion BinstructorC" en este eje%plo @sql Dorder b'EFAG o con una Bselecci#n
lo&icaC de re&istros @sql DH:ereFA $uncional%ente" esto es una Bselecci#n de ca%posC
con $recuencia se usan los queries para 5isualizar los datos de los arc:i5os" para el usuario
$inal
b) Manejo De Librerias, &bjetos, /uentes2
Librerias.- $s la $or%a en que as/400 trabaja ' se ad%inistra
!as librerias es un area donde se al%acenan arc:i5os" pro&ra%as" etc que corresponden a
dic:a librera
Se puede %anejar una librera por siste%a" por area/depto" etc @esto es de$inido por el
area de siste%asA
&bjetos.- se &eneran en base a las co%pilaciones" 'a sea de arc:i5os o pro&ra%as
@$uentesA
El objeto de un arc:i5o se puede 5isualizar" para 5er la in$or%acion que la co%pone ' el
objeto de un pro&ra%a no se puede 5er @en este caso se 5isualiza el
$uenteA
/uentes.- es el codi&o que se desarrolla para la &eneracion de un arc:i5o /pro&ra%a" este
se co%pila para &enerar el objeto
si un $uente no es co%pilado2 no se puede &uardar in$or%acion en arc:i5os o no se
puede correr un pro&ra%a
- #i"os De &bjetos 0 /uentes1
los tipos de objetos %as co%unes pueden ser2
2/IL$ I puede tener los si&uientes atributos2
ser un arc:i5o $sico @p$A" l#&ico @l$A" arc:i5o de pantalla @dsp$A"
printer $ile @prt$A
2.,MI puede tener los si&uientes atributos2 clp" d$u" rp&
-7 *
AS/400 BASICO por Wilbert Martnez
!os tipos de $uentes %as co%unes son2
./ .- Arci!os 34sicos5"isical 3ile)
L/ .- Arci!os l6gicos 5logical 3ile)
D(./.-Arci!os de "antallas 5dis"la7 3ile)
.%#/.-Arci!os de re"ortes 5"rinter 3ile)
%.,.- .rogramas r"g
CL..- .rogramas de control 5control lenguage "rogram)
Este es el %enJ inicial del AS/400 que es una parte i%portante del OS/400" que nos a'uda a
ejecutar los co%andos ' utilerias por %edio de opciones de %anera un poco %Ks $Kcil
En esta pantalla podrK ejecuta los si&uientes $unciones2
L7 Salir ter%ina el pro&ra%a ' re&resa al pro&ra%a anterior
L4 -os desplie&a una nue5a pantalla donde nos %uestra los &rupos de co%ando que
pode%os utilizar asi co%o una descripcion del %is%o" el cual pode%os accesar
con el nu%ero de la opci#n en la lnea de co%ando
L> Esta opcion nos %uestra el co%nado anterior ejecutado
-4 *
MAIN AS/400 Main Menu
System: S106CB4A
Select one of the following:

1. se! tas"s
#. $ffice tas"s
%. &ene!al system tas"s
4. 'iles( li)!a!ies( an* fol*e!s
+. ,!og!amming
6. Communications
-. .efine o! change the system
/. ,!o)lem han*ling
0. .is1lay a men2
10. Info!mation Assistant o1tions
11. Client Access/400 tas"s

00. Sign off

Selection o! comman*
MMMN

'%345it '43,!om1t '036et!ie7e '1#3Cancel '1%3Info!mation ssistant
'#%3Set initial men2
AS/400 BASICO por Wilbert Martnez
L)0 Co%%ando de entrada
L)4 Es para salir del pro&ra%a
El /,M es una :erra%ienta del AS/400 que $acilita el control de Bibliotecas" objeto '
$uentes" de una %anera rKpida ' e$iciente" $a5oreciendo a la producti5idad en la operaci#n El
/,M $or%a parte del &rupo de :erra%ientas de apo'o del AS/400 conocidas co%o (ooSet/400
Con el /,M el usuario podrK controlar los si&uientes concepto o $unciones en AS/4002
Bibliotecas
Objetos
Luentes
Opciones de$inidas por el usuario
+tilizando /,M el usuario podrK disponer de las si&uientes utilerias o $acilidades" que a su 5ez
pertenecen ta%biOn al (ollSet/400
Source Entr' +tilit' @SE+A
,ata Lile +tilit' @,L+A
Screen ,esi&n Aid @S,AA
.eport !a'out +tilit' @.!+A
-9 *
AS/400 ,!og!amming .e7elo1ment Manage! 8,.M9
Select one of the following:
1. :o!" with li)!a!ies
#. :o!" with o);ects
%. :o!" with mem)e!s
0. :o!" with use!<*efine* o1tions
Selection o! comman*
333=
'%345it '43,!om1t '036et!ie7e '103Comman* ent!y
'1#3Cancel '1/3Change *efaults
AS/400 BASICO por Wilbert Martnez
Lile Co%pare and Mer&e +tilit' @LCM+A
Interacti5e Source ,ebu&&er @IS,BA
L7 salir ter%ina el pro&ra%a ' re&resa al pro&ra%a anterior
L4 -os %uestra una nue5a pantalla donde nos %uestra los &rupos de co%ando que
pode%os utilizar asi co%o una descripcion del %is%o" el cual pode%os accesar con el
nu%ero de la opci#n en la lnea de co%ando
Esta pantalla es de entrada a las biblioteca" pode%os seleccionar que biblioteca quere%os
5isualizar o trabajar (ienen la si&uiente opciones2
P!IB! ,esplie&a la lista de Bibliotecas del usuario
PA!!+S. ,esplie&a Jnica%ente las Bibliotecas del usuario
PA!! ,esplie&a todas las Bibliotecas del siste%a
P+S.!IB! ,esplie&a todas la Bibliotecas que no pertenecen al siste%a
PC+.!IB ,esplie&a la Biblioteca de$inidas co%o current
!ibrar' -a%e ,esplie&a sola %ente la biblioteca especi$icada
P&enericP Esta opci#n desplie&a lo que ten&a en los P
Eje%plo P 8CA nos %uestra todos las Bibliotecas que conten&an esta cadena
,e caracteres
-; *
S1ecify >i)!a!ies to :o!" :ith

?y1e choice( 1!ess 4nte!.

>i)!a!y . . . . . . . . . . . @>IB> @>IB>( name( @gene!ic@( @A>>(
@A>>S6( @S6>IB>( @C6>IB



'%345it '+36ef!esh '1#3Cancel
AS/400 BASICO por Wilbert Martnez
Al trabajar con Bibliotecas tendre%os las si&uientes opciones2
4C:an&e 2 /er%ite ca%biar el tipo de biblioteca que se tiene
P/.O, Es una biblioteca se encuentra en producci#n
P(ES( biblioteca de pruebas
As co%o ta%biOn ca%biar su te3to descripci#n
7 Cop' 2 Copia de una biblioteca a otra bibliotecas con todas sus caractersticas
4 ,elete2 Eli%ina una o %Ks Bibliotecas
9 ,ispla'2 ,esplie&a todos los tipos de objetos contenidos en la biblioteca
; .ena%e2 .eno%bra una biblioteca
6 ,ispla' descripcion2 ,esplie&a in$or%aci#n acerca de biblioteca" $ec:a en que
se creo" se ca%bio etc
)4 ,esplie&a los objetos contenidos en la biblioteca ' poder trabajar con ellos
)7 Ca%bia la descripci#n de la biblioteca
En esta pantalla tene%os las si&uientes teclas de $unci#n %Ks usuales2
L) ,esplie&a una a'uda en lnea de la pantalla
L7 .e&resa a la pantalla anterior
L4 /arK%etros adicionales en los co%andos o $unci#n
L9 .eactualiza la consulta
L; Al presionar esta tecla crea%os un a nue5a biblioteca
-= *
:o!" with >i)!a!ies sing ,.M S106CB4A

>ist ty1e . . . . . . . @>IB>

?y1e o1tions( 1!ess 4nte!.
#3Change %3Co1y +3.is1lay -36ename
/3.is1lay *esc!i1tion 03Sa7e 1036esto!e 1#3:o!" with ...

$1t >i)!a!y ?y1e ?e5t
ASBS @,6$.<SBS System >i)!a!y
ASBS# @,6$.<SBS System >i)!a!y fo! C,ICs
AD>,SBS @,6$.<SBS
AS6SBS @,6$.<SBS
A,.A @,6$.<,6.
A&,> @,6$.<S6
A?4M, @?4S?<S6
Bottom
,a!amete!s o! comman*
333= EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
'%345it '43,!om1t '+36ef!esh '63A** to '036et!ie7e '103Comman* ent!y
'#%3Mo!e o1tions '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
L> -os re&resa el co%ando anterior ejecutado
L)0 ,esplie&a los co%andos ejecutados en el /,M en esta sesi#n
L)) ,esplie&a la lista sin tipo ' sin descripci#n
L)4 Cancela ' no %odi$ica nada
L); Lunciones de$inidas por el usuario
L4) I%pti%e la lista de la l ibreias
L47 Con esta tecla podeo%os 5er los de%as opciones que se tinenen
L44 ,esplie&a todas las $unciones
-6 *
AS/400 BASICO por Wilbert Martnez
Al&unos co%andos para trabajar con Bibliotecas
W.Q!IB/,M I (rabajar con Bibliotecas
A,,!IB!E I A8adir una biblioteca a la lista de biblioteca
E,(!IB! I Editar la lista de biblioteca
Al esco&er esta opcion 4 del /,M @W.QOB</,MA nos %uetra la pantalla
anterior to%a los si&uientes 5alores2
!ibrar' 2 la Biblioteca con que se 5a a trabajar" puede ser 2
PC+.!IB 2 ,esplie&a la biblioteca de$inidas co%o current
-a%e 2 ,esplie&a sola%ente la biblioteca especi$icada
Object 2 Es un objeto en particular o pueden ser todos los que conten&an ciertas
caractersticas de$inidas co%o2
-a%e 2 /ueden ser todos @PA!!A" uno en particular@-a%eA" !os que conten&an la
cadena contenida en los P @P&enericPA
('pe2 !os tipos de objetos que e3isten en la Bibliotecas /ueden to%ar 5alores
para desple&ar todos @PA!!A" o un tipo especi$ico @P('peA que pueden ser P/0M"
,S/" C!/" /L"!L etc
-> *
S1ecify $);ects to :o!" :ith

?y1e choices( 1!ess 4nte!.

>i)!a!y . . . . . . . . . . M?B# @C6>IB( name

$);ect:
Name . . . . . . . . . . . @A>> @A>>( name( @gene!ic@
?y1e . . . . . . . . . . . @A>> @A>>( @ty1e
Att!i)ute . . . . . . . . @A>> @A>>( att!i)ute( @gene!ic@(
@B>ANF


'%345it '+36ef!esh '1#3Cancel
AS/400 BASICO por Wilbert Martnez
Esta es el %enJ del W.QOB< en este pode%os2
Eli%inar un objeto
+tilizar la opci#n 4 @deleteA en el objeto a eli%inar
.eno%brar un objeto
+tilizar la opci#n = @rena%eA en el objeto a reno%brar
Mo5er un objeto
) +tilizar la opci#n )) @Mo5eA en el objeto a %o5er
4 Especi$icar la biblioteca destino
Copiar un objeto2
) +tilizar la opci#n )7 @Mo5eA en el objeto a %o5er
4 Especi$icar la biblioteca destino
!a $unci#n de copiar $unciona co%o duplicar un objeto" el cual puede e3istir o no en la
biblioteca destino ,e tal $or%a que la acci#n de copiar se realiza de dos $or%as2
a Crea un objeto nue5o en la biblioteca destino" con las %is%as caractersticas
del objeto ori&inal
b .ee%plaza un objeto 'a e3istente en la biblioteca destino Con las caractersticas
del objeto ori&inal
,esple&ar la descripci#n de un Objeto2
-)0 *
:o!" with $);ects sing ,.M S106CB4A
G
>i)!a!y . . . . . M?B# ,osition to . . . . . . . .
,osition to ty1e . . . . .

?y1e o1tions( 1!ess 4nte!.
#3Change %3Co1y 43.elete +3.is1lay -36ename
/3.is1lay *esc!i1tion 03Sa7e 1036esto!e 113Mo7e ...

$1t $);ect ?y1e Att!i)ute ?e5t
.'1 @,&M .' *fu ins1
.'# @,&M .' .'#
.'% @,&M .' .'4
.'+ @,&M .' .'+
4'6A @,&M .' 4'6A
H4'6A @,&M C>, cl1 *e 1!ue)a
H'4CDA @,&M C>, cl1 *e 1!ue)a
H'IN0# @,&M C>, ,64BAS
Mo!e...
,a!amete!s o! comman*
333=
'163se! o1tions '1-3Su)set '1/3Change *efaults
'#13,!int list '#%3Mo!e o1tions '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
+tilizar la opci#n 6 @displa' descriptionA en el objeto a trabajar
,esple&ar la in$or%aci#n de un Objeto
(rabajar con objetos2 S(./,M / Opci#n 4 o W.QOB</,M
Ejecutar un objeto
+tilizar la opci#n ); @.unA en el objeto a ejecutar
Ca%biar el te3to de un objeto
+tilizar la opci#n )7 @C:an&e te3tA en el objeto a ejecutar
,ebu& interecti5o
+tilizar la opci#n 74 @ Interacti5e source debu&&er A en el objeto a trabajar
En esta pantalla tene%os las si&uientes teclas de $unci#n %Ks usuales2
L) ,esplie&a una a'uda en lnea de la pantalla
L7 .e&resa a la pantalla anterior
L4 /arK%etros adicionales en los co%andos o $unci#n
L9 .eactualiza la consulta
L> -os re&resa el co%ando anterior ejecutado
L)) ,esplie&a la lista sin tipo ' sin descripci#n
L)4 Cancela ' no %odi$ica nada
L)7 .epite la opci#n en todos los objetos en que estOn en la pantalla
L)4 ,esplie&a el ta%a8o del objeto solo cuando esta en %odo no%bre ' tipos
L)6 Ca%bia los 5alores por de$ault
L); Lunciones de$inidas por el usuario
L4) I%pri%e la lista de objetos que se encuentran en la pantalla
L47 ,esplie&a las opciones que se encuentran en la pantalla
L44 ,esplie&a teclas de $uncion
-ota2 Solo se pueden ejecutar las opciones ' teclas de $uncion que se encuentren
5isualizadas en la pantalla
-)) *
AS/400 BASICO por Wilbert Martnez
Al esco&er esta opcion 7 del @S(./,MA trabaja con Luentes @HrR%brpd%A nos
%uetra la pantalla anterior to%a los si&uientes 5alores2
Lile 2 Es no%bre del source $ile a utilizar 2
-a%e 2 +n no%bre especi$ico del source $ile a trabajar
L4 2 -os deslie&a una lista de source $ile e3istentes en la biblioteca
!ibrar'2 Es la biblioteca con la que se 5a atrabajar pueden to%ar los si&uientes
5alores2
P!IB! 2 Son las todas Bibliotecas de$inida para el usuario
PC+.!IB2 Es la biblioteca de$inida co%o current
-a%e2 Es no%bre de una biblioteca especi$ican en donde se encuentran los
$uentes a utilizar
Me%ber2
-a%e 2 -o%bre del Luente a trabajar" pueden to%ar los si&ientes 5alores2
PA!! 2 (odos los $uentes cotenidos en la biblioteca ' el sor$ile
-a%e 2 E! no%bre del $uente a trabajar
P ,eneric P 2 Es un $uente que ten&a las cadena que se encuentra de$inida
dentro de los asteriscos P
('pe 2 (ipo de $uente a utilizar
PA!! 2 (odos los tipos de $uentes que se encuentren en esta biblioteca ' en
el soruc $ile
('pe 2 (ipo especi$ico de $uente
P&eneric P2 desple&ara todos aquellos $uentes que cu%plan con la cadena
encerrada entre asteriscos @PA
PB!A-Q 2 ,esplie&a todos los $uentes con t'pe en blanco
-)4 *
S1ecify Mem)e!s to :o!" :ith

?y1e choices( 1!ess 4nte!.

'ile . . . . . . . . . . H.4M?B Name( '4 fo! list

>i)!a!y . . . . . . . . M?B1 @>IB>( @C6>IB( name

Mem)e!:
Name . . . . . . . . . ,4%+00 @A>>( name( @gene!ic@
?y1e . . . . . . . . . @A>> @A>>( ty1e( @gene!ic@( @B>ANF




'%345it '43,!om1t '+36ef!esh '1#3Cancel
AS/400 BASICO por Wilbert Martnez

#%ABA9A'D& C&' /-$'#$(
Copiar un $uente
)I Estando en la pantalla del W.QMB./,M
4I +tilizar la opci#n 7@cop'A en el $uente a copiar
!a $unci#n copiar $unciona co%o duplicar un $uente" el cual puede e3istir o no
en la biblioteca ' arc:i5o $uente destino ,e tal $or%a que la acci#n de copiar se
realiza de dos $or%as2
aA Crea un $uente nue5o en la biblioteca ' arc:i5o $uente destino con las
%is%as caractersticas del $uente ori&en
bA .ee%plaza un $uente 'a e3istente en la biblioteca ' arc:i5o $uente
destino" con las %is%as caractersticas
Ca%biar tipo ' te3to de un $uente
/ara ca%biar un te3to de un $uente se utiliza la opci#n )7 @c:an&e te3tA en el
$uente a ca%biar
Editar un $uente
+tilizando la opci#n 4 @EditA en el $uente a editar En esta opci#n nos %ostrara el
SE+
Sisualizar un $uente2 Con la opci#n 9 @displa'A en el $uente a 5isualizar Con esta
opci#n nosotros no pode%os %odi$icar el $uente
-)7 *
:o!" with Mem)e!s sing ,.M S106CB4A

'ile . . . . . . H.4M?B
>i)!a!y . . . . M?B1 ,osition to . . . . .

?y1e o1tions( 1!ess 4nte!.
#34*it %3Co1y 43.elete +3.is1lay 63,!int -36ename
/3.is1lay *esc!i1tion 03Sa7e 1%3Change te5t 143Com1ile 1+3C!eate mo*ule...

$1t Mem)e! ?y1e ?e5t
'I410/6 ,' >ot Maste!
'%00#>6 >' >' < )!anch com1( #n* item( ?h!u *ate
'410#JH >' H' < >ocation/:o!" o!*e!8'410# '4/019
'410#1JA >' H' < >ocation/B!anch 8f410#1/f410#9
Mo!e...
,a!amete!s o! comman*
333=
'%345it '43,!om1t '+36ef!esh '63C!eate
'036et!ie7e '103Comman* ent!y '#%3Mo!e o1tions '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
Co%pilar un $uente2 /ara co%pilar un $uente se utiliza la opci#n )4 @co%pileA en
el $uente a co%pilar
Eli%inar un $uente2 /ara eli%inar un $uente se utiliza la opci#n 4 en el $uente a
eli%inar
,esple&ar la descripci#n de un $uente2 /ara desple&ar la descripcion de un $uente
se utiliza la opci#n 6 @displa' descriptionA en el $uente a trabajar
Ordenar una lista de $uentes por $ec:a2 +tilizan la $unci#n TL4N @,ispla' dateA
para desple&ar las $ec:as de creaci#n U con la Lunci#n TL)9N @sort dateA para
ordenar la $ec:a
Indistinta%ente la $unci#n TL)9N @sort dateA sir5e para ordenar 2 por $ec:a o por
no%bre
Buscar un S(.I-0 en un $uente
aA +tilizando el /,M
(rabajando con $uentes @W.QMB./,MA la opci#n 49 @$ind
Strin&A para :acer la bJsqueda correspondiente
bA utilizando el co%ando L-,S(./,M
SE+ @Source Entr' +tilit'A
Con el SE+" usted puede trabajar con el $uente de arc:i5os" ' los re&istros
contenidos dentro de ellos
Opciones per%itida2
-)4 *
Columns . . . : 1 -1 4*it M?B#/H.4S6C
S433= ,++&>AS
'M? @ ..... @. 1 ...K... # ...K... % ...K... 4 ...K... + ...K... 6 ...K... -
00/4.00 I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00/+.00 C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00/6.00 C@ MAIN>IN4 ,6$&6AM
00/-.00 C@ <<<<<<<<<<<<<<<<
00//.00 C@
00/0.00 C@ ,!ocess house"ee1ing.
0000.00 C@
0001.00 C 4GS6 S000
000#.00 C@ <<<< <<<<
000%.00 C@
0004.00 C@ If >6 on( en* 1!og!am.
000+.00 C@
0006.00 C @IN>6 CAB4AC1C 4$H
0006.00 C
'%345it '43,!om1t '+36ef!esh '036et!ie7e '103Cu!so! '113?oggle
'1636e1eat fin* '1-36e1eat change '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
Crear $uentes
Editar $uentes
I%pri%ir $uentes
Copiar re&istro de un arc:i5o @$uentesA a otro $uente o un arc:i5o de
i%presi#n
-)9 *
AS/400 BASICO por Wilbert Martnez
El SE+ cuenta con las si&uientes caractersticas2
Co%andos2 !os co%andos de la SE+ se pueden trabajar en A%bientes" $uentes '
re&istros Con ellos" pode%os ocultar re&istros desple&ados en pantalla" sal5ar arc:i5os o cancelar
los ca%bios :ec:os al $uente
!neas de $or%atos2 Se pueden utilizar las lneas de $or%ato para 5eri$icar la posici#n de
los estatutos se&Jn los estatutos $uentes del len&uaje de alto ni5el utilizado SE+ pro5ee de
lneas de $or%ato prede$inidas para co%andos de los len&uajes de alto ni5el utilizados ' de
len&uaje de control de AS/40 @C!A
Modo de pantalla co%pleta El %odo de pantalla co%pleta @Lull screen %odeA es utilizado
en las pantallas de edici#n ' de broHse para eli%inar teclas de $unci#n de la pantalla del SE+"
per%itiendo as" tener cuatro lneas %Ks de te3to $uente
(eclas de $unci#n co%pletas Cada pantalla de la SE+ soporta un conjunto de teclas de
$unci#n" usadas para realizar tareas especi$icas Estas teclas" se encuentran listadas en la parte
in$erior de cada pantalla E3cepto por la tecla L) @A'udaA que no es sie%pre desple&ada ' sin
e%bar&o es 5alida en todas la pantallas" una tecla de $unci#n es 5alida solo si es %ostrada en la
parte in$erior de la pantalla
/ro%pts de co%andos ' len&uajes 2 !os pro%pts de co%andos ' len&uajes son utilizados
para crear re&istro o lneas de c#di&o $uentes sin errores
!neas de co%andos2 Esta" es usada para realizar 5arias operaciones" tales co%o insertar
re&istros en blancos " copiar re&istro ' lla%ar al pro%pt de co%andos o len&uajes
-J%eros %K3i%o ' lon&itud de re&istros2 El SE+ per%ite un %K3i%o de 74=;4 re&istros
en un $uente !a lon&itud %K3i%a de re&istros per%itida es de 440 caracteres " el cual inclu'e ;
caracteres para el nu%ero de secuencia ' ; caracteres para la $ec:a
/antallas de opciones2 Este tipo de pantallas son utilizadas para controlar el a%biente del
SE+ ' para realizar operaciones sobre los $uentes de arc:i5os ' arc:i5os de i%presi#n !as
pantallas de operaciones %Ks usadas son2
I Ca%bio de de$aults de la sesi#n
- Opciones de broHse/ cop'
- Opciones de Encontrar/ Ca%biar
Sesi#n split2 Esta sesi#n es utilizar para 5er ' editar un $uente ' 5isualizar otro en la
%is%a pantalla de trabajo (a%biOn" es posible 5isualizar dos $uentes en la %is%a pantalla a la
5ez Si la pantalla de opciones de BroHse/Cop' es accesada desde una sesi#n split" es posible
copiar re&istros desde la $uente que sea %ostrado en la pantalla a la $uente que se este utilizando
-); *
AS/400 BASICO por Wilbert Martnez
C:equeo de sinta3is El c:equeo de sinta3is es utilizado para 5eri$icar los estatutos de los
di$erentes len&uajes de alto ni5el" inclu'endo Basic" /l/I" cobol" Lortan ' ./0" as co%o el
len&uaje de control del AS/400
Sentanas de co%andos del siste%a2 ,esde esta 5entana es posible %andar ejecutar
co%andos de AS/400 %ientras trabaja con una pantalla de edici#n del SE+ /ara desple&ar la
5entanas de co%andos del siste%a" presione L4) -o es posible teclear datos en la pantalla de
edici#n del SE+ %ientras la 5entana de co%andos del siste%a se encuentre desple&ada
(rabajar con $uentes
Iniciar una sesi#n en SE+
,esde el /,M @pro&ra% de5elop%ent %ana&erA ,entro del /,M utilice la opci#n
4 @editarA O 9 @desple&arA en la pantalla de trabajo con $uente
,esde el %enJ de pro&ra%ador Selecione la opci#n 6 @editar una $uente de un
arc:i5o $uenteA o bien" seleccione la opci#n 9 @ejecutar co%andosA" ' seleccione el
Co%ando S(.SE+ de la lista de co%andos
/or %edio de la linea de co%andos de AS/400 (eclee S(.SE+ en la lnea de
Co%andos
Ser una lista de $uentes
/ara 5er una lista de $uentes" usando el co%ando S(.SE+" :a&a lo si&uientes2
)I Especi$ique el arc:i5o $uente para el parK%etro S.CLI!E pero no especi$ique el $uente
en el parK%etro S.CMB." Especi$ique el 5alor del PSE!EC( para el parK%etro S.CMB.
(eclee el co%ando S(.SE+ sin nin&Jn parK%etro si la pantalla de trabajo con $uentes
usando SE+ $ue desple&ada
-)= *
Sta!t Sou!ce 4nt!y tility 8S?6S49

?y1e choices( 1!ess 4nte!.

Sou!ce file . . . . . . . . M?BS6C Name( @,6I
>i)!a!y . . . . . . . . M?B Name( @>IB>( @C6>IB( @,6I
Sou!ce mem)e! . . . . . . . @A>> Name( @,6I( @S4>4C?
Sou!ce ty1e . . . . . . . . Name( @SAM4( BAS( BAS,...
$1tion . . . . . . . . . . . @B>ANF @B>ANF( C C( #( +( 6
?e5t C*esc!i1tionC . . . . . @B>ANF .

AS/400 BASICO por Wilbert Martnez
Ca%biando la lista de $uentes
+sted puede ca%biar la lista de $uentes que aparecen en la pantalla de trabajo con $uentes
usando SE+ a que solo los $uentes que cu%plan cierto criterio sean incluidos en dic:a lista !a
selecci#n de $uente puede ser por2
-o%bre parcial
(ipo de %ie%bro
Lec:a de creaci#n o de ulti%o ca%bio
(e3to o te3to parcial
/ara ca%biar la lista de $uentes
) /resione L)= @subconjuntoA !a pantalla de lista subconjunto de %ie%bros
4 Especi$ique el criterio para los %ie%bros que desea que sean listados '
presione enter Con esto" la lista de $uentes actualizada serK desple&ada

Crear un $uente2
/ara crear un %ie%bro" si&a los pasos que se %uestran a continuaci#n2
,esde la lnea de co%ando" o utilizando el pro%pt de co%andos" especi$icando el
no%bre del $uente a crear" en el parK%etro S.CMB. del co%ando S(.SE+ Si
utiliza el pro%pt de co%andos" teclee un tipo de $uente 5alido en el source t'pe"
de lo contrario el de$ault es usado
En la pantalla de trabajo con %ie%bros usando SE+" teclee el no%bre del
%ie%bro a
crear en el pro%pt de neH %e%ber ' presione enter
!a pantalla de trabajo con %ie%bros usando SE+ puede ser accesada especi$icando
PSE!EC( para el parK%etro S.CMB. en el co%ando S(.SE+
!a pantalla de edici#n aparecerK" en la cual puede iniciar la entrada de c#di&o
(ipo de $uente ,escripci#n
C!/
CB!
,S/L
ME-+
/L
/.L(
?.U
./0
(1(
C! pro&ra%
Cobol
Arc:i5os de pantallas
MenJs @+IMA
Arc:i5o Lsico
Arc:i5o de .eportes
Arc:i5o de ?uer's
./0
(e3to
-)6 *
AS/400 BASICO por Wilbert Martnez
!a $i&ura anterior nos %uestra los tipos de $uentes %as utilizados en AS/400
-)> *
AS/400 BASICO por Wilbert Martnez
/ara iniciar una sesi#n del SE+ desde el /,M con la opci#n 4 @E,I(A en la
$uente que de desea%os editar
Mostrar un $uente @BroHsin&A
!a pantalla de broHse es usada para 5er un $uente sin el ries&o de ca%biarlo
accidental%ente @solo lecturaA /ode%os usar las operaciones de busqueda ' posiciona%iento"
pero no pode%os realizar operaciones que alteren el $uente" tales co%o edici#n" eli%inaci#n"
actualizaci#n o relocalizacion de re&istro
/ar %ostrar un $uente 2
Especi$ique 9 @BroHseA en el parK%etro option del co%ando S(.SE+
Seleccione la opci#n 9 @BroHseA en la pantalla de trabajo con $uentes usando SE+
!a pantalla de BroHse aparecera ' contendra el $uente que :a'a seleccionado
/ara ca%biar los de$aults de la sesi#n en la pantalla de broHs" presionando L)7 Aqu
podra especi$icar para%etros tales co%o el nu%ero de ren&lones a rolar en la pantalla" o $orzar la
entrada de letras en solo Ma'Jsculas
(a%bien es posible ca%biar la sesion usando el co%ando SE+ SE(
El %odo de la pantalla co%pleta le per%ite re%o5er la linea de $or%ato de la parte
superior de la pantalla ' la lista de teclas de $uncion de la parte in$erior de la %is%a
/ode%os utilizar le %odo de pantalla co%pleta %ientra se esta %ostrando los $uentes o
arc:i5o de i%presi#n @broHsin&A /ara ca%biar de %odo ca%pleta2
) En la pantalla de BroHse" presione L)7 @ca%biar de$aultA Con lo anterior
aparecera la pantalla de ca%bios de de$ault
4 (eclee ' en el pro%pt de $ull screen %ode ' presionar enter !a pantalla de broHse
ca%biara a %odo de pantalla co%pleta
-40 *
:o!" with Mem)e!s sing ,.M S106CB4A

'ile . . . . . . M?BS6C
>i)!a!y . . . . M?B1 ,osition to . . . . .

?y1e o1tions( 1!ess 4nte!.
#34*it %3Co1y 43.elete +3.is1lay 63,!int -36ename
/3.is1lay *esc!i1tion 03Sa7e 1%3Change te5t 143Com1ile 1+3C!eate mo*ule...

$1t Mem)e! ?y1e ?e5t
'IN0%> >' @a!chi7o logico *e 1!ue)a
'IN0%>A >' a!chi7o logico *e ca!!
'IN04 ,' A6CDII$ 'ISIC$ .4 CA6/A>/MA?
'IN04BF ,' A6CDII$ 'ISIC$ .4 ,IN048A>CA6MA?9
'IN04>B >' A6CDII$ >$&IC$ .4 'IN04
# 'IN#+ ,' A6CDII$ IN'$6MACI$N
Mo!e...
,a!amete!s o! comman*
333=
'%345it '43,!om1t '+36ef!esh '63C!eate
'036et!ie7e '103Comman* ent!y '#%3Mo!e o1tions '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
/ara cancelar el %odo de pantalla co%pleta ' re&resar al %odo nor%al de operaci#n2
) I En la pantalla de broHse" presionar L)7
4 I (eclee - en el pro%pt $ull screen %ode ' presione enter
Mientras se trabaje con un $uente" puede di5idir @SplitA la pantalla del broHse con otro
broHse de un $uente o arc:i5o de i%presi#n @spool $ileA /ara di5idir @splitsA la pantalla 2
)I /resione L)9 @opciones de broHseA
4I .ealice los si&uientes puntos2
/ara %ostrar otros $uente del %is%o arc:i5o" teclee el no%bre del $uente en el
pro%pt de BroHse %e%ber ' presione enter
/ara %ostrar otro $uente de un arc:i5o di$erente" teclee el no%bre del arc:i5o en
el pro%pt de $ile" el no%bre del $uente en el pro%ot de broHse %e%ber ' presione
enter
/ara %ostrar un arc:i5o de i%presi#n" teclee su no%bre en el pro%pt spool $ile
/ara %ostrar un arc:i5o de i%presi#n de otro usuario" teclee el no%bre del
usuario en el ca%po correspondiente" teclee su no%bre de arc:i5o de i%presi#n '
presione enter
!a linea de di5isi#n es colocada a la %itad de la pantalla del broHse" ' a:ora puede 5er el
$uente o arc:i5o de i%presi#n adicional" en la pantalla /ara %o5er la linea de di5isi#n" presione
L; @%o5e Split lineA en la posici#n que desea que este
Editar un $uente
/ara editar un $uente" realice al&uno de los si&uientes puntos2
Especi$ique un 4@EditA en el parK%etro O/(IO- del co%ando S(.SE+
Especi$ique la opci#n 4 @editA en el pro%pt Opt en la pantalla trabajar con %ie%bros
usando SE+
Especi$ique la opci#n 4 @editA en la pantalla de trabajar con %ie%bros usando el /,M
Especi$ique la opci#n 4 @editA en la pantalla de trabajar con re&istros de pantallas en
S,A
AparecerK la pantalla de edici#n" conteniendo el %ie%bro especi$icado
E3isten 5arios re&istros especiales en la pantalla de edici#n de $uentes" los cuales no son
&rabados juntos con el c#di&o $uente
Inicio de datos
Lin de datos
Lor%ato
Inserci#n
Colu%nas
(abulaciones
E3clusi#n @e3cludeA
-4) *
AS/400 BASICO por Wilbert Martnez
-o se pueden eli%inar los re&istros especiales listado anterior%ente
!as lneas de inicio ' $in de datos son %ostradas para desi&nar el inicio ' el $in de un
$uente
,urante la edici#n de $uentes" puede di5idir @splitA la pantalla de edici#n con otra pantalla
de broHse de un $uente o arc:i5o de i%presi#n @spooled $ileA /ara di5idir la pantalla
) /resione L)9 @opciones de BroHse /cop'A
4 .ealice al&uno de los si&uientes puntos2
/ara %ostrar o copiar otro $uente del %is%o arc:i5o" teclee el no%bre del $uente
en el pro%pt de broHse ' presione enter
/ara %ostrar o copiar otro $uente de un arc:i5o di$erente" teclee el no%bre del
arc:i5o en el pro%pt de $ile" el no%bre del $uente en el pro%pt de Browse member '
presione enter
/ara %ostrar o copiar un arc:i5o de i%presi#n" teclee su no%bre en pro%pt spool $ile
/ara %ostrar o copiar un arc:i5o de i%presi#n de otro usuario" teclee el no%bre del
usuario en el ca%po correspondiente" teclee el no%bre del arc:i5o de i%presi#n '
presione enter
7 Si deseas copiar el $uente o arc:i5o de i%presi#n co%pleto teclee una ' en el
pro%pt de cop' all rOcords
/resione enter ' Se unas de las si&uientes opciones pasarKn2
Si esta en %odo broHse" la lnea de di5isi#n @lnea separadora de las dos sesionesA es
colocada en la parte %edia de la pantalla de edici#n ' podrK 5er el $uente adicional
Si esta copiando el $uente ' especi$ica un destino en el $uente que esta editando" el
$uente o arc:i5o de i%presi#n es copiado dentro del $uente que se esta editando" pero
la sesi#n adicional no serK iniciada
Si se encuentra copiando un $uente" pero no especi$ico un destino @lu&ar donde se
iniciara la copia del $uente adicionalA en el $uente que se esta editando actual%ente" la
pantalla de edici#n es di5idida ' el co%ando de copia bloque @CCA es colocado en el
pri%er ' ulti%o re&istro del $uente o arc:i5o de i%presi#n que esta desple&ando
Eli%inando un $uente
Especi$ique ;@/rintA en el parK%etro O/(IO- del co%ando del S(.SE+
Selecionando la opci#n ;@/rintA en la pantalla de trabajar con %ie%bros
@W.QMB./,MA
Cuando sal&a de la sesi#n de edici#n" teclee ' en el pro%pt /rint %e%ber en la pantalla
de salida" o bien"
-44 *
AS/400 BASICO por Wilbert Martnez
CAMBIA-,O E! AMBIE-(E ,E !A SESIO- ,E E,ICIO-
/ode%os ca%biar el a%biente de la sesi#n de edici#n de dos %aneras2 +tilizando el
co%ando SE+ SE( o bien " utilizando la pantalla de ca%bio de la sesi#n @L)7A
Al presionar L)7 aparecerK la pantalla de ca%bio de ,e$aults de la sesi#n" ' entonces
podrK :acer lo si&uiente2
Especi$icar el nu%ero de re&istro de datos serKn pa&inados @ %ediante las
teclas de rollA
Especi$icar el teclado en solo %a'Jsculas o %i3to
Vabilitar o des:abita los tabuladores
Especi$icar el nJ%ero en que se irKn incre%entando los nJ%eros de secuencia
Ca%biar al %odo pantalla co%pleta
,e$inir las di%ensiones de la pantalla@para ,ispla' de 4= ren&lones 3 )74
colu%nasA
Especi$icar el tipo de $uente que se esta editando
Vabilitar/des:abitar el c:equeo de sinta3is
Especi$icar el c:equeo de sinta3is para un ran&o de estatutos
Asi&nar %Kr&enes
Asi&nar todos los re&istros e3istentes con una $ec:a deter%inada
Asi&nar la resecuenciaci#n del $uente co%o de$ault
Al&unos de los 5alores dependen del tipo de $uente del $uente" %ientras que otros
dependen del 5alor que les sea asi&nados o de los 5alores usados en la ulti%a sesi#n de
edici#n
E-CO-(.A. U CAMBIA. CA,E-A ,E CA.AC(E.ES
,urante la sesi#n de edici#n" es posible buscar dentro de un $uente una cadena de
caracteres" ' opcional%ente ca%biarla por otra cadena" usando la pantalla de opciones de
Encontrar / Ca%biar @Lind/C:an&eA
/ara accesar dic:a pantalla" presione L)4 @Lind/C:an&e OptionA estando dentro de la
sesi#n de edici#n Entonces" dentro de la pantalla de $ind/c:an&er podrK :acer lo si&uiente2
Encontrar una cadena especi$ica
Ca%biar una cadena
Encontrar los re&istros con una $ec:a deter%inada
Encontrarlos errores de sinta3is
,urante una sesi#n de desplie&ue @broHseA" puede buscar una cadena de caracteres por
%edio de la pantalla de opci#n de encontrar @$ind OptionA !a di$erencia es que en esta sesi#n no
podrK ca%biar el $uente ' no podrK encontrar los errores de sinta3is" e3cepto en los arc:i5os de
i%presi#n
/ara &uardar los 5alores que tecleo en los /ro%pts de encontrar @$indA ' ca%biar
@C:an&eA" presionar enter" L); para encontrar o L)= para ca%biar la cadena de caracteres
-47 *
AS/400 BASICO por Wilbert Martnez
/arar encontrar una cadena de caracteres2
) (eclee el Strin& que desea encontrar en el /ro%pts de $ind de la pantalla de
encontrar o de encontrar ' ca%biar
4 Ca%bie los de%Ks /ro%pts" si es necesario
7 /resione L); para encontrar el Strin&
/ara encontrar ' ca%biar una cadena de caracteres
) (eclee la cadena de caracteres que desea ca%biar en el pro%pt de encontrar o
encontrar/ca%biar
4 (eclee la cadena de caracteres con la que desea re%plazar la anterior en el
pro%t de ca%bia @C:an&eA
7 Ca%bie los de %as /ro%pts" si es necesario
4 /resione L)= para ca%biar la si&uiente ocurrencia del Strin&
Si el Strin& tecleado" es encerrado entre ap#stro$es o co%illas" estos si&nos serKn
i&norados en la bJsqueda/ara encontrar un re&istro en una deter%inada $ec:a2
) /resione L)4 para accesar la pantalla de encontrar
4 Especi$ique la $ec:a en el ca%po searc: on date
7 Especi$ique )"4"7 en el ca%po de co%paraci#n/co%pare
4 /resione L); para encontrar el si&uiente re&istro con la $ec:a especi$icada
(a%biOn" pode%os usar la operaci#n de encontrar para localizar los errores de sinta3is
detectados en el c#di&o $uente del $uente /ara encontrar estos errores teclee DPE..F o BP E..C e
el ca%po de encontrar/$ind Cuando presione L); @LindA" SE+ localizar cualquier error de
sinta3is encontrado por el c:ecador de sinta3is
COMA-,OS ,E !I-EA
!os co%andos de lnea se usan para realizar 5arias $unciones sobre los re&istros en el
$uente /ode%os usar los co%andos en lneas para 2
Copiar" eli%inar" insertar" %o5er o i%pri%ir re&istros
A'uda para teclear ' $or%atear datos de los nue5os re&istros
Ca%biar los re&istros que se 5en en la pantalla
(eclee los co%andos de la lnea sobre el nJ%ero de secuencia del re&istro en el $uente
/or eje%plo" teclee una , @deleteA en el nJ%ero de secuencia de un re&istro para eli%inarlo del
c#di&o $uente (eclee una ,7 para eli%inar los tres re&istros in%ediatos del c#di&o $uente
Estos co%andos pueden ser tecleados en %a'Jsculas o %inJsculas SE+ con5ierte
auto%Ktica%ente los co%andos en %a'Jsculas
,espuOs de teclear o ca%biar los co%andos de lnea" presione una de las si&uientes teclas
para correr los ca%pos
Enter
+na tecla de $unci#n 5alida
-44 *
AS/400 BASICO por Wilbert Martnez
A5ance o retorno de pa&ina @ /a&e up o pa&e ,doHnA
!a si&uiente tabla lista los co%andos de lnea del SE+ (odos los co%andos de lnea son
5alidos en las sesiones de edici#n en split o Lull %ode Esta tabla indica los co%andos de lnea
que son 5alidos para sesiones de desplie&ue @broHseA
Co%ando B.OWSE COMA-,O ,E !I-EA
/osiciona%iento absoluto
Antes / ,espuOs
Colu%nas
Copiar
Copiar repetida%ente
Borrar
E3cluir
Lor%ato
Inserci#n
Insertar con $or%ato
Insertar con pro%pt
I%pri%ir lnea
Mo5er
Solapar
/ro%pt
/osici#n relati5a
.epetir
S:oH
U
-
U
U/-
U/-
U/-
U
U
-
-
-
U
-
-
-
U
-
U

n n nn
A An B Bn
CO!S
C Cn CC
C. C.n CC.
, ,n ,,
1 1n 11
L LW L33
I In
IL ILn ILW ILWn
I/ I/W Ip33
!/ !/n !!/
M Mn MM
O On OO
/ /W /33
X Xn I In
./ ./n .// .//n
SL SLn S! S!n
Co%andos de SE+
/ode%os usar los co%andos del SE+ para realizar operaciones de encontrar/ca%biar" para
salir de la sesi#n ' para establecer los de$aults de la %is%a !os co%ados pro5een un $ast pat:
para estas operaciones" los cuales ta%biOn pueden ser accesadas atra5Os de las pantallas de
opciones !os 5alores tecleados por %edio de los co%andos del SE+ aparecerKn en dic:as
pantallas
!os co%andos deben ser tecleados sobre la lnea de co%andos del SE+ /ara recuperar
el co%ando anterior presione L> @retri5eA Es posible %o5er el cursor desde el Krea de datos a la
lnea de co%andos del SE+ ' re&resar al Krea de datos por %edio de la tecla L)0 @cursoA
-49 *
AS/400 BASICO por Wilbert Martnez
!a si&uiente tabla %uestra los co%andos para los di$erentes tipos de sesi#n
COMA-,OS Lunci#n
Secci#n
Edici#n
Sesi#n
BroHse
,epende de
la Ssesi#n
LI-, o L
CVA0E o C
(O/ o (
BO((OM o
BO( o B
SASE
LI!E
CA-CE!
Encontrar una cadena de caracteres
dentro de un $uente
Encuentra una cadena de caracteres
en un $uente ' ca%bia por otra
.eposiciona la pantalla de trabajo a
la pri%era pa&ina de datos
.eposiciona la pantalla de trabajo a
la ulti%a pa&ina de datos
0uarda los ca%bios :ec:os al
%ie%bro ' continua editando
Sal5a los ca%bios :ec:os al $uente '
sale de la edici#n
Abandona la secci#n sin &uardar los
ca%bios realizados
U
U
U
U

U
U
U
U
-
U
U
-
-
U
U
U
U
U
U
-
U
SA!I. ,E SE+
/ode%os salir del SE+ usando la pantalla de salida /ara accesar a dic:a pantalla"
presione L7 @SalirA en la pantalla de edici#n o en cualquier pantalla de Split !a pantalla de salida
puede usarse para realizar las si&uientes operaciones sobre el $uente que se esta editando
Salir ' crear un nue5o $uente
Salir sin crear el $uente
Salir ' sal5ar un $uente e3istente
.esecuenciar el $uente editado
I%pri%ir el $uente
Ir a la lista de $uente
.e&resar a edici#n
Cancelar la $unci#n de encontrar strin& por /,M"
-4; *
AS/400 BASICO por Wilbert Martnez
I+. De3inicion Del Codigo De Arci!os 5/isicos 0 Logicos).
I tipos de arc:i5os ' su di$erencia2
las tablas base son lla%adas arc:i5os $isicos
los 5ieHs/inde3 son lla%ados arc:i5os lo&icos
Arci!o /isico
Cada arc:i5o $isico esta con$or%ado de tres partes o
e3tenciones
) Lor%ato ,e$inicion de los ca%pos de los
cuales se que se co%pone un re&istro
4 .uta de acceso de$inicion de c#%o los o por lla5eA
7 .e&istros pueden ser accesados @en secuencia datos
espacio para los re&istros de los cuales esta :ec:o el
arc:i5o
Se pueden &enerar datos en un arc:i5o" por %edio de pro&ra%as interacti5os o barc:" d$u
@data $ile utilit'A" el co%ando de cop'
C/UL L.OMLI!E@ A (OLI!E @ A MB.O/(YPA,, LM(O/( YPMA/
P.E/!ACE P,.O/
C.(LI!E YP-O
PUES
,S//LM LI!E@!IB -AME/LI!E -AMEA MB.@PLI.S(A MN desplie&a el contenido del arc:
@ej para 5eri$icar datos copiadosA
-4= *
,A(OS
!A !!ASE ES ES(Z-O
ES(Z-O =
0
ES(Z-OMB 40
A
,I.ECC 40
A
C!ASILIC )
A
ESC+E!A 7
A
/.OME,IO 9
4
/
&
%
M
A
#
&
CAMI-O ,E ACCESO
D
A
#
&
(
AS/400 BASICO por Wilbert Martnez
- Codigo de un arci!o 3isico 5inde:ado)1
CO!+M-S 2 ) =) E,I( M(U4/<,ES.C
SE+MMN L9000)
LM( /L A(-AMEXXXXXX.!E-XX(,/BL+-C(IO-SXXXXXXXXXXXXXXXXXX
00)000 A . S(+C!S
00))00 A (E1(@[A.CVISO ,E ES(+,IA-(ESFA
00)400 A S(+-O = 0 (E1( @D-+ME.O ,E ES(+,IE-(EFA
00)700 A C!AS-O 4
00)400 A S(A(+S 4
00)900 A L0.A,E 7
00);00 A ,A(E . .ELL!,@E-,A(E C!SVS(A
00)=00 A Q S(+-O
00)600 A Q C!AS-O ,ESCE-,
'I+$L$( D$ -' A%C*I+&1
/IL$ -L$+$L
%$C&%D-L$+$L
/I$LD-L$+$L
;$0 /I$LD-L$+$L
($L$C#/&MI#-L$+$L
/%&M #0.$I En el caso de arc:i5os sie%pre se pone DAF
5#) 'AM$ #0.eI Se de$ine <%= MN en la linea donde se de$ine el no%bre del re&
Se de$ine una <;= MN cuando se 5an a de$inir las lla5es @sortA
Se de$ine una <9= MN para especi$icaciones de arc:i5os join
Se de$ine una <(/&= @select/o%itAI para seleccionar '/o o%itir re&s
esto solo se puede usar en arc:s lo&icos @id3A
'AM$ I Se de$ine el no%bre de la 5ariable @no %a'or de ; di&itosA
%) %$/$%$'C$.- Se de$ine una <%=" solo en el caso de que el ca%po se pueda re$erenI
ciar a otro que e3ista en un arc:i5o deter%inado esto es para que
to%e las %is%as caracteristicas del ca%po al cual se :ace re$erencia
L$') L$',#*Ilon&itud del ca%po
D) DA#A #0.$.- A MN al$anu%erico
/ MN nu%erico e%pacado
S MN nu%erico DzonedF @no es e%pacadoA
.) D$CIMAL .-$l nu%ero de deci%ales" sie%pre ' cuando sea nu%erico
/-'C#I&'(.- %$//LD@no%bre ca%po no%bre arc:A MN se utiliza para to%ar
caracteristicas de otro ca%po en otro arc: @solo caracteristicas" no
datosA
D$(C$'D MN ordena el ca%po en $or%a descendente" por de$ault si no
se de$inie nada lo considera ascendente
Estas 3unciones son e3clusi5as para arc:s lo&icos2
-46 *
AS/400 BASICO por Wilbert Martnez
C&M. MN ej co%p@&e )49A" solo to%a re&istros con esta condicion
%A',$ MN ej ran&e@)0000 >0000A" solo to%a re&s con esta Condicion
+AL-$( MN ej 5alues@DpendF Dcon$F Dcan DA" re&s con esta condicion
opri%iendo a'uda en este ca%po se desplie&an todas las opciones e3istentes
no se reco%ienda usar estas $unciones @co%p" ran&e" 5aluesA" 'a que :ace
e3clusi5o el uso del arc:
El data t'pe es opcional" si no se de$inen deci%ales se considera al$anu%erico"
si se de$inen deci%ales se considera nu%erico DzonedF
- Codigo De -n Arci!o Logico1
Colu%ns 2 ) =) Edit M(U4/<,ES.C
SeuMMN L9000)!A
LM( /L A(-a%eXXXXXX.lenXX(dpbLunctionsXXXXXXXXXXXXXXXXXX
00)000 A . S(+C!S /LI!E@L9000)A
00))00 A Q ,A(E
00)400 A S S(A(+S COM/@E? DSA! D A
L+-C(IO-SI /LI!E@no%bre arc:$isicoA MN se utiliza para de$inir el arc:i5o $isico al
cual 5a a estar re$erenciado el lo&ico
E3isten arc:i5os >9&I' L&,ICAL /IL$(? MN este tipo de arc:i5o co%bina en un
$or%ato" ca%pos de dos o %as arc:i5os $isicos
Se de$ine solo un $or%ato de re&istro ' los ca%pos lla5e deben ser del arc:i5o
pri%ario
- Codigo De -n 9oin Logical /ile2
A%C*I+& CAM.&(
S(+,E-( S(+,E-( -+MBE. @S(+-OA
S(+,E-( -AME @S(+-AMA
C!ASS S(+,E-( -+MBE. @S(+-OA
C!ASS -+MBE. @C!AS-OA
C$>MNS . . . : 1 -1 4.I? M?B#/H.4S6C
S433= '+0001>B
'M? ,' .....A..........?.NAM4KKKKKK6>4NKK?.,B......'NC?I$NSKKKKKKKKKKKKK
KKKKK
0010.00 A 6 H$IN64C H'I>48S?.4N? C>ASS9
0011.00 A H H$IN81 #9
001#.00 A H'>.8S?N$ S?N$9
001%.00 A S?N$ H64'819
0014.00 A S?NAM
001+.00 A C>ASN$
001#.00 A F S?N$
-4> *
AS/400 BASICO por Wilbert Martnez
9/IL$.- Se deben especi$icar dos arc:i5os $isicos el pri%ero es el arc: pri%ario
9 I Identi$ica el inicio de especi$icaciones del join
9&I' .- Identi$ica cuales dos arc:i5os son DjoindedF
9/LD I Identi$ica los no%bres de ca%pos @Djoin $ieldsFA" estos deben e3istir en a%bos
arc:i5os @joinAG ' deben tener los %is%os atributos
9%$/I los ca%pos en un Djl$F deben ser identi$icados co%o unicos este atributo
per%ite especi$iar un ca%po a cual arc:i5o corresponde @esto es" cuando el
no%bre
de un ca%po e3iste en %as de un arc:i5o $isicoA
no se recomienda usar los arci!os <9&I'=, 7a @ue ocu"an muca area en el e@ui"o,
ademas generalmente se re@uiere de autoriAacion "or "arte de sistsemas/usuario.
- Com"ilacion De Arci!os /isicos/Logicos
aA Se puede co%pilar dentro del %enu de pd% con la opcion D)4F
Si se usa esta opcion se reco%ienda opri%ir el D$4F para 5er el da$ault de la biblioteca
:acia donde se 5a a diri&ir el objeto del arc:i5o que se 5a a &enerar ' en caso de que sea
otra biblioteca de$inirla ade%as es necesario de$inir una autoridadMPall" 'a que de lo
contrario" solo el usuario que creo el arc:i5o tendria acceso a este
bA Co%pilar con el co%ando MN DC.(1LF X L4 @to%ar las %is%as consideraciones
que en el caso de co%pilar con la opcion )4 dentro de pd%
C.(/L LI!E @PC+.!IB/LI!EI-AMEA
S.CLI!E @P!IB!/?,,S.CA
S.CMB. @PLI!EA
MB.@PLI!EA
MA1MB.S@)A
SI\E@P-OMA1 )000 7A
A+( @PA!!A
C.(!L LI!E@PC+.!IB/LI!EI-AMEA
Comandos De Arci!os1
CL%./M I Clear p:'sical $ile %e%ber @Inicializa el arc:i5o" borra la in$or%aci#nA
DL#/ I ,elete $ile @Borra el arc:i5o" $isica%ente 'a no e3istirKA
C*,./ I C:an&e p:'sical $ile @Ca%bia atributos al arc:i5oA
C*,./M I C:an&e p:'sical $ile %e%ber
D(./D I ,ispla' $ile description @,esplie&a datos &enerales del arc:i5oA
D(.DB% I ,ispla' data base rel @/ara consultar arc:i5os l#&icos re$erenciados a un arc:
$sicoA
D(..,Mre3.I ,ispla' pro&ra% re$erence @para consultar que arc:i5os se estan utilizando en un
-70 *
AS/400 BASICO por Wilbert Martnez
pro&ra%aA
D(.//D I,ispla' $ile $ield descrip@para consultar lista de ca%pos de$inidos en un arc:i5o ' sus
caracteristicas
Co%a%dos /ara .e5isar Co%pilaciones
Cuando se co%pilan arc:i5os" pro&ra%a" pantalla" ect se en5a a una cola de procesos
lla%ada WorR Hit: Sub%itted <obs @W.QSBM<OBA" la cual desplie&a el estatus de los procesos
que se encuentran en la cola
Estos estatus son los si&uientes2
<OB? 2 Indica que el proceso esta por entrar a la cola procesos
AC(ISE2 Indica que el proceso esta por ejecutarse o se esta ejecutando
O+(?2 Indica que el proceso :a ter%inado de ejecutarse
E-, 2 Indica que el proceso :a sido ter%inado por el usuario
!os opciones que se encuentran en este co%ando son las si&uiente2
7M Vold I usando esta opci#n se con&ela el proceso
4M End I +sando esta opci#n se cancela la ejecuci#n del proceso
;M .eleaseI
6M HorR spooled $iles Con esta opci#n nos desplie&a el spool de nuestro proceso
El sooled $ile @cola de i%presionA "es una :erra%ienta que sir5e para desple&ar '
al%acenar la in$or%aci#n resultados co%pilaciones" ' de las salidas de los pro&ra%as ejecutados
pro&ra%as
-7) *
:o!" with Su)mitte* Ho)s S106CB4A
01/14/00 11:#-:0/
Su)mitte* f!om . . . . . . . . : @S46

?y1e o1tions( 1!ess 4nte!.
#3Change %3Dol* 434n* +3:o!" with 636elease -3.is1lay message
/3:o!" with s1oole* files


$1t Ho) se! ?y1e <<<<<Status<<<<< 'unction
,++00#+ M?B0# BA?CD $?A
,++000# M?B00 BA?CD AC?II4 CM.<C6?6,&,&M
,++00##BF M?B00 BA?CD H$BA



Bottom
,a!amete!s o! comman*
333=
'%345it '43,!om1t '+36ef!esh '036et!ie7e '113.is1lay sche*ule *ata
'1#3Cancel
:o!" with Ho) S1oole* 'iles

Ho): ,++00#+ se!: M?B0# Num)e!: 0+-0#-

?y1e o1tions( 1!ess 4nte!.
13Sen* #3Change %3Dol* 43.elete +3.is1lay 636elease -3Messages
/3Att!i)utes 03:o!" with 1!inting status

.e7ice o! ?otal Cu!!ent
$1t 'ile Aueue se! .ata Status ,ages ,age Co1ies
+ ,++00#+ A,6IN? 6.B #6 1
A,H$B>$& A4LH$B>$& ,++00#+ 6.B 6 1



Bottom
,a!amete!s fo! o1tions 1( #( % o! comman*
333= EEEEEEEEEEEEEEEE
'%345it '103Iiew % '113Iiew # '1#3Cancel '##3,!inte!s '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
/ara re5isar la co%pilaci#n de un pro&ra%a con la opci#n 9 @displa'A del WorR Hit: <ob
Spooled Liles desple&ara la si&uiente pantalla
!os errores de co%pilacion se encuentran al $inal del spool" para poder 5isuaizar lo %as
rapido sin tener que que pa&inar" se teclea en el control DBF o PBO( @Botto%A que nos posiciona
el cursor al $inal del spool
En esta parte pode%os obser5ar la cantidad de erores que resultaron de la co%pilacion
(a%bien nos indica el nu%ero de se5eridad " la cual nos in$or%a la &ra5edad del error
/ara realizar la co%pilacion ' se cree el objeto" son los errore %enores que 70
Si se repa&ina @.e /a&A se encuentran los nu%eros de errores ocurridos co%o %uetra la
pantalla si&uiente2
Esta pantalla nos indica los nu%eros de errores &enerados ' la se5eridad respecti5a%ente"
por lo cual es necesario buscar en que linea ocurio el error" esto es posible tecleando el nu%ero de
-74 *

./....K....0....K....0....K....1....K....#....K....%..









1/,++00#+ 01/14/00 00:46:4/ ,age #6


































Bottom

.is1lay S1oole* 'ile
'ile . . . . . : ,++00#+ ,age/>ine #+/46
Cont!ol . . . . . B Columns 1 < -/
'in* . . . . . . EEEEEEEEEEEEEEEEEEEEE<

@...K....1....K....#....K....%....K....4....K....+....K....6....K....-....K...
Message . . . . : 6,& 1!o7i*es a Se1a!ate<In*icato! a!ea fo! the
file.
@ @ @ @ @ 4 N . $ ' M 4 S S A & 4 S M M A 6 B @ @ @ @ @
,++#+M& < CAMBI$ .4 &64&$6IAN$ A H>IAN$
+-606&1 I46#M0 0/0##/ IBM 6,&/400 M?B
' i n a l S u m m a ! y
Message Count: 8)y Se7e!ity Num)e!9
?$?A> 00 10 #0 %0 40 +0
/+ - 0 1 6+ 1# 0
,!og!am Sou!ce ?otals:
6eco!*s . . . . . . . . . . : -04
S1ecifications . . . . . . : %01
?a)le 6eco!*s . . . . . . . : 1
Comments . . . . . . . . . : 400
Com1ile sto11e*. Se7e!ity le7el 40 e!!o!s foun* in file.
@ @ @ @ @ 4 N . $ ' C $ M , I > A ? I $ N @ @ @ @ @
'%345it '1#3Cancel '103>eft '#036ight '#43Mo!e "eys
.is1lay S1oole* 'ile
'ile . . . . . : ,++00#+ ,age/>ine #+/1
Cont!ol . . . . . B Columns 1 < -/
'in* . . . . . .
@...K....1....K....#....K....%....K....4....K....+....K....6....K....-....K...
,++#+M& < CAMBI$ .4 &64&$6IAN$ A H>IAN$
+-606&1 I46#M0 0/0##/ IBM 6,&/400 M?B
M e s s a g e S u m m a ! y
@ A6&10#+ Se7e!ity: 40 Num)e!: /
Message . . . . : na)le to o1en the /C$,B mem)e!. S1ecification
is igno!e*.
@ A6&#1#0 Se7e!ity: 40 Num)e!: #
Message . . . . : 45te!nal *esc!i1tion not foun* fo! file
s1ecifie* as e5te!nally *esc!i)e*. 'ile igno!e*.
@ A6&+1%# Se7e!ity: %0 Num)e!: %
Message . . . . : 'acto! # ent!y is not the name of a file o! a
!eco!* fo!mat.
@ A6&+1-6 Se7e!ity: %0 Num)e!: 1
AS/400 BASICO por Wilbert Martnez
error en la linea del co%ando Lind ZZZZZZ el nu%ero de error" presionando la tecla L); las
5eces que se necesiten" 'a que el %is%o error puede encontrarse en 5arias lineas del codi&o

0ra5edad de codi&o de %ensajes
0ra5edad ,escripcion
00
)0
40
70
40
90
;0
=0
60
>0
>>
In$or%acion
A5iso
Error
Error &ra5e
Error no deberia continuar
(er%inacion anor%al del trabajo
o pro&ra%a
Estado del siste%as
Inte&ridad de dispositi5os
Alerta del siste%a
Inte&ridad del siste%as
Accion
Lunciones en el spooled $ile

En la linea de control tiene las si&uientes $unciones2

Co%ando ,escipcion
(
B
Wn
WI/Xn
/n
/osiciona al principio del spool
/osiciona al $inal del spool
Se /osiciona en la colu%as n
Se /osiciona en n colunas a partir de
donde se encuentras posicionado
/osiciona le apuntador en la pa&ina n
L)> M desplie&a la pantalla :acia la izquierda
L40 M desplie&a la pantalla :acia la derec:a
-77 *
AS/400 BASICO por Wilbert Martnez
Comandos "ara manejo de arci!os
D(.DB%
-os %uestra todos los lo&icos que estKn relacionados con este arc:i5o
!a $or%a de utilizarse es2
,S/,B. L4)0)
#
,S/,B. TL4N
Esta es una parte de lo que nos desple&aria este co%ando
-74 *
.is1lay .ata Base 6elations 8.S,.B69

?y1e choices( 1!ess 4nte!.

'ile . . . . . . . . . . . . . . f4101 Name( gene!ic@( @A>>
>i)!a!y . . . . . . . . . . . @>IB> Name( @>IB>( @C6>IB...
$ut1ut . . . . . . . . . . . . . @ @( @,6IN?( @$?'I>4
@...
K....1....K....#....K....%....K....4....K....+....K....6....K....-....K...
1/1+/00 .is1lay .ata Base 6elations
.S,.B6 Comman* In1ut
'ile . . . . . . . . . . . . . . . . . . . : 'I>4 '4101
>i)!a!y . . . . . . . . . . . . . . . . . : @>IB>
Mem)e! . . . . . . . . . . . . . . . . . . : MB6 @N$N4
6eco!* fo!mat . . . . . . . . . . . . . . . : 6C.'M? @N$N4
$ut1ut . . . . . . . . . . . . . . . . . . : $?,? @
S1ecifications
?y1e of file . . . . . . . . . . . . . . . : ,hysical
'ile . . . . . . . . . . . . . . . . . . . : '4101
>i)!a!y . . . . . . . . . . . . . . . . . : 4>A,6..?AG
Mem)e! . . . . . . . . . . . . . . . . . : @N$N4
6eco!* fo!mat . . . . . . . . . . . . . . : @N$N4
Num)e! of *e1en*ent files . . . . . . . . : 1/
'iles .e1en*ent $n S1ecifie* 'ile
.e1en*ent 'ile >i)!a!y .e1en*ency H64' Const!aint
'4101HA 4>A,6..?AG .ata 1
'4101>H 4>A,6..?AG .ata
'4101>F 4>A,6..?AG .ata
'4101>I 4>A,6..?AG .ata
'4101>A 4>A,6..?AG .ata
'4101>B 4>A,6..?AG .ata
'4101>C 4>A,6..?AG .ata
'4101>. 4>A,6..?AG .ata
'4101H. 4>A,6..?AG .ata 1
'4101H4 4>A,6..?AG .ata 1
'410#1HC 4>A,6..?AG .ata #
'4%000HA 4>A,6..?AG .ata #
'4101>B H.'S6C-% .ata
AS/400 BASICO por Wilbert Martnez
D(./D
Este co%ando desplie&a la descripci#n co%pleta de un arc:i5o" co%o la librera donde se
encuentra el $uente" el $ile" la $ec:a en que $ue creada ' por quien $ue creado"el tipo de arc:i5o"
nJ%ero de ca%pos que lo $or%an" total de re&istros" ' todos los atributos del arc:i5o" etc
,S/L, L4)0) #
,S/L,
TL4N o E-(E.
-os %uestra esta pantalla donde escribi%os el no%bre del $uente a buscar ' la librera
donde se encuentra" si no sabe%os el no%bre de la librera con Plibl lo to%a de la librera donde
lo encuentre pri%ero
Esto es parte de lo que nos %uestra el ,S/L,
-79 *
.is1lay 'ile .esc!i1tion 8.S,'.9

?y1e choices( 1!ess 4nte!.

'ile . . . . . . . . . . . . . . '4101 Name( gene!ic@( @A>>
>i)!a!y . . . . . . . . . . . @>IB> Name( @>IB>( @C6>IB...
?y1e of info!mation . . . . . . @A>> @A>>( @BASA?6( @A?6...
K fo! mo!e 7alues EEE
$ut1ut . . . . . . . . . . . . . @ @( @,6IN?( @$?'I>4
'ile att!i)utes . . . . . . . . @A>> @A>>( @.S,'( @,6?'( @.F?'...
K fo! mo!e 7alues
@...K....1....K....#....K....%....K....4....K....+....K....6....K....-....K...
1/1+/00 .is1lay 'ile .esc!i1tion
.S,'. Comman* In1ut
'ile . . . . . . . . . . . . . . . . . . . : 'I>4 '4101
>i)!a!y . . . . . . . . . . . . . . . . . : @>IB>
?y1e of info!mation . . . . . . . . . . . . : ?B,4 @A>>
'ile att!i)utes . . . . . . . . . . . . . . : 'I>4A?6 @A>>
System . . . . . . . . . . . . . . . . . . : SBS?4M @>C>
'ile .esc!i1tion Dea*e!
'ile . . . . . . . . . . . . . . . . . . . : 'I>4 '4101
>i)!a!y . . . . . . . . . . . . . . . . . . : 4>A,6..?AG
?y1e of file . . . . . . . . . . . . . . . : ,hysical
'ile ty1e . . . . . . . . . . . . . . . . . : 'I>4?B,4 @.A?A
Au5ilia!y sto!age 1ool I. . . . . . . . . . : 01
.ata Base 'ile Att!i)utes
45te!nally *esc!i)e* file . . . . . . . . . : Bes
'ile le7el i*entifie! . . . . . . . . . . . : 00/0401#0#040
!eation *ate . . . . . . . . . . . . . . . : 04/01/0/
?e5t C*esc!i1tionC . . . . . . . . . . . . : ?4G? Item Maste!
.ist!i)ute* file . . . . . . . . . . . . . : No
.BCS ca1a)le . . . . . . . . . . . . . . . : No
Ma5imum mem)e!s . . . . . . . . . . . . . . : MAGMB6S @N$MAG
Num)e! of const!aints . . . . . . . . . . . : 0
Num)e! of t!igge!s . . . . . . . . . . . . : 0
Num)e! of mem)e!s . . . . . . . . . . . . . : 1
Mem)e! siMe . . . . . . . . . . . . . . . . : SIL4 @N$MAG
Allocate sto!age . . . . . . . . . . . . . : A>>$CA?4 @N$
Contiguous sto!age . . . . . . . . . . . . : C$N?I& @N$
,!efe!!e* sto!age unit . . . . . . . . . . : NI? @ANB
6eco!*s to fo!ce a w!ite . . . . . . . . . : '6C6A?I$ @N$N4
Ma5imum file wait time . . . . . . . . . . : :AI?'I>4 @IMM4.
Ma5imum !eco!* wait time . . . . . . . . . : :AI?6C. 10
Ma5 N *elete* !eco!*s allowe* . . . . . . . : .>?,C? @N$N4
AS/400 BASICO por Wilbert Martnez
-7; *
AS/400 BASICO por Wilbert Martnez
DSPFFD
Este co%ando nos sir5e para 5er todos los ca%pos ' las caractersticas de cada uno de los
ca%pos que $or%an al arc:i5o
,S/LL, L4)0)
#
,S/LL,
con O'4= P ente! nos lle7a a la siguiente 1antalla *on*e *amos el nom)!e *el a!chi7o y
la li)!e!Qa *on*e se encuent!a
,S/OB<, ,S/OB<,
,esplie&a la descripci#n de un objeto" nos %uestra las caracteristicas co%pletas de un objeto" en
que librera ' $ile se encuentra" cuando $ue creado ' por quien" cual es el $uente de este objeto '
donde se encuentra" en que $ec:a $ue creado ' cuando $ue la ulti%a $ec:a de ca%bio" etc
,S/OB<, /4)>0
#
,S/OB<,
al opri%ir TL4N o E-(E.
,esplie&a la %is%a pantalla solo que a:ora para buscar el objeto" da%os el no%bre ' la librera
donde se encuentra" si no sabe%os el no%bre de la librera con Plibl lo to%a de la librera donde
lo encuentre pri%ero" :a' que especi$icar el tipo de objeto a buscar
-7= *
.is1lay 'ile 'iel* .esc!i1tion 8.S,''.9

?y1e choices( 1!ess 4nte!.

'ile . . . . . . . . . . . . . . f4101 Name( gene!ic@( @A>>
>i)!a!y . . . . . . . . . . . @>IB> Name( @>IB>( @C6>IB...
$ut1ut . . . . . . . . . . . . . @ @( @,6IN?( @$?'I>4
.is1lay $);ect .esc!i1tion 8.S,$BH.9

?y1e choices( 1!ess 4nte!.

$);ect . . . . . . . . . . . . . ,4100 Name( gene!ic@( @A>>S6...
>i)!a!y . . . . . . . . . . . @>IB> Name( @>IB>( @S6>IB>...
$);ect ty1e . . . . . . . . . . @1gm @A>>( @A>6?B>( @A?>...
K fo! mo!e 7alues EE
.etail . . . . . . . . . . . . . @BASIC @BASIC( @'>>( @S46IIC4
$ut1ut . . . . . . . . . . . . . @ @( @,6IN?( @$?'I>4
AS/400 BASICO por Wilbert Martnez
WRKOBJ
(rabajando con objetos" con este co%ando pode%os %anejar los objetos" nos %uestra la
lista de objetos que se encuentran en la librera seleccionada ' despuOs %anejar este objeto co%o
copiar" borrar" ca%biar de librera al objeto" entre otras cosas
W.QOB< / 4)>0
#
W.QOB<
Al opri%ir TL4N # enter nos %uestra la si& /antalla" donde especi$icare%os el objeto" o
bien si quere%os 5er todos los objetos en el no%bre del objeto darle Pall
En esta pantalla es donde se %anipulan lo objetos en el ca%po Opt dependiendo de la opci#n
seleccionada se pueden copiar" reno%brar" borrar"etc Al objeto seleccionado

!a opci#n 6 nos desplie&a los atributos del objeto" una de las $acilidades que nos per%ite esta
opci#n es saber en donde se encuentra el $uente de este objeto" esta opci#n la obtene%os si en 5es
de presionar enter" presiona%os L4 lo cual nos desple&ara la si&uiente pantalla
-76 *
:o!" with $);ects

?y1e o1tions( 1!ess 4nte!.
#34*it autho!ity %3Co1y 43.elete +3.is1lay autho!ity -36ename
/3.is1lay *esc!i1tion 1%3Change *esc!i1tion

$1t $);ect ?y1e >i)!a!y Att!i)ute ?e5t
,4100 @,&M H.'$BH-% 6,& >ocation .etail






Bottom
,a!amete!s fo! o1tions +( - an* 1% o! comman*
333=
'%345it '43,!om1t '+36ef!esh '036et!ie7e '113.is1lay names an* ty1es
'1#3Cancel '1636e1eat 1osition to '1-3,osition to
:o!" with $);ects 8:6F$BH9

?y1e choices( 1!ess 4nte!.

$);ect . . . . . . . . . . . . . 14100 Name( gene!ic@( @A>>
>i)!a!y . . . . . . . . . . . @>IB> Name( @>IB>( @C6>IB...
$);ect ty1e . . . . . . . . . . @A>> @A>>( @A>6?B>( @A?>...
.is1lay $);ect .esc!i1tion 8.S,$BH.9

?y1e choices( 1!ess 4nte!.

$);ect . . . . . . . . . . . . . = 'IN00 Name( gene!ic@( @A>>S6...
>i)!a!y . . . . . . . . . . . = M?B# Name( @>IB>( @S6>IB>...
$);ect ty1e . . . . . . . . . . = @'I>4 @A>>( @A>6?B>( @A?>...
.etail . . . . . . . . . . . . . = @S46IIC4 @BASIC( @'>>( @S46IIC4
$ut1ut . . . . . . . . . . . . . @ @( @,6IN?( @$?'I>4


Bottom
'%345it '43,!om1t '+36ef!esh '1#3Cancel '1%3Dow to use this *is1lay
'#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
En ella le escribi%os PSE.SICE en la opci#n ,etail
QUE ES UN DSPF. @,ispla' LileA
En el a%biente 400 a una pantalla se le conoce co%o un arc:i5o de desplie&ue +na
pantalla es creada para que el operador interactue con el 400" obser5ando in$or%aci#n" dando de
alta datos e incluso ca%biandolos dentro de un proceso" las pantallas pueden ser MenJs"
%ensajes del proceso" etc en conclusi#n una pantalla sera un inter%ediario entre el usuario ' el
proceso /ara crear una pantalla se puede utilizar la utilera SE+ pero e3iste otra utilera que es
de &ran a'uda la cual es la S,A @Screen ,esi&n AidA Cada 5ez que se realiza una pantalla" esta
se co%pila
/ara entrar a la utilera S,A teclea%os el co%ando S(.S,A TE-(E.N " la si&uiente
pantalla %uestra la pantalla de la utilera S,A" donde pode%os dise8ar %enJs" pantallas ' la
prueba de arc:i5o de pantallas
S(.S,A TE-(E.N
AS/400 Sc!een .esign Ai* 8S.A9

Select one of the following:

1. .esign sc!eens
#. .esign menus
%. ?est *is1lay files


Selection o! comman*
333=1
'13Del1 '%345it '43,!om1t '036et!ie7e '1#3Cancel
!a si&uiente pantalla serK donde especi$ica%os el no%bre de nuestra pantalla ' el
arc:i5o de $uentes donde 5a a ser &uardada" as co%o la biblioteca en donde se localizara
-7> *
.esign Sc!eens

?y1e choices( 1!ess 4nte!.

Sou!ce file . . . . . . . . A..SS6C Name( '4 fo! list

>i)!a!y . . . . . . . . . 'IM4 Name( @>IB>( @C6>IB

Mem)e! . . . . . . . . . . SC644N Name( '4 fo! list



'%345it '43,!om1t '1#3Cancel
AS/400 BASICO por Wilbert Martnez
(rabajando con el dise8adpr de pantalla pantalla @S,AA2
Crear un nue5o re&istro2 Con la opci#n )@AddA nosotros pode%os crear una
nue5a pantalla
Copiar un re&istro 2 Con la opci#n 7 @cop'A nosotros pode%os copiar el re&istro
Eli%inar un re&istro2 Con la opci#n 4 @deleteA se eli%ina un re&istro
.eno%brar un re&istro2 Con la opci#n = @.ena%eA se reno%bra el re&istro
Seleccionar teclas 2 Con la opci#n 6 @Select Re'HordA se selecciona la teclas de
$unci#n que se usaran para el re&istro de pantalla
,ise8ar la pantalla 2 Con la opci#n )4 @,esin& i%a&eA con esta opci#n se dise8a o
se %odi$ica el re&istro de pantalla
,espuOs de dar E-(E." a8ade un nue5o re&istro a nuestra pantalla

En lo anterior se 5e in$or%aci#n sobre nuestra pantalla ' su re&istro" debe%os especi$icar
de que tipo" si es una pantalla nor%al se utiliza el tipo .ECO.," ' los tipos de pantallas es %Ks
co%unes son pantallas de SubILiles" de tipo 5entana que son %as peque8as ' estilos de %enJs
-40 *
:o!" with .is1lay 6eco!*s

'ile . . . . . . : A..SS6C Mem)e! . . . . . . : IISI$N
>i)!a!y . . . . : 'IM4 Sou!ce ty1e . . . : .S,'

?y1e o1tions( 1!ess 4nte!.
13A** #34*it comments %3Co1y 43.elete
-36ename /3Select "eywo!*s 1#3.esign image

$1t $!*e! 6eco!* ?y1e 6elate* Su)file .ate ..S 4!!o!
11 7++41#% f

8No !eco!*s in file9



Bottom
'%345it '1#3Cancel '143'ile<le7el "eywo!*s
'1+3'ile<le7el comments '1-3Su)set '#43Mo!e "eys
:o!" with .is1lay 6eco!*s

'ile . . . . . . : A..SS6C Mem)e! . . . . . . : IISI$N
>i)!a!y . . . . : 'IM4 Sou!ce ty1e . . . : .S,'

?y1e o1tions( 1!ess 4nte!.
13A** #34*it comments %3Co1y 43.elete
-36ename /3Select "eywo!*s 1#3.esign image

$1t $!*e! 6eco!* ?y1e 6elate* Su)file .ate ..S 4!!o!
11 7++41#% f

8No !eco!*s in file9



Bottom
'%345it '1#3Cancel '143'ile<le7el "eywo!*s
'1+3'ile<le7el comments '1-3Su)set '#43Mo!e "eys
AS/400 BASICO por Wilbert Martnez
-4) *
A** New 6eco!*

'ile . . . . . . : A..SS6C Mem)e! . . . . . . : SC644N
>i)!a!y . . . . : 'IM4 Sou!ce ty1e . . . : .S,'

?y1e choices( 1!ess 4nte!.

New !eco!* . . . . . . . . . . . . . . . SC644N Name

?y1e . . . . . . . . . . . . . . . . . . 64C$6. 64C$6.( S6.'N
S'>( S'>MS&
:IN.$:( :.:S'>
,>.:N( ,.NS'>
MNBA6
AS/400 BASICO por Wilbert Martnez
II74IA8adir in$or%aci#n a una pantalla
E3isten di$erentes $or%as de a8adir in$or%aci#n a la pantalla" la %as sencilla es el de
colocar a los ca%pos o letreros" entre apostro$e" eje%plo2 DMA(.IC+!A 2F
/ara los ca%pos que tienen interrelaci#n con la in$or%aci#n e3istente en el AS/400" se
utilizan di$erentes representaciones" dependiendo del tipo" 'a sean nu%Orico o carKcterG la tabla
si&uiente de%ostrara las di$erentes representaciones
(ipo Entrada Salida A%bos
CarKcter Se representa
con BIC
Se representa
con BOC
Se representa
con BBC
-u%Orico Se representa
con B7C
Se representa
con B;C
Se representa
con B>C
En el S,A es posible de$inir ca%pos por el usuario o ca%pos que se encuentran en un
arc:i5o" /ara de$inir un ca%po por el usuario solo necesita poner el carKcter BXC ' especi$icar
el tipo qu se desea utilizar 2
Eje%plo 2
XIIIIII En este eje%plo se de$ine un ca%po de input de ; caracteres
XOOOO En este eje%plo se de$ine un ca%pos de output de 4 caracteres
XBBBBBB En este eje%plo se de$ine un ca%po de input/outoput de ; caracteres
Otra $or%a %as sencilla para de$inir los ca%pos en la pantalla es escribiendo el carKcter
BXC Se&uido de el tipo a usar ' entre parOntesis B@ AC la lon&itud utilizada
Eje%plo2
XI@;A En este eje%plo se de$ine un ca%po de input de ; caracteres
XO@4A En este eje%plo se de$ine un ca%po de output de 4 caracteres
XB@;A En este eje%plo se de$ine un ca%po de input/outoput de ; caracteres
/ara de$inir un ca%po nu%Orico se si&uen los %is%os pasos que para un carKcter" solo
que se utiliza los si&uiente2
Eje%plo2
X7777 O X7@4A En este eje%plo se de$ine un ca%po de input nu%Orico de 4
posiciones
X;;;; O X;@4A En este eje%plo se de$ine un ca%po de output nu%Orico de 4
posiciones
X>>>>>> O X>@;A En este eje%plo se de$ine un ca%po de input/outoput nu%Orico
de ; posiciones
/ara de$inir un ca%po nu%erico con deci%ales solo es necesario indicar un punto @ A
apartir de cuantos deci%ales se utilicen" eje%plo
X;;;; or X;@4"4A En este eje%plo es un ca%po nu%Orico de 4 posiciones con dos
deci%ales
-44 *
AS/400 BASICO por Wilbert Martnez
(a%biOn se puede de$inir ca%pos e3istentes en los arc:i5os @ca%pos re$erenciadosA"
presionando la tecla BL)0C la cual nos presentara la si&uiente pantalla2

En la cual especi$ica%os el arc:i5o a utilizar as co%o la librera donde se encuentra co%o
ta%biOn el re&istro a utilizar
/ode%os esco&er las si&uientes opciones 2
) M ,esplie&a los ca%pos de el arc:i5o
4 M selecciona todos los ca%pos del arc:i5o de input
7M selecciona todos los ca%pos del arc:i5o de output
4M selecciona los ca%pos del arc:i5o de input/output
Con la opci#n ) nos desplie&a la si&uiente pantalla2
En la cual pode%os esco&er los ca%pos que necesiten para la pantalla ' especi$icarle de
que tipo la usare%os
-47 *
Select .ata)ase 'iles

?y1e o1tions an* names( 1!ess 4nte!.
13.is1lay *ata)ase fiel* list
#3Select all fiel*s fo! in1ut 8I9
%3Select all fiel*s fo! out1ut 8$9
43Select all fiel*s fo! )oth 8B9 in1ut an* out1ut

$1tion .ata)ase 'ile >i)!a!y 6eco!*
1 '++41 M?B I++41 1
f 5 5
5
'%345it '43,!om1t '1#3Cancel
Select .ata)ase 'iel*s

6eco!* . . . : I410+G

?y1e info!mation( 1!ess 4nte!.
Num)e! of fiel*s to !oll . . . . . . . . . . . . . . . . . . /
Name of fiel* to sea!ch fo! . . . . . . . . . . . . . . . . . s s

?y1e o1tions( 1!ess 4nte!.
13.is1lay e5ten*e* fiel* *esc!i1tion
#3Select fo! in1ut 8I9( %3Select fo! out1ut 8$9( 43Select fo! )oth 8B9

$1tion 'iel* >ength ?y1e Column Dea*ing
JJI?M /(0 S Sho!t Item No
JJ.SC1 %0 A .esc!i1tion
JJ4'?H 6(0 S 4ffecti7e .ate
JJ?6A? 1+(0 , ?!ans A?B
JJM # A M


Bottom
'%345it '1#3Cancel
AS/400 BASICO por Wilbert Martnez
Estos ca%pos aparecerKn enu%erados en la parte in$erior de la pantalla ' los pode%os
utilizar escribiendo en la pantalla el carKcter B]C se&uido del nJ%ero del ca%po que desea%os
En el eje%plo anterior se selecciono el ca%po 4 en del arc:i5o" esto nos pondrK el ca%po
en pantalla con las %is%as caractersticas del ca%po del arc:i5o
(rabajando con ca%pos2
Mo5er un ca%po I"M
/ara %o5er un ca%po en la pantalla teclee un DID a la izquierda del ca%po ' en
la posici#n en donde se desee %o5er es teclee un D MF ' despuOs presione enter
Copiando un ca%po I"M M
/ara copiar un ca%po solo es necesario teclear un DID a la izquierda inicio del
ca%po ' despuOs en la posici#n en donde se desea a copia" teclee DM MF ' despuOs
presione enter
Eli%inando ca%pos
/ara eli%inar un ca%po solo es necesario teclear una B,C o BdC a la izquierda del
ca%po que se desee eli%inar ' presione enter
Mo5iendo un bloque de ca%pos I"I" M
/ara %o5er un bloque pri%ero se necesita %arcar el bloque para esto lo se teclea
un DID en el inicio ' al $inal del bloque " despuOs teclear un DMF en donde se desee
poner el bloque ' presione entre
Copiando un bloque I"I"M M
/ara copiar un bloque se teclea un DID al inicio ' al $inal del bloque que se
desee copiar ' en la posici#n en donde se desee copiar " teclee uno DM MF' presione enter
Eli%inar un bloque II"II
/ara eli%inar un bloque se teclea DI I D al inicio ' al $inal del bloque despuOs
presionar enter ' presionar la tecla L)4 para con$ir%a su eli%inaci#n
-44 *
Consulta *e alumnos



Nom)!e BBBBBBBBBBBBBBB
A1elli*os BBBBBBBBBBBBBBB
.i!eccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
?elefono BBBBBBBBB

Ciu*a* R#





1:JJI?M #:JJ.SC1 %:JJ4'?H 4:JJ?6A? +:JJM
AS/400 BASICO por Wilbert Martnez
Mo5er un espacio
/ara %o5er los ca%pos uno o %Ks espacios solo es necesario teclear un DNF si se
desea %o5er a la derec:a ' DTF un para la izquierda" se puede %o5er los espacios que se
desee" dependiendo de la cantidad de el s%bolo DT " NF que se teclee
Modi$icando un ca%po
Solo se necesita anteponer el carKcter BWC en el ca%po que se quiera %odi$icar"
desple&ara en la parte in$erior de la pantalla" el ca%po el cual se quiere %odi$icar
En el pode%os %odi$icar el no%bre del ca%po as co%o el ta%a8o del ca%po
-ota2 solo en los ca%pos de$inidos por el usuario pode%os ca%biar el ta%a8o"
pero los ca%pos re$erenciado de los arc:i5os no
In$or%aci#n de los ca%pos
/ara obtener in$or%aci#n de los ca%pos de$inidos en la pantalla solo se antepone el
carKcter BPC en el ca%po que se requiera
Esta opci#n nos desple&ara la si&uiente pantalla donde se encuentran todos los atributos
del ca%po" en el se pueden %odi$icar los atributos se&Jn sea la necesidades del usuario" los %as
usuales son los si&uientes2
-49 *
,antalla *e 1!acticaS ../../..
??:??:??



Nom)!e TBBBBBBBBBB
*i!eccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB

%%%%%%%%<
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
%%%%%%<





IN$MB64 >ength: 00010 ?4G?:
,antalla *e 1!actica ../../..
??:??:??



Nom)!e @BBBBBBBBBB
*i!eccion BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
telefono BBBBBBBBB

%%%%%%%%<
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
%%%%%%<




AS/400 BASICO por Wilbert Martnez
,ispla' attributes 2 -os desplie&a todos los atributos del ca%po eje%plo2 +nderline" :i&:
intensit'" no 5isualizarlo" prote&erlo etc En el cual se selecciona con BUC ' li&arlo un indicador
para poder utilizarlo en el pro&ra%a
Qe'in& Options 2 En esta opci#n pode%os especi$icar los $unciones en los ca%pos por
eje%plo rellenar con blancos o rellenar con ceros
-4; *
Select .is1lay Att!i)utes

'iel* . . . . . : IN$MB64 sage . . : B
>ength . . . . : 1# 6ow . . . : 6 Column . . . : #/

?y1e choices( 1!ess 4nte!.
Feywo!* B3Bes In*icato!s/K
'iel* con*itioning . . . . . . . . . . . EE EE EE
,!og!am<to<system fiel* . . . . . . . . EEEEEEEEE EE EE EE
.is1lay att!i)utes: .S,A?6
Digh intensity . . . . . . . . . . . . DI B /0 EE EE
6e7e!se image . . . . . . . . . . . . 6I E EE EE EE
Column se1a!ato!s . . . . . . . . . . CS E EE EE EE
Blin" . . . . . . . . . . . . . . . . B> E EE EE EE
Non*is1lay . . . . . . . . . . . . . . N. E EE EE EE
n*e!line . . . . . . . . . . . . . . > E EE EE EE
,osition cu!so! . . . . . . . . . . . ,C E EE EE EE
Set mo*ifie* *ata tag . . . . . . . . M.? E EE EE EE
,!otect fiel* . . . . . . . . . . . . ,6 E EE EE EE
$1e!ato! I. magnetic ca!* . . . . . . $I. E EE EE EE
Select )y light 1en . . . . . . . . . S, E EE EE EE

'%345it '1#3Cancel
Select 'iel* Feywo!*s

'iel* . . . . . : IN$MB64S sage . . : B
>ength . . . . : 1+ 6ow . . . : 6 Column . . . : %%

?y1e choices( 1!ess 4nte!.
B3Bes 'o! 'iel* ?y1e
.is1lay att!i)utes . . . . . . . All e5ce1t Di**en
Colo!s . . . . . . . . . . . . . All e5ce1t Di**en
Feying o1tions . . . . . . . . . Di**en( In1ut o! Both
Iali*ity chec" . . . . . . . . . In1ut o! Both( not float
In1ut "eywo!*s . . . . . . . . . In1ut o! Both
&ene!al "eywo!*s . . . . . . . . All ty1es

.ata)ase !efe!ence . . . . . . . Di**en( In1ut( $ut1ut( Both
4!!o! messages . . . . . . . . . In1ut( $ut1ut( Both
Message I. 8MS&I.9 . . . . . . . $ut1ut o! Both


?4G? "eywo!* . . . . . . . . . . EEEEEEEEEEEEEEEEEE


'%345it '43.is1lay Selecte* Feywo!*s '1#3Cancel
Select Feying $1tions

'iel* . . . . . : IN$MB64 sage . . : B
>ength . . . . : 1# 6ow . . . : 6 Column . . . : #

?y1e choices( 1!ess 4nte!.

Feywo!* B3Bes In*icato!s/K
Feying o1tions: CD4CF
Man*ato!y ent!y . . . . . . . . . . . M4 E EEE EEE EEE
Automatic !eco!* a*7ance . . . . . . 46 E EEE EEE EEE
Man*ato!y fill . . . . . . . . . . . M' E
'iel* e5it "ey !eUui!e* . . . . . . . '4 E
6ight a*;ust )lan" fill . . . . . . . 6B E
6ight a*;ust Me!o fill . . . . . . . 6L E
Mo7e cu!so! !ight to left . . . . . . 6> E
>owe!case ent!y allowe* . . . . . . . >C E

Fey)oa!* shift att!i)ute . . . . . . . E N A G : I . M
H $ 4 &


'%345it '1#3Cancel
AS/400 BASICO por Wilbert Martnez
-4= *
AS/400 BASICO por Wilbert Martnez
Salidit' C:ecR Qe'Hords
Salide los datos de entrada de los ca%pos" por %edio de ran&os" co%pararlos con un
Salor o de$inir una lista de 5alores
Error Messa&e
/ara de$inir un %ensaje para un ca%po se utiliza la opci#n de Error Messa&e" el cual nos
desplie&a la si&uiente pantalla" en la cual se asi&na un indicador para poder controlarlo en el
pro&ra%a ' se escribe el %ensaje que se requiera" El nu%ero de indicador nos sir5e para que
cuando en el pro&ra%a ocurra un error asi&nado a este se acti5a ' se re$leja en al pantalla
in$erior o sea en la lnea 44
-ota2 :a' que tener cuidado de no repetir los indicadores
-46 *
.efine 4!!o! Messages

'iel* . . . . . : IN$MB64 sage . . : B
>ength . . . . : 1# 6ow . . . : 6 Column . . . : #/

?y1e 1a!amete!s( 1!ess 4nte!.

In*icato!s/K 466MS& < Message ?e5t Mo!e In*

/0 EE E4ste a!ticulo no e5isteEEEEEEEEEEEEEEEEEEEEEEEE E E
EE EE EE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE E E
EE EE EE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE E E
EE EE EE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE E E
EE EE EE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE E E
Bottom

In*icato!s/K 466MS&I. 'ile >i)!a!y In* Name
EE EE EE EEEEEEEE EEEEEEEEE EEEEEEEE EE EEEEEEEEE
EE EE EE EEEEEEEE EEEEEEEEE EEEEEEEE EE EEEEEEEEE
EE EE EE EEEEEEEE EEEEEEEEE EEEEEEEE EE EEEEEEEEE
EE EE EE EEEEEEEE EEEEEEEEE EEEEEEEE EE EEEEEEEEE
EE EE EE EEEEEEEE EEEEEEEEE EEEEEEEE EE EEEEEEEEE
Bottom
'%345it '1#3Cancel
.efine Iali*ity Chec" Feywo!*s

'iel* . . . . . : IN$MB64 sage . . : B
>ength . . . . : 1# 6ow . . . : 6 Column . . . : #/

?y1e 1a!amete!s fo! $N4 of the following "eywo!*s( 1!ess 4nte!.

Feywo!* ,a!amete!s Mo!e
6AN&4 >ow . . . . V1W
Digh . . . . V0W
C$M, $1e!ato! . .
Ialue . . .
IA>4S >ist . . . .

?y1e choices( 1!ess 4nte!. Feywo!* B3Bes Imme*
Iali*ity chec": CD4CF
Name e5ten*e* fiel* . . . . . . . . . . . . IN4 E
Name fiel* . . . . . . . . . . . . . . . . . IN E
Allow )lan"s . . . . . . . . . . . . . . . . AB E
Mo*ulus 10 self chec" . . . . . . . . . . . M10 / M10' E E
Mo*ulus 11 self chec" . . . . . . . . . . . M11 / M11' E E
Mo!e...
'%345it '1#3Cancel
AS/400 BASICO por Wilbert Martnez
/ar de$inir las teclas de $unci#n que se usaran en la pantalla se deben especi$icar a ni5el
re&istro esto es que se debe estar en la pantalla displa' record ' con la opci#n 6 @select Re'HordA

!a cual desple&ara la si&uiente pantalla2
Con la opci#n Indicador Re'Hord se de$inen los teclas de $unciones a utilizar
En esta pantalla se de$inen las teclas de $unci#n" se pueden de$inir toda las teclas que se
deseen" estas pueden ser de L)EL44" .e /a&" A5 /a& etc !as teclas de $unci#n declaradas en
las pantalla $uncionan de la si&uiente %anera" cuando el usuario presione la tecla
correspondiente al iniciador este se prendera por lo tanto en el pro&ra%a sabre%os cuando esto
ocurra

-4> *
:o!" with .is1lay 6eco!*s

'ile . . . . . . : A..SS6C Mem)e! . . . . . . : I'IN00
>i)!a!y . . . . : A&,> Sou!ce ty1e . . . : .S,'

?y1e o1tions( 1!ess 4nte!.
13A** #34*it comments %3Co1y 43.elete
-36ename /3Select "eywo!*s 1#3.esign image

$1t $!*e! 6eco!* ?y1e 6elate* Su)file .ate ..S 4!!o!
EE EEEEEEEE
E/ EE10 I'IN001 64C$6. 01/1#/00






Bottom
'%345it '1#3Cancel '143'ile<le7el "eywo!*s
'1+3'ile<le7el comments '1-3Su)set '#43Mo!e "eys
Select 6eco!* Feywo!*s

6eco!* . . . : I'IN001

?y1e choices( 1!ess 4nte!.

B3Bes
&ene!al "eywo!*s . . . . . . . . E
In*icato! "eywo!*s . . . . . . . B
A11lication hel1 . . . . . . . . E
Del1 "eywo!*s . . . . . . . . . . E
$ut1ut "eywo!*s . . . . . . . . . E
In1ut "eywo!*s . . . . . . . . . E
$7e!lay "eywo!*s . . . . . . . . E

,!int "eywo!*s . . . . . . . . . E
A>?NAM4 "eywo!* . . . . . . . . . EEEEEE

?4G? "eywo!* . . . . . . . . . . EEEEEEEEEEEEEEEEEEEEEEE

'%345it '43.is1lay Selecte* Feywo!*s '1#3Cancel
.efine In*icato! Feywo!*s

6eco!* . . . : I'IN001

?y1e "eywo!*s an* 1a!amete!s( 1!ess 4nte!.
Con*itione* "eywo!*s: C'nn CAnn C>4A6 ,A&4.$:N/6$>>, ,A&4,/6$>>.$:N
D$M4 D4>, D>,6?N
ncon*itione* "eywo!*s: IN.?G? I>.CM.F4B S4?$' CDAN&4

Feywo!* In*icato!s/K 6es1 ?e5t
C'01 EE EE EE 01E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEE EE EE EE EEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

Bottom
'%345it '1#3Cancel
AS/400 BASICO por Wilbert Martnez
/ara indicar el uso de una tecla de $unci#n se teclea DCLnn F ' el nJ%ero de la $unci#n que
se utilice" eje%plo para de$inir la tecla L7 que seria la de salida o L)4 para cancelar la operaci#n
tendra que de$inir en Re'Hord CL07 o CL)4 recepti5a%ente" la cual se le asi&na un indicador"
por lo &eneral se opta por el nu%ero de la $unci#n
Lunciones %Ks usuales
L7 o L)4 I Salir " Al presionar cualquier tecla se sabandona el dise8o
L)4 I .e&la "Al presionar esta tecla nos desplie&a una re&la" en la posici#n actual
del cursor" al presionar nue5a%ente la tecla la re&la desaparece
L)9 I I%pri%ir" Al presionar esta tecla se i%pri%e lo que ten&a%os en la pantalla
L)6 I Al presionar esta tecla en5a el cursor a la posici#n del ca%po si&uiente
L)> I Al presionar esta tecla en5a el cursor a la posici#n del ca%po Anterior
L44 I Al presionar esta tecla desplie&a la lnea de co%ando" donde pode%os ejecutar
cualquier co%ando de OS/400
Ambiente Data Description (pecii$ications @,dsA
El a%biente DD( es el %etodo nati5o pre$erente%ente para describir datos en el equipo as/400 '
consiste en lo si&uiente2
)I arc:i5os $isicos
4I arc:i5os lo&icos
7I arc:i5os de pantalla
4I arc:i5os para i%presi#n @reportesA
todos los arc:i5os descritos por DD( pueden ser usados por todos los co%ponentes de so$tHare
del as/400
Codi3icacion De Arci!os /isicos.
&B9$#I+&(
Codi$icar especi$icaciones de descripcion de datos DD( ' crear arc:i5os $iscos en el equipo
as/400
E3plicar la $uncion de los ca%pos de arc:i5os re$erenciados ' codi$icar la DD( para crear un
arc:i5o para la base de datos del equipo as/400
El Drp&F %aneja $or%atos $ijos al &enerar pro&ra%as Estos $or%atos requieren un orden
deter%inado ' es el si&uiente2 @estos son los %as co%unesA
@VA CO-(.O!
@LA ,ESC.I/CIO- A.CVISOS
@EA A,ICIO-A!ES
@IA E-(.A,A
-90 *
AS/400 BASICO por Wilbert Martnez
CA CO-(.O!
@OA SA!I,A @este es poco co%un en DjdeFA
ES/ECILICACIO-ES ,E CO-(.O!2 VO<A DVF
/ara ,e$inir ,atos 0enerales U Co%entarios ,el /ro&ra%a
Colu%ns 2 ) =) BroHse M(U4/<,ES.C
SE+MMN /99000)
LM( * V)C,UIS)L
PPPPPPPPPPPPPPP Be&innin& o$ data PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
000)00 V/(I(!E /99000) I Actualizacion de $ec:as de conteo por %o
000400 VP IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
000700 VP
000400 VP (:is unpublis:ed %aterial is proprietar' to
000900 VP < , EdHards ] Co%pan' All ri&:ts reser5ed
ES/ECILICACIO-ES ,E A.CVISOS2 VO<A DLF
!AS ES/ECILICACIO-ES ,E ,ESC.I/CIO- ,E A.CVISOS LA ,ELI-E-
(O,OS !OS A.CVISOS .E?+E.I,OS E- E! /.O0.AMA
A CO-(I-+ACIO- SEMOS E<EM/!OS E- ES(E (I/O ,E LO.MA(O2
SE+MMN /990004
LM( /B L$ilena%eX I/EAL!I,e5iceXQE3itXXXXEntr'XXA+
007400 LL000) IL E Q ,ISQ +C
007900 LL4)04)!AIL E Q ,ISQ +C
007;00 L I4)04) Q.E-AMEI4)04)A
007=00 LL990004 O E Q ,ISQ +C
007600 L,S/0) CL E WorRstn
007>00 L.990004 O E /rinter
/%t Seq-br Lilena%e ('p ,esi& EOL Seq L%t Mode .A( ,e5ice Q
L1 007400 L000)ZZ I L Z Z E Z Q ,ISQZZZ
Z
E3it Entr' A/+ Cond
ZZZZZ ZZZZZZ Z +C

-9) *
AS/400 BASICO por Wilbert Martnez
('peI II Input" OI Output" +I +pdate" CI Co%bined
,esi&I /I /ri%ario" LI Lull
L%tI LI ,escripci#n por /ro&ra%a" EI ,escripci#n E3terna
.A(I QI Inde3ado @solo para ,esc E3tA" D DM Secuencial
,e5iceI ,isR" WorRstn" /rinter
Colu%ns 2 ) =) BroHse M(U4/<,ES.C
SE+MMN /990004
LM( /C LEEE3tIrecord.cdnbrQOptionEEntr'XXX
007;00 L I4)04) Q.E-AMEI4)04)A
007=00 LL990004 O E Q ,ISQ +C
007600 LPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
/%t Seq-br E3t.cd .cd-brLld Cont Option Entr'
LC 007;00 I4)04) ZZZZZZZ Q .E-AME I4)04)A
ES/ECILICACIO-ES A,ICIO-A!ES2 VO<A DEF
ES(E LO.MA(O SE +(I!I\A /A.A ,ELI-I. (AB!AS U/O A..E0!OS
Colu%ns 2 ) =) BroHse M(U4/<,ES.C
SE+MMN /99000)
LM( $ ELro%$ile(o$ileXX-a%eXX-/r-/tb!en/,SArrna%!en/,SCo%%entsXXXXXX
004700 EP /.O0.AM (AB!ES A-, A..AUS
004400 EP IIIIIIIIIIIIIIIIIIIIIIIII
004;00 E EMQ ;4 4 Error Ms&
004600 EP (otalin& Arra' $or * +nits I .eturned
004>00 E ((,OCO )0 6 0
009000 E -OM ) ) 70 (abla Cas
)70=00 CPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
)70600 PP
)70>00 B!ACQ ] ,ECQE.
/%t Seq-br Lro%Lile (oLile (bl /.cd /(bl !en //B/!/. ,ec
A/,
E 004>00 ZZZZZZZ ZZZZZZ ((,OCO ZZZZ Z)0 ZZ6 ZZZ ZZ0
ZZZ
Alt-a%e !en //B/!/. ,ec A/, Co%%ent
ZZZZZZZ ZZZ Z Z Z ZZZZZZZZ
-94 *
AS/400 BASICO por Wilbert Martnez
-97 *
AS/400 BASICO por Wilbert Martnez
ES/ECILICACIO-ES ,E E-(.A,A2 VO<A DIF
!as especi$icaciones de entrada @iA describen los re&istros ' ca%pos a ser usados en el pro&ra%a
-o se necesitan las especi$icaciones de entrada @iA para los arc:i5os descritos e3terna%ente
Colu%ns 2 ) =) BroHse M(U4/<,ES.C
SE+MMN /990004
LM( D( I,sna%e-O,sE3tI$ileXXOccr!enX
009=00 I,S(1( ,S 440
009600 I ) 40 S(100)
009>00 I 4) 60 S(1004
00;000 I 6) )40 S(1007
/%t Seq-br ,taStr-a%e -br Opt ,S E3tL-a%e Occurs !en
,S 009=00 ,S(1( Z Z ,S ZZZZZZZZZ ZZZZ 440
Colu%ns 2 ) =) BroHse M(U4/<,ES.C
SE+MMN /990004
LM( 9 IEEEEE/Lro%(oXX ,LieldX!)M)Lr/lMn\r
009600 I ) 40 S(100)
009>00 I 4) 60 S(1004
/&%MA#& .A%A D$/I'I% C&'(#A'#$(
LM( ' I-a%edconstantXXXXXXXXXCLldn%e
004000 I [abcde$&:ijRl%nopqrstu5H IC MI-S
004)00 I [3'z[
/%t Seq-br Constant ,ata('pe Lld-a%e
- 00)>00 [0)4749;=6>[ C -+M
ES/ECILICACIO-ES ,E CA!C+!O2 VO<A DCF
!as Especi$icaciones ,e Calculo @CA ,escriben !as Operaciones A .ealizar /or El /ro&ra%a E
Indican El Orden En ?ue ,eben .ealizarse
LM( C C!0-0)-04-07Lactor)XXXOpcdeLactor4XXX.esult!en,VVi!oEqCo%%entsXXXX
0)4900 CP .ead %aster $ile input
-94 *
AS/400 BASICO por Wilbert Martnez
0)4=00 C .EA, I4)04A >>!.
0)7000 C CA-(I, M+!( COS+-I ^/.ECI
/%t Seq-br !5l -0)-04-07 Lactor ) OpCode Lactor 4 .esult
C 0)4=00 .EA, I4)04A
!en ,ec V/-// Vi !o Eq Co%%ent
>> !. lectura
USO DE INDICADORES
LM( C C!0-0)-04-07Lactor)XXXOpcdeELactor4XXX.esult!en,VVi!oEqCo%%entsXXXX
0)9700 C .EA, C!IE-(ES >>
0)9400 C PI->> ILE? D0F
0)9900 C MOSE!MC+ ^MC+
0)9;00 C EE
0)9=00 C MOSE D)F PI-77
ES(A,OS ,E +- I-,ICA,O.2
AA AC(ISA,O MN DO-F M D)F
BA ,ESAC(ISA,O MN DOLLF M D0F
CICL& L&,IC& D$L %.,
-99 *
SA!I,A ,E
,E(A!!E
!EE. +-
.E0IS(.O
MOSE. ,A(OS
A CAM/OS
CA!C+!OS ,E
,E(A!!E
AS/400 BASICO por Wilbert Martnez
.%&,%AMACI&' BA#C*
-9; *
A.CVISO
VIS(O.ICO
,E SE-(AS
/.O0.AMA ,E
A-A!ISIS ,E
SE-(AS
I-LO.ME ,E S(AS
E-E.O 4"749=0
LEB.E.O 6"40000
EEEEEE
/.O0.AMACIO- BA(CV
SS
/.O0.AMACIO- I-(E.AC(ISA
AS/400 BASICO por Wilbert Martnez
.%&,%AMACI&'
.%&,%AMACI&'
I'#$%AC#I+A
I'#$%AC#I+A
.%$.A%ACI&' .%$+IA A LA C&DI/ICACI&' D$L .%&,%AMA .%$.A%ACI&' .%$+IA A LA C&DI/ICACI&' D$L .%&,%AMA
I ,ESC.I/CIO- ,E! /.O0.AMA @-arrati5a del /ro&ra%aA
- I,E-(ILICACIO- ,E A.CVISOS ,E ,A(OS
- I,E-(ILICACIO- ,E /A-(A!!AS
- I,E-(ILICACIO- ,E A.CVISOS ,E IM/.ESI_-
- ,IA0.AMA ,E L!+<O U /SE+,OCO,I0O
-9= *
A.CVISO ,E
C!IE-(ES
/.O0.AMA ,E
CO-S+!(A ,E
C!IE-(ES
AS/400 BASICO por Wilbert Martnez
$9$M.L&1
,ESC.I/CIO- ,E! /.O0.AMA
SE -ECESI(A +- /.O0.AMA E- ./0 /A.A CO-S+!(A. !A ,I.ECCIO- U (E!ELO-O ,E !OS C!IE-(ES
I,E-(ILICACIO- ,E A.CVISOS
ID$'#I/ICACI&' D$ A%C*I+&(
,,S ,E! A.CVISO ,E C!IE-(ES
PP A.CVISO LISICO2 DC!IE-(ESF BIB!IO(ECA2 ./0!IB
. .E0C!I
-+MC!I ; 0
-OMB.E 70
,I.ECC )9
(E!EL = 0
(I/OC! 7
!IMIC. 6 0
-96 *
C+.SOS
C+.SOS
/.O0.AMACIO- C+.SOS
I-SC.I/CIO-ES
,IA0.AMA ,E E-(I,A,I.E!ACIO-
AS/400 BASICO por Wilbert Martnez
S(A(+S )
Q -+MC!I
ID$'#I/ICACI&' D$ .A'#ALLA(
. /A-(A!!AS E1IS(E-(ES
Opci#n 7 de S,A
,,S
. /A-(A!!AS -+ESAS
Opci#n ) de S,A
,,S
&.$%ACI&'$( A%I#M$#ICA(
A,, @S+MA.A
S+B @.ES(A.A
M+!( @M+!(I/!ICA.A
S?.( @.AI\ C+A.A,AA
,IS @,ISI,I.A
\IA,, @I-ICIA!I\A U M+ESE -+ME.OA
)I Solo para ca%pos nu%ericos
4I !a operaci#n no ca%bia el contenido de los ca%pos del $actor ) ' 4
a %enos de que se especi$iquen ta%bien en el ca%po de resultado
7I Cualquier dato colocado en el ca%po de resultado ree%plaza al dato
que e3istia en ese ca%po
4I El rp&/400 no &enera errores si :a' desborda%ientos arit%eticos
9I En las operaciones2 add" sub" %ult ' di5" el $actor ) puede o%itirse
;I Si el $actor ) no se especi$ica" la operaci#n se realiza co%o si en el $actor
) U en el ca%po de resultado e3istiera el %is%o ca%po
=I (odos los ca%pos deben de estar de$inidos en el pro&ra%a" la de$inicion
-9> *
AS/400 BASICO por Wilbert Martnez
puede pro5enir de2
- +n arc:i5o descrito e3terna%ente
- +n arc:i5o descrito por pro&ra%a @especi$icaciones iA
- Especi$icaciones de cKlculo
Operaciones con archivos
SE(!! 5(et LoCer Limit)
El co%ando setll es usado para posicionar el apuntador en un re&istro buscado" el apuntador se
posicionara arriba del re&istro que sea i&ual o %a'or a la lla5e dada co%o parK%etro de
busqueda
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
QEU SE(!! LI!E # .E0 In In
E3isten dos $or%as de usar el SE(!!
- Se puede usar para posicionar ' 5eri$icar que el apuntador se posicione antes del pri%er
re&istro que sea i&ual a la lla5e
Eje%plo
Lactor ) OpCode Lactor4 Vi !o Eq
IMQU0) SE(!! I4)0) =)
El indicador =) se acti5ara si al :acer el SE(!! se encuentra un re&istro que sea i&ual al
ar&u%ento de busqueda @IMQU0)A
- /osiciona el apuntador antes del re&istro que sea %a'or o i&ual al ar&u%ento de bJsqueda '
con el indicador en el Vi 5eri$ica que se cu%pla esta condici#n
Eje%plo
Lactor ) OpCode Lactor4 Vi !o Eq
IMQU0) SE(!! I4)0) =4
En este caso es al re5Os el indicador se acti5ara si nin&Jn re&istro es %a'or o i&ual a la lla5e
- Se pueden usar a%bos indicadores al %is%o tie%po si asi se necesita
Eje%plo
Lactor ) OpCode Lactor4 Vi !o Eq
IMQU0) SE(!! I4)0) =4 =)
/or eje%plo si tu5iera%os los si&uientes 5alores para la lla5e IMQU0)
47 )A si IMQU0)M;0
70 4A si IMQU0)M79
;0 7A si IMQU0)M>0
=0
-;0 *
AS/400 BASICO por Wilbert Martnez
60
69
/ara el caso ) /ara el caso 4
)A indicador =) se acti5a )A indicador =4 no se acti5a
4A indicador =) no se acti5a 4A indicador =4 no se acti5a
7A indicador =) no se acti5a 7A indicador =4 se acti5a
-;) *
AS/400 BASICO por Wilbert Martnez
($#,#
/osiciona el apuntador antes de el pri%er re&istro que sea %a'or a la lla5e dada
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
QEU SE(0( LI!E # .E0 In In
QEUI es la lla5e que se 5a a usar para posicionar el apuntador en el re&istro buscado
LI!E # .E0I no%bre del arc:i5o o re&istro al que se le 5a :acer el SE(0(
Lactor ) OpCode Lactor4 Vi !o Eq
IMQU0) SE(0( I4)0)
%$AD
Vace una lectura secuencial al arc:i5o
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
.EA, Lile # .e&
Lile # .e&I no%bre del Lile o re&istro que se 5a a leer
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
.EA, I4)04)
%$AD$
Es parecido al read" con la di$erencia de que lee solo los re&istros que sean i&uales a la lla5e El
indicador se prendera cuando el re&istro leido no sea i&ual a la lla5e dada # cuando se lle&ue al
$in del arc:i5o
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
Qe' .EA,E Lile # .e& 6)
QEUI es la lla5e que se 5a a usar para posicionar el apuntador en el re&istro buscado
LI!E # .E0I no%bre del arc:i5o o re&istro al que se le 5a :acer el .EA,E
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
IMI(M .EA,E I4)0) 6)
-;4 *
AS/400 BASICO por Wilbert Martnez
Suponiendo que el 5alor de IMI(MM)944 ' que el arc:i5o I4)04) estu5iera lla5eado por IMI(M
solo 5an a leer los re&istros del L4)0) cu'o IMI(M sea i&ual a )944" ' el indicador 6) se
prendera cuando 'a no sean i&uales los re&istros a la lla5e buscada
El .EA,E casi sie%pre se %aneja en conjunto con el SE(!!" para pri%ero posicionar el
apuntador ' lue&o ir le'endo los re&istros que sean i&uales a la lla5e especi$icada
%$AD.
!ee el re&istro anterior" al que esta posicionado actual%ente" :ace una lectura re&resi5a
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
.EA,/ Lile # .e& 6)
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
.EA,/ I4)0)A 6)
/or eje%plo si el re&istro en el que se encuentra actual%ente
49
D0 al :acerle el .EA,/
94 en el que se encuentra actual%ente
;0
C*AI'
/osiciona ' lee el re&istro que cu%pla con la lla5e dada" este co%ando es utilizado para :acer una
busqueda directa
El indicador se acti5ara cuando no se encuentre nin&Jn re&istro que cu%pla con la lla5e" si
indicador esta apa&ado quiere decir que se encontr# el re&istro" lo lee ' se posiciona en el pri%er
re&istro que cu%pla con la lla5e
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
Qe' CVAI- Lile # .e& 6)
QEUI es la lla5e que se 5a a usar para posicionar el apuntador en el re&istro buscado
LI!E # .E0I no%bre del arc:i5o o re&istro al que se le 5a a :acer el CVAI-
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
!IQU0) CVAI- I4)04) 6)
-;7 *
AS/400 BASICO por Wilbert Martnez
Operacines aritmticas:
ADD
Operaci#n de su%a
Sinta3is
Lactor ) OpCode Lactor4
Salor) A,, Salor4 .esultado
.esultadoM Salor) X Salor4
Lactor ) OpCode Lactor4
A,, Salor .esultado
.esultadoM .esultado X Salor
Eje%
Lactor ) OpCode Lactor4
/recio A,, I5a Cant( )9 4
-O(A2 :a' que de$inir los ca%pos de trabajo en este caso Cant( se de$inio co%o un ca%po
nJ%erico de )9 enteros con 4 deci%ales" solo es necesario de$inirlos una 5ez" el ca%po de /recio
e I5a deben :aber estado de$inidos si no pro5enian de nin&Jn arc:i5o
(-B
Operaci#n de resta
Sinta3is
Lactor ) OpCode Lactor4
Salor) S+B Salor4 .esultado
.esultadoM Salor) * Salor4
Lactor ) OpCode Lactor4
S+B Salor) .esultado
.esultadoM .esultado * Salor)
Salor)I Cantidad a restar
Salor4I Cantidad a la que se le 5a a restar
.esultadoI 5ariable donde quedara el resultado
Eje%
Lactor ) OpCode Lactor4
CantIn5 S+B CantSend Cant.est )9 0
-;4 *
AS/400 BASICO por Wilbert Martnez
M-L#
Operaci#n de %ultiplicaci#n
Sinta3is
Lactor) OpCode Lactor4 .esultado !en ,ec
Salor) M+!( Salor4 .esultado )9 0
.esultadoM Salor) P Salor4
Lactor) OpCode Lactor4 !en ,ec
M+!( Salor) .esultado )9 0
.esultadoM .esultado P Salor)
-ota2 el ca%po de .esultado debe estar de$inido" es decir :a' que especi$icar que sea nJ%erico"
su lon&uitud ' nJ%ero de deci%ales

DI+
Operaci#n de di5isi#n
Sinta3is
Lactor) OpCode Lactor4 .esultado !en ,ec
Salor) ,IS Salor4 resultado )9 0
.esultadoM Salor)/ Salor4
Lactor) OpCode Lactor4 !en ,ec
,IS Salor) .esultado )9 0
.esultadoM .esultado/Salor)
Lactor) OpCode Lactor4 .esult !en ,ec
Cant) ,IS 9 CantZ,i5 )9 4
CantZ,i5 M Cant)/9M 4904/9M >004
(8%#
.az cuadrada
Lactor) OpCode Lactor4 .esultad !en ,ec
S?.( Salor resultado )9 0
SalorI cantidad a la que se le 5a a sacar la raz cuadrada
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
S?.( )00 .azC )9 0
-;9 *
AS/400 BASICO por Wilbert Martnez
.azCM )0
-;; *
AS/400 BASICO por Wilbert Martnez
Mover Datos
E-ADD
!a operaci#n \IA,, sir5e para inicializar el ca%po de resultado con el 5alor del $actor)" esta
operaci#n solo es 5alida para ca%por nu%Oricos
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
\IA,, Salor4 .esultado )9 0
Salor4M cantidad con la que se 5a a inicializar el ca%po de resultado
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
\IA,, 900 Cant )9 0
?uedaria
CantM 900
-ota2 a%bos deben ser de tipo nu%Orico" con el \IA,, no se utiliza el $actor)
M&+$
Esta operaci#n es utilizada para %o5er datos ' alinearlos a la derec:a" la operaci#n MOSE
trans$iere los caracteres del $actor 4 al ca%po de resultado el %o5i%iento e%pieza con el
carKcter que esta %Ks a la derec:a del $actor 4
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
MOSE Ca%po4 Ca%po7 40
Va' 5arias %aneras en que se pueden %o5er los datos con %o5e a continuacion se dan al&unos
eje%plos para el %o5e
Caso1
Cuando a%bos ca%pos son de tipo carKcter ' el ca%po de resultado es %Ks lar&o que el $actor 4
Eje%
A-(ES
Lactor4M L I ! E
.esultadoM S O L ( W A . E
,ES/+ES
-;= *
AS/400 BASICO por Wilbert Martnez
.esultadoM S O L ( L I ! E
Caso 2
Cuando a%bos ca%pos son de tipo nJ%erico ' el ca%po de resultado es %Ks lar&o que el $actor 4
A-(ES
Lactor4M = 6 >
.esultadoM ) 4 7 4 9 ;
,ES/+ES
.esultadoM ) 4 7 = 6 >
Caso 3
El $actor 4 es nJ%erico ' el ca%po resultado es tipo carKcter ' es %Ks lar&o que el $actor4
A-(ES
Ca%po)M 4 7 4
Ca%po4M u n o d o s
D
$(.
-$(
Ca%po4M u n o 4 7 4
Caso 4
A%bos ca%pos son de tipo carKcter solo que el ca%po de resultado es %Ks corto que el $actor4
A-(ES
Lactor4M u n o d o s
.esultadoM t r e s
,ES/+ES
.esultadoM o d o s
Caso 5
A%bos ca%pos son nu%ericos el ca%po resultado es %Ks corto que el $actor4
A-(ES
Ca%po)M u n o d o s
Ca%po4M t r e s
-;6 *
AS/400 BASICO por Wilbert Martnez
,ES/+ES
Ca%po4M o d o s
M&+$L
!a operaci#n MOSE! trans$iere los caracteres del $actor4 al ca%po de resultado" e%pieza a
%o5er los caracteres de izquierda a derec:a del $actor 4 al ca%po de resultado
!a $or%a en que %ue5e los caracteres es %u' parecida a la del MOSE! solo que al re5Os
e%pieza a %o5er de izquierda a derec:a
Estos son al&unos eje%plos
Caso 1
El ca%po resultado es %Ks lar&o que el del $actor4" a%bos ca%pos son de tipo carKcter
A-(ES
Lactor4M L I ! E
.esultadoM S O L ( W A . E
,ES/+ES
.esultadoM L I ! E W A . E
Caso 2
El ca%po resultado es %Ks lar&o que el del $actor4" a%bos ca%pos son de tipo nu%erico
A-(ES
Lactor4M ) 4 7 4
.esultadoM 9 ; = 6 > 0 ) 4
,ES/+ES
.esultadoM ) 4 7 4 > 0 ) 4
!os de%Ks eje%plos son parecidos a los 5istos en el %o5e solo que en lu&ar de alinear el ca%po
del $actor4 a la derec:a lo alinea a la izquierda al utilizar el %o5el
M&+$A
Mue5e todos los ca%pos de un arre&lo a una 5ariable
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
MOSEA -o%Arre&l
o
Sar.esult !on
&
-;> *
AS/400 BASICO por Wilbert Martnez
/or eje%plo si tene%os un arre&lo lla%ado -AME de lon&uitud )0 tipo caracter ' se quiere
%o5er a una 5ariable lla%ada alu%no de la %is%a lon&uitud ' tipo
-=0 *
AS/400 BASICO por Wilbert Martnez
-AME
E , 0 A . O M A .
) 4 7 4 9 ; = 6 > )0
Lactor) OpCode Lactor4 .esultad !en ,ec
MOSEA -AME Alu%no )0
Al :acer el MOSEA quedara2
Alu%noM E,0A. OMA.
Condicionales Ciclos
I/::
Condici#n IL33" es un condicional para realizar deter%inada acci#n o no
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ca%po) I$33
YOperac
E!SE
YOperac
E-,IL
Ca%po4
Ca%po)I ca%po que se 5a a co%parar
33I tipo de co%paraci#n" pueden ser2 E?"-E"0E"0("!E"!(
Ca%po4I 5ariable o 5alor con el que se co%parara
(a%biOn se pueden adicionar los operadores l#&icos A-, ' O.
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ca%po) IL33
A-,33
Or33
YOperac
E-,IL
Ca%po4
Eje%
Lactor) OpCode Lactor4 .esultad !en
,ec
^,OC
^CA-(
ILE?
A-,-E
MOSE
E!SE
MOSE
E-,IL
D/AF
F0F
DAF
DBF
C!IE-
C!IE-
)
-=) *
AS/400 BASICO por Wilbert Martnez
-=4 *
AS/400 BASICO por Wilbert Martnez
CA(::
Este co%ando per%ite :acer una selecci#n de la subrutina a ejecutarG si se cu%ple la co%paraci#n
entre el $actor) ' el $actor4" la subrutina especi$icada en el ca%po resultante es ejecutada
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ca%po) CAS33 Ca%po4 -o%Subrutina
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
Mo5 CASE? DbF Baja
CAB::
Este co%ando per%ite :acer una co%paraci#n entre el $actor) ' el $actor4G si esta co%paraci#n
resulta 5erdadera el pro&ra%a %andara el control al (A0 asociado con la etiqueta especi$icada
en el ca%po resultante
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ca%po) CAB33 Ca%po4 Etiqueta
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
Mo5 CABE? D)F Alta
D&
Inicia ' procesa un &rupo de operaciones ' se lle5an acabo tantas 5eces co%o se especi$ique en el
contador o 5ariable
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
,O
YOperac
E-,,O
Cte # Sar
eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
,O
Add
E-,,O
)0
4 Su% 4 0
EstarK su%ando 4 a Su% :asta que sean )0 5eces" que es lo que se especi$ico
-=7 *
AS/400 BASICO por Wilbert Martnez
D&F::
Este ciclo se 5a a lle5ar acabo %ientras la condici#n especi$icada para este ciclo sea 5erdadera
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ca%po) ,OW33
YOperac
E-,,O
Ca%po4
Ca%po)I ca%po que se 5a a co%parar
33I tipo de co%paraci#n" pueden ser2 E?"-E"0E"0("!E"!(
Ca%po4I 5ariable o 5alor con el que se co%parara
Lactor) OpCode Lactor4 .esultad !en ,ec
I!MC+ ,OWE?
W.I(E
E-,,O
D0)F
I9=0)
$B(%
Manda ejecutar una subrutina" puede ser ejecutada desde el %enJ principal o de cualquier otra
subrutina que la %ande ejecutar
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
E1S. -o%.utina
-o%.utinaI no%bre de la subrutina que se 5a a ejecutar
B$,(%G $'D(%
El be&sr %arca el inicio de una subrutina ' con el endsr se cierra el bloque de la subrutina
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
/recios BE0S.
Bloque
,e la
.utina
E-,S.
$B/M#
/er%ite en5iar ' leer un $or%ato de pantalla
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
-=4 *
AS/400 BASICO por Wilbert Martnez
E1LM( -o%/antalla
,&#&,#A,
El 0oto per%ite 5ariar el $lujo de un pro&ra%a" al lle&ar a el 0oto Etiqueta %anda el control del
pro&ra%a a donde se encuentra la etiqueta especi$icada en el 0oto Esto se :ace con el (A0
Etiqueta que %arca la parte del pro&ra%a a donde se %andara el control del pro&ra%a cuando se
ejecute el 0O(O
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
0O(O
Ycuerpo
Ydel p&%
(A0
Etiqueta
Etiqueta
!ct"ali#acin de $e%istros

-.DA#
Actualiza los ca%bios :ec:os a un re&istro
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
+/,A( -o%.e&istro
# Arc:i5o
-ota2 pri%ero :a' que posicionar el apuntador en el re&istro que se desea actualizar
Si en el $actor 4 se especi$ica el no%bre de un $or%ato de pantalla" la operaci#n +/,A(E
actualiza los datos de la pantalla
eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
+/,A( S0)400
D$L$#
Borra el re&istro en que esta posicionado actual%ente el apuntador
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
,E!E( -o%.e&istro
_ Arc:i5o
-=9 *
AS/400 BASICO por Wilbert Martnez
F%I#$
Escribe un re&istro nue5o en el arc:i5o especi$icado" para esto el arc:i5o en el que se desea
escribir debe estar declarado en la :oja L una A en la colu%na de Adici#n
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
W.I(E -o%.e&istro
o Lile
eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
W.I(E I4)))
Si en el $actor 4 se especi$ica el no%bre de un $or%ato de pantalla" la operaci#n W.I(E escribe
ese $or%ato en la pantalla
Si en el $actor 4 se especi$ica el no%bre de un $or%ato de i%presora" la operaci#n W.I(E
i%pri%e ese $or%ato
eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
W.I(E Veadin&
De&inicin de llaves
;LI(#
,e$ine una lla5e co%puesta" se utiliza para declarar una lista de ca%pos lla5e @QL!,A Esta lista
puede ser usada co%o ar&u%ento de busqueda
!os QL!,s son los ca%pos que $or%an la lla5e co%o ca%pos de arc:i5os" 5alores $ijos o
5ariablesG pueden ser de uno a %Ks ca%pos
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
-o%Qe' Q!IS(
QL!, Ca%po)
QL!, Ca%po4
QL!, Ca%po7
-o%Qe' I no%bre con el que se identi$icara la lla5e" este es el no%bre con el cual se lla%ara la
lla5e para una busqueda
Ca%po)E7I son los ca%pos que $or%a a esta lla5e
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
!IQU0) Q!IS(
QL!, !IMC+
-=; *
AS/400 BASICO por Wilbert Martnez
QL!, !I!OC-
QL!, !II(M
Par'metros
.LI(#
,e$ine un no%bre Jnico para la lista de parK%etros que recibirK o pasara el pro&ra%a" al ser
ejecutado o %andado ejecutar con la operaci#n CA!!
Sinta3is
Lactor) OpCode Lactor4 .esultad !en
,ec
PE-(.U /!IS(
/A.M /arK%etro) !on)
`de
c
/A.M /arK%etro4 !on4
/A.M /arK%etro7 !on7
/A.MI ,e$ine cada uno de los parK%etros que co%ponen la lista de parK%etros del pro&ra%a
!on)nI lon&uitud de cada uno de los parK%etros ' tipo
CALL
Manda lla%ar un pro&ra%a para ser ejecutado" si el pro&ra%a al que 5a a ser lla%ado requiere
que le sean pasado parK%etros se especi$icaran aqu" al %andarlo ejecutar con el co%ando CA!!
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Mo5e ,ato) /araEntr)
Mo5el ,ato4 /araEntr4
B B B
Mo5el ,aton /araEntrn
CA!! /ro&ra%a
/A.M /araSal)
/A.M /araSal4
B B
/A.M /araSaln
,ato)n I son los datos de entrada que requiere el pro&ra%a que se esta lla%ando para ejecutado
/araEnt)nI no%bres de los parK%etros" pueden ser i&uales o no" lo que si es i%portante es el
oreden en que son dados" deben ser en el %is%o orden en que son especi$icados en el pro&ra%a
lla%ado ' del %is%o tipo
/araSal)n I son los parK%etros que re&resa el pro&ra%a
&.$'
Co%ando para abrir un arc:i5o
-== *
AS/400 BASICO por Wilbert Martnez
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
O/E- Arc:i5o
CL&($
Cierra un arc:i5o abierto
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
C!OSE Arc:i5o
($#&/
Apa&a los indicadores especi$icados en el Vi"!o"Eq le asi&na el 5alor de 0 al indicador
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
SE(OL In In In
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
SE(OL 64
($#&'
Operaci#n para acti5ar los indicadores contenidos en Vi"!o"Eq le asi&na el 5alor de ) al
indicador
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
SE(O- In In In
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
SE(O- 6)
Mane(o de !rre%los
L&;-.
Vace una bJsqueda a un arre&lo o tabla
Sinta3is
Lactor ) OpCode Lactor4 Vi !o Eq
Ar&u%ento !OQ+/ Arre&lo # tabla In
Ar&u%entoI ele%ento del arre&lo o tabla buscado
-=6 *
AS/400 BASICO por Wilbert Martnez
Arre&lo # tablaI no%bre del arre&lo o tabla donde se 5a a :acer la bJsqueda
El indicador se prendera cuando el ar&u%ento de busqueda sea encontrado en el arre&lo o tabla
especi$icado en el $actor 4
-=> *
AS/400 BASICO por Wilbert Martnez
Eje%
Lactor ) OpCode Lactor4 Vi !o Eq
900 !OQ+/ /recios 6)
El arre&lo de precios contiene los si& ele%entos
)00
700
900
600
2
en este caso el indicador 6) se prendera" 'a que el 5alor 900 si e3iste en el arre&lo
B/&&# @Cross Loot an Arra'A
!a operaci#n 1LOO( su%a todos los ele%entos de el arre&lo nJ%erico especi$icado en el $actor4
' deja la su%a en el ca%po resultado
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
1LOO( Arre&lo Sar.esul !on& `dec
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
1LOO( ArreI5a Su%a )9 4
Mane(o de Cadenas
CA#
+ne dos cadenas de caracteres en una sola
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Strin&) CA( Strin&4 Strin&.es 40
Strin&) I es el pri%er ca%po que se 5a a concatenar
Strin&4I se&undo ca%po strin& que se unira con el pri%ero
Strin&.esI es la cadena de caracteres resultante que quedara da la uni#n de a%bos ca%pos
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
-o%) CA( -o%4 -o%bre 40
-o%)M Maria
-o%4MCristina
Al concatenar de esta %anera quedaria asi2
-o%breM Maria Cristina
-60 *
AS/400 BASICO por Wilbert Martnez
O si se quiere que al concatenar quite los espacios" o deje solo al&unos la sinta3is es
Lactor) OpCode Lactor4 .esultad !en ,ec
Strin&) CA( Strin&42n Strin&.es 40
nI nJ%ero de espacios entre los strin&
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
-o%) CA( -o%42) -o%bre 40
-o%)M Maria
-o%4MCristina
Al concatenar de esta %anera quedaria asi2
-o%breM Maria Cristina
(CA' @Scan Strin& or Arra'A
!a operaci#n SCA- c:eca la 5ariable tipo carKcter o arre&lo especi$icado en el $actor4 con el
ar&u%ento especi$icado en el $actor) Si el ar&u%ento $ue encontrado" la posici#n del el pri%er
carKcter de el ar&u%ento es pasado al ca%po resultante Si un arre&lo nu%erico es especi$icado
co%o el ca%po resultante" cada ocurrencia del ar&u%ento encontrado en $actor4 es pasado en un
correspondiente ele%ento del arre&lo
Sinta3is
Lactor) OpCode Lactor4 .esultad !en ,ec
Ar&u%ento2) SCA- -o%Sar /osicion !on& `,ec
Ar&u%entoI cadena de caracteres a buscar
-o%SarI 5ariable o ca%po donde se buscara el ar&u%ento
/osici#nI no%bre de la 5ariable donde se re&resa la posici#n donde encuentra al ar&u%eto @la
pri%era letra de izq a derec:aA
!on& `,ecI atributos del ca%%po resultante
Eje%
Lactor) OpCode Lactor4 .esultad !en ,ec
Apellido2) SCA- -a%e .es/os ) 0
ApellidoM 0u
-a%eM/ablo 0uz%Kn
Al :acer el SCA-
.es/osM=
-6) *
AS/400 BASICO por Wilbert Martnez
-64 *
AS/400 BASICO por Wilbert Martnez
-67 *
AS/400 BASICO por Wilbert Martnez
-64 *
AS/400 BASICO por Wilbert Martnez
-69 *
AS/400 BASICO por Wilbert Martnez
-6; *
AS/400 BASICO por Wilbert Martnez
-6= *
AS/400 BASICO por Wilbert Martnez
-66 *
AS/400 BASICO por Wilbert Martnez
-6> *
AS/400 BASICO por Wilbert Martnez
El len&uaje de control es2
Es Jnico inter$ace consistente para todas las $unciones del siste%a"Con un C!/ pode%os
controlar pro&ra%as de aplicaci#n
I-(E.AC(ISO
/A!AB.A CA!SE O /OSICIO-A!
CO- SO!OCI(+, @/.OM/(A
COM/I!AB!E
.A/I,O
!O0ICA /O(E-(E
MA-E<O ,E E..O.ES
MA-I/+!ACIO- ,E ,A(OS
I-(E.LACE CO- /A-A(A!!A U ,B
,ISEaO /A.A CO-(.O!A. E! L!+<O ,E +-A A/!ICACI_-
/0M @opcionalA
,C!L @ arc:i5oA
,C! @5ariablesA
MO-MS0
IL
E!SE
S-,.CSL
b/.O0A.MAc
S-,MS0
CV0SA.
MO-MS0
0O(O (O/
E-,/0M@optionalA
.e&las de codi$icaci#n
-o%bre de 5ariableI /ara al%acenar ' actualizar datos ' recibir parK%etros ,ebe
e%pezar con el carKcter D]F
,os puntos @2AZ Separa la etiqueta del %andato
Blancos Separa los parK%etros de un %andato
/arOntesis @ A I Separa las palabras cla5es ' 5alores
,ia&onal @/A Conecta las partes de no%bres cali$icados
Ap#stro$e D D I Al co%ienzo ' al $inal de una serie de caracteres en co%illas" tal co%o
DA!!F
,C!L declaraci#n de arc:i5o" este co%ando sir5e para declarar arc:i5os
->0 *
AS/400 BASICO por Wilbert Martnez
,C!
(oda las 5ariable en un cl sie%pre se declara con el carKcter D]F antes del no%bre de la 5ariable
,C! SA. @]-AMEA (U/E @ A !E- @ A SA!+E @ A
(U/E@ A !E- @ A SA!+E@ A
P,EC /or dea$ult @)9
9A
Ma3i%o @)9
>A
,e$ault @0A
PCVA. ,e$ault
@74A
Ma3i%o
@>>>>A
,e$ault @0A
P!0! ) ,e$ault @0A
Eje%plo2
@)A ,C! ]A P!0! SA!+E @D)FA
@4A ,C! ]B PCVA. 9 ABC,
@7A ,!C ]c P,EC @9 4A 9474)
CV0SA.
Este co%ando nos per%ite ca%biar 5alores a2
Constantes
Otras 5ariable
E3presiones
Con5ersi#n entre 5alores deci%ales ' de caracteres
CV0SA. SA. @C!I 5ariableA SA!+E @e3presi#nA
Eje%plos de CV.SA.
)I CV0SA. ]MO-( *7=4
4I CV0SA. ]-AME D(OM SMI(VF
7Z CV0SA. ]CO,E A
4I CV0SA. ]CO+-( @]CO-(EO X )A
9I CV0SA. ]I-40 @]I-)0 PO. ]I-)9A
;I CV0SA. ]I->> @]O/CIO- M >0A
=I CV0SA. ]AM( @@]/.ECIO ] ,ESC+E-(O /0 P ] CA-(A
->) *
cI
AS/400 BASICO por Wilbert Martnez
+sar CV0SA. para ca%biar tipo de datos" en un C! pode%os ca%biar el tipo de dato que
ten&a%os de un 5alor nu%Orico a carKcter o 5ice5ersa
Mas acerca de ca%biar 5ariable" CV0SA.
/ode%os (rabajar con parte de una 5ariable de caracteres usando dSS(
.ecuperar o ca%biar" todo o parte de local data Krea
+so de los interruptores de trabajo co%o una 5ariable l#&ica
H(-B(#%I', & H((# /-'CII' I'#$,%ADA
Identi$ica parte de una 5ariable de caracteres o P!,A
dSS P!,A /osicionIinicial lon&itud A
no%bre *5ariable
Contenido de la 5ariable o P!,A 2
) 4 7 1
1M posici#n * inicial
UM lon&itud
CV0SA. SA. @]/A.(A SA!+E @dSS(@]WVO!E 9 )0 AA
CV0SA. SA. @dS(( @]WVO!E 9 )0AA SA!+E @]/A.(A
->4 *
@
Sariable ,eci%al ]A
!on&itud Salor Especi$icado
94 4700
94 I7>0
94 I)47;=
Sariable carKcter ]A
!on&itud .esultadoCon5ertido
= 004700
= I007>0
= I)47;=
Sariable deci%al ]A
!on&itud .esultadoCon5ertido
94 )4700
90 )47
94 I)4700
Sariable CarKcter ]A
!on&itud Salor Especi$icado
DbbX)47)bbF
)0 DbbbX)47000F
)0 DI)47bbbbbbF
CVA.SA. SA. @]AA SA!+E@]AA
CVA.SA. SA. @]AA SA!+E@]AA
U
AS/400 BASICO por Wilbert Martnez
Eje%plo de dS+BS(.I-0
A-(ES ]-AME2 ,ASE
CV0SA. SA.@dS+BS(.I-0@]-AME 4 4AA SA!+E@I,A
,ES/+eS ]-AME2 ,ASI,
A-(ES ],A(A2 ABC,E)4749
]-AME2 ,ASE
CV0SA. SA.@]-AMEA SA!+E@dSS(@],A(A 4 )AA
,ES/+eS ]-AME2 B
eje%plo 4
usar una 5ariable para posici#n inicial
/0M
,C! SA. @](EAMA (U/E@PCVA.A SA!+E @ABC,EL0VI<Q!A
,C! SA.@]!IBA (U/E @PCVA.A !E- @;A SA!+E @IW!IB1A
CO-CA(E-ACIO-
Eje%plo de concatenaci#n2
Cliente 1U\ corporaci#n" nu%ero de cuentea 9474)" su crOdito 5encido por 70 das
]C+S-AME ]C+S-+MA!/V ],AUSA!/V
/0M
,C! ]C+S-AME PCVA. 49 D1U\ CO./O.A(IO-F
,C! ]C+S-+M P,EC @9 0A
,C! ]C+S-+MA!/V PCVA. 9
,C! ],AUS P,EC 7 0
,C! ],AUSA!/V PCVA. 7
->7 *
.esultado
PCA(
Serie4 Serie) Serie
)
Serie
4
P(CA(
Serie4 A B Serie A B b
b
PBCA(
Serie4 ABC b A B C
PBCA(
Serie4 A b
A b b
AS/400 BASICO por Wilbert Martnez
CV0SA. ],AUSA!/V ],AUS
CV0SA. ]C+S-+MA!/V ]C+S-+M
S-,MS0 MS0@DClienteF PBcat ] cusna%e X C+S-+MA!/V X PCA( F" nu%ero de cuenta D
PBCA( ] c
->4 *
AS/400 BASICO por Wilbert Martnez
CO-,ICIO-
Cuando desea%os condicionar un pro&ra%a C! solo puede ejecutar un co%ando o una etiqueta
despuOs de la condici#n
IL CO-, @ e3precion A (VE- @co%andoA
E!SE CM,@co%andoA
Operadores relacionales 2
Operadores relacionales
T
M
N
TM
ZT
ZN
NM
ZM
P!(
PE?
P0(
P!E
P-!
P-0
P0E
P-E
Menor que
I&ual
Ma'or que
Menor i&ual
-o %enor
-o %a'or
Ma'or i&ual
-o i&ual o distinto
Eje%plo 2
)I IL CO-, @].ES/ P E? 9 A (VE- @ CA!! /0M @C+SI-0AA
4I IL @]AM(,+E N A (VE- @ CA!! A.C>00A
7I IL @]AM(,+E P0( )000A SE-B.QMS0 MS0 @DVO!AFA
E!SE C,M @0O(O !ABE!7A
4I IL @]A P-E ]bA .E(+.-
9I IL @]A M ]BA
E!SE .E(+.-
;I IL @]I->>A 0O(O E-,!ABE!
Otra $or%a de usar el IL para que ejecute %as de una lnea se utiliza la si&uiente sentencia
IL CO-, @condici#nA (VE- @,OA
CA!! /0M)
CA!! /0M4
E-, ,O
E!SE CM, @,OA
CA!! /0M7
CA!! /0M4
E-,,O
Mandato de con5ersi#n de $ec:a" c5tdat
C5tdat date @constannte o 5ariable clA to5ar@ 5ariable C!A
Lro%$%t P<OB P<OB P<OB
->9 *
AS/400 BASICO por Wilbert Martnez
PSUSSA! PSUSSA! PSUSSA!
PM,U (OLM( PM,U (OSE/ P-O-E
PUM, P,MU PCA.fC(E. SE/A.A,O.
P<+! P<+!
->; *
AS/400 BASICO por Wilbert Martnez
E<EM/!O CS(,A(
/0M
,C! SA. @],A(EA (U/E @PCVA.A !E-@;A
,C! SA. @] UM.,A (U/E @PCVA.A !E-@;A
.(SSUSSA! SUSSA!@?,A(EA (OSA.@]U.M,A X
LO.ML(M@PSUSSA!A (O LM(@PUM,A (OSE/ @P-O-EA
CA!! /0M@/UC90A /A.M@]U.M,A



E-,/0M
MO-MS0
Este co%ando se utiliza para super5isar %ensajes de error dentro de un pro&ra%a
Eje%plo2 ,isponibilidad de arc:i5o
A!COB< OB<@@/.!IB//.MS( PLI!E PE1C!A WAI(@0A
MO-M,0 MS0I,@C/L)004A E1EC@S-,+.SMS0 MS0@DA.CVISO X
/!A-I!!AS E- +SOFA (OMS0?@PE1(A

,!COB< OB<@@/.!IB//.MS( P LI!E PE1C!AA


Mandato para super5isar %ensaje
MO-MS0 MS0I,@A CM/,(A>A E1EC@A
MS0I,I requerido
MS0I, @MCV)4))A solo este %ensaje
MS0I, @C/L)900A C/L)900 I C/L)9>>
MS0I, @C/L0000A C/L0000 I C/L>>>>
MS0I, @C/L>>>>A Error de $uncion2 se acti5a por %ensaje de
Escape no super5isados
CM/,(A * @OpcionalA
Eje%plo
MO-MS0 MS0I,@C/L4)64A CM/,(A@/!A!IBA
->= *
Eje%plo de al&unos %ensajes de eerro que pueden ser super5isado
A!COB<
C/L)004 -o puede asi&nar objetos
C/L)040 -u%ero %a3i%o de objetos asi&nados en el siste%a
C/L)069 Objetos no asi&nados
C/L9=7> -o puede asi&narse o liberar arc:i5o@SA ,,M
AS/400 BASICO por Wilbert Martnez
E1EC * @OpcionalA
Mandato C!
->6 *
AS/400 BASICO por Wilbert Martnez
MO-MS02 -i5el pro&ra%a" ni5el de %andato
/&%
,C!
,C!
,C!
MO-MS0 -i5el de pro&ra%a
MO-MS0 co%pruebe aqu si el %ensaje esta super5isado
MO-MS0 Super5isi#n de todos los %andatos de pro&ra%a
-O E1EC2 i&nore
MO-MS0 -i5el de %andato
MO-MS0 Co%pruebe aqu pri%ero si el %ensaje esta super5isado
Super5isar solo el %andato anterior
-O E1EC2 i&nore
E-,/0M
Eje%plo de super5isar %ensajes
Co%probar e3istencia ' autorizaci#n de un objeto
CVQOB< OB< @no%breIobjetoA X
OB<(U/E@C/LI tipoIdeIobjetoA X A+(@derec:oIde auto%atizaci#nA
Eje%plo2
) CV0OB< OB<@IW!IB/A/.0)0 OB<(U/E@P/0MA /P e3istenciaP/
MO-MS0
4 CVQOB< OB<@A//SE-,A OB<(U/E@P/0MA X /P e3istenciaP/
MB.@A//SA-,A A+(O@P,!(A /P' autorizacionP/
MO-MS0
Eje%plo de super5isar %ensajes
/0M
,C!
/P-SE! ,E /.O0.AMA
MO-MS0 C/L>60) E1CE@0O(O -O E-CO-(A
MO-MS0 C/L=704
/P LI- -ISE! ,E /.O0.AMA
CVQOB< /U/MAS( PLI!E
CVQOB< 0!/MAS( PLI!E
,E -+ESO2 C.(/L ?(EM//WO.Q
MO-MS0 C/L=704 E1EC @,OA
,(!L ?(EM//WO.Q
0O(O ,E -+ESO
E-,,O
C.(/L /!A!IB//U/(.A-
0O(O LI-
-O E-CO-(2 S-,+.SMS0 (OMS0?@PE1(A MS0@D -O E-C+E-(.A E!
A.CVISOX CVECA. !IS(A ,E BI!BIO(ECA ,E !A SESIOB-F0
->> *
AS/400 BASICO por Wilbert Martnez
LI-2 E-,/0M
-)00 *
AS/400 BASICO por Wilbert Martnez
-)0) *
AS/400 BASICO por Wilbert Martnez
-)04 *
AS/400 BASICO por Wilbert Martnez
-)07 *
AS/400 BASICO por Wilbert Martnez
-)04 *
AS/400 BASICO por Wilbert Martnez
-)09 *
AS/400 BASICO por Wilbert Martnez
-)0; *
AS/400 BASICO por Wilbert Martnez
-)0= *
AS/400 BASICO por Wilbert Martnez
-)06 *
AS/400 BASICO por Wilbert Martnez
-)0> *

También podría gustarte