Manual As400:I.-Introducción A As/400 (comenta o siguenos para acceder)


I.-    Introduccion A As/400

A) Manejo De Las Bases De Datos

El equipo as/400 trabaja con bases de datos relacionales.

La base de datos relacional as/400, es una colección de conjuntos de información agrupados de tal forma que minimiza la redundancia entre ellos, permite cambios y el crecimiento en el futuro.

Todos los conjuntos de datos son en base a tablas.

Diagrama De Base De Datos


Se almacenan datos en tablas, archivos, grupos de datos, etc. con un minimo de datos redundantes.

Tres Tipos De Bases De Datos


El Modelo Relacional.

ejemplo.: base de datos de educación

curso

num

clase

codigo

Nombre

inscr

instructor

tetra

salon

max

l001 Italiano

12

victor g

88/1

1

30

l103 Ingles

23

juan e

88/1

4

40

l211 Español

5

pedro f

88/1

4

40

l303 Chino

44

luis lee

88/1

3

50

l001 Italiano

23

victor g

88/1

1

30

l214 Griego

11

homero

88/1

6

35

l211 Español

1

pedro f

88/2

4

40

l103 Ingles

0

juan e

88/2

4

40

l001 Italiano

2

victor g

88/2

1

30

l306 Japones

3

homero

88/2

6

35

l370 Cobol

99

homero

88/2

5

99

TABLA BASE

TABLA = ARCHIVO

RENGLON = REGISTRO

COLUMNA = CAMPO

Todas las lineas o renglones son similares ( un tipo de registro)

El archivo puede ser procesado secuencialmente o en forma indexada por el campo de clasificacion “instructor”, en este ejemplo (sql ‘order by…’); o con una “selección logica” de registros (sql ‘where……’) funcionalmente, esto es una “selección de campos”. con frecuencia se usan los queries para visualizar los datos de los archivos, para el usuario final.

b)
Manejo De Librerias, Objetos, Fuentes:

Librerias.- Es la forma en que as/400 trabaja y se administra.

Las librerias es un area donde se almacenan archivos, programas, etc. que corresponden a dicha librería.

Se puede manejar una librería por sistema, por area/depto., etc. (esto es definido por el area de sistemas).

Objetos.- se generan en base a las compilaciones, ya sea de archivos o programas (fuentes).

El objeto de un archivo se puede visualizar, para ver la informacion que la compone y el objeto de un programa no se puede ver (en este caso se visualiza el

fuente).

Fuentes.- es el codigo que se desarrolla para la generacion de un archivo /programa, este se compila para generar el objeto.

si un fuente no es compilado: no se puede guardar informacion en archivos o no se puede correr un programa.

– Tipos De Objetos Y Fuentes:

los tipos de objetos mas comunes pueden ser:

*FILE .- puede tener los siguientes atributos:

ser un archivo físico (pf), lógico (lf), archivo de pantalla (dspf), printer file (prtf)

         *PGM    .- puede tener los siguientes atributos: clp, dfu, rpg

        PF .-    Archivos físicos(phisical file)

        LF .-    Archivos lógicos (logical file)

        DSPF.-Archivos de pantallas (display file)

        PRTF.-Archivos de reportes (printer file)

        RPG.-    Programas rpg

        CLP.-    Programas de control (control lenguage program)

 

Este es el menú inicial del AS/400 que es una parte importante del OS/400, que nos ayuda a ejecutar los comandos y utilerias por medio de opciones de manera un poco más fácil.

En esta pantalla podrá ejecuta los siguientes funciones:

F3 à Salir termina el programa y regresa al programa anterior .

F4 à Nos despliega una nueva pantalla donde nos muestra los grupos de comando que

podemos utilizar asi como una descripcion del mismo, el cual podemos accesar con el numero de la opción en la línea de comando.

F9 à Esta opcion nos muestra el comnado anterior ejecutado

F10 à Commando de entrada.

F12 à Es para salir del programa.

El PDM es una herramienta del AS/400 que facilita el control de Bibliotecas, objeto y fuentes, de una manera rápida y eficiente, favoreciendo a la productividad en la operación. El PDM forma parte del grupo de herramientas de apoyo del AS/400 conocidas como TooSet/400.

Con el PDM el usuario podrá controlar los siguientes concepto o funciones en AS/400:

  • Bibliotecas.
  • Objetos.
  • Fuentes.
  • Opciones definidas por el usuario.

Utilizando PDM el usuario podrá disponer de las siguientes utilerias o facilidades, que a su vez pertenecen también al TollSet/400.

    Source Entry Utility (SEU)

    Data File Utility (DFU)

    Screen Design Aid (SDA)

    Report Layout Utility (RLU)

    File Compare and Merge Utility (FCMU)

    Interactive Source Debugger (ISDB)

F3 à salir termina el programa y regresa al programa anterior .

F4 à Nos muestra una nueva pantalla donde nos muestra los grupos de comando que podemos utilizar asi como una descripcion del mismo, el cual podemos accesar con el numero de la opción en la línea de comando.

Esta pantalla es de entrada a las biblioteca, podemos seleccionar que biblioteca queremos visualizar o trabajar. Tienen la siguiente opciones:

     *LIBL      Despliega la lista de Bibliotecas del usuario.

*ALLUSR      Despliega únicamente las Bibliotecas del usuario.

*ALL      Despliega todas las Bibliotecas del sistema

*USRLIBL      Despliega todas la Bibliotecas que no pertenecen al sistema.

*CURLIB      Despliega la Biblioteca definidas como current

Library Name Despliega sola mente la biblioteca especificada

*generic*      Esta opción despliega lo que tenga en los * .

Ejemplo * QCA nos muestra todos las Bibliotecas que contengan esta cadena

De caracteres.

Al trabajar con Bibliotecas tendremos las siguientes opciones:

  1. Change : Permite cambiar el tipo de biblioteca que se tiene                     *PROD Es una biblioteca se encuentra en producción.

    *TEST biblioteca de pruebas.

    Así como también cambiar su texto descripción.

  2. Copy : Copia de una biblioteca a otra bibliotecas con todas sus características.
  3. Delete: Elimina una o más Bibliotecas
  4. Display: Despliega todos los tipos de objetos contenidos en la biblioteca.

6 Rename: Renombra una biblioteca.

8 Display descripcion: Despliega información acerca de biblioteca, fecha en que

se creo, se cambio etc.

12 Despliega los objetos contenidos en la biblioteca y poder trabajar con ellos.

13 Cambia la descripción de la biblioteca.

En esta pantalla tenemos las siguientes teclas de función más usuales:

F1 à Despliega una ayuda en línea de la pantalla.

F3 à Regresa a la pantalla anterior.

F4 à Parámetros adicionales en los comandos o función

F5 à Reactualiza la consulta.

F6 à Al presionar esta tecla creamos un a nueva biblioteca.

F9 à Nos regresa el comando anterior ejecutado.

F10 à Despliega los comandos ejecutados en el PDM en esta sesión.

F11 à Despliega la lista sin tipo y sin descripción.

F12 à Cancela y no modifica nada.

F16 à Funciones definidas por el usuario.

F21 à Imptime la lista de la l ibreias.

F23 à Con esta tecla podeomos ver los demas opciones que se tinenen.

F24 à Despliega todas las funciones.

    WRKLIBPDM .- Trabajar con Bibliotecas

    ADDLIBLE .- Añadir una biblioteca a la lista de biblioteca.

    EDTLIBL .- Editar la lista de biblioteca.

Al escoger esta opcion 2 del PDM (WRKOBJPDM) nos muetra la pantalla anterior toma los siguientes valores:

Library : la Biblioteca con que se va a trabajar, puede ser :

    *CURLIB : Despliega la biblioteca definidas como current

    Name : Despliega solamente la biblioteca especificada

Object : Es un objeto en particular o pueden ser todos los que contengan ciertas características definidas como:

Name : Pueden ser todos (*ALL), uno en particular(Name), Los que contengan la cadena contenida en los * (*generic*).

Type: Los tipos de objetos que existen en la Bibliotecas. Pueden tomar valores para desplegar todos (*ALL), o un tipo especifico (*Type) que pueden ser *PGM, DSP, CLP, PF,LF etc.

Esta es el menú del WRKOBJ en este podemos:

Eliminar un objeto.

Utilizar la opción 4 (delete) en el objeto a eliminar.

Renombrar un objeto.

Utilizar la opción 7 (rename) en el objeto a renombrar

Mover un objeto.

  1. Utilizar la opción 11 (Move) en el objeto a mover.
  2. Especificar la biblioteca destino.

Copiar un objeto:

  1. Utilizar la opción 13 (Move) en el objeto a mover.
  2. Especificar la biblioteca destino.

La función de copiar funciona como duplicar un objeto, el cual puede existir o no en la biblioteca destino. De tal forma que la acción de copiar se realiza de dos formas:

  1. Crea un objeto nuevo en la biblioteca destino, con las mismas características del objeto original.
    1. Reemplaza un objeto ya existente en la biblioteca destino. Con las características del objeto original.

      Desplegar la descripción de un Objeto:

      Utilizar la opción 8 (display description) en el objeto a trabajar.

      Desplegar la información de un Objeto.

      Trabajar con objetos: STRPDM / Opción 2 o WRKOBJPDM.

Ejecutar un objeto.

Utilizar la opción 16 (Run) en el objeto a ejecutar.

Cambiar el texto de un objeto.

Utilizar la opción 13 (Change text) en el objeto a ejecutar.

Debug interectivo.

Utilizar la opción 34 ( Interactive source debugger ) en el objeto a trabajar.

En esta pantalla tenemos las siguientes teclas de función más usuales:

F1 à Despliega una ayuda en línea de la pantalla.

F3 à Regresa a la pantalla anterior.

F4 à Parámetros adicionales en los comandos o función

F5 à Reactualiza la consulta.

F9 à Nos regresa el comando anterior ejecutado.

F11à Despliega la lista sin tipo y sin descripción.

F12 à Cancela y no modifica nada.

F13 à Repite la opción en todos los objetos en que estén en la pantalla

F14 à Despliega el tamaño del objeto solo cuando esta en modo nombre y tipos

F18 à Cambia los valores por default.

F16 à Funciones definidas por el usuario.

F21 à Imprime la lista de objetos que se encuentran en la pantalla.

F23 à Despliega las opciones que se encuentran en la pantalla.

F24 à Despliega teclas de funcion.

Nota: Solo se pueden ejecutar las opciones y teclas de funcion que se encuentren visualizadas en la pantalla.

Al escoger esta opcion 3 del (STRPDM) trabaja con Fuentes (wrkmbrpdm) nos muetra la pantalla anterior toma los siguientes valores:

File : Es nombre del source file a utilizar :

    Name : Un nombre especifico del source file a trabajar.

    F4 : Nos desliega una lista de source file existentes en la biblioteca .

Library: Es la biblioteca con la que se va atrabajar pueden tomar los siguientes valores:

    *LIBL : Son las todas Bibliotecas definida para el usuario

    *CURLIB: Es la biblioteca definida como current

Name: Es nombre de una biblioteca especifican en donde se encuentran los fuentes a utilizar.

    Member:

        Name : Nombre del Fuente a trabajar, pueden tomar los sigientes valores:

         *ALL : Todos los fuentes cotenidos en la biblioteca y el sorfile

         Name : EL nombre del fuente a trabajar.

* Generic * : Es un fuente que tenga las cadena que se encuentra definida dentro de los asteriscos *.

        Type : Tipo de fuente a utilizar.

*ALL : Todos los tipos de fuentes que se encuentren en esta biblioteca y en el soruc file.

        Type : Tipo especifico de fuente.

*generic *: desplegara todos aquellos fuentes que cumplan con la cadena encerrada entre asteriscos (*)

*BLANK : Despliega todos los fuentes con type en blanco.

TRABAJANDO CON FUENTES

Copiar un fuente

1.- Estando en la pantalla del WRKMBRPDM..

2.- Utilizar la opción 3(copy) en el fuente a copiar

La función copiar funciona como duplicar un fuente, el cual puede existir o no en la biblioteca y archivo fuente destino. De tal forma que la acción de copiar se realiza de dos formas:

a). Crea un fuente nuevo en la biblioteca y archivo fuente destino con las mismas características del fuente origen.

b). Reemplaza un fuente ya existente en la biblioteca y archivo fuente destino, con las mismas características.

Cambiar tipo y texto de un fuente

Para cambiar un texto de un fuente se utiliza la opción 13 (change text) en el fuente a cambiar.

Editar un fuente .

Utilizando la opción 2 (Edit) en el fuente a editar. En esta opción nos mostrara el SEU

Visualizar un fuente: Con la opción 5 (display) en el fuente a visualizar. Con esta opción nosotros no podemos modificar el fuente.

Compilar un fuente: Para compilar un fuente se utiliza la opción 14 (compile) en el fuente a compilar.

Eliminar un fuente: Para eliminar un fuente se utiliza la opción 4 en el fuente a eliminar.

Desplegar la descripción de un fuente: Para desplegar la descripcion de un fuente se utiliza la opción 8 (display description) en el fuente a trabajar.

Ordenar una lista de fuentes por fecha: Utilizan la función <F4> (Display date) para desplegar las fechas de creación. Y con la Función <F15> (sort date) para ordenar la fecha.

Indistintamente la función <F15> (sort date) sirve para ordenar : por fecha o por nombre.

Buscar un STRING en un fuente

  1. Utilizando el PDM.

    Trabajando con fuentes (WRKMBRPDM) la opción 25 (find String) para hacer la búsqueda correspondiente.

  2. utilizando el comando FNDSTRPDM

SEU (Source Entry Utility)

Con el SEU, usted puede trabajar con el fuente de archivos, y los registros contenidos dentro de ellos.

Opciones permitida:

  • Crear fuentes
  • Editar fuentes
  • Imprimir fuentes
  • Copiar registro de un archivo (fuentes) a otro fuente o un archivo de

    impresión

Comandos: Los comandos de la SEU se pueden trabajar en Ambientes, fuentes y registros. Con ellos, podemos ocultar registros desplegados en pantalla, salvar archivos o cancelar los cambios hechos al fuente.

Líneas de formatos: Se pueden utilizar las líneas de formato para verificar la posición de los estatutos según los estatutos fuentes del lenguaje de alto nivel utilizado. SEU provee de líneas de formato predefinidas para comandos de los lenguajes de alto nivel utilizados y de lenguaje de control de AS/40 (CL).

Modo de pantalla completa. El modo de pantalla completa (Full screen mode) es utilizado en las pantallas de edición y de browse para eliminar teclas de función de la pantalla del SEU, permitiendo así, tener cuatro líneas más de texto fuente.

Teclas de función completas. Cada pantalla de la SEU soporta un conjunto de teclas de función, usadas para realizar tareas especificas. Estas teclas, se encuentran listadas en la parte inferior de cada pantalla. Excepto por la tecla F1 (Ayuda) que no es siempre desplegada y sin embargo es valida en todas la pantallas, una tecla de función es valida solo si es mostrada en la parte inferior de la pantalla.

Prompts de comandos y lenguajes : Los prompts de comandos y lenguajes son utilizados para crear registro o líneas de código fuentes sin errores.

Líneas de comandos:. Esta, es usada para realizar varias operaciones, tales como insertar registros en blancos , copiar registro y llamar al prompt de comandos o lenguajes.

Números máximo y longitud de registros: El SEU permite un máximo de 32764 registros en un fuente. La longitud máxima de registros permitida es de 240 caracteres , el cual incluye 6 caracteres para el numero de secuencia y 6 caracteres para la fecha.

Pantallas de opciones: Este tipo de pantallas son utilizadas para controlar el ambiente del SEU y para realizar operaciones sobre los fuentes de archivos y archivos de impresión. Las pantallas de operaciones más usadas son:

– Cambio de defaults de la sesión.

  • Opciones de browse/ copy.
  • Opciones de Encontrar/ Cambiar.

Sesión split: Esta sesión es utilizar para ver y editar un fuente y visualizar otro en la misma pantalla de trabajo. También, es posible visualizar dos fuentes en la misma pantalla a la vez. Si la pantalla de opciones de Browse/Copy es accesada desde una sesión split, es posible copiar registros desde la fuente que sea mostrado en la pantalla a la fuente que se este utilizando.

Chequeo de sintaxis. El chequeo de sintaxis es utilizado para verificar los estatutos de los diferentes lenguajes de alto nivel, incluyendo Basic, Pl/I, cobol, Fortan y RPG, así como el lenguaje de control del AS/400.

Ventanas de comandos del sistema: Desde esta ventana es posible mandar ejecutar comandos de AS/400 mientras trabaja con una pantalla de edición del SEU. Para desplegar la ventanas de comandos del sistema, presione F21. No es posible teclear datos en la pantalla de edición del SEU mientras la ventana de comandos del sistema se encuentre desplegada.

Trabajar con fuentes

Iniciar una sesión en SEU

  • Desde el PDM (program development manager). Dentro del PDM utilice la opción

    2 (editar) O 5 (desplegar) en la pantalla de trabajo con fuente.

    • Desde el menú de programador. Selecione la opción 8 (editar una fuente de un

      archivo fuente) o bien, seleccione la opción 5 (ejecutar comandos), y seleccione el

      Comando STRSEU de la lista de comandos.

  • Por medio de la linea de comandos de AS/400. Teclee STRSEU en la línea de

    Comandos.

Ver una lista de fuentes.

Para ver una lista de fuentes, usando el comando STRSEU, haga lo siguientes:

1.- Especifique el archivo fuente para el parámetro SRCFILE pero no especifique el fuente en el parámetro SRCMBR, Especifique el valor del *SELECT para el parámetro SRCMBR.

Teclee el comando STRSEU sin ningún parámetro si la pantalla de trabajo con fuentes usando SEU fue desplegada.

Usted puede cambiar la lista de fuentes que aparecen en la pantalla de trabajo con fuentes usando SEU a que solo los fuentes que cumplan cierto criterio sean incluidos en dicha lista. La selección de fuente puede ser por:

  • Nombre parcial
  • Tipo de miembro
  • Fecha de creación o de ultimo cambio.
  • Texto o texto parcial .

Para cambiar la lista de fuentes.

  1. Presione F17 (subconjunto). La pantalla de lista subconjunto de miembros.
  2. Especifique el criterio para los miembros que desea que sean listados y presione enter. Con esto, la lista de fuentes actualizada será desplegada.

Crear un fuente:

    Para crear un miembro, siga los pasos que se muestran a continuación:

  • Desde la línea de comando, o utilizando el prompt de comandos, especificando el

    nombre del fuente a crear, en el parámetro SRCMBR del comando STRSEU. Si utiliza el prompt de comandos, teclee un tipo de fuente valido en el source type, de lo contrario el default es usado.

  • En la pantalla de trabajo con miembros usando SEU, teclee el nombre del miembro a

    crear en el prompt de new member y presione enter.

La pantalla de trabajo con miembros usando SEU puede ser accesada especificando *SELECT para el parámetro SRCMBR en el comando STRSEU.

La pantalla de edición aparecerá, en la cual puede iniciar la entrada de código.

Tipo de fuente

Descripción

CLP

CBL

DSPF

MENU

PF

PRFT

QRY

RPG

TXT

CL program

Cobol

Archivos de pantallas

Menús (UIM)

Archivo Físico

Archivo de Reportes

Archivo de Querys

RPG

Texto

La figura anterior nos muestra los tipos de fuentes mas utilizados en AS/400.

Para iniciar una sesión del SEU desde el PDM con la opción 2 (EDIT) en la fuente que de deseamos editar.

Mostrar un fuente (Browsing)

La pantalla de browse es usada para ver un fuente sin el riesgo de cambiarlo accidentalmente (solo lectura). Podemos usar las operaciones de busqueda y posicionamiento, pero no podemos realizar operaciones que alteren el fuente, tales como edición, eliminación, actualización o relocalizacion de registro.

Par mostrar un fuente :

  • Especifique 5 (Browse) en el parámetro option del comando STRSEU.
  • Seleccione la opción 5 (Browse) en la pantalla de trabajo con fuentes usando SEU.

La pantalla de Browse aparecera y contendra el fuente que haya seleccionado.

Para cambiar los defaults de la sesión en la pantalla de brows, presionando F13. Aquí podra especificar parametros tales como el numero de renglones a rolar en la pantalla, o forzar la entrada de letras en solo Mayúsculas.

Tambien es posible cambiar la sesion usando el comando SEU SET

El modo de la pantalla completa le permite remover la linea de formato de la parte superior de la pantalla y la lista de teclas de funcion de la parte inferior de la misma.

Podemos utilizar le modo de pantalla completa mientra se esta mostrando los fuentes o archivo de impresión (browsing). Para cambiar de modo campleta:

  1. En la pantalla de Browse, presione F13 (cambiar default). Con lo anterior

    aparecera la pantalla de cambios de default.

  2. Teclee y en el prompt de full screen mode y presionar enter. La pantalla de browse

    cambiara a modo de pantalla completa.

    eración:

    1 .- En la pantalla de browse, presionar F13.

2 .- Teclee N en el prompt full screen mode y presione enter.

Mientras se trabaje con un fuente, puede dividir (Split) la pantalla del browse con otro browse de un fuente o archivo de impresión (spool file). Para dividir (splits) la pantalla :

1.- Presione F15 (opciones de browse).

2.- Realice los siguientes puntos:

  • Para mostrar otros fuente del mismo archivo, teclee el nombre del fuente en el prompt de Browse member y presione enter.
  • Para mostrar otro fuente de un archivo diferente, teclee el nombre del archivo en el prompt de file, el nombre del fuente en el promot de browse member y presione enter.
  • Para mostrar un archivo de impresión, teclee su nombre en el prompt spool file.
  • Para mostrar un archivo de impresión de otro usuario, teclee el nombre del usuario en el campo correspondiente, teclee su nombre de archivo de impresión y presione enter.

La linea de división es colocada a la mitad de la pantalla del browse, y ahora puede ver el fuente o archivo de impresión adicional, en la pantalla. Para mover la linea de división, presione F6 (move Split line) en la posición que desea que este.

Editar un fuente

Para editar un fuente, realice alguno de los siguientes puntos:

  • Especifique un 2(Edit) en el parámetro OPTION del comando STRSEU.
  • Especifique la opción 2 (edit) en el prompt Opt en la pantalla trabajar con miembros usando SEU.
  • Especifique la opción 2 (edit) en la pantalla de trabajar con miembros usando el PDM.
  • Especifique la opción 2 (edit) en la pantalla de trabajar con registros de pantallas en SDA.

Aparecerá la pantalla de edición, conteniendo el miembro especificado.

Existen varios registros especiales en la pantalla de edición de fuentes, los cuales no son grabados juntos con el código fuente.

  • Inicio de datos
  • Fin de datos
  • Formato
  • Inserción
  • Columnas
  • Tabulaciones
  • Exclusión (exclude)

No se pueden eliminar los registros especiales listado anteriormente.

Las líneas de inicio y fin de datos son mostradas para designar el inicio y el fin de un fuente.

Durante la edición de fuentes, puede dividir (split) la pantalla de edición con otra pantalla de browse de un fuente o archivo de impresión (spooled file). Para dividir la pantalla.

  1. Presione F15 (opciones de Browse /copy).
  2. Realice alguno de los siguientes puntos:

  • Para mostrar o copiar otro fuente del mismo archivo, teclee el nombre del fuente

    en el prompt de browse y presione enter.

  • Para mostrar o copiar otro fuente de un archivo diferente, teclee el nombre del

    archivo en el prompt de file, el nombre del fuente en el prompt de Browse member y presione enter.

  • Para mostrar o copiar un archivo de impresión, teclee su nombre en prompt spool file.
  • Para mostrar o copiar un archivo de impresión de otro usuario, teclee el nombre del

    usuario en el campo correspondiente, teclee el nombre del archivo de impresión y presione enter.

  1. Si deseas copiar el fuente o archivo de impresión completo teclee una y en el

        prompt de copy all récords.

    Presione enter y Se unas de las siguientes opciones pasarán:

  • Si esta en modo browse, la línea de división (línea separadora de las dos sesiones) es colocada en la parte media de la pantalla de edición y podrá ver el fuente adicional.
  • Si esta copiando el fuente y especifica un destino en el fuente que esta editando, el

    fuente o archivo de impresión es copiado dentro del fuente que se esta editando, pero la sesión adicional no será iniciada.

  • Si se encuentra copiando un fuente, pero no especifico un destino (lugar donde se

    iniciara la copia del fuente adicional) en el fuente que se esta editando actualmente, la

pantalla de edición es dividida y el comando de copia bloque (CC) es colocado en el primer y ultimo registro del fuente o archivo de impresión que esta desplegando.

Eliminando un fuente

  • Especifique 6(Print) en el parámetro OPTION del comando del STRSEU
  • Selecionando la opción 6(Print) en la pantalla de trabajar con miembros

    (WRKMBRPDM)

  • Cuando salga de la sesión de edición, teclee y en el prompt Print member en la pantalla de salida, o bien,

CAMBIANDO EL AMBIENTE DE LA SESION DE EDICION

Podemos cambiar el ambiente de la sesión de edición de dos maneras: Utilizando el comando SEU SET o bien , utilizando la pantalla de cambio de la sesión (F13).

Al presionar F13 aparecerá la pantalla de cambio de Defaults de la sesión, y entonces podrá hacer lo siguiente:

  • Especificar el numero de registro de datos serán paginados ( mediante las

    teclas de roll).

  • Especificar el teclado en solo mayúsculas o mixto.
  • Habilitar o deshabita los tabuladores.
  • Especificar el número en que se irán incrementando los números de secuencia.
  • Cambiar al modo pantalla completa.
  • Definir las dimensiones de la pantalla(para Display de 27 renglones x 132

    columnas).

  • Especificar el tipo de fuente que se esta editando.
  • Habilitar/deshabitar el chequeo de sintaxis.
  • Especificar el chequeo de sintaxis para un rango de estatutos.
  • Asignar márgenes.
  • Asignar todos los registros existentes con una fecha determinada.
  • Asignar la resecuenciación del fuente como default.

Algunos de los valores dependen del tipo de fuente del fuente, mientras que otros dependen del valor que les sea asignados o de los valores usados en la ultima sesión de edición.

ENCONTRAR Y CAMBIAR CADENA DE CARACTERES

Durante la sesión de edición, es posible buscar dentro de un fuente una cadena de caracteres, y opcionalmente cambiarla por otra cadena, usando la pantalla de opciones de Encontrar / Cambiar (Find/Change).

    Para accesar dicha pantalla, presione F14 (Find/Change Option) estando dentro de la sesión de edición . Entonces, dentro de la pantalla de find/changer podrá hacer lo siguiente:

  • Encontrar una cadena especifica.
  • Cambiar una cadena.
  • Encontrar los registros con una fecha determinada.
  • Encontrarlos errores de sintaxis

Durante una sesión de despliegue (browse), puede buscar una cadena de caracteres por medio de la pantalla de opción de encontrar (find Option). La diferencia es que en esta sesión no podrá cambiar el fuente y no podrá encontrar los errores de sintaxis, excepto en los archivos de impresión.

Para guardar los valores que tecleo en los Prompts de encontrar (find) y cambiar (Change), presionar enter, F16 para encontrar o F17 para cambiar la cadena de caracteres.

Parar encontrar una cadena de caracteres:

  1. Teclee el String que desea encontrar en el Prompts de find de la pantalla de

    encontrar o de encontrar y cambiar.

  2. Cambie los demás Prompts, si es necesario
  3. Presione F16 para encontrar el String.

Para encontrar y cambiar una cadena de caracteres

  1. Teclee la cadena de caracteres que desea cambiar en el prompt de encontrar o

    encontrar/cambiar

  2. Teclee la cadena de caracteres con la que desea remplazar la anterior en el

    promt de cambia (Change).

  3. Cambie los de mas Prompts, si es necesario.
  4. Presione F17 para cambiar la siguiente ocurrencia del String.

Si el String tecleado, es encerrado entre apóstrofes o comillas, estos signos serán ignorados en la búsqueda.Para encontrar un registro en una determinada fecha:

  1. Presione F14 para accesar la pantalla de encontrar.
  2. Especifique la fecha en el campo search on date..
  3. Especifique 1,2,3 en el campo de comparación/compare.
  4. Presione F16 para encontrar el siguiente registro con la fecha especificada.

También, podemos usar la operación de encontrar para localizar los errores de sintaxis detectados en el código fuente del fuente. Para encontrar estos errores teclee ‘*ERR’ o “* ERR” e el campo de encontrar/find. Cuando presione F16 (Find), SEU localizar cualquier error de sintaxis encontrado por el checador de sintaxis.

COMANDOS DE LINEA

Los comandos de línea se usan para realizar varias funciones sobre los registros en el fuente. Podemos usar los comandos en líneas para :

  • Copiar, eliminar, insertar, mover o imprimir registros.
  • Ayuda para teclear y formatear datos de los nuevos registros.
  • Cambiar los registros que se ven en la pantalla.

Teclee los comandos de la línea sobre el número de secuencia del registro en el fuente. Por ejemplo, teclee una D (delete) en el número de secuencia de un registro para eliminarlo del código fuente. Teclee una D3 para eliminar los tres registros inmediatos del código fuente.

Estos comandos pueden ser tecleados en mayúsculas o minúsculas. SEU convierte automáticamente los comandos en mayúsculas.

Después de teclear o cambiar los comandos de línea, presione una de las siguientes teclas para correr los campos.

  • Enter
  • Una tecla de función valida.
  • Avance o retorno de pagina ( Page up o page Ddown).

La siguiente tabla lista los comandos de línea del SEU. Todos los comandos de línea son validos en las sesiones de edición en split o Full mode. Esta tabla indica los comandos de línea que son validos para sesiones de despliegue (browse).

Comando

BROWSE

COMANDO DE LINEA

Posicionamiento absoluto

Antes / Después

Columnas

Copiar

Copiar repetidamente

Borrar

Excluir

Formato

Inserción

Insertar con formato

Insertar con prompt

Imprimir línea

Mover

Solapar

Prompt

Posición relativa

Repetir

Show

Y

N

Y

Y/N

Y/N

Y/N

Y

Y

N

N

N

Y

N

N

N

Y

N

Y

n. n n.n

A An B Bn

COLS

C Cn CC

CR CRn CCR

D Dn DD

X Xn XX

F F? Fxx

I In

IF IFn IF? IF?n

IP IP? Ipxx

LP LPn LLP

M Mn MM

O On OO

P P? Pxx

+ +n – -n

RP RPn RPP RPPn

SF SFn SL SLn

Comandos de SEU

Podemos usar los comandos del SEU para realizar operaciones de encontrar/cambiar, para salir de la sesión y para establecer los defaults de la misma. Los comados proveen un fast path para estas operaciones, los cuales también pueden ser accesadas através de las pantallas de opciones. Los valores tecleados por medio de los comandos del SEU aparecerán en dichas pantallas.

Los comandos deben ser tecleados sobre la línea de comandos del SEU . Para recuperar el comando anterior presione F9 (retrive). Es posible mover el cursor desde el área de datos a la línea de comandos del SEU y regresar al área de datos por medio de la tecla F10 (curso).

La siguiente tabla muestra los comandos para los diferentes tipos de sesión.

COMANDOS

Función

Sección Edición

Sesión

Browse

Depende de

la Ssesión

FIND o F

CHAGE o C

TOP o T

BOTTOM o

BOT o B

SAVE

FILE

CANCEL

Encontrar una cadena de caracteres dentro de un fuente.

Encuentra una cadena de caracteres en un fuente y cambia por otra.

Reposiciona la pantalla de trabajo a la primera pagina de datos.

Reposiciona la pantalla de trabajo a la ultima pagina de datos.

Guarda los cambios hechos al miembro y continua editando.

Salva los cambios hechos al fuente y sale de la edición.

Abandona la sección sin guardar los cambios realizados.

Y

Y

Y

Y

Y

Y

Y

Y

N

Y

Y

N

N

Y

Y

Y

Y

Y

Y

N

Y

SALIR DE SEU

Podemos salir del SEU usando la pantalla de salida. Para accesar a dicha pantalla, presione F3 (Salir) en la pantalla de edición o en cualquier pantalla de Split. La pantalla de salida puede usarse para realizar las siguientes operaciones sobre el fuente que se esta editando.

  • Salir y crear un nuevo fuente.
  • Salir sin crear el fuente.
  • Salir y salvar un fuente existente.
  • Resecuenciar el fuente editado.
  • Imprimir el fuente.
  • Ir a la lista de fuente.
  • Regresar a edición.
  • Cancelar la función de encontrar string por PDM,

Definicion Del Codigo De Archivos (Fisicos Y Logicos).

– tipos de archivos y su diferencia:

las tablas base son llamadas archivos fisicos.

los views/index son llamados archivos logicos.

Archivo Fisico


Cada archivo fisico esta conformado de tres partes o extenciones.

    1. Formato. Definicion de los campos de los

        cuales se         que se compone un registro.

2. Ruta de acceso. definicion de cómo los o por llave).

3. Registros pueden ser accesados (en secuencia datos. espacio para los registros de los cuales esta hecho el archivo.

Se pueden generar datos en un archivo, por medio de programas interactivos o barch, dfu (data file utility), el comando de copy.

CPYF FROMFILE( ) TOFILE ( ) MBROPT{*ADD FMTOPT {*MAP

*REPLACE     *DROP

        CRTFILE {*NO

             *YES

DSPPFM FILE(LIB NAME/FILE NAME) MBR(*FIRST) => despliega el contenido del arch.

                                 (ej. para verificar datos copiados)

– Codigo de un archivo fisico (indexado):

COLUMNS . . . : 1 71 EDIT             MTY2/JDESRC

SEU==>                 F50001

FMT PF ….A……….T.NAME++++++RLEN++TDPB……FUNCTIONS++++++++++++++++++

0010.00 A R STUCLS

0011.00 A          TEXT(‘ARCHIVO DE ESTUDIANTES’)

0012.00 A STUNO 7 0 TEXT (‘NUMERO DE ESTUDIENTE’)

0013.00 A CLASNO 4

0014.00 A STATUS 4

0015.00 A FGRADE 3

0016.00 A DATE R REFFLD(ENDATE CLSHST)

0017.00 A K STUNO

0018.00 A K CLASNO DESCEND

NIVELES DE UN ARCHIVO:

    FILE -LEVEL

    RECORD-LEVEL

    FIELD-LEVEL

    KEY FIELD-LEVEL

    SELECT/OMIT-LEVEL

FROM TYPE.- En el caso de archivos siempre se pone ‘A’.

(T) NAME TYPe.- Se define ‘R’ => en la linea donde se define el nombre del reg.

Se define una ‘K’ => cuando se van a definir las llaves (sort).

Se define una ‘J’ => para especificaciones de archivos join.

Se define una ‘S/O’ (select/omit).- para seleccionar y/o omitir regs.

esto solo se puede usar en archs. logicos (idx).

NAME .- Se define el nombre de la variable (no mayor de 6 digitos).

R) REFERENCE.- Se define una ‘R’, solo en el caso de que el campo se pueda referen-

ciar a otro que exista en un archivo determinado. esto es para que

tome las mismas caracteristicas del campo al cual se hace referencia.

LEN) LENGTH.-longitud del campo.

D) DATA TYPE.- A => alfanumerico

P => numerico empacado

S => numerico ‘zoned’ (no es empacado)

P) DECIMAL .-El numero de decimales, siempre y cuando sea numerico.

FUNCTIONS.- REFFLD(nombre campo nombre arch.) => se utiliza para tomar caracteristicas de otro campo en otro arch. (solo caracteristicas, no datos).

        DESCEND => ordena el campo en forma descendente, por default si no

se definie nada lo considera ascendente.

Estas funciones son exclusivas para archs. logicos:

COMP => ej. comp(ge 125), solo toma registros con esta condicion.

RANGE => ej. range(10000 90000), solo toma regs. con esta Condicion.

VALUES => ej. values(‘pend’ ‘conf’ ‘can ‘), regs. con esta condicion.

oprimiendo ayuda en este campo se despliegan todas las opciones existentes.

no se recomienda usar estas funciones (comp, range, values), ya que hace exclusivo el uso del arch.

El data type es opcional, si no se definen decimales se considera alfanumerico,

si se definen decimales se considera numerico ‘zoned’.

  • Codigo De Un Archivo Logico:

Columns . . . : 1 71 Edit             MTY2/JDESRC

Seu==>             F50001LA

FMT PF …..A……….T.Name++++++Rlen++Tdpb……Functions++++++++++++++++++

0010.00 A R STUCLS PFILE(F50001)

0011.00 A K DATE

0012.00 A S STATUS COMP(EQ ‘VAL ‘ )

FUNCTIONS.- PFILE(nombre arch.fisico) => se utiliza para definir el archivo fisico al cual va a estar referenciado el logico.

Existen archivos “JOIN LOGICAL FILES” => este tipo de archivo combina en un

formato, campos de dos o mas archivos fisicos.

Se define solo un formato de registro y los campos llave deben ser del archivo primario.

– Codigo De Un Join Logical File:

ARCHIVO CAMPOS

        STUDENT        STUDENT NUMBER (STUNO)

                    STUDENT NAME (STUNAM)

        CLASS        STUDENT NUMBER (STUNO)

                    CLASS NUMBER (CLASNO)

COLUMNS . . . : 1 71 EDIT     MTY2/JDESRC

SEU==>                                    F50001LB

FMT PF …..A……….T.NAME++++++RLEN++TDPB……FUNCTIONS++++++++++++++++++

0010.00 A R JOINREC JFILE(STUDENT CLASS)

0011.00 A J          JOIN(1 2)

0012.00 A                  JFLD(STUNO STUNO)

0013.00 A STUNO         JREF(1)

0014.00 A STUNAM

0015.00 A CLASNO

0012.00 A K STUNO

JFILE.- Se deben especificar dos archivos fisicos. el primero es el arch. primario.

J .- Identifica el inicio de especificaciones del join.

JOIN .- Identifica cuales dos archivos son ‘joinded’ .

JFLD .- Identifica los nombres de campos (‘join fields’), estos deben existir en ambos


archivos (join); y deben tener los mismos atributos.

JREF.- los campos en un ‘jlf’ deben ser identificados como unicos. este atributo

permite especifiar un campo a cual archivo corresponde (esto es, cuando el nombre

de un campo existe en mas de un archivo fisico).

no se recomienda usar los archivos ‘JOIN’, ya que ocupan mucha area en el equipo, ademas generalmente se requiere de autorizacion por parte de sistsemas/usuario.

– Compilacion De Archivos Fisicos/Logicos

a) Se puede compilar dentro del menu de pdm con la opcion ’14’.

Si se usa esta opcion se recomienda oprimir el ‘f4’ para ver el dafault de la biblioteca hacia donde se va a dirigir el objeto del archivo que se va a generar y en caso de que sea otra biblioteca definirla. ademas es necesario definir una autoridad=*all, ya que de lo contrario, solo el usuario que creo el archivo tendria acceso a este.

b) Compilar con el comando => ‘CRTXF’ + F4. (tomar las mismas consideraciones que en el caso de compilar con la opcion 14 dentro de pdm.

    CRTPF FILE (*CURLIB/FILE-NAME)

SRCFILE (*LIBL/QDDSRC)

SRCMBR (*FILE)

MBR(*FILE)

MAXMBRS(1)

SIZE(*NOMAX 1000 3)

AUT (*ALL)

CRTLF FILE(*CURLIB/FILE-NAME)

Comandos De Archivos:

CLRPFM .- Clear physical file member     (Inicializa el archivo, borra la información)

DLTF .- Delete file (Borra el archivo, fisicamente ya no existirá).

CHGPF .- Change physical file (Cambia atributos al archivo)

CHGPFM .- Change physical file member

DSPFD .- Display file description (Despliega datos generales del archivo)

DSPDBR .- Display data base rel. (Para consultar archivos lógicos referenciados a un arch.

físico.)

DSPPGMref.– Display program reference (para consultar que archivos se estan utilizando en un

programa.)

DSPFFD .-Display file field descrip.(para consultar lista de campos definidos en un archivo y sus

caracteristicas.

Comamdos Para Revisar Compilaciones.

Cuando se compilan archivos, programa, pantalla, ect.. se envía a una cola de procesos llamada Work with Submitted Jobs (WRKSBMJOB), la cual despliega el estatus de los procesos que se encuentran en la cola.

Estos estatus son los siguientes:

JOBQ : Indica que el proceso esta por entrar a la cola procesos.

ACTIVE: Indica que el proceso esta por ejecutarse o se esta ejecutando.

OUTQ: Indica que el proceso ha terminado de ejecutarse.

END    : Indica que el proceso ha sido terminado por el usuario.


Los opciones que se encuentran en este comando son las siguiente:

3= Hold .- usando esta opción se congela el proceso.

4= End .- Usando esta opción se cancela la ejecución del proceso.

6= Release.-

8= work spooled files. Con esta opción nos despliega el spool de nuestro proceso.

El sooled file (cola de impresion) ,es una herramienta que sirve para desplegar y almacenar la información resultados compilaciones, y de las salidas de los programas ejecutados programas.

Para revisar la compilación de un programa con la opción 5 (display) del Work with Job Spooled Files desplegara la siguiente pantalla

Los errores de compilacion se encuentran al final del spool, para poder visuaizar lo mas rapido sin tener que que paginar, se teclea en el control ‘B’ o *BOT (Bottom) que nos posiciona el cursor al final del spool.

En esta parte podemos observar la cantidad de erores que resultaron de la compilacion.

Tambien nos indica el numero de severidad , la cual nos informa la gravedad del error

Para realizar la compilacion y se cree el objeto, son los errore menores que 30.

    Si se repagina (Re. Pag) se encuentran los numeros de errores ocurridos como muetra la pantalla siguiente:


    Esta pantalla nos indica los numeros de errores generados y la severidad respectivamente, por lo cual es necesario buscar en que linea ocurio el error, esto es posible tecleando el numero de error en la linea del comando Find ……______ el numero de error, presionando la tecla F16 las veces que se necesiten, ya que el mismo error puede encontrarse en varias lineas del codigo

Gravedad de codigo de mensajes

Gravedad

Descripcion

00

10

20

30

40

50

60

70

80

90

99

Informacion

Aviso

Error

Error grave

Error no deberia continuar

Terminacion anormal del trabajo o programa

Estado del sistemas

Integridad de dispositivos

Alerta del sistema

Integridad del sistemas

Accion

Funciones en el spooled file.

En la linea de control tiene las siguientes funciones:


Comando Descipcion
T

B

Wn

W-/+n

Pn    Posiciona al principio del spool

Posiciona al final del spool

Se Posiciona en la columas n

Se Posiciona en n colunas a partir de donde se encuentras posicionado

Posiciona le apuntador en la pagina n

F19 = despliega la pantalla hacia la izquierda

F20 = despliega la pantalla hacia la derecha.

Comandos para manejo de archivos

DSPDBR

Nos muestra todos los logicos que están relacionados con este archivo.

La forma de utilizarse es:

Þ DSPDBR F4101

ó

Þ DSPDBR <F4>


Esta es una parte de lo que nos desplegaria este comando

DSPFD

Este comando despliega la descripción completa de un archivo, como la librería donde se encuentra el fuente, el file, la fecha en que fue creada y por quien fue creado,el tipo de archivo, número de campos que lo forman, total de registros, y todos los atributos del archivo, etc.

Þ DSPFD F4101 ó

Þ DSPFD

<F4> o ENTER

Nos muestra esta pantalla donde escribimos el nombre del fuente a buscar y la librería donde se encuentra, si no sabemos el nombre de la librería con *libl lo toma de la librería donde lo encuentre primero

Esto es parte de lo que nos muestra el DSPFD

DSPFFD

Este comando nos sirve para ver todos los campos y las características de cada uno de los campos que forman al archivo.

Þ DSPFFD F4101

ó

Þ DSPFFD

con <F4> ó enter nos lleva a la siguiente pantalla donde damos el nombre del archivo y la librería donde se encuentra

DSPOBJD

Despliega la descripción de un objeto, nos muestra las caracteristicas completas de un objeto, en que librería y file se encuentra, cuando fue creado y por quien, cual es el fuente de este objeto y donde se encuentra, en que fecha fue creado y cuando fue la ultima fecha de cambio, etc.

Þ DSPOBJD P4190

ó

Þ DSPOBJD

al oprimir <F4> o ENTER

Despliega la misma pantalla solo que ahora para buscar el objeto, damos el nombre y la librería donde se encuentra, si no sabemos el nombre de la librería con *libl lo toma de la librería donde lo encuentre primero, hay que especificar el tipo de objeto a buscar

WRKOBJ

Trabajando con objetos, con este comando podemos manejar los objetos, nos muestra la lista de objetos que se encuentran en la librería seleccionada y después manejar este objeto como copiar, borrar, cambiar de librería al objeto, entre otras cosas.

Þ WRKOBJ P 4190

ó

Þ WRKOBJ

Al oprimir <F4> ó enter nos muestra la sig. Pantalla, donde especificaremos el objeto, o bien si queremos ver todos los objetos en el nombre del objeto darle *all

En esta pantalla es donde se manipulan lo objetos en el campo Opt dependiendo de la opción seleccionada se pueden copiar, renombrar, borrar,etc. Al objeto seleccionado

La opción 8 nos despliega los atributos del objeto, una de las facilidades que nos permite esta opción es saber en donde se encuentra el fuente de este objeto, esta opción la obtenemos si en ves de presionar enter, presionamos F4 lo cual nos desplegara la siguiente pantalla.

En ella le escribimos *SERVICE en la opción Detail.

QUE ES UN DSPF. (Display File).

En el ambiente 400 a una pantalla se le conoce como un archivo de despliegue. Una pantalla es creada para que el operador interactue con el 400, observando información, dando de alta datos e incluso cambiandolos dentro de un proceso, las pantallas pueden ser Menús, mensajes del proceso, etc. en conclusión una pantalla sería un intermediario entre el usuario y el proceso. Para crear una pantalla se puede utilizar la utilería SEU pero existe otra utilería que es de gran ayuda la cual es la SDA (Screen Design Aid). Cada vez que se realiza una pantalla, esta se compila.

Para entrar a la utilería SDA tecleamos el comando STRSDA <ENTER> , la siguiente pantalla muestra la pantalla de la utilería SDA, donde podemos diseñar menús, pantallas y la prueba de archivo de pantallas

STRSDA <ENTER>.

AS/400 Screen Design Aid (SDA)

Select one of the following:

1. Design screens

2. Design menus

3. Test display files

Selection or command

===>1                                

F1=Help F3=Exit F4=Prompt F9=Retrieve F12=Cancel

    La siguiente pantalla será donde especificamos el nombre de nuestra pantalla y el archivo de fuentes donde va a ser guardada, así como la biblioteca en donde se localizara.

Trabajando con el diseñadpr de pantalla pantalla (SDA):

Crear un nuevo registro: Con la opción 1(Add) nosotros podemos crear una nueva pantalla.

Copiar un registro : Con la opción 3 (copy) nosotros podemos copiar el registro.

    Eliminar un registro: Con la opción 4 (delete) se elimina un registro

    Renombrar un registro: Con la opción 7 (Rename) se renombra el registro.

Seleccionar teclas : Con la opción 8 (Select keyword) se selecciona la teclas de función que se usaran para el registro de pantalla.

Diseñar la pantalla : Con la opción 12 (Desing image) con esta opción se diseña o se modifica el registro de pantalla.

Después de dar ENTER, añade un nuevo registro a nuestra pantalla.


En lo anterior se ve información sobre nuestra pantalla y su registro, debemos especificar de que tipo, si es una pantalla normal se utiliza el tipo RECORD, y los tipos de pantallas es más comunes son pantallas de Sub-Files, de tipo ventana que son mas pequeñas y estilos de menús.


Existen diferentes formas de añadir información a la pantalla, la mas sencilla es el de colocar a los campos o letreros, entre apostrofe, ejemplo: ‘MATRICULA :’

Para los campos que tienen interrelación con la información existente en el AS/400, se utilizan diferentes representaciones, dependiendo del tipo, ya sean numérico o carácter; la tabla siguiente demostrara las diferentes representaciones.

Tipo

Entrada

Salida

Ambos

Carácter

Se representa con “I”

Se representa con “O”

Se representa con “B”

Numérico

Se representa con “3”

Se representa con “6”

Se representa con “9”

En el SDA es posible definir campos por el usuario o campos que se encuentran en un archivo, Para definir un campo por el usuario solo necesita poner el carácter “+” y especificar el tipo qu se desea utilizar :

Ejemplo :

+IIIIII     En este ejemplo se define un campo de input de 6 caracteres.

+OOOO     En este ejemplo se define un campos de output de 4 caracteres.

+BBBBBB    En este ejemplo se define un campo de input/outoput de 6 caracteres.

Otra forma mas sencilla para definir los campos en la pantalla es escribiendo el carácter “+” Seguido de el tipo a usar y entre paréntesis “( )” la longitud utilizada.

Ejemplo:

+I(6)    En este ejemplo se define un campo de input de 6 caracteres.

+O(4)    En este ejemplo se define un campo de output de 4 caracteres.

+B(6)    En este ejemplo se define un campo de input/outoput de 6 caracteres.

Para definir un campo numérico se siguen los mismos pasos que para un carácter, solo que se utiliza los siguiente:

Ejemplo:

+3333 O +3(4) En este ejemplo se define un campo de input numérico de 4 posiciones.

+6666 O +6(4) En este ejemplo se define un campo de output numérico de 4 posiciones.

+999999 O +9(6) En este ejemplo se define un campo de input/outoput numérico de 6    posiciones.

Para definir un campo numerico con decimales solo es necesario indicar un punto ( . ) apartir de cuantos decimales se utilicen, ejemplo

+66.66 or +6(4,2) En este ejemplo es un campo numérico de 2 posiciones con dos decimales.

ndo la tecla “F10” la cual nos presentara la siguiente pantalla:

En la cual especificamos el archivo a utilizar así como la librería donde se encuentra como también el registro a utilizar.

Podemos escoger las siguientes opciones :

    1 = Despliega los campos de el archivo.

    2 = selecciona todos los campos del archivo de input.

3= selecciona todos los campos del archivo de output.

4= selecciona los campos del archivo de input/output.

Con la opción 1 nos despliega la siguiente pantalla:

En la cual podemos escoger los campos que necesiten para la pantalla y especificarle de que tipo la usaremos.

ter “&” seguido del número del campo que deseamos.

En el ejemplo anterior se selecciono el campo 2 en del archivo, esto nos pondrá el campo en pantalla con las mismas características del campo del archivo.

Trabajando con campos:

Mover un campo -,=.

Para mover un campo en la pantalla teclee un ‘-‘ a la izquierda del campo y en la posición en donde se desee mover es teclee un ‘ =’ y después presione enter.

Copiando un campo -,= = .

Para copiar un campo solo es necesario teclear un ‘-‘ a la izquierda inicio del campo y después en la posición en donde se desea a copia, teclee ‘= =’ y después presione enter.

Eliminando campos

Para eliminar un campo solo es necesario teclear una “D” o “d” a la izquierda del campo que se desee eliminar y presione enter.

Moviendo un bloque de campos -,-, = .

Para mover un bloque primero se necesita marcar el bloque para esto lo se teclea un ‘-‘ en el inicio y al final del bloque , después teclear un ‘=’ en donde se desee poner el bloque y presione entre.

Copiando un bloque -,-,= =

Para copiar un bloque se teclea un ‘-‘ al inicio y al final del bloque que se

desee copiar y en la posición en donde se desee copiar , teclee uno ‘= =’y presione enter.

Eliminar un bloque –,–

Para eliminar un bloque se teclea ‘- – ‘ al inicio y al final del bloque después presionar enter y presionar la tecla F12 para confirma su eliminación.

Para mover los campos uno o más espacios solo es necesario teclear un ‘>’ si se desea mover a la derecha y ‘<‘ un para la izquierda, se puede mover los espacios que se desee, dependiendo de la cantidad de el símbolo ‘< , >’ que se teclee.

Modificando un campo.

Solo se necesita anteponer el carácter “?” en el campo que se quiera modificar, desplegara en la parte inferior de la pantalla, el campo el cual se quiere modificar.

En el podemos modificar el nombre del campo así como el tamaño del campo

Nota: solo en los campos definidos por el usuario podemos cambiar el tamaño,

pero los campos referenciado de los archivos no.

Información de los campos

Para obtener información de los campos definidos en la pantalla solo se antepone el carácter “*” en el campo que se requiera.

Esta opción nos desplegara la siguiente pantalla donde se encuentran todos los atributos del campo, en el se pueden modificar los atributos según sea la necesidades del usuario, los mas usuales son los siguientes:

Display attributes : Nos despliega todos los atributos del campo ejemplo: Underline, high intensity, no visualizarlo, protegerlo etc. En el cual se selecciona con “Y” y ligarlo un indicador para poder utilizarlo en el programa.

Keying Options : En esta opción podemos especificar los funciones en los campos por ejemplo rellenar con blancos o rellenar con ceros.

Validity Check Keywords

Valide los datos de entrada de los campos, por medio de rangos, compararlos con un Valor o definir una lista de valores.

Error Message

Para definir un mensaje para un campo se utiliza la opción de Error Message, el cual nos despliega la siguiente pantalla, en la cual se asigna un indicador para poder controlarlo en el programa y se escribe el mensaje que se requiera, El numero de indicador nos sirve para que cuando en el programa ocurra un error asignado a este se activa y se refleja en al pantalla inferior o sea en la línea 24.

    Nota: hay que tener cuidado de no repetir los indicadores.

ión que se usaran en la pantalla se deben especificar a nivel registro esto es que se debe estar en la pantalla display record y con la opción 8 (select keyword).

La cual desplegara la siguiente pantalla:

Con la opción Indicador keyword se definen los teclas de funciones a utilizar.

En esta pantalla se definen las teclas de función, se pueden definir toda las teclas que se deseen, estas pueden ser de F1…F24, Re Pag., Av. Pag. etc. Las teclas de función declaradas en las pantalla funcionan de la siguiente manera, cuando el usuario presione la tecla correspondiente al iniciador este se prendera por lo tanto en el programa sabremos cuando esto ocurra.

Para indicar el uso de una tecla de función se teclea ‘CFnn ‘ y el número de la función que se utilice, ejemplo para definir la tecla F3 que seria la de salida o F12 para cancelar la operación tendría que definir en keyword CF03 o CF12 receptivamente, la cual se le asigna un indicador, por lo general se opta por el numero de la función.

    Funciones más usuales.

    F3 o F12 .- Salir , Al presionar cualquier tecla se sabandona el diseño.

    F14 .- Regla. ,Al presionar esta tecla nos despliega una regla, en la posición actual

del cursor, al presionar nuevamente la tecla la regla desaparece.

    F15 .- Imprimir, Al presionar esta tecla se imprime lo que tengamos en la pantalla.

F18 .- Al presionar esta tecla envía el cursor a la posición del campo siguiente.

F19 .- Al presionar esta tecla envía el cursor a la posición del campo Anterior.

F22 .- Al presionar esta tecla despliega la línea de comando, donde podemos ejecutar cualquier comando de OS/400.

Ambiente Data Description Speciifications (Dds).

El ambiente DDS es el metodo nativo preferentemente para describir datos en el equipo as/400 y consiste en lo siguiente:

1.-    archivos fisicos.

2.-    archivos logicos.

3.-    archivos de pantalla.

4.-    archivos para impresión (reportes).

todos los archivos descritos por DDS pueden ser usados por todos los componentes de software del as/400.

Codificacion De Archivos Fisicos.

OBJETIVOS.

Codificar especificaciones de descripcion de datos DDS y crear archivos fiscos en el equipo as/400.

Explicar la funcion de los campos de archivos referenciados y codificar la DDS para crear un archivo para la base de datos del equipo as/400.

El ‘rpg’ maneja formatos fijos al generar programas. Estos formatos requieren un orden determinado y es el siguiente: (estos son los mas comunes)

  1. CONTROL
    1. DESCRIPCION ARCHIVOS
    2. ADICIONALES
  2. ENTRADA
    1. CONTROL
  1. SALIDA (este es poco comun en ‘jde’)

ESPECIFICACIONES DE CONTROL: HOJA ‘H’

Para Definir Datos Generales Y Comentarios Del Programa

Columns . . . : 1 71 Browse MTY2/JDESRC

SEU==> P550001

FMT H …..H……..1..CDYI….S…………..1.F……………………….

*************** Beginning of data *************************************

0001.00 H/TITLE P550001 – Actualizacion de fechas de conteo por mo

0002.00 H* —————————————————————

0003.00 H*

0004.00 H* This unpublished material is proprietary to

0005.00 H* J. D. Edwards & Company. All rights reserved.

ESPECIFICACIONES DE ARCHIVOS: HOJA ‘F’

LAS ESPECIFICACIONES DE DESCRIPCION DE ARCHIVOS F) DEFINEN TODOS LOS ARCHIVOS REQUERIDOS EN EL PROGRAMA.

A CONTINUACION VEMOS EJEMPLOS EN ESTE TIPO DE FORMATO:

SEU==> P550004

FMT FX . ..Ffilename+ IPEAF……..L..I……..Device+……KExit++++Entry++A….U

0034.00 FF0001 IF E K DISK UC

0035.00 FF41021LAIF E K DISK UC

0036.00 F I41021 KRENAMEI41021A

0037.00 FF550004 O E K DISK UC

0038.00 FDSP01 CF E Workstn

0039.00 FR550004 O E Printer

Pmt SeqNbr Filename Typ Desig EOF Seq Fmt Mode RAT Device K

FX 0034.00 F0001__ I
F _ _ E _ K
DISK___ _

Exit Entry A/U Cond

_____ ______ _ UC

Type.- I- Input, O- Output, U- Update, C- Combined

Desig- P- Primario, F- Full.

Fmt- F- Descripción por Programa, E- Descripción Externa

RAT- K- Indexado (solo para Desc. Ext.), ‘ ‘= Secuencial.

Device- Disk, Workstn, Printer.

Columns . . . : 1 71 Browse MTY2/JDESRC

SEU==> P550004

FMT FC … ..F……….……..Ext-record………………RcdnbrKOption….Entry+++….

0036.00 F I41021 KRENAMEI41021A

0037.00 FF550004 O E K DISK UC

0038.00 F****************************************************************

Pmt SeqNbr ExtRcd RcdNbrFld Cont Option Entry

FC 0036.00 I41021 _______ K
RENAME
I41021A

ESPECIFICACIONES ADICIONALES: HOJA ‘E’

ESTE FORMATO SE UTILIZA PARA DEFINIR TABLAS Y/O ARREGLOS.

Columns . . . : 1 71 Browse MTY2/JDESRC

SEU==> P550001

FMT E …..E….FromfileTofile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++++

0043.00 E* PROGRAM TABLES AND ARRAYS

0044.00 E* ————————-

0046.00 E EMK 64 4 Error Msg

0048.00 E* Totaling Array for – Units – Returned

0049.00 E TTDOCO 10 8 0

0050.00 E NOM 1 1 30 Tabla Cías.

1307.00 C***********************************************************

1308.00 **

1309.00 BLACK & DECKER

Pmt SeqNbr FromFile ToFile Tbl /Rcd /Tbl Len P/B/L/R Dec A/D

E 0049.00 _______ ______ TTDOCO ____ _10 __8 ___ __0 ___

AltName Len P/B/L/R Dec A/D Comment

_______ ___ _ _ _ ________

ESPECIFICACIONES DE ENTRADA: HOJA ‘I’

Las especificaciones de entrada (i) describen los registros y campos a ser usados en el programa.

No se necesitan las especificaciones de entrada (i) para los archivos descritos externamente.

Columns . . . : 1 71 Browse MTY2/JDESRC

SEU==> P550004

FMT DS …..IDsname…NODsExt-file++………….OccrLen+………………..

0057.00 IDSTXT DS 240

0058.00 I 1 40 VTX001

0059.00 I 41 80 VTX002

0060.00 I 81 120 VTX003

Pmt SeqNbr DtaStrName Nbr Opt DS ExtFName Occurs Len

DS 0057.00 DSTXT _ _ DS _________ ____ 240

Columns . . . : 1 71 Browse MTY2/JDESRC

SEU==> P550004

FMT J ….I………….……………………………….PFromTo++ DField+…L1M1FrPlMnZr.

0058.00 I 1 40 VTX001

0059.00 I 41 80 VTX002

FORMATO PARA DEFINIR CONSTANTES

FMT N …..I…………..Namedconstant+++++++++C………Fldnme………….

0020.00 I ‘abcdefghijklmnopqrstuvw -C MINS

0021.00 I ‘xyz’

Pmt SeqNbr Constant DataType FldName

N 0019.00 ‘0123456789’
C
NUM

ESPECIFICACIONES DE CALCULO: HOJA ‘C’

Las Especificaciones De Calculo (C) Describen Las Operaciones A Realizar Por El Programa E Indican El Orden En Que Deben Realizarse.

FMT C …..CL0N01N02N03Factor1+++Opcde.Factor2+++ResultLenDHHiLoEqComments++++

0125.00 C* Read master file input.

0127.00 C READ I4102A 99LR

0130.00 C CANTID MULT COSUNI $PRECI

Pmt SeqNbr Lvl N01N02N03 Factor 1 OpCode Factor 2 Result

C 0127.00





READ
I4102A

Len Dec H/N/P Hi Lo Eq Comment









99
LR
lectura

USO DE INDICADORES

FMT C …..CL0N01N02N03Factor1+++Opcde…Factor2+++ResultLenDHHiLoEqComments++++

0153.00 C READ CLIENTES 99

0154.00 C *IN99 IFEQ ‘0’

0155.00 C MOVELMCU $MCU

0156.00 C …….

0157.00 C MOVE ‘1’ *IN33

ESTADOS DE UN INDICADOR:

    A) ACTIVADO => ‘ON’ = ‘1’

B) DESACTIVADO => ‘OFF’ = ‘0’

CICLO LOGICO DEL RPG

PROGRAMACION BATCH

PROGRAMACION INTERACTIVA

PREPARACION PREVIA A LA CODIFICACION DEL PROGRAMA

– DESCRIPCION DEL PROGRAMA (Narrativa del Programa)

  • IDENTIFICACION DE ARCHIVOS DE DATOS
  • IDENTIFICACION DE PANTALLAS
  • IDENTIFICACION DE ARCHIVOS DE IMPRESIÓN
  • DIAGRAMA DE FLUJO Y PSEUDOCODIGO

EJEMPLO:

DESCRIPCION DEL PROGRAMA

SE NECESITA UN PROGRAMA EN RPG PARA CONSULTAR LA DIRECCION Y TELEFONO DE LOS CLIENTES.

IDENTIFICACION DE ARCHIVOS

IDENTIFICACION DE ARCHIVOS

DDS DEL ARCHIVO DE CLIENTES

** ARCHIVO FISICO: ‘CLIENTES’ BIBLIOTECA: RPGLIB

R REGCLI

NUMCLI 6 0

NOMBRE 30

DIRECC 15

TELEF 7 0

TIPOCL 3

LIMICR 8 0

STATUS 1

K NUMCLI

IDENTIFICACION DE PANTALLAS

. PANTALLAS EXISTENTES

Opción 3 de SDA

DDS

. PANTALLAS NUEVAS

Opción 1 de SDA

DDS

OPERACIONES ARITMETICAS

    ADD        (SUMAR)

    SUB        (RESTAR)

    MULT        (MULTIPLICAR)

    SQRT        (RAIZ CUARADA)

DIV        (DIVIDIR)

Z-ADD        (INICIALIZA Y MUEVE NUMERO)

1.-    Solo para campos numericos

2.-     La operación no cambia el contenido de los campos del factor 1 y 2

a menos de que se especifiquen tambien en el campo de resultado.

3.-    Cualquier dato colocado en el campo de resultado reemplaza al dato

que existia en ese campo.

4.-    El rpg/400 no genera errores si hay desbordamientos aritmeticos.

5.-    En las operaciones: add, sub, mult y div, el factor 1 puede omitirse.

6.-    Si el factor 1 no se especifica, la operación se realiza como si en el factor

  1. Y en el campo de resultado existiera el mismo campo.

7.-    Todos los campos deben de estar definidos en el programa, la definicion

puede provenir de:

  • Un archivo descrito externamente.
  • Un archivo descrito por programa (especificaciones i)
  • Especificaciones de cálculo.

Operaciones con archivos

SETLL (Set Lower Limit)

El comando setll es usado para posicionar el apuntador en un registro buscado, el apuntador se posicionara arriba del registro que sea igual o mayor a la llave dada como parámetro de busqueda.

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
KEY SETLL FILE ó REG. In In

Existen dos formas de usar el SETLL

  • Se puede usar para posicionar y verificar que el apuntador se posicione antes del primer registro que sea igual a la llave

Ejemplo

Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETLL I4101 71

El indicador 71 se activara si al hacer el SETLL se encuentra un registro que sea igual al argumento de busqueda (IMKY01)

  • Posiciona el apuntador antes del registro que sea mayor o igual al argumento de búsqueda y con el indicador en el Hi verifica que se cumpla esta condición

Ejemplo

Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETLL I4101 72

En este caso es al revés el indicador se activara si ningún registro es mayor o igual a la llave

  • Se pueden usar ambos indicadores al mismo tiempo si asi se necesita

Ejemplo

Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETLL I4101 72 71

Por ejemplo si tuvieramos los siguientes valores para la llave IMKY01

23 1) si IMKY01=60

30 2) si IMKY01=35

60 3) si IMKY01=90

70

80

85

Para el caso 1 Para el caso 2
  1. indicador 71 se activa
1) indicador 72 no se activa
  1. indicador 71 no se activa
2) indicador 72 no se activa
  1. indicador 71 no se activa
3) indicador 72 se activa

Posiciona el apuntador antes de el primer registro que sea mayor a la llave dada

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
KEY SETGT FILE ó REG. In In

KEY.- es la llave que se va a usar para posicionar el apuntador en el registro buscado

FILE ó REG.- nombre del archivo o registro al que se le va hacer el SETGT

Factor 1 OpCode Factor2 Hi Lo Eq
IMKY01 SETGT I4101

READ

Hace una lectura secuencial al archivo

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
READ File ó Reg.

File ó Reg.- nombre del File o registro que se va a leer

Ejem.

Factor 1 OpCode Factor2 Hi Lo Eq
READ I41021

READE

Es parecido al read, con la diferencia de que lee solo los registros que sean iguales a la llave. El indicador se prendera cuando el registro leido no sea igual a la llave dada ó cuando se llegue al fin del archivo

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
Key READE File ó Reg. 81

KEY.- es la llave que se va a usar para posicionar el apuntador en el registro buscado

FILE ó REG.- nombre del archivo o registro al que se le va hacer el READE

Ejem.

Factor 1 OpCode Factor2 Hi Lo Eq
IMITM READE I4101 81

Suponiendo que el valor de IMITM=1542 y que el archivo I41021 estuviera llaveado por IMITM solo van a leer los registros del F4101 cuyo IMITM sea igual a 1542, y el indicador 81 se prendería cuando ya no sean iguales los registros a la llave buscada.

El READE casi siempre se maneja en conjunto con el SETLL, para primero posicionar el apuntador y luego ir leyendo los registros que sean iguales a la llave especificada.

READP

Lee el registro anterior, al que esta posicionado actualmente, hace una lectura regresiva

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
READP File ó Reg. 81

Ejem.

Factor 1 OpCode Factor2 Hi Lo Eq
READP I4101A 81

Por ejemplo si el registro en el que se encuentra actualmente

45

50 al hacerle el READP

52
en el que se encuentra actualmente

60

CHAIN

Posiciona y lee el registro que cumpla con la llave dada, este comando es utilizado para hacer una busqueda directa.

El indicador se activara cuando no se encuentre ningún registro que cumpla con la llave, si indicador esta apagado quiere decir que se encontró el registro, lo lee y se posiciona en el primer registro que cumpla con la llave.

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
Key CHAIN File ó Reg. 81

KEY.- es la llave que se va a usar para posicionar el apuntador en el registro buscado

FILE ó REG.- nombre del archivo o registro al que se le va a hacer el CHAIN

Ejem.

Factor 1 OpCode Factor2 Hi Lo Eq
LIKY01 CHAIN I41021 81

Operaciónes aritméticas:

ADD

Operación de suma

Sintaxis

Factor 1 OpCode Factor2
Valor1 ADD Valor2 Resultado

Resultado= Valor1 + Valor2

Factor 1 OpCode Factor2

ADD Valor Resultado

Resultado= Resultado + Valor

Ejem.

Factor 1 OpCode Factor2
Precio ADD Iva CantT 15 2

NOTA: hay que definir los campos de trabajo en este caso CantT se definio como un campo númerico de 15 enteros con 2 decimales, solo es necesario definirlos una vez, el campo de Precio e Iva deben haber estado definidos si no provenian de ningún archivo.

SUB

Operación de resta

Sintaxis

Factor 1 OpCode Factor2
Valor1 SUB Valor2 Resultado

Resultado= Valor1 – Valor2

Factor 1 OpCode Factor2

SUB Valor1 Resultado

Resultado= Resultado – Valor1

Valor1.- Cantidad a restar

Valor2.- Cantidad a la que se le va a restar

Resultado.- variable donde quedara el resultado

Ejem.

Factor 1 OpCode Factor2
CantInv SUB CantVend CantRest 15 0

MULT

Operación de multiplicación

Sintaxis

Factor1 OpCode Factor2 Resultado Len Dec
Valor1 MULT Valor2 Resultado 15 0

Resultado= Valor1 * Valor2

Factor1 OpCode Factor2 Len Dec

MULT Valor1 Resultado 15 0

Resultado= Resultado * Valor1

Nota: el campo de Resultado debe estar definido, es decir hay que especificar que sea númerico, su longuitud y número de decimales

DIV

Operación de división

Sintaxis

Factor1 OpCode Factor2 Resultado Len Dec
Valor1 DIV Valor2 resultado 15 0

Resultado= Valor1/ Valor2

Factor1 OpCode Factor2 Len Dec

DIV Valor1 Resultado 15 0

Resultado= Resultado/Valor1

Factor1 OpCode Factor2 Result Len Dec
Cant1 DIV 5 Cant_Div 15 2

Cant_Div = Cant1/5= 450.2/5= 90.04

SQRT

Raíz cuadrada

Factor1 OpCode Factor2 Resultad Len Dec

SQRT Valor resultado 15 0

Valor.- cantidad a la que se le va a sacar la raíz cuadrada

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec

SQRT 100 RaízC 15 0

RaízC= 10

Mover Datos

Z-ADD

La operación Z-ADD sirve para inicializar el campo de resultado con el valor del factor1, esta operación solo es valida para campor numéricos

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec

Z-ADD Valor2 Resultado 15 0

Valor2= cantidad con la que se va a inicializar el campo de resultado

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec

Z-ADD 500 Cant 15 0

Quedaria

Cant= 500

Nota: ambos deben ser de tipo numérico, con el Z-ADD no se utiliza el factor1

MOVE

Esta operación es utilizada para mover datos y alinearlos a la derecha, la operación MOVE transfiere los caracteres del factor 2 al campo de resultado . el movimiento empieza con el carácter que esta más a la derecha del factor 2.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec

MOVE Campo2 Campo3 20

Hay varias maneras en que se pueden mover los datos con move a continuacion se dan algunos ejemplos para el move

Caso1

Cuando ambos campos son de tipo carácter y el campo de resultado es más largo que el factor 2

Ejem
ANTES
Factor2= F I L E
Resultado= S O F T W A R E
DESPUES
Resultado= S O F T F I L E

Caso 2

Cuando ambos campos son de tipo númerico y el campo de resultado es más largo que el factor 2

ANTES
Factor2=

7

8

9

Resultado=

1

2

3

4

5

6

DESPUES
Resultado=

1

2

3

7

8

9

Caso 3

El factor 2 es númerico y el campo resultado es tipo carácter y es más largo que el factor2

ANTES
Campo1=

2

3

4

Campo2= u n o d o s
DESPUES
Campo2= u n o

2

3

4

Caso 4

Ambos campos son de tipo carácter solo que el campo de resultado es más corto que el factor2

ANTES
Factor2= u n o d o s
Resultado= t r e s
DESPUES
Resultado=

o d o s

Caso 5

Ambos campos son numericos el campo resultado es más corto que el factor2

ANTES
Campo1= u n o d o s
Campo2= t r e s
DESPUES
Campo2=

o d o s

MOVEL

La operación MOVEL transfiere los caracteres del factor2 al campo de resultado, empieza a mover los caracteres de izquierda a derecha del factor 2 al campo de resultado.

La forma en que mueve los caracteres es muy parecida a la del MOVEL solo que al revés empieza a mover de izquierda a derecha.

Estos son algunos ejemplos

Caso 1

El campo resultado es más largo que el del factor2, ambos campos son de tipo carácter

ANTES
Factor2= F I L E
Resultado= S O F T W A R E
DESPUES
Resultado= F I L E W A R E

Caso 2

El campo resultado es más largo que el del factor2, ambos campos son de tipo numerico

ANTES
Factor2= 1 2 3 4
Resultado= 5 6 7 8 9 0 1 2
DESPUES
Resultado= 1 2 3 4 9 0 1 2

Los demás ejemplos son parecidos a los vistos en el move solo que en lugar de alinear el campo del factor2 a la derecha lo alinea a la izquierda al utilizar el movel

MOVEA

Mueve todos los campos de un arreglo a una variable

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec

MOVEA NomArreglo VarResult Long

Por ejemplo si tenemos un arreglo llamado NAME de longuitud 10 tipo caracter y se quiere mover a una variable llamada alumno de la misma longuitud y tipo.

NAME

E D G A R
O M A R
1 2 3 4 5 6 7 8 9 10
Factor1 OpCode Factor2 Resultad Len Dec

MOVEA NAME Alumno 10

Al hacer el MOVEA quedaría:

Alumno= EDGAR OMAR

Condicionales y Ciclos

IFxx

Condición IFxx, es un condicional para realizar determinada acción o no

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Campo1 Ifxx

{Operac

ELSE

{Operac

ENDIFCampo2

Campo1.- campo que se va a comparar

xx.- tipo de comparación, pueden ser: EQ,NE,GE,GT,LE,LT

Campo2.- variable o valor con el que se comparara

También se pueden adicionar los operadores lógicos AND y OR

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Campo1 IFxx

ANDxx

Orxx

{Operac

ENDIFCampo2

Ejem

Factor1 OpCode Factor2 Resultad Len Dec
$DOC

$CANTIFEQ

ANDNE

MOVE

ELSE

MOVE

ENDIF‘PA’

‘0’

‘A’

‘B’CLIEN

CLIEN1

CASxx

Este comando permite hacer una selección de la subrutina a ejecutar; si se cumple la comparación entre el factor1 y el factor2, la subrutina especificada en el campo resultante es ejecutada.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Campo1 CASxx Campo2 NomSubrutina

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec
Mov CASEQ ‘b’ Baja

CABxx

Este comando permite hacer una comparación entre el factor1 y el factor2; si esta comparación resulta verdadera el programa mandara el control al TAG asociado con la etiqueta especificada en el campo resultante

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Campo1 CABxx Campo2 Etiqueta

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec
Mov CABEQ ‘1’ Alta

DO

Inicia y procesa un grupo de operaciones y se llevan acabo tantas veces como se especifique en el contador o variable

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
DO

{Operac

ENDDOCte. ó Var

ejem

Factor1 OpCode Factor2 Resultad Len Dec
DO

Add

ENDDO10

2Sum20

Estará sumando 2 a Sum hasta que sean 10 veces, que es lo que se especifico

DOWxx

Este ciclo se va a llevar acabo mientras la condición especificada para este ciclo sea verdadera

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Campo1 DOWxx

{Operac

ENDDOCampo2

Campo1.- campo que se va a comparar

xx.- tipo de comparación, pueden ser: EQ,NE,GE,GT,LE,LT

Campo2.- variable o valor con el que se comparara

Factor1 OpCode Factor2 Resultad Len Dec
ILMCU DOWEQ

WRITE

ENDDO’01’

I5701

EXSR

Manda ejecutar una subrutina, puede ser ejecutada desde el menú principal o de cualquier otra subrutina que la mande ejecutar.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
EXSR NomRutina

NomRutina.- nombre de la subrutina que se va a ejecutar

BEGSR… ENDSR

El begsr marca el inicio de una subrutina y con el endsr se cierra el bloque de la subrutina

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Precios BEGSR

Bloque

De la

Rutina

ENDSR

EXFMT

Permite enviar y leer un formato de pantalla

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
EXFMT NomPantalla

GOTO,TAG

El Goto permite variar el flujo de un programa, al llegar a el Goto Etiqueta manda el control del programa a donde se encuentra la etiqueta especificada en el Goto. Esto se hace con el TAG Etiqueta que marca la parte del programa a donde se mandara el control del programa cuando se ejecute el GOTO.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
GOTO

{cuerpo

{del pgm

TAGEtiqueta

Etiqueta

Actualización de Registros

UPDAT

Actualiza los cambios hechos a un registro

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
UPDAT NomRegistro ó Archivo

Nota: primero hay que posicionar el apuntador en el registro que se desea actualizar

Si en el factor 2 se especifica el nombre de un formato de pantalla, la operación UPDATE actualiza los datos de la pantalla .

ejem

Factor1 OpCode Factor2 Resultad Len Dec
UPDAT V01200

DELET

Borra el registro en que esta posicionado actualmente el apuntador

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
DELET NomRegistro

Ó Archivo

WRITE

Escribe un registro nuevo en el archivo especificado, para esto el archivo en el que se desea escribir debe estar declarado en la hoja F una A en la columna de Adición.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
WRITE NomRegistro

o File

ejem

Factor1 OpCode Factor2 Resultad Len Dec
WRITE I4111

Si en el factor 2 se especifica el nombre de un formato de pantalla, la operación WRITE escribe ese formato en la pantalla .

Si en el factor 2 se especifica el nombre de un formato de impresora, la operación WRITE imprime ese formato.

ejem

Factor1 OpCode Factor2 Resultad Len Dec
WRITE Heading

Definición de llaves

KLIST

Define una llave compuesta, se utiliza para declarar una lista de campos llave (KFLD). Esta lista puede ser usada como argumento de busqueda.

Los KFLDs son los campos que forman la llave como campos de archivos, valores fijos o variables; pueden ser de uno a más campos.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
NomKey KLIST
KFLD Campo1
KFLD Campo2
KFLD Campo3

NomKey .- nombre con el que se identificara la llave, este es el nombre con el cual se llamara la llave para una busqueda.

Campo1…3.- son los campos que forma a esta llave

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec
LIKY01 KLIST
KFLD LIMCU
KFLD LILOCN
KFLD LIITM

Parámetros

PLIST

Define un nombre único para la lista de parámetros que recibirá o pasara el programa, al ser ejecutado o mandado ejecutar con la operación CALL

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
*ENTRY PLIST
PARM Parámetro1 Lon1 #dec
PARM Parámetro2 Lon2
PARM Parámetro3 Lon3

PARM.- Define cada uno de los parámetros que componen la lista de parámetros del programa

Lon1..n.- longuitud de cada uno de los parámetros y tipo

CALL

Manda llamar un programa para ser ejecutado, si el programa al que va a ser llamado requiere que le sean pasado parámetros se especificaran aquí, al mandarlo ejecutar con el comando CALL

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Move Dato1 ParaEntr1
Movel Dato2 ParaEntr2
Movel Daton ParaEntrn
CALL Programa
PARM ParaSal1
PARM ParaSal2
PARM ParaSaln

Dato1..n .- son los datos de entrada que requiere el programa que se esta llamando para ejecutado

ParaEnt1..n.- nombres de los parámetros, pueden ser iguales o no, lo que si es importante es el oreden en que son dados, deben ser en el mismo orden en que son especificados en el programa llamado y del mismo tipo.

ParaSal1..n .- son los parámetros que regresa el programa.

OPEN

Comando para abrir un archivo

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
OPEN Archivo

CLOSE

Cierra un archivo abierto

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
CLOSE Archivo

SETOF

Apaga los indicadores especificados en el Hi,Lo,Eq le asigna el valor de 0 al indicador

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
SETOF In In In

Ejem

Factor 1 OpCode Factor2 Hi Lo Eq
SETOF 82

SETON

Operación para activar los indicadores contenidos en Hi,Lo,Eq le asigna el valor de 1 al indicador.

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
SETON In In In

Ejem

Factor 1 OpCode Factor2 Hi Lo Eq
SETON 81

Manejo de Arreglos

LOKUP

Hace una búsqueda a un arreglo o tabla

Sintaxis

Factor 1 OpCode Factor2 Hi Lo Eq
Argumento LOKUP Arreglo ó tabla In

Argumento.- elemento del arreglo o tabla buscado

Arreglo ó tabla.- nombre del arreglo o tabla donde se va a hacer la búsqueda

El indicador se prendera cuando el argumento de busqueda sea encontrado en el arreglo o tabla especificado en el factor 2

Factor 1 OpCode Factor2 Hi Lo Eq
500 LOKUP Precios 81

El arreglo de precios contiene los sig elementos

100

300

500

800

:

en este caso el indicador 81 se prendera, ya que el valor 500 si existe en el arreglo

XFOOT (Cross Foot an Array)

La operación XFOOT suma todos los elementos de el arreglo númerico especificado en el factor2 y deja la suma en el campo resultado

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
XFOOT Arreglo VarResul Long #dec

Ejem

Factor1 OpCode Factor2 Resultad Len Dec
XFOOT ArreIva Suma 15 2

Manejo de Cadenas

CAT

Une dos cadenas de caracteres en una sola

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
String1 CAT String2 StringRes 20

String1 .- es el primer campo que se va a concatenar

String2.- segundo campo string que se unira con el primero

StringRes.- es la cadena de caracteres resultante que quedara da la unión de ambos campos

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec
Nom1 CAT Nom2 Nombre 20

Nom1= Maria

Nom2=Cristina

Al concatenar de esta manera quedaria asi:

Nombre= Maria Cristina

O si se quiere que al concatenar quite los espacios, o deje solo algunos la sintaxis es

Factor1 OpCode Factor2 Resultad Len Dec
String1 CAT String2:n StringRes 20

n.- número de espacios entre los string

Ejem.

Factor1 OpCode Factor2 Resultad Len Dec
Nom1 CAT Nom2:1 Nombre 20

Nom1= Maria

Nom2=Cristina

Al concatenar de esta manera quedaria asi:

Nombre= Maria Cristina

SCAN (Scan String or Array)

La operación SCAN checa la variable tipo carácter o arreglo especificado en el factor2 con el argumento especificado en el factor1. Si el argumento fue encontrado, la posición del el primer carácter de el argumento es pasado al campo resultante. Si un arreglo numerico es especificado como el campo resultante, cada ocurrencia del argumento encontrado en factor2 es pasado en un correspondiente elemento del arreglo.

Sintaxis

Factor1 OpCode Factor2 Resultad Len Dec
Argumento:1 SCAN NomVar Posicion Long #Dec

Argumento.- cadena de caracteres a buscar

NomVar.- variable o campo donde se buscara el argumento

Posición.- nombre de la variable donde se regresa la posición donde encuentra al argumeto (la primera letra de izq. a derecha)

Long. #Dec.- atributos del cammpo resultante

Ejem

Factor1 OpCode Factor2 Resultad Len Dec
Apellido:1 SCAN Name ResPos 1 0

Apellido= Gu

Name=Pablo Guzmán

Al hacer el SCAN

ResPos=7

El lenguaje de control es:

Es único interface consistente para todas las funciones del sistema,Con un CLP podemos controlar programas de aplicación.

  • INTERACTIVO
  • PALABRA CALVE O POSICIONAL
  • CON SOLOCITUD (PROMPT)
  • COMPILABLE
    • RAPIDO
    • LOGICA POTENTE
    • MANEJO DE ERRORES
    • MANIPULACION DE DATOS
    • INTERFACE CON PANATALLA Y DB.
  • DISEÑO PARA CONTROLAR EL FLUJO DE UNA APLICACIÓN.

    PGM (opcional)

    DCLF (    archivo)

    DCL (variables)

    MONMSG

    IF

    ELSE

    SNDRCVF

    [PROGARMA]

    SNDMSG

    CHGVAR

    MONMSG

    GOTO TOP

    ENDPGM(optional)

Reglas de codificación

Nombre de variable.- Para almacenar y actualizar datos y recibir parámetros. Debe empezar con el carácter ‘&’.

Dos puntos (:)._ Separa la etiqueta del mandato

Blancos. Separa los parámetros de un mandato.

Paréntesis ( ) .- Separa las palabras claves y valores.

Diagonal (/). Conecta las partes de nombres calificados.

Apóstrofe ‘ ‘ .- Al comienzo y al final de una serie de caracteres en comillas, tal como ‘ALL’.

DCLF declaración de archivo, este comando sirve para declarar archivos

Toda las variable en un cl siempre se declara con el carácter ‘&’ antes del nombre de la variable.

DCL VAR (&NAME) TYPE ( ) LEN ( ) VALUE ( )

TYPE( )

LEN ( )

VALUE( )

*DEC Por deafult (15 5)

Maximo (15 9)

Default (0)
*CHAR Default (32)

Maximo (9999)

Default (0)
*LGL 1 Default (0)

Ejemplo:

  1. DCL &A *LGL VALUE (‘1’)

(2) DCL &B *CHAR 5 ABCD

(3) DLC &c *DEC (5 2) 543.21

CHGVAR.

Este comando nos permite cambiar valores a:

Constantes

Otras variable

Expresiones

Conversión entre valores decimales y de caracteres.

CHGVAR VAR (CL- variable) VALUE (expresión)

Ejemplos de CHRVAR

1.- CHGVAR &MONT –37.2

2.- CHGVAR &NAME ‘TOM SMITH’

3._ CHGVAR &CODE A

4.- CHGVAR &COUNT (&CONTEO + 1)

5.- CHGVAR &IN20 (&IN10 *OR &IN15)

6.- CHGVAR &IN99 (&OPCION = 90)

7.- CHGVAR &AMT ((&PRECIO. & DESCUENTO /0 * & CANT)

Mas acerca de cambiar variable, CHGVAR

Podemos Trabajar con parte de una variable de caracteres usando %SST

Recuperar o cambiar, todo o parte de local data área.

Uso de los interruptores de trabajo como una variable lógica.

%SUBSTRING O %SST FUNCIÓN INTEGRADA

Identifica parte de una variable de caracteres o *LDA

%SS *LDA           Posicion-inicial longitud )

         nombre –variable

Contenido de la variable o *LDA :

     1 2 3 . . . . X

X= posición – inicial.

Y= longitud.

CHGVAR VAR (&PART) VALUE (%SST(&WHOLE 5 10 ))

CHGVAR VAR (%STT (&WHOLE 5 10)) VALUE (&PART)

Ejemplo de %SUBSTRING

ANTES &NAME: DAVE

CHGVAR VAR(%SUBSTRING(&NAME 4 2)) VALUE(ID)

DESPUÉS &NAME: DAVID

ANTES &DATA: ABCDE12345

&NAME: DAVE

CHGVAR VAR(&NAME) VALUE(%SST(&DATA 2 1))

DESPUÉS &NAME: B

ejemplo 2

usar una variable para posición inicial

PGM

DCL VAR (&TEAM) TYPE(*CHAR) VALUE (ABCDEFGHIJKL)

DCL VAR(&LIB) TYPE (*CHAR) LEN (6) VALUE (IWLIBX)

    CONCATENACION

Ejemplo de concatenación:

Cliente XYZ corporación, numero de cuentea 54321, su crédito vencido por 30 días.

&CUSNAME &CUSNUMALPH &DAYSALPH

PGM

DCL &CUSNAME *CHAR 25 ‘XYZ CORPORATION’

DCL &CUSNUM *DEC (5 0)

DCL &CUSNUMALPH *CHAR 5

DCL &DAYS *DEC 3 0

DCL &DAYSALPH *CHAR 3

CHGVAR &DAYSALPH &DAYS

CHGVAR &CUSNUMALPH &CUSNUM

SNDMSG MSG(‘Cliente’ *Bcat & cusname + CUSNUMALPH + *CAT ‘, numero de cuenta ‘    *BCAT & c

Cuando deseamos condicionar un programa CL solo puede ejecutar un comando o una etiqueta después de la condición.

IF COND ( exprecion ) THEN (comando)

ELSE CMD(comando)

Operadores relacionales :

Operadores relacionales

<

=

>

<=

_<

_>

>=

_=

*LT

*EQ

*GT

*LE

*NL

*NG

*GE

*NE

Menor que

Igual

Mayor que

Menor igual

No menor

No mayor

Mayor igual

No igual o distinto

Ejemplo :

1.- IF COND (&RESP * EQ 5 ) THEN ( CALL PGM (CUSING))

2.- IF (&AMTDUE > ) THEN ( CALL ARC900)

3.- IF (&AMTDUE *GT 1000) SENBRKMSG MSG (‘HOLA’)

ELSE CDM (GOTO LABEL3)

4.- IF (&A *NE &b) RETURN

5.- IF (&A = &B)

ELSE RETURN

6.- IF (&IN99) GOTO ENDLABEL

Otra forma de usar el IF para que ejecute mas de una línea se utiliza la siguiente sentencia

IF COND (condición) THEN (DO)

CALL PGM1

CALL PGM2

END DO

ELSE CMD (DO)

CALL PGM3

CALL PGM4

ENDDO

Mandato de conversión de fecha, cvtdat

Cvtdat date (constannte o variable cl) tovar( variable CL)

Fromfmt *JOB     *JOB            *JOB

*SYSVAL     *SYSVAL        *SYSVAL

*MDY TOFMT     *MDY TOSEP     *NONE

*YMD            *DMY            *CARÁCTER SEPARADOR

*JUL            *JUL

JEMPLO CVTDAT

PGM

DCL VAR (&DATE) TYPE (*CHAR) LEN(6)

DCL VAR (& YMRD) TYPE (*CHAR) LEN(6)

RTVSYSVAL SYSVAL(QDATE) TOVAR(&YRMD) +

FORMFTM(*SYSVAL) TO FMT(*YMD) TOSEP (*NONE)

CALL PGM(PYC50) PARM(&YRMD)

….

….

….

ENDPGM

MONMSG

Este comando se utiliza para supervisar mensajes de error dentro de un programa

Ejemplo: Disponibilidad de archivo.

ALCOBJ OBJ((PRLIB/PRMST *FILE *EXCL) WAIT(0)

MONMDG MSGID(CPF1002) EXEC(SNDURSMSG MSG(‘ARCHIVO +

PLANILLAS EN USO’) TOMSGQ(*EXT)

DLCOBJ OBJ((PRLIB/PRMST * FILE *EXCL))

Mandato para supervisar mensaje

MONMSG MSGID() CMPDTA9) EXEC()

MSGID- requerido

MSGID (MCH1211)        solo este mensaje.

MSGID (CPF1500)        CPF1500 – CPF1599

MSGID (CPF0000)        CPF0000 – CPF9999

MSGID (CPF9999)        Error de funcion: se activa por mensaje de

Escape no supervisados

CMPDTA – (Opcional)

Ejemplo

MONMSG MSGID(CPF2182) CMPDTA(PLALIB)

EXEC – (Opcional)

Mandato CL

Pgm

DCL

DCL

DCL

MONMSG         Nivel de programa

MONMSG        compruebe aquí si el mensaje esta supervisado

MONMSG        Supervisión de todos los mandatos de programa

NO EXEC: ignore

MONMSG        Nivel de mandato

MONMSG        Compruebe aquí primero si el mensaje esta supervisado

Supervisar solo el mandato anterior.

NO EXEC: ignore.

ENDPGM

Ejemplo de supervisar mensajes

Comprobar existencia y autorización de un objeto

CHKOBJ OBJ (nombre-objeto) +

OBJTYPE(CPF- tipo-de-objeto) + AUT(derecho-de automatización)

Ejemplo:

1 CHGOBJ OBJ(IWLIB/APR010 OBJTYPE(*PGM) /* existencia*/

MONMSG…………..

2 CHKOBJ OBJ(APPVEND) OBJTYPE(*PGM) + /* existencia*/

MBR(APPVAND) AUTO(*DLT) /*y autorizacion*/

MONMSG…………

Ejemplo de supervisar mensajes

PGM

DCL…

/*NVEL DE PROGRAMA

MONMSG CPF9801 EXCE(GOTO NO ENCONT)

MONMSG CPF7302

/* FIN NIVEL DE PROGRAMA

CHKOBJ PYPMAST *FILE

CHKOBJ GLPMAST *FILE

DE NUEVO: CRTPF QTEMP/WORK…..

MONMSG CPF7302 EXEC (DO)

DTLF QTEMP/WORK

GOTO DE NUEVO

ENDDO

CRTPF PLALIB/PYPTRAN

GOTO FIN

NO ENCONT: SNDURSMSG TOMSGQ(*EXT) MSG(‘ NO ENCUENTRA EL ARCHIVO+ CHECAR LISTA DE BILBIOTECA DE LA SESIOBN’0

FIN: ENDPGM

Acerca de albertoarceti
Administrador de sistemas informáticos, y erps en la industria farmacéutica.

11 Responses to Manual As400:I.-Introducción A As/400 (comenta o siguenos para acceder)

  1. Anónimo dice:

    esta muy bueno por favor como descargo tu manual

  2. Radu Costinas dice:

    Muy buena aportación. Me ha sido de gran ayuda

  3. Anónimo dice:

    Grandioso aporte!!

  4. Francisco dice:

    muy bueno el manual, estoy trabajando desde hace poco con AS/400 y tengo una duda sobre las consultas, y es que no se si hay alguna forma en la definición de campos resultado poner alguna condición del tipo if(campo1=0, 1,2)?

    Estoy buscando información y no encuentro nada al respecto

    Muchas gracias, Saludos

  5. Angela dice:

    Buenas noches, muy bueno el manual…. soy nueva en el uso de AS400 y quiero saber como puedo validar si los programas objeto (compilados) están en la misma biblioteca que los programas fuentes, ??? como los puedo diferenciar si estan juntos????

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: