Natural Adabas

download Natural Adabas

of 12

Transcript of Natural Adabas

NATURAL-ADABASPASCUAL MARTINEZ CRUZ0.- Introduccin. 1.- Tipos de Datos. 2.- Comentarios. 3.- Declaracin de variables. 4.- Asignacin de valores a Variables. 5.- Arrays. 6.- Operaciones con arrays. 7.- Objetos de NATURAL. 8.- Operaciones Aritmticas. 9.- Bucles (Tipos). 10.- Instrucciones Condicionales. 11.- Trabajo con Ficheros. 12.- Trabajo con Vistas de Adabas. 13.- Subrutinas. 14.- Llamadas a rutinas. 15.- Edicion y compilacin en entorno Mainframe.

PASCUAL MARTINEZ CRUZ

26-11-2007

[email protected]

0.- INTRODUCCIN:El presente documento pretende ser una resumida gua de referencia introductoria para para programadores que trabajen por primera vez con Natural Adabas en entorno Mainframe. Adabas es una base de datos diseada por Software AG para sistemas crticos y Natural el lenguaje de programacin para operar con esta base de datos. Es conveniente tener un manual de referencia sobre Natural para poder sacar ms partido de este lenguaje de programacin.

1.- TIPOS DE DATOS:A Alfanumrico. B Binario. C Atributo de Control. D Fecha. F Punto Flotante. I Entero. L Lgico. N Numrico. P Numrico Empaquetado. T Hora.

2.- COMENTARIOS:Se comenta cdigo con * y /* * Comentario para una lnea entera. MOVE 2 TO A /* Comentario para el resto de lnea

3.- DECLARACION DE VARIABLES:Todos los programas NATURAL empiezan con un bloque de declaracin de variables. Las variables se encierran en este tipo de bloque: DEFINE DATA PARAMETER 1 Area-de-parametros. LOCAL 01 Variable 1 (A3) 01 Vvar REDEFINES Variable 1 02 S-var (A1) 02 SS-var (A2)

END-DEFINE En PARAMETER se incluyen las reas de datos que sirven como comunicacin de entrada y salida entre los distintos objetos NATURAL. En LOCAL se declaran las variables,o vistas de ADABAS que se vayan a usar localmente en el programa.Podemos encontrarnos con la instruccin: PARAMETER USING Area_de_parametros. Esta instruccin declara Area_de_parametros como el area de comunicacin de E/S entre los distintos objetos de NATURAL. LOCAL USING Area_de_parametros. Esta instruccin hace que Area de parmetros sea usada localmente en una llamada a cierto subprograma. Las variables van precedidas de un nmero que corresponde con el nivel de declaracin al que pertenecen. Se empieza por nivel 1 o 01, los niveles 02,03 (sucesion secuencial) etc nos indican que esas variables son subdivisiones de la variable que esta declarada un nivel inmediatamente superior.

4.- ASIGNACION DE VALORES A VARIABLES:La asignacin se realiza mediante las instrucciones MOVE,ASSING o el operador := Ejemplos: MOVE 5 TO VALOR VAR1 := VAR2 (VAR1 pasa a valer lo que contiene VAR2) ASSING VALOR = 5 ASSING ROUNDED VALOR = 199.999 (Redondea el valor asignado).

5.- ARRAYS:DEFINICIONES*ARRAY(3) Define una matriz de una dimensin de 3 ocurrencias. ETIQUETA.FIELD(A 20/5) Define una matriz de un campo de la base de datos referenciada en la sentencia marcada por ETIQUETA, con formato alfanumrico, longitud 20 y 5 ocurrencias. * ARRAY(N7.2/1:5,10.12,1:4) Define una matriz con formato N7.2, de 3 dimensiones con 5 ocurrencias en la primera dimensin ,12 en la segunda y 4 en la tercera.

6.- OPERACIONES CON ARRAYS:REFERENCIA A LOS ELEMENTOS DEL ARRAY.*ARRAY(1) Referencia la primera ocurrencia de una matriz de una dimensin. *ARRAY(7:12) Referencia las ocurrencias de 7 a 12 en una matriz de una dimensin. *ARRAY(I+5) Referencia la ocurrencia I+5 de una matriz de una dimensin. *ARRAY(5,3:7,1:4) La referencia se realiza en una matriz de 3 dimensiones , a la ocurrencia 5 de la primera dimensin ,las ocurrencias de 3 a la 7 en la segunda dimensin, y las ocurrencias 1 a 4 de la tercera. *ARRAY(*) Todas las ocurrencias de una dimensin.

7.- OBJETOS DE NATURAL:PROGRAMA: Programa Natural. SUBPROGRAMA: Similar a una librera, los subprogramas son utilizados por programas Natural. SUBRUTINA: Porcin de cdigo Natural donde el bloque del programa es solo una subrutina. HELPRUTINA: Subrutina para mostrar cuadros de ayuda en una aplicacin Natural. COPYCODE: Porcin de cdigo que se puede incluir en un programa Natural (similar a una macro),suele contener cdigo para un tratamiento general de errores. TEXTO: Documentos de texto para describir programas,til si carecemos del diccionario Predict. MAPA: Estructura de cdigo Natural para crear interfaces de aplicacin. AREA GLOBAL DE DATOS: Fuente donde se declaran variables para usarlas de forma global en una aplicacin Natural. AREA LOCAL DE DATOS: Fuente donde se declaran variables para usarlas de forma local en un modulo de una aplicacin Natural.

AREA DE PARAMETROS: Fuente donde se declaran variables o vistas para pasarlas como parmetros a subprogramas,subrutinas externas etc. CLASE: Las clases son unos objetos que se usan en conjunto con NaturalX para crear componentes basados en aplicaciones cliente/servidor. DIALOGO: Los dilogos son objetos que se usan en conjunto con programacin orientada a eventos para crear aplicaciones en entorno grfico.

8.- OPERACIONES ARITMETICAS:SUMA: ADD 3 TO B ADD 4 5 GIVING B /* B vale 3 */ /* B vale 9 */

COMPUTE RES = NUM1 + NUM2 RESTA: SUBTRAC 4 FROM B /* Resta 4 a B*/ SUBTRAC 6 FROM 11 GIVING B /* Resta 6 a 11 y lo guarda en B */ COMPUTE RES = NUM1 - NUM2 MULTIPLICACION: A=3 MULTIPLY A BY 3 MULTIPLY A BY 3 GIVING B COMPUTE RES = NUM1 * NUM2 DIVISION: DIVIDE divisor INTO dividendo A = 20 DIVIDE 5 INTO A DIVIDE 5 INTO A GIVING B DIVIDE 5 INTO 31 REMAINDER C COMPUTE RES = NUM2 / NUM1 /* A vale 4 */ /* B vale 4 */ /* C vale 1 (resto de la divisin) */ /* RES vale la divisin entera /* A vale 9 */ /* B vale 9 */

9.- BUCLES (TIPOS):Bucle FOR. #indice se refiere a la variable de control del bucle. Lo que sigue al TO es el nmero de iteraciones del bucle. STEP nmero , marca el incremento de la variable de control. FOR #indice 1 TO 5 Sentencias END-FOR FOR #indice 1 TO 5 STEP 2 Sentencias END-FOR Bucle REPEAT. Bucle sin condicin de salida.Se sale cuando se encuentra una instruccin ESCAPE,STOP o TERMINATE. REPEAT Sentencias ESCAPE,STOP,TERMINATE END-REPEAT Bucle con condicin de salida.Se sale del bucle cuando la condicin de while sea falsa. REPEAT WHILE #R