EXIRION/OS -BLEM XC-

Page 1

1 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BLEM By Rolando Fernรกndez Benavidez Wednesday, June 20/2012.

BLEM 1.0 Nova32 Development Software


2 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Copyright (C) 2009 Rolando Fernรกndez Benavidez Licensed Material property of Nova32 Development Software Copyright (C) Rolando Fernรกndez Benavidez 2001-2009. All Rights Reserved. Use Restricted Rights Use, duplication or disclosure restricted by Schedule Contract with Nova32 Development Software.

BLEM 1.0 Nova32 Development Software


3 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

INTRODUCCION

En la época actual, donde los negocios son sumamente complejos y variados debido principalmente a la globalización, las nuevas tecnologías de la información, la creciente necesidad de Business Intelligence, es sumamente importante disponer de una herramienta software que de manera sencilla y práctica permita modelar y construir complejos modelos de negocio. BLEM pretende disponer de un lenguaje informático que de forma natural e intuitiva permita realizar una abstracción de los procesos financieros y de negocios a un ambiente computacional que permita satisfacer las necesidades de información comercial de una entidad económica presentes y futuras.

En la actualidad existen excelentes y poderosos lenguajes de programación de propósito general, C, C++,C#, Java, Delphi, etc.) Que satisfacen estas necesidades, recordemos que en el pasado nacieron novedosos lenguajes de programación orientados a los negocios como COBOL, rompiendo el paradigma tradicional de los lenguajes de propósito general y científico como Fortran, a lenguajes exprofeso a los negocios, tanto que en la actualidad continúan en uso constante a la par de las nuevas tecnologías, sin embargo en el mercado actual es tan grande que las necesidades de procesamiento de datos financieros son cada vez mayores y existen innumerables áreas de oportunidad para ser satisfechas por un nueva herramienta software como BLEM.

Rolando Fernández Benavidez Autor

BLEM 1.0 Nova32 Development Software


4 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

TABLA DE CONTENIDO 1 2

3

4

5 6 7

8 9

QUE ES BLEM 1.1 FILOSOFIA CASE DE BLEM ENTORNO DEL LENGUAJE BLEM 2.1 CONCEPTOS BASICOS DE BLEM 2.2 LAS DIVISIONES 2.3 LAS SECCIONES 2.4 LAS INSTRUCCIONES TIPOS DE DATOS 3.1 VARIABLES Y CONSTANTES 3.2 DECLARACION DE VARIABLES 3.3 DECLARACION DE CONSTANTES OPERADORES 4.1 OPERADORES ARITMETICOS 4.2 OPERADORES RELACIONALES 4.3 OPERADORES LOGICOS 4.4 OPERADORES DE ASIGNACION 4.5 PRIORIDAD DE LOS OPERADORES EXPRESIONES 5.1 PALABRAS RESERVADAS 5.2 COMENTARIOS ENTRADA Y SALIDA 6.1 ENTRADAS DESDE TECLADO 6.2 SALIDAS EN PANTALLA ETM PROGRAMACION 7.1 SECUENCIAL 7.2 ASIGNACION 7.3 ESTRUCTURADA 7.4 SELECTIVA SIMPLE 7.5 DOBLE 7.6 MULTIPLE 7.7 REPETITIVA Y DE ITERACION CONDICIONAL 7.8 CONTADORES Y ACUMULADORES 7.9 CICLOS Y REPETIDORES ARREGLOS 8.1 VECTORES 8.2 MATRICES FUNCIONES 9.1 DE BASE DE DATOS 9.2 NUMERICAS 9.3 DE TEXTO 9.4 FECHA, HORA Y DE SISTEMA

BLEM 1.0 Nova32 Development Software

7 16 18 23 25 30 31 34 36 37 38 40 40 44 46 49 50 52 53 58 59 64 65 70 71 72 87 90 96 103 104 105


5 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

10 HERRAMIENTA DE DATOS EN EXIRION OS 10.1 UTILIDAD QMFE 10.2 FORMATO BINARIO DE DATOS 10.3 CREACION Y EDICION DE TABLAS 11 INTEGRACION DE DATOS 11.1 EXPORTAR TABLAS 11.2 IMPORTAR DATASET SECUENCIAL 12 TRANSACCIONES ETM 12.1 INTRODUCCION A ETM 1.0 12.2 API DE ETM 12.3 ETM Y BLEM 12.4 API ETM DE ENTORNO XBASE PARA BLEM 12.5 EIB 12.6 CAMPOS EIB 12.7 AUDITORIA DE TRANSACCIONES EN ETM 13 ANEXO EJEMPLO DE PROGRAMA BLEM CON BASE DE DATOS Y RED ETM 1.0 JCL PARA COMPILACION DE PROGRAMAS BLEM A 16 BITS EN EXIRION OS 1.2600.1 JCL PARA LINKER DE PROGRAMAS OBJETO BLEM A 16 BITS EN EXIRION OS 1.2600.1

BLEM 1.0 Nova32 Development Software

109 112 116 124 125 127 138 138 142 145 146 159 166 180 180


6 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BLEM

BLEM 1.0 Nova32 Development Software


7 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

QUE ES BLEM Para proveer una herramienta software que conjugue lo mejor de antaño y lo mejor de la tecnología más moderna que existe a la fecha, esta herramienta es BLEM.

BLEM es una extensión de lenguaje para la programación en EXIRION + ETM 1.0, de ultima generación, nacido con las bases de generaciones pasadas y el soporte de nuevas tecnologías.

FILOSOFIA CASE DE BLEM BLEM es una herramienta software, para Business Intelligence, Su filosofía y visión de software se basa en los siguientes pilares: 

PRACTICIDAD

EFICIENCIA

INTER-OPERABILIDAD

ABSTRACCION

INCLUSION

EXTENSIBILIDAD

SIMETRIA

AMBITO

MULTI-PLATAFORMA

BLEM 1.0 Nova32 Development Software


8 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Veamos a detalle cada pilar de este nuevo paradigma:

PRACTICIDAD

“Debe permitir modelar y desarrollar software de negocios de forma sencilla, práctica e intuitiva”

EFICIENCIA “Generación de código binario nativo para cada Arquitectura de Hardware, optimizado para obtener el más alto desempeño en tiempo real”

BLEM 1.0 Nova32 Development Software


9 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

INTER-OPERABILIDAD

“Disposición de Ports, Conectores y Herramientas software que garanticen la conectividad con otros sistemas”

BLEM 1.0 Nova32 Development Software


10 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ABSTRACCION “Mediante sintaxis simples y directas, el desarrollador genera intrínsecamente cientos de líneas de código en lenguaje Ensamblador y C, de los cuales algunas pueden ser bastante complejas, pero utilizando BLEM se puede ahorrar este trabajo al programador mediante una capa de abstracción amistosa y familiar al lenguaje de negocio”

INCLUSION “El lenguaje BLEM opera dentro del ambiente del lenguaje C, por lo cual puede implementar la sintaxis y gramática del lenguaje C, dentro de su código de programa de manera natural. Esta es la razón por la cual también recibe el acrónimo “XC (BLEM eXtensions for C)” al igual que su compilador hermano BLAST XC.

EXTENSIBILIDAD “BLEM es también un API que permite utilizar esta nueva plataforma de modelado y desarrollo financiero, para desarrolladores de C & C++, para estos compiladores deberá utilizarse el API BLAST XC”

BLEM 1.0 Nova32 Development Software


11 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SIMETRIA “La sintaxis y gramática BLEM son intrínsecamente simétricos al lenguaje XBASE, coexistiendo una armonía entre ambos lenguajes, convirtiendo a BLEM en un perfecto complemento de XBASE al momento de codificar programas”

AMBITO “BLEM es un lenguaje 100% para BackEnd, es decir está pensado para el desarrollo y modelado de procesos de negocio, únicamente para ser consumidos por otros sistemas FrontEnd, mediante la implementación de bibliotecas objeto estáticas, e invocaciones vía línea de comandos o Terminal de protocolo tipo ETM”

BLEM 1.0 Nova32 Development Software


12 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

MULTI-PLATAFORMA

“Para cualquier arquitectura de hardware donde exista un compilador de ANSI C, seguro existirá también una versión del compilador de BLEM“

BLEM hereda la sintaxis de algunos lenguajes de programación como BASIC, COBOL, PASCAL, FOCAL y naturalmente de C, para permitir una abstracción de los procesos de negocios que a la vez sea sencilla como práctica, permitiendo el desarrollo de complejos programas financieros con el mínimo de líneas de programación.

Con BLEM se puede desarrollar aplicaciones de diversos paradigmas, TOPDOWN y Estructurada, aunque por motivos de mantener un estándar con la programación BASIC clásica, el desarrollo ideal sería la programación TOPDOWN, cuando el desarrollador haya adquirido una habilidad considerable en BLEM podrá también diseñar aplicaciones Estructuradas.

BLEM 1.0 Nova32 Development Software


13 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ENTORNO DEL LENGUAJE BLEM

BLEM 1.0 Nova32 Development Software


14 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ANTECEDENTES HISTORICOS Y BLEM El lenguaje COBOL (acrónimo de COmmon Business-Oriented Language, Lenguaje Común Orientado a Negocios) fue creado en el año 1959 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.

En la creación de este lenguaje participó la comisión CODASYL, compuesta por fabricantes de ordenadores, usuarios y el Departamento de Defensa de Estados Unidos en mayo de 1959. La definición del lenguaje se completó en poco más de seis meses, siendo aprobada por la comisión en enero de 1960. El lenguaje COBOL fue diseñado inspirándose en el lenguaje Flow-Matic de Grace Hopper y el IBM COMTRAN de Bob Bemer, ya que ambos formaron parte de la comisión. Gracias a la ayuda de los usuarios COBOL evolucionó rápidamente y fue revisado de 1961 a 1965 para añadirle nuevas funcionalidades. En 1968 salió la primera versión ANSI del lenguaje, siendo revisada posteriormente en 1974 (COBOL ANS74), 1985 (COBOL ANS-85, ampliado en 1989 con funciones matemáticas, finalizando el estándar actual más usado, conocido como COBOL-ANSI), y en 2002 (COBOL ANS-2002). Desde el año 2007 se viene preparando una nueva revisión del lenguaje.

XBase es el término genérico para todos los lenguajes de programación que derivan del lenguaje de programación dBase, originalmente publicado por AshtonTate. La 'x' significa que existen diversos intérpretes y compiladores para este lenguaje. Ante el éxito de dBase, y la inexistencia de un compilador que generara ejecutables independientes (lo que obligaba a tener cargado dBase en memoria), hizo que proliferaran los compiladores de terceros, que no sólo soportaban la sintaxis de dBase II/dBase III sino que la ampliaban y añadían características, aumentando la calidad al producto. Por otro lado esas extensiones propietarias impedían que ocurriera como en COBOL o C, que un programa podía portarse entre compiladores con respetar las normas estandarizadas. Ashton-Tate inició acciones judiciales contra todos los productos XBase de su tiempo alegando que BLEM 1.0 Nova32 Development Software


15 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

el lenguaje era de su propiedad, y sólo con dBase IV incluyó un compilador. Tras su compra por Borland, estas acciones fueron retiradas (era parte del acuerdo), y Borland promovió el que se declara XBase como estándar ANSI. El comité ANSI comienza a trabajar en 1992 siendo Marc Schnapp su primer portavoz, y participando todas las casas con un producto XBase. Pero no logran un acuerdo al no estar dispuestos a ceder sus extensiones o a cambiar su sintaxis, pese a reconocer todos la necesidad de un estándar. Con el paso de los años los clones de XBase como FoxBase, Clipper y Foxpro fueron quedando en el olvido, dando lugar a los nuevos entornos de bases de datos como los que hoy conocemos, entre ellos Oracle, DB2, MySQL, SQL Server, etc. Con novedosas y poderosas herramientas de gestión de bases de datos, sin embargo desde mi percepción siempre he considerado que los lenguajes XBase, poseen una característica especial que los hace únicos, simplemente su sencillez, permitiendo crear aplicaciones en periodos de tiempo muy cortos y con excelentes niveles de calidad de datos, desde hace mas de 12 años he tenido la oportunidad de laborar en distintos sectores, desde industriales hasta bancarios, motivado en gran medida por la alta calidad y rendimiento que ofrecen los programas escritos en COBOL en las grandes industrias mundiales, en las que he tenido la suerte de participar en nuevos desarrollos de software de gestión principalmente en plataformas Mainframe como OS/390 y Z/OS, en el verano de 2001, tuve la idea de crear un lenguaje que tuviera la potencia de COBOL, la facilidad de XBase para manejar Bases de Datos, la flexibilidad de BASIC para declarar variables, la modularización de PASCAL y la portabilidad de C++, pero todo llevado a un ambiente de ordenadores personales, accesibles para las pequeñas y medianas empresas, que no disponen de los recursos económicos para inversiones IT en plataformas Mainframe, es así como nace BLEM. BLEM “Business Language for Extend Model” “Lenguaje de Negocios para extender el Modelo”, ¿ cual modelo ?, pues el económico de IT para las pequeñas y medianas empresas.

Rolando Fernández Benavidez Autor

BLEM 1.0 Nova32 Development Software


16 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CONCEPTOS BASICOS DE BLEM A lo largo de esta obra nos referiremos simplemente como BLEM a BLEM XC. BLEM es un lenguaje de programación basado en lenguajes como BASIC, COBOL, FOCAL, PASCAL y C, tomando lo mejor de cada lenguaje para integrar un solo lenguaje unificado para los Negocios. A primera vista es muy semejante a COBOL, ya que un programa BLEM está compuesto de Divisiones y Secciones, pero a diferencia de este, en BLEM se pueden declarar variables locales en cada FUNCTION (BLEM soporta la creación de funciones de usuario) o Función, si se desea se puede mantener también el estilo COBOL, donde podemos declarar variables únicamente en la WORKINGSTORAGE SECTION, en BLEM más que una restricción del lenguaje ahora es un estilo y costumbre de cada programador de aplicaciones que utiliza BLEM como plataforma de desarrollo. BLEM tiene como similitud con COBOL, las Divisiones, Secciones e Instrucciones las cuales deben estar en las columnas validas, el compilador soporta desde la columna 7 hasta la columna 79. Columna 7 para comentarios, columna 8 para párrafos y todas las instrucciones deberán colocarse a partir de la columna 12. Como diferencia con COBOL, los párrafos no cuentan con un carácter de terminación como el punto de COBOL, en BLEM cada instrucción ocupara una sola linea por lo cual se vuelve innecesario disponer de un carácter de fin de instrucciones al igual que en BASIC. Un programa en BLEM también es numerado de forma ascendente como los tradicionales BASIC y COBOL, el límite para la numeración de un programa BLEM es 999999. Los programas BLEM tienen una cabecera que permite especificar varios aspectos tanto del sistema para el cual es desarrollado, fecha, programador y objetivo del programa. Los programas BLEM se almacenan en dsets de texto plano con el tipo BLEM en el interior de un data set secuencial en el sistema operativo Nova32 EXIRION OS. BLEM dispone de un rico repertorio de palabras reservadas muy similar al BASIC y PASCAL, pero a diferencia de estos, BLEM es Case-Sensitive, es decir es BLEM 1.0 Nova32 Development Software


17 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

sensible al uso de mayúsculas y minúsculas en cuanto a instrucciones propias de BLEM se refiere, debido principalmente a su herencia con el lenguaje C. En cambio las variables y sentencias XBASE, ETM dentro de los bloques EXEC SQL y EXEC ETM no son Case-Sensitive, por ejemplo una variable con el nombre “clientes” es igual a otra variable llamada “CLIENTES” son dos cosas totalmente similares, esta característica es heredada del lenguaje BASIC, gracias a esta propiedad usted puede también combinar código BLEM(Variables y constantes) con código XBASE, sin ningún problema de compatibilidad, si llegase a ser necesario la creación de una función muy técnica, podría crearla en C, directamente en su código BLEM e invocarla como si de una rutina BLEM se tratase, o incluso podría editar un archivo C externo con sus funciones favoritas con extensión .h y .c e invocarlas desde el código de BLEM. Esta es la característica que le ha dado su nombre BLEM XC (eXtensions for C) a este nuevo lenguaje de programación, existe un compilador gemelo de BLEM XC llamado BLAST XC, a simple vista muy similar, pero posee grandes diferencias en cuanto a reglas sintácticas se refiere, debido principalmente a su naturaleza orientada a objetos, para mas detalles leer la guía de programación en BLAST XC publicada por Nova32 Development Software. Veamos un sencillo programa BLEM, con el clásico “Hola mundo…”: 001000 IDENTIFICATION DIVISION 001020 APP-SYS HOLA 001030 PROGRAMMER-SYS ROLANDO FERNANDEZ BENAVIDEZ 001040 SYSTEM-APP EXIRION/OS 001050 ASKDATE 2012/06/15 001060 REMARKS-RM EJEMPLO HOLA 003000 ENVIRONMENT DIVISION 003020 MODULE HOLA0000 004000 DATA DIVISION 004020 WORKING-STORAGE SECTION 004030**ADD YOUR VARIABLES 005000 CONST-STORAGE SECTION 005010**ADD YOUR CONST 006000 PROGRAM DIVISION 006020 PROCESS START SECTION 006030 SYSOUT 006040 DISPLAY “Hola mundo" 006990 DISPLAY “desde BLEM...” 007000 STOP-RUN

BLEM 1.0 Nova32 Development Software


18 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

LAS DIVISIONES

Todo programa BLEM está compuesto por 4 divisiones: 

IDENTIFICATION DIVISION

ENVIRONMENT DIVISION

DATA DIVISION

PROGRAM DIVISION

IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROGRAM DIVISION

BLEM 1.0 Nova32 Development Software


19 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

IDENTIFICATION DIVISION La división de identificación nos permite identificar varias partes del programa, para determinar en qué tipo de computador fue compilado, la fecha, el autor, y el objetivo del programa a grandes rasgos.

Consta de las siguientes instrucciones: APP-SYS

Nombre del programa con su extensión o sin ella PROGRAMMER-SYS

Nombre del programador de la aplicación SYSTEM-APP

Plataforma de computador utilizado y sistema operativo ASKDATE

Fecha de creación REMARKS-RM

Comentarios generales del programa. Por ejemplo podría quedar completada de la siguiente forma: 001000 IDENTIFICATION DIVISION 001020 APP-SYS HOLA 001030 PROGRAMMER-SYS ROLANDO FERNANDEZ BENAVIDEZ 001040 SYSTEM-APP EXIRION/OS 001050 ASKDATE 2012/06/15 001060 REMARKS-RM EJEMPLO HOLA

BLEM 1.0 Nova32 Development Software


20 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ENVIRONMENT DIVISION La división de entorno nos permite definir a nivel interno el nombre del componente que estamos programando, generalmente lo único que hacemos es colocar el nombre del programa sin extensión, así internamente la definición de módulo corresponde con el programa, si la aplicación es TopDown o Estructurada la definición del módulo es automática e incluso el programador podría no especificar un nombre, pero cuando se está desarrollando un programa con el lenguaje hermano de BLEM, el compilador BLAST XC orientado a Objetos, la definición del módulo es sumamente importante ya que internamente a partir de ese nombre el compilador de BLAST genera la class(Clase) sobre la cual estarán integrados todos los miembros que se vayan construyendo a medida que se escribe el programa. Por lo general para evitar complicaciones innecesarias simplemente asignamos el mismo nombre de nuestro programa pero sin la extensión, por ejemplo para el programa CUSTOMERS.BM la ENVIRONMENT podría quedar así:

003000 ENVIRONMENT DIVISION 003020 MODULE CUSTOMERS 003030 Esta división es la más pequeña, es decir no incluye más instrucciones que MODULE. MODULE : Define un nombre para el ID interno del compilador para el programa TopDown o Estructurado, y para una aplicación orientada a Objetos equivale al nombre de la class (Clase).

CREATE: Procede a crear el módulo interno, definido para el programa, en caso de código de BLAST XC.

BLEM 1.0 Nova32 Development Software


21 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

DATA-DIVISION.

La división de datos es una de las más importantes, en esta división podremos crear todas las variables globales utilizadas en todos los PROCESS (Rutinas para un proyecto tipo Aplicativo) ó FUNCTIONS (Funciones para un proyecto de tipo Librería) de un programa BLEM, por compatibilidad con versiones antiguas de COBOL, usted puede definir todas sus variables en esta división o bien puede hacerlo de manera Estructurada pudiendo crearlas al vuelo dentro de cada FUNCTION, En BLEM no hay restricción más que el propio estilo y costumbres del programador. Esta división es del tipo Contenedora, porque dentro de ella existen 2 secciones que son:  

WORKING-STORAGE SECTION CONST-STORAGE SECTION

La estructura de la DATA DIVISION es de la siguiente manera: 004000 DATA DIVISION 004020 WORKING-STORAGE SECTION 005000 CONST-STORAGE SECTION

PROGRAM DIVISION Esta división es en sí misma el cuerpo del programa BLEM, es decir en esta división se encuentran definidos todos los PROCESS (Rutinas) que contienen la lógica de la aplicación. Esta es también una división del tipo contenedora ya que dentro de ella pueden existir tantos PROCESS (Rutinas) como se necesiten. Este tipo de codificación es de naturaleza TopDown, es decir el flujo es de Arriba-Abajo, pudiendo movernos entre los procesos con la sentencia PERFORM o la instrucción GOTO.

BLEM 1.0 Nova32 Development Software


22 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CUSTPROMERS

SERVICES

PERFORM PRODUCTS

REPORTS

Un ejemplo básico de la PROGRAM DIVISION es:

006000 PROGRAM DIVISION 006020 PROCESS START SECTION 006030 SYSOUT 006040 DISPLAY "Hola mundo" 006990 STOP-RUN

LIBRARY DIVISION Cuando el proyecto a compilar es un Aplicativo BLAST XC de tipo Librería se debe utilizar la LIBRARY-DIVISION ya que esta división también de tipo contenedora albergara todas las FUNCTION (Funciones) de nuestro programa BLAST XC el cual puede convertirse al final en una Librería estática o en una librería dinámica. Los proyectos de tipo Aplicativo pueden contener PROCESS (Rutinas) y pueden contener FUNCTION (Funciones), aquí es donde se da una relativa distinción de paradigmas de programación en BLEM, también podríamos decir que los proyectos BLEM de tipo Aplicativo son TopDown y los proyectos BLAST XC de tipo Librería son Estructurados, mas a delante se verá cómo implementar BLEM 1.0 Nova32 Development Software


23 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

aplicaciones mediante orientación a objetos(Disponible únicamente en el compilador gemelo BLAST XC). Por ahora veamos un ejemplo sencillo de la LIBRARY-DIVISION. 006000 006010 006020 006030 006040 006050 006060 006070 007000

LIBRARY-DIVISION. BEGIN. FUNCTIONS-SECTION. EXPORT INTEGER FUNCTION MYSUM ( INTEGER A , INTEGER B ) EXEC. RETURN A + B . END-EXECUTE. END-FUNCTIONS. END-LIBRARY.

Nota: Característica disponible solo en BLAST XC.

LAS SECCIONES Para mantener un nivel de organización legible del código en BLEM, dentro de las divisiones existen unos bloques de código llamados SECTIONS (Secciones), veamos a detalle cada una de ellas.

WORKING-STORAGE SECTION Esta sección nos permitirá definir las variables globales del programa, se pueden definir tantas variables como sea necesario, en temas posteriores se explican las instrucciones y la forma de declarar variables, BLEM soporta un máximo de 2048 variables por programa, para mantener un elevado rendimiento en tiempo de ejecución, el segmento de datos de un programa escrito en BLEM no puede pasar de los 64k de espacio en memoria principal. Por ahora veamos un ejemplo general de una WORKING-STORAGE SECTION: 004020 WORKING-STORAGE SECTION 004030 RESP PICTURE 0 004031 SERV PICTURE 0 004032 STORE SPACE(80) TO SQL1 004033 STORE SPACE(90) TO SQL2 004034 STORE SPACE(80) TO TTABLACLPV 004035 STORE SPACE(40) TO MYROW 004036 PROFILE PICTURE 0 004990** LAYOUT DE VARIABLES NUMERICAS Y DE CARACTERES

BLEM 1.0 Nova32 Development Software


24 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CONST-STORAGE SECTION En esta sección podemos declarar las constantes globales que utilizaremos dentro de nuestro programa, veamos el cuerpo de esta sección: 005000 CONST-STORAGE SECTION 005010 BASE PICTURE 005020 TASA PICTURE 005030 IMPUESTO PICTURE 005980** CONSTANTES GLOBALES

2 17 3865.79 DECLARADAS

PROCESS SECTION

Esta sección contiene todo el código de ejecución y lógica, existe solo en un proyecto tipo Aplicativo, representa una Rutina BLEM para ser procesada, el movimiento entre Rutinas es de tipo Topdown como se ha venido explicando en párrafos anteriores, veamos un ejemplo: 006020 PROCESS START SECTION 006030 SYSOUT 006040 DISPLAY "WELCOME TO BLEM” 006990 STOP-RUN

Donde START es el nombre de la Rutina, se puede utilizar cualquier nombre, siempre y cuando inicie con caracteres alfabéticos y no pase de 8 letras. El primer proceso en ejecutarse en un programa BLEM siempre es START.

BLEM 1.0 Nova32 Development Software


25 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FUNCTIONS Esta sección contiene toda la definición de Funciones disponibles en el programa, esta sección solo existe en un proyecto tipo Librería de BLAST XC, que al ser compilado puede producir una Biblioteca Estática o una Biblioteca Dinámica, para ser consumida por un Aplicativo BLAST XC o cualquier otro lenguaje de programación que soporte la compilación con Bibliotecas estáticas y Dinámicas compatibles con GNU gcc compiler . Veamos un ejemplo sencillo:

006020 006030 006040 006050 006060 006070

FUNCTIONS-SECTION. EXPORT INTEGER FUNCTION MYSUM ( INTEGER A , INTEGER B ) EXEC. RETURN A + B . END-EXECUTE. END-FUNCTIONS.

Nota: Característica disponible solo en BLAST XC.

LAS INSTRUCCIONES Como se ha mencionado las Divisiones y las Secciones contienen todo el código de BLEM, en este sentido las Instrucciones son las órdenes directas que el programa ira ejecutando.

BLEM a similitud de COBOL, debe escribir las instrucciones en una columna valida que el compilador soporte, que van desde la columna 12 a la columna 79, a si de esta manera un programador puede seguir el estilo de COBOL y escribir sus instrucciones a partir de la columna 12, o bien puede iniciar desde la columna 7 para comentar toda la linea de código, las columnas del 1 al 6 no pueden

BLEM 1.0 Nova32 Development Software


26 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

utilizarse para introducir instrucciones ya que están ocupadas con la numeración del programa. COLUMNAS:

1 2 3 4 5 6 7

8

9

1 0

11 1 2

1 3

1 4

1 5

1 6

1 7

0 0 0

O P

M R

E O

N C

A S E

R S T

I

O C R

U N

0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

C

T E R

U

1 8

1 9

2 0

D S

E T

O

Todas las instrucciones BLEM, sin excepción son en mayúsculas, las variables que usted defina y sentencias dentro de los bloques EXEC SQL y EXEC ETM pueden ser en minúsculas, pero lo recomendable es codificar en MAYUSCULAS solo con fines estéticos, ya que el compilador es CaseSensitive en cuanto a instrucciones BLEM se refiere pero no a instrucciones SQL o del gestor transaccional ETM. En apartados siguientes se estudiaran a detalle todas las instrucciones y funciones del lenguaje BLEM.

BLEM 1.0 Nova32 Development Software


27 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

TIPOS DE DATOS

BLEM 1.0 Nova32 Development Software


28 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

TIPOS DE DATOS Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como “b”, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

Numéricos Simples

Lógicos Alfanuméricos

Tipos de Datos

Arreglos (Vectores, Matrices) Estructurados Registros

Tipos de Datos Simples Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes. Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos). Datos Alfanuméricos: Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer

BLEM 1.0 Nova32 Development Software


29 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.

Ejemplo: “CLAVE DE CUENTA DE APERTURA DE CREDITO” “CX19979-VCX-9874-QWAS-5”

Los Tipos de Datos que existen en BLEM son: TIPO STRING INTEGER DECIMAL

DESCRIPCION CARACTERES ENTEROS DECIMALES

DATE BOOL MEMO

FECHA LOGICOS NOTAS DE CARACTERES

MONETARY

DECIMALES PARA TIPO MONEDA

BYTE

CARACTER O NUMERICO

TAMAÑO 1 A 254 1 A 19 DIGITOS 1 A 10 DIGITOS ENTEROS + 2 DIGITOS PARA DECIMALES 8 CARACTERES 1 DIGITO PUNTERO DE 16 BITS A UN ARCHIVO SECUENCIAL 0 A 15 DIGITOS ENTEROS + 2 DIGITOS PARA DECIMALES 1 DIGITO O 1 CARACTER

En BLEM es innecesario definir el tipo de dato de una variable, simplemente la inicializamos con un valor mediante la sentencia PICTURE para tipos numéricos,byte, lógicos y monetarios o usamos la sentencia STORE para tipos de cadena y fecha. Esto permite una gran facilidad al programador, cumpliendo de esta manera uno de los objetivos fundamentales del lenguaje BLEM, facilidad para crear variables y constantes.

BLEM 1.0 Nova32 Development Software


30 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

VARIABLES Y CONSTANTES

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite acceder a su contenido.

Ejemplo:

NOMBRE NUMEROS EDAD

Reglas para formar un Identificador

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en blanco.

Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter.

La longitud de identificadores puede ser de hasta 80 caracteres.

No deben utilizar caracteres especiales

No deben utilizar palabras reservadas del lenguaje

De preferencia deben ser nombres claros y acordes al dato que van a trabajar

BLEM 1.0 Nova32 Development Software


31 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

DECLARACION DE VARIABLES Variable es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

Ejemplo de creación de variables en la WORKING-STORAGE SECTION: AREA PICTURE 0 STORE SPACE(80) TO NOMBRE STORE SPACE(8) TO FENACIMIENTO SEXO PICTURE 0 Ejemplo de asignación de valor dentro de un PROCESS SECTION: AREA MOVE 120 NOMBRE MOVE “ANA” FENACIMIENTO MOVE “02-03-15” SEXO MOVE 1

La variable FNACIMIENTO es de tipo fecha, y la variable SEXO es booleana, en BLEM 1 significa TRUE y 0 equivale a FALSE.

Clasificación de las Variables BLEM 1.0 Nova32 Development Software


32 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Numéricas Por su Contenido

Lógicas Alfanuméricas

Variables

De Trabajo Por su Uso

Contadores Acumuladores

Por su Contenido

Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: IVA

MOVE

0.15

PI

MOVE

3.1416

COSTO

MOVE

2500

BLEM 1.0 Nova32 Development Software


33 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos, en BLEM se utiliza 1 y 0. Variables Alfanuméricas: Está formada por caracteres alfanuméricos (letras, números y caracteres especiales). Ejemplo: LETRA

MOVE

“a”

PELLIDO

MOVE

“lopez”

DIRECCION MOVE

“Av. Libertad #190”

Por su Uso

Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: SUMA

MOVE

A+B/C

Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno. Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente. La declaración de variables en un proyecto tipo Aplicativo BLEM se debe realizar en la WORKING-STORAGE SECTION, de esta forma todas las variables declaradas son globales y pueden ser accedidas desde cualquier Rutina PROCESS del programa actual.

BLEM 1.0 Nova32 Development Software


34 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Ejemplos: 004020 WORKING-STORAGE SECTION 004030 RESP PICTURE 0 004031 SERV PICTURE 0 004032 STORE SPACE(80) TO SQL1 004033 STORE SPACE(90) TO SQL2 004034 STORE SPACE(80) TO TTABLACLPV 004035 STORE SPACE(40) TO MYROW 004036 PROFILE PICTURE 0 004990** LAYOUT DE VARIABLES NUMERICAS Y DE CARACTERES

La máscara PICTURE ó PIC (Abreviado) permite inicializar la variable en memoria, se pueden inicializar todas las variables excepto los tipos DataObjects.

DECLARACION DE CONSTANTES Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Ejemplo: pi = 3.1416

La declaración de constantes en un proyecto tipo Aplicativo BLEM se debe realizar en la CONST-STORAGE SECTION, de esta forma todas las constantes declaradas son globales y pueden ser accedidas desde cualquier Rutina PROCESS del programa actual. 005000 CONST-STORAGE SECTION 005010 NOMBRE PICTURE “ANA” 005020 EDAD PICTURE 26 005030 SOCIO PICTURE 0

BLEM 1.0 Nova32 Development Software


35 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

OPERADORES

BLEM 1.0 Nova32 Development Software


36 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

OPERADORES Los operadores son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Aritméticos Tipos de Operadores

Relaciónales Lógicos De asignación

OPERADORES ARITMETICOS Los operadores aritméticos permiten la realización matemáticas con los valores (variables y constantes).

de

operaciones

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operando (Operador) Operando Valor (constante o variable)

BLEM 1.0 Nova32 Development Software


37 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Operadores Aritméticos +

ó

ADD

Suma

-

ó

DEC

Resta

*

ó

MULT

Multiplicación

/

ó

DIV

División

Ejemplos: Expresión

Resultado

7

DIV

2

A1

ADD 2 * 5

3.5 10

OPERADORES RELACIONALES

Se utilizan para establecer una relación entre dos valores.

Comparan estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).

Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)

Tienen el mismo nivel de prioridad en su evaluación.

Los operadores relaciónales tienen menor prioridad que los aritméticos.

BLEM 1.0 Nova32 Development Software


38 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Operadores Relaciónales en BLEM >

Mayor que

<

Menor que

>=

Mayor o igual que

<=

Menor o igual que

<>

Diferente

=

Igual

Ejemplo: IF A = 10 THEN A

MOVE

B

C

MOVE

500

END-IF

OPERADORES LOGICOS 

Estos operadores se utilizan para establecer relaciones entre valores lógicos.

Estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos AND Y OR

O

NOT Negación

BLEM 1.0 Nova32 Development Software


39 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Operador AND ____________________________________________ Operando1 Operador Operando2 Resultado T AND T T T

F

F

F

T

F

F

F

F

Operador OR ____________________________________________ Operando1 Operador Operando2 Resultado T OR T T T

F

T

F

T

T

F

F

F

Operador NOT ____________________________________________ Operando

Resultado

T

F

F

T

BLEM 1.0 Nova32 Development Software


40 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

OPERADORES DE ASIGNACION Los operadores de asignación permiten como su nombre lo dice asignar valores a variables durante la ejecución de un programa, en BLEM disponemos de los siguientes operadores de asignación:

MOVE

Pasar un valor a una variable

ASSIGN

Asignar un resultado, generalmente un Identificador, una Bandera o un Manejador producido por una Función del Lenguaje BLEM.

PRIORIDAD DE LOS OPERADORES Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero. Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1.- ^ Exponenciación 2.- *, /, Multiplicación, división. 3.- +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.

BLEM 1.0 Nova32 Development Software


41 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Ejemplos: 4 + 2 * 5 = 14 23 * 2 / 5 = 9.2

46 / 5 = 9.2

3 + 5 * (10 - (2 + 4)) = 23

3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23

3.5 + 5.09 - 14.0 / 40 = 5.09

3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09

2.1 * (1.5 + 3.0 * 4.1) = 28.98

2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

BLEM 1.0 Nova32 Development Software


42 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

EXPRESIONES

BLEM 1.0 Nova32 Development Software


43 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

EXPRESIONES Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo:

a+(b + 3)/c

Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:

-

Aritméticas

-

Relaciónales

-

Lógicas

En BLEM es recomendable incluir las expresiones que realizan operaciones matemáticas o financieras en los bloques COMPUTE, para que el compilador optimice estas operaciones.

100001 COMPUTE 100002**AQUÍ TUS EXPRESIONES 100003 END-COMPUTE

BLEM 1.0 Nova32 Development Software


44 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

PALABRAS RESERVADAS BLEM dispone de un rico repertorio de palabras reservadas muy similar a COBOL y BASIC, pero a diferencia de estos, BLEM es Case-Sensitive, es decir es sensible al uso de mayúsculas y minúsculas, todas las palabras reservadas del lenguaje son en mayúsculas

Listado de palabras reservadas del lenguaje de programación BLEM 1.0 PALABRAS RESERVADAS IDENTIFICATION DIVISION APP-SYS PROGRAMMER-SYS SYSTEM-APP ASKDATE REMARKS-RM DATA DIVISION WORKING-STORAGE SECTION CONST-STORAGE SECTION ENVIRONMENT DIVISION MODULE PROGRAM DIVISION PROCESS SECTION PERFORM GOTO NIL NOTHING DUMMY PICTURE PIC ASSIGN MOVE ADD DEC

BLEM 1.0 Nova32 Development Software

DESCRIPCION División de identificación del programa Nombre del programa, corresponde al nombre del Archivo. Nombre del Programador Plataforma (x86,x64,SPARK,ARM, etc...) Fecha de Edición del Programa Comentarios generales del programa División de Datos del programa Sección de almacenamiento de variables GLOBALES del programa Sección de constantes GLOBALES del programa División de Entorno de ejecución del programa Nombre del Módulo o Bloque Binario a ejecutar en el Sistema División del cuerpo del Programa Crear un Proceso Definir el proceso creado Saltar a un proceso definido Saltar a un proceso definido Valor 0 Valor 0 Cadena vacía “” Inicializar una Máscara de valor en la WORKING-STORAGE SECTION Inicializar una Máscara de valor en la WORKING-STORAGE SECTION Asignar un Identificador a una Variable como resultado de una invocación de función Asignar un Valor a una Variable Incrementar variable Decremento variable


45 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

RETURN IF THEN ELSE END-IF EVALUATE END-EVALUATE WHEN BREAK CONTINUE DO-WHILE END-DO SYSOUT DISPLAY GET COMPUTE END-COMPUTE AND OR NOT ADD DEC MULT DIV NEW-LINE ACCEPT, INPUT EXEC SQL

RUN, XCTRL CALL WRITEQ STOP-RUN

FINAL

EXEC

BLEM 1.0 Nova32 Development Software

Retornar de un PROCESS llamado desde PERFORM Si Condicional Hacer Entonces Fin de Si condicional Evaluar Casos Fin de Evaluador de Casos Caso determinado Romper Bifurcación Continuar Bifurcación Ciclo Condicional Fin de Ciclo Condicional Limpiar STDOUT Salida Estándar STDOUT Entrada desde el Teclado Modo Texto Iniciar Calculo Financiero Fin de Calculadora Financiera Y O NO + * / Salto de Línea Aceptar las entradas desde el Teclado Modo Texto Inicia una consulta de base de datos en lenguaje XBASE, por estandarizado con BLAST XC, se definió como SQL, pero solo se aceptan instrucciones XBASE. Ejecuta un programa por XCTRL en el sistema operativo EXIRION OS Ejecutar una función o un procedimiento XBASE desde una Librería PRG Escribir en una cola FIFO del gestor transaccional ETM, campos de la IEB(Exec Interface Block) Detiene de manera inmediata la ejecución del programa, terminando también la transacción que los ha invocado desde ETM. Declara una constante en la CONST-STORAGE SECTION, esta instrucción puede ser omitida, ya que toda variable declarada dentro de esta sección siempre sera una constante. Permite iniciar un bloque de ejecuciones de instrucciones que no son propiamente de BLEM, antes de realizar la


46 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

END-EXEC EXEC ETM FOR TO STEP END-FOR POSITION, POS SCREEN MASK DELAY

compilación el programa de utilería EXNOS200 realizara una traducción de estos bloques a instrucciones de tipo BLEM, para ser procesadas por un linker llamado EXNOS300. Finaliza la ejecución de un bloque de instrucciones no BLEM. Ejecuta un bloque de instrucciones del gestor transaccional ETM en el sistema operativo EXIRION OS. Sentencia de repetición Determina el valor hasta el cual se detiene un ciclo FOR Pasos en un ciclo FOR Fin de instrucción FOR Coloca el cursor en las coordenadas especificadas por y,x dentro de la pantalla de ETM(24 filas por 80 columnas) Escribe cadenas y variables en las coordenadas indicadas por la instrucción POSITION. Dibuja una caja de entrada para cada tipo de variable dentro de un PROCESS, se debe utilizar después de un GET. Espera una pausa para continuar la ejecución de las siguientes instrucciones.

COMENTARIOS Los comentarios son breves descripciones colocadas en el código de programación que no son más que recordatorios para el programador, no son analizados por el compilador.

BLEM dispone de comentarios de simple línea, simplemente con colocar un carácter o numero en la columna 7, al realizar esta acción toda la linea sera ignorada al momento de la compilación.

Ejemplo:

006022****************************************************************************

BLEM 1.0 Nova32 Development Software


47 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 006023* RUTINA QUE INSERTA DATOS EN LA TABLA DE NOMINAS * 006024* Y DEVUELVE UN TAPE CON VALOR "TRUE" SI LA OPERACION ES CORRECTA EN CASO * 006025* CONTRARIO DEVOLVERA EL ERROR PRODUCIDO * 006026**************************************************************************** 006027 SALARIO MOVE 7200 006028 ISR MOVE 0.36 006029 DEDUCC MOVE 2300

BLEM 1.0 Nova32 Development Software


48 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ENTRADA Y SALIDA

ENTRADAS DESDE TECLADO BLEM 1.0 Nova32 Development Software


49 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

En BLEM, el teclado es un fichero, designado por stdin, y como todos los ficheros en lenguaje C stdin. En sistemas UNIX stdin se corresponde con el descriptor de fichero 0, y que puede ser alterado externamente por un programa, de la misma manera opera en el sistema operativo EXIRION OS.

BLEM dispone de la función INPUT y ACCEPT para recibir entradas desde el Teclado, mediante esta función podemos recibir la información de las instrucciones GET y MASK, una vez recibida puede ser convertida en cualquier tipo usando las funciones de conversión del lenguaje. Ejemplo:

006082 006083 006084 006085 006086 006084

END-EXEC END-IF POSITION 7,7 GET NOMBRE MASK “XXXXXXXXX” POSITION 8,7 GET EDAD MASK “999” POSITION 9,7 GET IMSS MASK “XX” ACCEPT

Las funciones INPUT Y ACCEPT reciben las variables donde vamos a almacenar la entrada proveniente del teclado.

BLEM 1.0 Nova32 Development Software


50 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SALIDAS EN PANTALLA ETM Para mostrar información en Pantalla disponemos de la función DISPLAY y SCREEN las cuales muestran una variable, en el stdout, si deseamos realizar un retorno de carro y nueva línea usaremos la función NEW-LINE

La función DISPLAY permite enviar diferentes tipos de datos a la salida en pantalla de ETM, las salidas serán continuas sin utilizar coordenadas. Ejemplo sin formato:

DISPLAY “HOLA MUNDO” DISPLAY NOMBRE

Ejemplo con formato de coordenadas, mostrar un valor en una posición de la pantalla: 000060

POSITION 5,5 SCREEN “HOLA MUNDO”

000061

POSITION 6,5 SCREEN NOMBRE

BLEM 1.0 Nova32 Development Software


51 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

PROGRAMACION

BLEM 1.0 Nova32 Development Software


52 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SECUENCIAL Los Aplicativos de BLEM utilizan el paradigma Top-Down También conocido como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa. La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:

Simplificación del problema y de los subprogramas de cada descomposición.

Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.

El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

El paradigma de desarrollo CASE de BLEM está totalmente en contra de los paradigmas Bottom-Up.

Principalmente para evitar los siguientes inconvenientes:

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato. Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el BLEM 1.0 Nova32 Development Software


53 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

desempeño global, sea fluido. Los problemas de integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha límite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la duplicación de esfuerzos para accesar el software y más aún al introducir los datos.

Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el más serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen. Por estos motivos y otros BLEM no utiliza el paradigma Bottom-Up, evitando de esta manera muchos de los problemas de desarrollo de software que existen en fábricas de software o consultorías de IT.

El modelo de desarrollo basado en Top-Down de BLEM aplica exclusivamente en proyectos de tipo Aplicación, los proyectos BLAST XC de tipo Librería son 100% Estructurados, para ser consumidos por aplicaciones Top-Down BLAST XC u otros lenguajes de programación.

ASIGNACION

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma:

EXEC ETM

BLEM 1.0 Nova32 Development Software


54 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Accion1 Accion2 . . AccionN END-EXEC

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: •

Simples: Consiste en pasar un valor constate a una variable (a MOVE 15)

Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a MOVE a+1)

Acumulador: Consiste en usarla como un sumador en un proceso (a MOVE a+b)

• De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a MOVE c+b*2/4).

La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representa en un pseudocódigo como sigue:

GET (A) GET (B)

Donde “A” y “B” son las variables que recibirán los valores

BLEM 1.0 Nova32 Development Software


55 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocódigo como sigue:

DISPLAY “El resultado es:”

Donde “El resultado es:” es un mensaje que se desea aparezca.

Problemas Secuenciales Financieros y Generales, para resolver en BLEM:

1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

2) Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuánto deberá pagar finalmente por su compra.

4) Un alumno desea saber cuál será su calificación final en la materia de Algoritmos. Dicha calificación se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificación del examen final. 15% de la calificación de un trabajo final.

BLEM 1.0 Nova32 Development Software


56 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

5) Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 6) Realizar un algoritmo que calcule la edad de una persona.

Más Problemas Propuestos

1) Dada una cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato desconocido. 2) Leer un número y escribir el valor absoluto del mismo. 3) La presión, el volumen y la temperatura de una masa de aire se relacionan por la fórmula: Masa = (presión * volumen)/(0.37 * (temperatura + 460))

4) Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es: num. Pulsaciones = (220 - edad)/10

5) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

6) En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la sig. Tabla: Área

Porcentaje del presupuesto

Ginecología

40%

Traumatología

30%

Pediatría

30%

Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal. BLEM 1.0 Nova32 Development Software


57 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

7) El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.

8) Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

9) Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.

10) Un alumno desea saber cuál será su promedio general en las tres materias más difíciles que cursa y cuál será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan como se muestra a continuación:

La calificación de Matemáticas se obtiene de la sig. Manera: Examen 90% Promedio de tareas 10% En esta materia se pidió un total de tres tareas.

La calificación de Física se obtiene de la sig. Manera: Examen 80% Promedio de tareas 20% En esta materia se pidió un total de dos tareas.

La calificación de Química se obtiene de la sig. Manera: Examen 85% BLEM 1.0 Nova32 Development Software


58 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Promedio de tareas 15% En esta materia se pidió un promedio de tres tareas.

ESTRUCTURADA

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

El modelo de desarrollo basado en Top-Down de BLEM aplica exclusivamente en proyectos de tipo Aplicación, los proyectos de tipo BLAST XC Librería son 100% Estructurados, para ser consumidos por aplicaciones Top-Down BLAST XC u otros lenguajes de programación.

BLEM 1.0 Nova32 Development Software


59 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SELECTIVA SIMPLE Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite.

Las estructuras condicionales simples se les conocen como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma en BLEM:

IF condición THEN Acción(es) END-IF

Problemas Selectivos Simples

1) Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

2) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.

3) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿Cuál será la cantidad que pagara una persona por su compra?

BLEM 1.0 Nova32 Development Software


60 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. Manera: Si trabaja 40 horas o menos se le paga $16 por hora Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra.

5) Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

6) Que lea dos números y los imprima en forma ascendente

7) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuántas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad. Las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto.

8) Hacer un algoritmo que imprima el nombre de un artículo, clave, precio original y su precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos claves).

9) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10%

10) Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá qué hacer para pagar al fabricante. BLEM 1.0 Nova32 Development Software


61 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante. Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito.

Problemas Propuestos

1) Calcular el total que una persona debe pagar en una llantera, si el precio de cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o más.

2) En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el numero escogido es menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el descuento es del 20%. Obtener cuánto dinero se le descuenta.

3) Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico; la fórmula que se aplica cuando el sexo es femenino es: núm. pulsaciones = (220 - edad)/10 Y si el sexo es masculino: núm. pulsaciones = (210 - edad)/10

BLEM 1.0 Nova32 Development Software


62 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4) Una compañía de seguros está abriendo un depto. De finanzas y estableció un programa para captar clientes, que consiste en lo siguiente: Si el monto por el que se efectúa la fianza es menor que $50 000 la cuota a pagar será por el 3% del monto, y si el monto es mayor que $50 000 la cuota a pagar será el 2% del monto. La afianzadora desea determinar cuál será la cuota que debe pagar un cliente.

5) En una escuela la colegiatura de los alumnos se determina según el número de materias que cursan. El costo de todas las materias es el mismo. Se ha establecido un programa para estimular a los alumnos, el cual consiste en lo siguiente: si el promedio obtenido por un alumno en el último periodo es mayor o igual que 9, se le hará un descuento del 30% sobre la colegiatura y no se le cobrara IVA; si el promedio obtenido es menor que 9 deberá pagar la colegiatura completa, la cual incluye el 10% de IVA. Obtener cuanto debe pagar un alumno.

6) Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes condiciones: Si los ingresos del comprador son menores de $8000 o más el enganche será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en diez años. Si los ingresos del comprador son menos de $8000 o más el enganche será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 7 años. La empresa quiere obtener cuanto debe pagar un comprador por concepto de enganche y cuanto por cada pago parcial.

7) El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que consiste en que los dueños de la empresa deben obligatoriamente depositar en una cuenta bancaria un porcentaje del salario de los trabajadores; adicionalmente los trabajadores pueden solicitar a la empresa que deposite directamente una cuota fija o un porcentaje de su salario en la cuenta del SAR, la cual le será descontada de su pago. Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidad total de dinero que estará depositado a esa cuenta cada mes, y el pago mensual que recibirá.

BLEM 1.0 Nova32 Development Software


63 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

8) Una persona desea iniciar un negocio, para lo cual piensa verificar cuánto dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no quiere disponer de ella a menos que el monto por hipotecar su casa sea muy pequeño. Si el monto de la hipoteca es menor que $1 000 000 entonces invertirá el 50% de la inversión total y un socio invertirá el otro 50%. Si el monto de la hipoteca es de $ 1 000 000 o más, entonces invertirá el monto total de la hipoteca y el resto del dinero que se necesite para cubrir la inversión total se repartirá a partes iguales entre el socio y el.

9) El gobierno del estado de México desea reforestar un bosque que mide determinado número de hectáreas. Si la superficie del terreno excede a 1 millón de metros cuadrados, entonces decidirá sembrar de la sig. Manera: Porcentaje de la superficie del bosque

Tipo de árbol

70%

pino

20%

oyamel

10%

cedro

Si la superficie del terreno es menor o igual a un millón de metros cuadrados, entonces decidirá sembrar de la sig. Manera: Porcentaje de la superficie del bosque

Tipo de árbol

50%

pino

30%

oyamel

20%

cedro

El gobierno desea saber el número de pinos, oyameles y cedros que tendrá que sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10 cedros. También se sabe que una hectárea equivale a 10 mil metros cuadrados.

10) Una fábrica ha sido sometida a un programa de control de contaminación para lo cual se efectúa una revisión de los puntos IMECA generados por la fábrica. El BLEM 1.0 Nova32 Development Software


64 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

programa de control de contaminación consiste en medir los puntos IMECA que emite la fábrica en cinco días de una semana y si el promedio es superior a los 170 puntos entonces tendrá la sanción de parar su producción por una semana y una multa del 50% de las ganancias diarias cuando no se detiene la producción. Si el promedio obtenido de puntos IMECA es de 170 o menor entonces no tendrá ni sanción ni multa. El dueño de la fábrica desea saber cuánto dinero perderá después de ser sometido a la revisión.

11) Una persona se encuentra con un problema de comprar un automóvil o un terreno, los cuales cuestan exactamente lo mismo. Sabe que mientras el automóvil se devalúa, con el terreno sucede lo contrario. Esta persona comprara el automóvil si al cabo de tres años la devaluación de este no es mayor que la mitad del incremento del valor del terreno. Ayúdale a esta persona a determinar si debe o no comprar el automóvil.

DOBLE Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

IF condición THEN Acción(es) ELSE Acción(es) END-IF Dónde:

IF ………………… Indica el comando de comparación Condición………… Indica la condición a evaluar BLEM 1.0 Nova32 Development Software


65 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

THEN……..……

Precede a las acciones a realizar cuando se cumple la condición

Acción(es)………… Son las acciones a realizar cuando se cumple o no la condición ELSE……………… Precede a las acciones a realizar cuando no se cumple la condición

Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.

MULTIPLE Las estructuras de comparación múltiples, son tomas de decisión especializada que permiten comparar variables contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones específicas. La forma común es la siguiente: EVALUATE WHEN <Variable> = <Valor> CONTINUE WHEN <Variable> = <Valor> BREAK END-EVALUATE

BREAK = Permite romper el bloque CONTINUE = Permite continuar la bifurcación.

BLEM 1.0 Nova32 Development Software


66 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Problemas Selectivos Compuestos

1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.

2) Leer tres números diferentes e imprimir el número mayor de los tres.

3) Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple.

4) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de acuerdo con la sig. Tabla: Tiempo

Utilidad

Menos de 1 año

5 % del salario

1 año o más y menos de 2 años

7% del salario

2 años o más y menos de 5 años

10% del salario

5 años o más y menos de 10 años

15% del salario

10 años o más

20% del salario

5) En una tienda de descuento se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el BLEM 1.0 Nova32 Development Software


67 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados.

6) El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o más y una antigüedad en su empleo de 25 años o más. Determinar en qué tipo de jubilación, quedara adscrita una persona.

Problemas Propuestos

1) En una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra; si el número de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de $11,000

2) En una llantera se ha establecido una promoción de las llantas marca “Ponchadas”, dicha promoción consiste en lo siguiente: Si se compran menos de cinco llantas el precio es de $300 cada una, de $250 si se compran de cinco a 10 y de $200 si se compran más de 10. Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y la que tiene que pagar por el total de la compra. 3) En un juego de preguntas a las que se responde “Si” o “No” gana quien responda correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son:

BLEM 1.0 Nova32 Development Software


68 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

1. Colon descubrió América ? 2. La independencia de México fue en el año 1810 ? 3. The Doors fue un grupo de rock Americano ?

4) Un proveedor de estéreos ofrece un descuento del 10% sobre el precio sin IVA, de algún aparato si este cuesta $2000 o más. Además, independientemente de esto, ofrece un 5% de descuento si la marca es “NOSY”. Determinar cuánto pagara, con IVA incluido, un cliente cualquiera por la compra de su aparato.

5) Una frutería ofrece las manzanas con descuento según la siguiente tabla: NUM. DE KILOS COMPRADOS 0

% DESCUENTO

- 2

0%

2.01 - 5

10%

5.01 - 10

15%

10.01 en adelante

20%

Determinar cuánto pagara una persona que compre manzanas es esa frutería.

6) El dueño de una empresa desea planificar las decisiones financieras que tomara en el siguiente año. La manera de planificarlas depende de lo siguiente:

Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo bancario para que su nuevo saldo sea de $10 000. Si su capital tiene actualmente un saldo positivo pedirá un préstamo bancario para tener un nuevo saldo de $20 000, pero si su capital tiene actualmente un saldo superior a los $20 000 no pedirá ningún préstamo. Posteriormente repartirá su presupuesto de la siguiente manera. $5 000 para equipo de computo $2 000 para mobiliario

BLEM 1.0 Nova32 Development Software


69 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Y el resto la mitad será para la compra de insumos y la otra para otorgar incentivos al personal. Desplegar que cantidades se destinaran para la compra de insumos e incentivos al personal y, en caso de que fuera necesario, a cuánto ascendería la cantidad que se pediría al banco.

7) Tomando como base los resultados obtenidos en un laboratorio de análisis clínicos, un médico determina si una persona tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el medico se basa para obtener el resultado es la siguiente:

EDAD

NIVEL HEMOGLOBINA

0 - 1 mes

13

- 26 g%

> 1 y < = 6 meses

10

- 18 g%

> 6 y < = 12 meses

11

- 15 g%

> 1 y < = 5 años

11.5 - 15 g%

> 5 y < = 10 años

12.6 - 15.5 g%

> 10 y < = 15 años

13

- 15.5 g%

mujeres > 15 años

12

- 16 g%

hombres > 15 años

14

- 18 g%

8) Una institución educativa estableció un programa para estimular a los alumnos con buen rendimiento académico y que consiste en lo siguiente: Si el promedio es de 9.5 o más y el alumno es de preparatoria, entonces este podrá cursar 55 unidades y se le hará un 25% de descuento. Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria, entonces este podrá cursar 50 unidades y se le hará un 10% de descuento. BLEM 1.0 Nova32 Development Software


70 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podrá cursar 50 unidades y no tendrá ningún descuento. Si el promedio es de 7 o menor, el número de materias reprobadas es de 0 a 3 y el alumno es de preparatoria, entonces podrá cursar 45 unidades y no tendrá descuento. Si el promedio es de 7 o menor, el número de materias reprobadas es de 4 o mas y el alumno es de preparatoria, entonces podrá cursar 40 unidades y no tendrá ningún descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podrá cursar 55 unidades y se le hará un 20% de descuento. Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podrá cursar 55 unidades y no tendrá descuento.

Obtener el total que tendrá que pagar un alumno si la colegiatura para alumnos de profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es de $180 por cada cinco unidades.

9) Que lea tres números diferentes y determine el numero medio del conjunto de los tres números (el numero medio es aquel número que no es ni mayor, ni menor).

REPETITIVA Y DE ITERACION CONDICIONAL Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).

BLEM 1.0 Nova32 Development Software


71 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Ciclos con un Número Determinado de Iteraciones (Hacer-Para): Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C. = L.I a L.S Acción1 Acción2 Fin-para

Dónde: V.C

Variable de control del ciclo

L.I

Limite inferir

L.S

Límite superior

En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al límite superior.

CONTADORES Y ACUMULADORES Los contadores son variables que nos permiten llevar un conteo de ciertas actividades dentro del programa, generalmente se usan en los ciclos y repetidores, pero pueden llegar a usar para llevar cualquier cuenta, durante la ejecución del programa.

BLEM 1.0 Nova32 Development Software


72 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Ejemplo de un contador en BLEM:

IVA MOVE IVA ADD 5

Para decremento de un contador:

IVA

MOVE IVA DEC 3

Los acumuladores son las variables de trabajo en sí, es decir cualquier variable que utilizamos para almacenas datos es un acumulador:

SALARIO

MOVE

SUELDO ADD

200 .

CICLOS Y REPETIDORES

Los repetidores son estructuras cíclicas que repetirán un conjunto de acciones un número definido de veces en función de un contador.

BLEM 1.0 Nova32 Development Software


73 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

En BLEM las estructuras de repetición son de la siguiente manera:

FOR 1 TO 10 STEP 1 <acciones> END-FOR

Los ciclos condicionales son estructuras de repetición en las cuales el número de iteraciones será resultado de que una condición determinada deje de ser cierta.

En BLEM los ciclos condicionales poseen la siguiente estructura:

DO-WHILE condición <secuencias> END-DO Mientras la condición se cumpla el ciclo continuara, puede ser abandonado en cualquier momento mediante la sentencia BREAK, o puede continuar aplicando la sentencia CONTINUE. Al utilizar este tipo de ciclos de repetición hay que tener especial cuidado de no crear ciclos infinitos, ya que podrían bloquear el programa o incluso todo el sistema ETM. Problemas 1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño Estructurado de Algoritmos 2) Leer 10 números y obtener su cubo y su cuarta. 3) Leer 10 números e imprimir solamente los números positivos

BLEM 1.0 Nova32 Development Software


74 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros. 5) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números 6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación más baja de todo el grupo. 7) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el multiplicando, el multiplicador y el producto. 8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas

Problemas Propuestos 1) Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la sig., tabla: CATEGORIA

EDAD

Niños

0 - 12

Jóvenes

13 - 29

Adultos

30 - 59

Viejos

60 en adelante

2) Al cerrar un expendio de naranjas, 15 clientes que aún no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagara cada cliente y cuanto percibirá la tienda por esas compras.

3) En un centro de verificación de automóviles se desea saber el promedio de puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contamino y del que más contamino.

BLEM 1.0 Nova32 Development Software


75 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4) Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para la prueba de 5 Kilómetros o debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones: - Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos. - Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos. - Que su promedio de tiempos sea menor o igual a 15 minutos. 5) Un Zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año, de más de 1 año y menos de 3 y de 3 o más años. El zoológico todavía no está seguro del animal que va a estudiar. Si se decide por elefantes solo tomara una muestra de 20 de ellos; si se decide por las jirafas, tomara 15 muestras, y si son chimpancés tomara 40.

Problemas

1) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

2) En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la sig. Forma: Si el obrero trabaja 40 horas o menos se le paga $20 por hora Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra.

3) Determinar cuántos hombres y cuantas mujeres se encuentran en un grupo de n personas, suponiendo que los datos son extraídos alumno por alumno.

BLEM 1.0 Nova32 Development Software


76 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4) El Depto. de Seguridad Publica y Transito del D.F. desea saber, de los n autos que entran a la ciudad de México, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la sig. Relación:

DÍGITO

COLOR

1o2

amarilla

3o4

rosa

5o6

roja

7o8

verde

9o0

azul

5) Obtener el promedio de calificaciones de un grupo de n alumnos.

6) Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés. Cuál será la cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es reinvertida?.

7) Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

8) Encontrar el menor valor de un conjunto de n números dados. 9) Encontrar el mayor valor de un conjunto de n números dados. 10) En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar. Al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja.

BLEM 1.0 Nova32 Development Software


77 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

11) Cinco miembros de un club contra la obesidad desean saber cuánto han bajado o subido de peso desde la última vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: “SUBIO” o “BAJO” y la cantidad de kilos que subió o bajo de peso.

3) Se desea obtener el promedio de g grupos que están en un mismo año escolar; siendo que cada grupo puede tener n alumnos que cada alumno puede llevar m materias y que en todas las materias se promedian tres calificaciones para obtener el promedio de la materia. Lo que se desea desplegar es el promedio de los grupos, el promedio de cada grupo y el promedio de cada alumno.

Problemas 1) En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra. Determinar la cantidad que pagara cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento.

2) En un supermercado un ama de casa pone en su carrito los artículos que va tomando de los estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo que cada vez que toma un artículo anota su precio junto con la cantidad de artículos iguales que ha tomado y determina cuánto dinero gastara en ese artículo; a esto le suma lo que ira gastando en los demás artículos, hasta que decide que ya tomo todo lo que necesitaba. Ayúdale a esta señora a obtener el total de sus compras.

3) un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un

BLEM 1.0 Nova32 Development Software


78 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Edad

Descuento

Categoría 1

5 - 14

35 %

Categoría 2

15 - 19

25 %

Categoría 3

20 - 45

10 %

Categoría 4

46 - 65

25 %

Categoría 5

66 en adelante

35 %

Problemas Propuestos 1) La presión, volumen y temperatura de una masa de aire se relacionan por la fórmula: Masa =

presión * volumen ________________________ 0.37 * (temperatura + 460)

Calcular el promedio de masa de aire de los neumáticos de n vehículos que están en compostura en un servicio de alineación y balanceo. Los vehículos pueden ser motocicletas o automóviles.

2) Determinar la cantidad semanal de dinero que recibirá cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.

3) En una granja se requiere saber alguna información para determinar el precio de venta por cada kilo de huevo. Es importante determinar el promedio de calidad

BLEM 1.0 Nova32 Development Software


79 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene según la fórmula:

Calidad

=

peso de la gallina * altura de la gallina ____________________________ Numero de huevos que pone

Finalmente para fijar el precio del kilo de huevo, se toma como base la siguiente tabla:

PRECIO TOTAL DE CALIDAD PESO POR KILO DE HUEVO mayor o igual que 15

1.2 * promedio de calidad

mayor que 8 y menor que 15

1.00 * promedio de calidad

menor o igual que 8

0.80 * promedio de calidad

4) En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de determinar qué porcentaje de los n diputados está a favor del Tratado de Libre Comercio, que porcentaje está en contra y que porcentaje se abstiene de opinar.

5) Una persona que va de compras a la tienda “Enano, S.A.”, decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a la caja. La tienda tiene una promoción del 20% de descuento sobre aquellos artículos cuya etiqueta sea roja. Determinar la cantidad de dinero que esta persona deberá pagar.

6) Un censador recopila ciertos datos aplicando encuestas para el último Censo Nacional de Población y Vivienda. Desea obtener de todas las personas que alcance a encuestar en un día, que porcentaje tiene estudios de primaria, secundaria, carrera técnica, estudios profesionales y estudios de posgrado.

BLEM 1.0 Nova32 Development Software


80 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

7) Un jefe de casilla desea determinar cuántas personas de cada una de las secciones que componen su zona asisten el día de las votaciones. Las secciones son: norte, sur y centro. También desea determinar cuál es la sección con mayor número de votantes.

8) Un negocio de copias tiene un límite de producción diaria de 10 000 copias si el tipo de impresión es offset y de 50 000 si el tipo es estándar. Si hay una solicitud de un el empleado tiene que verificar que las copias pendientes hasta el momento y las copias solicitadas no excedan del límite de producción. Si el límite de producción se excediera el trabajo solicitado no podría ser aceptado. El empleado necesita llevar un buen control de las copias solicitadas hasta el momento para decidir en forma rápida si los trabajos que se soliciten en el día se deben aceptar o no.

9) Calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden

10) Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de reprobados. Tomando en cuenta que la calificación mínima aprobatoria es de 70.

11) Leer por cada alumno de Diseño estructurado de algoritmos su número de control y su calificación en cada una de las 5 unidades de la materia. Al final que escriba el número de control del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios.

12) El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación. Diseñe un algoritmo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

BLEM 1.0 Nova32 Development Software


81 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

13) Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e imprimir el número del candidato ganador y su cantidad de votos.

14) Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Diseñe un algoritmo que lea por cada cliente, el monto total de su compra. Al final del día que escriba la cantidad total de ventas y el número de clientes atendidos.

Problemas Repetitivos Compuestos

1.- El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación. Diseñe un pseudocódigo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

2.- Diseñe un diagrama que lea los 2,500,000 votos otorgados a los 3 candidatos a gobernador e imprima el número del candidato ganador y su cantidad de votos.

3.- Suponga que tiene usted una tienda y desea registrar las ventas en una computadora. Diseñe un pseudocódigo que lea por cada cliente, el monto total de su compra. Al final del día escriba la cantidad total de las ventas y el número de clientes atendidos.

4.- Suponga que tiene una tienda y desea registrar sus ventas por medio de una computadora. Diseñe un pseudocódigo que lea por cada cliente: a).- el monto de la venta, b).- calcule e imprima el IVA , c).-calcule e imprima el total a pagar, d).- lea la cantidad con que paga el cliente, BLEM 1.0 Nova32 Development Software


82 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

e).-calcule e imprime el cambio. Al final del día deberá imprimir la cantidad de dinero que debe haber en la caja.

5.- Modificar el pseudocódigo anterior de tal forma que no permita que la cantidad con la que paga el cliente sea menor a lo que debe pagar.

6.- Se tiene un conjunto de 1,000 tarjetas cada una contiene la información del censo para una persona: 1.- Número de censo, 2.- Sexo 3.- Edad 4.- Estado civil (a.- soltero, b. Casado, c. Viudo, d. Divorciado ) Diseñe un pseudocódigo estructurado que lea todos estos datos, e imprima el número de censo de todas las jóvenes solteras que estén entre 16 y 21 años.

7.- Diseñe un pseudocódigo que lea el valor de un ángulo expresado en decimales y calcule e imprima el valor del seno de dicho ángulo.

8.-Un jeep puede viajar 500 km con un tanque lleno de gasolina. Desde una posición inicial, conteniendo ‘n’ tanques de gasolina el mismo jeep puede viajar: L = 500 ( 1 + 1/3 + 1/5 + ...+ 1 / (2n -1) ) km Estableciendo economía de combustible en una ruta . Diseñe un pseudocódigo que calcule el valor de ‘L’ dado ‘ n ‘ .

9.- Se ofrece un trabajo que pague un centavo en la primera semana, pero dobla su salario cada semana, es decir , $.01 la primera semana; $.02 la segunda semana; $0.4 la tercera semana; ... etc. Hasta $(2n-1)/100 la n- ésima . Diseñar el pseudocódigo que determine ( y escriba ) el salario por cada semana y el salario pagado hasta la fecha por espacio de 50 semanas. BLEM 1.0 Nova32 Development Software


83 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

10.-Diseñe un pseudocódigo que calcule e imprima el pago de 102 trabajadores que laboran en la Cía. GACMAN. Los datos que se leerán serán los siguientes: a) Las horas trabajadas b) El sueldo por hora c) El tipo de trabajador (1.-obrero,2.-empleado) Para calcular los pagos considerar lo siguiente: - Los obreros pagan 10 % de impuesto - Los empleados pagan 10 % de impuesto. - Los trabajadores (obreros y empleados) que reciban un pago menor de 100,000 pesos no pagan impuesto. -Al final se deberá imprimir el total a pagar a los trabajadores y a los empleados.

11.- Diseñar un pseudocódigo que convierta un número al tripe de su doble valor.

12.- Un objeto es dejado caer a una altura de 100 mts. Diseñe un pseudocódigo que imprima cada décima de segundo la distancia entre el objeto y el suelo y al final imprima el tiempo necesario en décimas de segundo para que el objeto toque el suelo.

13.- La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus mejores vendedores de acuerdo a la siguiente tabla:

Si vendió

Le corresponde de Comisión Sobre ventas totales

1,000,000 <= v < 3,000,000

3%

3,000,000 <= v < 5,000,000

4%

BLEM 1.0 Nova32 Development Software


84 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

5,000,000 <= v < 7,000,000

5%

7,000,000 <= v

6%

Diseñar un pseudocódigo que lea las ventas de 100 vendedores y que escriba la comisión anual que le corresponda a cada vendedor. Suponer que nadie vende más de 10,000,000 al año.

14.- Diseñe un pseudocódigo que imprima la fecha en palabras a partir de la representación siguiente: S,DD,MM, AA. En donde: S = Día de la semana, 1 a 7 ( 1 = lunes; 2 = martes; etc..); DD = Día del mes, 1 a 30 ó 31, según el mes. Fijar el mes de febrero con 28 días; AA = Dos últimas cifras del año.

15.- Un grupo de 100 estudiantes presentan un examen de Física. Diseñe un diagrama que lea por cada estudiante la calificación obtenida y calcule e imprima: A.- La cantidad de estudiantes que obtuvieron una calificación menor a 50. B.- La cantidad de estudiantes que obtuvieron una calificación de 50 o más pero menor que 80. C.- La cantidad de estudiantes que obtuvieron una calificación de 70 o más pero menor que 80. D. La cantidad de estudiantes que obtuvieron una calificación de 80 o más.

16.- Un avión que viaja 800 Km/hr. Dispara un proyectil auto impulsado, en el momento del disparo, el avión hace un giro de 90 0 y acelera a 20 mtrs/seg2. El proyectil sigue su curso, acelerando a 10 mtrs./seg2. Diseñe un pseudocódigo que escriba cada segundo, la distancia que separa al avión del proyectil, hasta que estén a 10,000 mtrs. o más. 17.- Una pizzería, vende sus pizzas en tres tamaños:

BLEM 1.0 Nova32 Development Software


85 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Pequeña (10 pulg. De diámetro); mediana (12 pulg. De diámetro); y grandes (16 pulg. De diámetro); Una pizza puede ser sencilla (con sólo salsa y carne), o con ingredientes extras, tales como pepinillos, champiñones o cebollas Los propietarios desean desarrollar un programa que calcule el precio de venta de una pizza, dándole el tamaño y el número de ingredientes extras. El precio de venta será 1.5 veces el costo total, que viene determinado por el área de la pizza, más el número de ingredientes. En particular el costo total se calcula sumando: - un costo fijo de preparación - un costo base variable que es proporcional al tamaño de la pizza - un costo adicional por cada ingrediente extra. Por simplicidad se supone que cada ingrediente extra tiene el mismo costo por unidad de área. 18.- Diseñar un pseudocódigo que calcule el promedio ponderado para alumno del ITT . El cálculo se hace de la siguiente forma: - Se multiplica cada calificación por los créditos de cada materia - El resultado anterior se suma con los resultados de todas las materias, por separado se suman los créditos de cada materia y finalmente se divide la suma de todas las materias por sus respectivos créditos, entre la suma de todos los créditos. 19.- Calcule la suma de los términos de la serie FIBONACCI cuyos valores se encuentran entre 100 y 10,000.

20.- Calcule exactamente el número de días vividos por una persona hasta la fecha. Contemplar los años bisiestos.

BLEM 1.0 Nova32 Development Software


86 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ARREGLOS

BLEM 1.0 Nova32 Development Software


87 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo.

Los arreglos se caracterizan por:

Almacenan los elementos en posiciones contiguas de memoria

Tienen un mismo nombre de variable que representa a todos los elementos.

Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada elemento dentro del archivo.

VECTORES

Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el nombre de longitud o tamaño del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del vector. Por ejemplo:

BLEM 1.0 Nova32 Development Software


88 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

DECLARE VECTOR [5]

Dónde: VECTOR………… Nombre del arreglo 5……………

Numero de datos que constituyen el arreglo

Representación gráfica de un vector 5 4 3 2 1

Asignación de datos en el vector, ejemplo: VECTOR[1] MOVE “A” VECTOR[2] MOVE “B” VECTOR[3] MOVE “C”

BLEM soporta vectores de 1 a 1024 elementos en memoria principal por cada programa.

BLEM 1.0 Nova32 Development Software


89 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Problemas propuestos

1) Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio.

2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante.

3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

4) Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante.

5) Almacenar 300 números en un vector, imprimir cuantos son ceros, cuántos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

6) Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.

7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.

BLEM 1.0 Nova32 Development Software


90 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

8) Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba “SI” si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado

9) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.

10) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el último elemento de B y luego el segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.

11) Diseñe un algoritmo que almacene en un vector llamado FIB [100] los 100 primeros números de la serie Fibonacci.

MATRICES Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el número de filas o reglones y “N” el número de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz acompañado de dos índices.

DECLARE MATRIX [R][C] Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.

BLEM 1.0 Nova32 Development Software


91 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).

Problemas propuestos

1)Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los números almacenados en la matriz.

2)Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posición [renglón] [columna] del número mayor almacenado en la matriz. Los números son diferentes.

3)Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector. BLEM 1.0 Nova32 Development Software


92 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

4)Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir que columna tuvo la máxima suma y la suma de esa columna.

5)Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal en un vector. Imprimir el vector resultante.

6)Hacer un algoritmo que llene una matriz de 10 * 10 y que almacene en la diagonal principal unos y en las demás posiciones ceros.

7)Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz en un vector. Imprimir el vector resultante.

8)Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.

9)Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números almacenados son ceros, cuántos son positivos y cuantos son negativos.

10) Diseñe un pseudocódigo que escriba el número de la hilera cuya suma sea mayor que las demás hileras. Suponga que todas las hileras suman diferente cantidad.

11) El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas por medio de una computadora. Los datos de entrada son: a) El número de la tienda (1 a 50) b) Un número que indica el deporte del articulo (1 a 20) c) El costo del artículo. Hacer un pseudocódigo que escriba al final del día lo siguiente BLEM 1.0 Nova32 Development Software


93 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

1. Las ventas totales en el día para cada tienda 2.Las ventas totales para cada uno de los deportes. 3. Las ventas totales de todas las tiendas.

12) El departamento de policía de la ciudad de Tuxtepec ha acumulado información referente a las infracciones de los límites de velocidad durante un determinado periodo de tiempo. El departamento ha dividido la ciudad en cuatro cuadrantes y desea realizar una estadística de las infracciones a los límites de velocidad en cada uno de ellos. Para cada infracción se ha preparado una tarjeta que contiene la siguiente información: - número de registro del vehículo; - cuadrante en el que se produjo la infracción - límite de velocidad en milla por hora Diseñe un diagrama para producir 2 informes; el 1o. Que contiene una lista de la multa de velocidad recolectada, donde la multa se calcula como la suma del costo de la corte ($20,000) mas $ 1,250 por cada mph que exceda la velocidad limite. Prepare una tabla con los siguientes resultados:

INFRACCIONES A LOS LIMITES DE VELOCIDAD

Registro del Vehículo

Velocidad registrada (MPH)

Velocidad

Multa

limite

Este informe debe ser seguido de un segundo en el cual se proporcione un análisis de las infracciones por cuadrante. Para cada uno de los 4 cuadrantes mencionados, debe darse el número de infracciones y la multa promedio.

13) Se tiene almacenada la matriz M (50,5) la cual contiene la información sobre las calificaciones de la materia de Contabilidad. Diseñe un pseudocódigo que imprima: BLEM 1.0 Nova32 Development Software


94 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

a).- Cantidad de alumnos que aprobaron la materia. B).- Cantidad de alumnos que tienen derecho a nivelaciรณn. C).- El (o los) numero (s) de control de lo(s) alumno(s) que haya (n) obtenido la mรกxima calificaciรณn final.

BLEM 1.0 Nova32 Development Software


95 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FUNCIONES

BLEM 1.0 Nova32 Development Software


96 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BLEM dispone de un conjunto de funciones y sentencias diseñadas para facilitar su trabajo como programador de aplicaciones, recordemos que BLEM es un lenguaje para el desarrollo de sistemas de gestión, por lo cual no hay funciones matemáticas muy avanzadas, solo existen las trigonometrías o en general de ciencias, ya que BLEM intenta incluir un rico repertorio de funciones lo más posible útiles en el mundo de los negocios.

FUNCIONES DE BASE DE DATOS

Las funciones y sentencias de Base de Datos soportadas por BLEM son de tipo XBASE, las cuales nos permitirán la manipulación de los registros así como interactuar con tablas y variables del programa.

Todas se ejecutan dentro de los bloques EXEC SQL, el compilador de BLEM soporta ejecutar instrucciones directamente en el código del programa, pero para aumentar el rendimiento en tiempo de compilación, se deben agregar solo dentro de los bloques EXEC SQL, lo cual también garantiza una fácil lectura del programa para otros desarrolladores.

BLEM no tiene soporte para sentencias ANSI SQL, este bloque se nombro de esa manera únicamente con fines de estandarizado respecto a su compilador gemelo BLAST XC que si soporta lenguaje SQL, por lo tanto BLEM solo reconoce sentencias en lenguaje XBASE.

EXEC SQL Sentencias y funciones XBASE END-EXEC

BLEM 1.0 Nova32 Development Software


97 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Descripción de todas las funciones y sentencias XBASE soportadas por BLEM 1.0:

CREATE Permite crear una nueva tabla de base de datos. USE Abre una tabla para poder modificar su contenido, tanto estructura como registros almacenados. APPEND BLANK Permite agregar una nueva fila, o bien agregar campos a la estructura de la tabla en uso, es decir añade un registro vacío a nuestro fichero en uso. El puntero de la base de datos se sitúa en el registro añadido

REPLACE Actualiza los campos de una tabla con los valores especificados los cuales pueden provenir de una variable. La sentencia REPLACE nos servirá para reemplazar el contenido de los campos.

VARIABLES DE ENTORNO PARA CREAR TABLAS BLEM incorpora las variables de entorno clásicas de XBASE para la creación de nuevas tablas o modificación de las ya existentes. Las variables de entorno: FIELD_NAME FIELD_TYPE FIELD_LEN FIELD_DECIMALS Tomarán el nombre de campo, el tipo de campo, la longitud de campo y las posiciones decimales, respectivamente. Una vez creada la estructura pasaremos a generar la tabla propiamente dicha con CREATE FROM.

BLEM 1.0 Nova32 Development Software


98 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CREATE <Fdbf> FROM <Fstr> Permite crear la Tabla diseñada en código, de manera permanente en la Base de Datos actual. Los distintos tipos de campos que podemos definir en una base de datos son: C - Carácter (1-254 caracteres alfanuméricos) N - Numérico (1-19 dígitos de entero.) (0-15 dígitos decimal y dos dígitos menor que entero) D - Fecha (8 dd-mm-aa) L - Lógico (1 carácter para valores lógicos: T,F,Y,N) M - Memo (10) Almacena dirección para acceder a fichero .DBT.

Ejemplo: CREATE clientes USE clientes APPEND BLANK REPLACE FIELD_NAME WITH "CODIGO" REPLACE FIELD_TYPE WITH "C" REPLACE FIELD_LEN WITH 5 APPEND BLANK REPLACE FIELD_NAME WITH "NOMBRE" REPLACE FIELD_TYPE WITH "C" REPLACE FIELD_LEN WITH 30 CLOSE CREATE CLIENTES FROM CLIENTES

MODIFY STRUCTURE Para modificar la estructura de una tabla se recomienda el uso de la sentencia MODIFY STRUCTURE propia de XBASE. Posibilita renombrar, suprimir y añadir campos, así como modificar el tipo y la longitud de los mismos.

BLEM 1.0 Nova32 Development Software


99 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

RECNO() Y PUNTEROS DE REGISTROS BLEM mantiene un puntero que indica el registro activo en cada momento. Tanto en BLEM con en XBASE podemos conocer la posición del puntero con la función RECNO(). Existen mandatos que afectan únicamente al registro activo. El puntero se puede desplazar usando la sentencias GO y SKIP en sus distintas modalidades: GO <NUMERO> (ir al registro indicado) GO TOP (ir al registro número 1) GO BOTTOM (ir último registro) SKIP (ir al siguiente registro) SKIP -1 (ir al anterior)

DELETE BLEM permite marcar registros para posteriormente, si procede, borrarlos definitivamente. Esto se hará con la sentencia DELETE que marca con un asterisco el registro activo. Puede marcarse más de un registro usando la clausulas FOR o WHILE. DELETE [ámbito] [FOR <ExpL>] [WHILE <ExpL>]

[ámbito] RECORD <núm> ALL Ejemplo 1: USE CLIENTES GO 1 DELETE Ejemplo 2: USE CLIENTES DELETE ALL Ejemplo 3: USE CLIENTES DELETE RECORD 10 Ejemplo 4:

BLEM 1.0 Nova32 Development Software

Marcar el registro especificado. Marcar todos los registros


100 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

USE CLIENTES DELETE FOR NOMBRE = "ANA"

PACK Una vez marcado un registro es posible borrarlo con PACK de manera permanente, sin posibilidad de poder recuperarlo. Ejemplo 1: USE CLIENTES DELETE RECORD 10 PACK

RECALL La sentencia RECALL suprime las marcas puestas con DELETE RECALL [<ámbito>] [FOR <ExpL>] [WHILE <ExpL>] Ejemplo 1: USE CLIENTES RECALL RECORD 10

ZAP Borra todos los registros marcados o no de una tabla manteniendo su estructura, de manera permanente y sin posibilidad de recuperarlos. LOCATE permite localizar uno o más registros. En el momento que encuentra un registro el puntero de registro se coloca en él, esperando a un CONTINUE para continuar con la búsqueda. La búsqueda es secuencial por lo que si el tamaño de la base de datos es considerable puede resultar lento este proceso. LOCATE [<ámbito>] [FOR <expL>] [WHILE <expL>] CONTINUE

Ejemplo 1:

BLEM 1.0 Nova32 Development Software


101 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

USE CLIENTES LOCATE FOR CODIGO > "10000" .AND. NOMBRE = "JOSE"

OPERACIONES ESTADISTICAS CON TABLAS En una TABLA es posible contar registros, y realizar operaciones de suma y media aritmética. COUNT nos servirá para contar, SUM para sumar el contenido de campos numéricos y AVERAGE para calcular la media aritmética. COUNT [<ámbito>] [FOR <expL>] [WHILE <expL>] TO <VARIABLE>

COUNT cuenta el número de registros que cumplen una determinada condición especificada. Dicha información ha de depositarse obligatoriamente en una variable numérica de memoria.

<ámbito> es por defecto ALL

SUM [<ámbito>] TO <VARIABLE> SUM suma uno o más campos depositando el resultado en una variable.

AVERAGE [<ámbito>} TO <VARIABLE> AVERAGE calcula la media aritmética de uno o más campos.

CLOSE Cierra el fichero de Tabla abierto en el área activa. ALIAS() Devuelve el alias del área de trabajo. DELETED() Devuelve el estado de borrado del registro actual.

EOF() Indica si se alcanza el final de un archivo.

BOF() Indica si se alcanza el principio de un archivo.

DBFILTER() Determina la expresión del filtro.

BLEM 1.0 Nova32 Development Software


102 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FIELDNAME() Devuelve el nombre del campo especificado.

HEADER() Determina la longitud de cabecera.

RECSIZE() Determina la longitud del registro.

FCOUNT() Devuelve el número de campos de la base.

USED() Determina la base de datos en uso.

FOUND() Devuelve verdadero si se encontró registro.

RECNO() Devuelve el número de registro actual.

LASTREC() Devuelve el número total de registros.

RLOCK() Bloquea/desbloquea el registro actual del área de trabajo en curso. Para utilizar en redes locales. RLOCK() / LOCK()

FLOCK() Bloquea/desbloquea un archivo abierto de base de datos dependiendo de su estado anterior. Sólo se utiliza en redes locales. FLOCK()

UNLOCK Desactiva el bloqueo de los archivos o registros bloqueados por el ultimo usuario. UNLOCK [ALL]

BLEM 1.0 Nova32 Development Software


103 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FUNCIONES NUMERICAS BLEM proporciona un conjunto de funciones para trabajar con valores numéricos, estas funciones pueden ser invocadas en cualquier lugar del código de programa BLEM, pero para aumentar el rendimiento se recomienda utilizarlas dentro de los bloques COMPUTE y END-COMPUTE. ABS() Devuelve el valor absoluto de una expresión. EXP() Calcula la exponencial.

INT() Convierte cualquier expresión cadena a numérica en entero.

LOG() Devuelve el logaritmo natural de un número.

MIN() Devuelve el valor mínimo de dos números o dos fechas.

MAX() Devuelve el valor máximo de dos números o dos fechas.

SQRT() Devuelve la raíz cuadrada de un número positivo.

ROUND() Devuelve el número redondeando con la cantidad de decimales especificados.

VAL() Convierte una cadena de caracteres a un valor numérico.

BLEM 1.0 Nova32 Development Software


104 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FUNCIONES DE TEXTO

BLEM proporciona un conjunto de funciones para trabajar con valores de tipo texto, estas funciones pueden ser invocadas en cualquier lugar del código de programa. ASC() Devuelve el código ASCII del carácter izquierdo

AT() Devuelve un número que indica la posición de comienzo de una cadena de caracteres dentro de otra.

CHR() Devuelve el carácter del código ASCII especificado

EMPTY() Devuelve verdad si la expresión está vacía

ISALPHA() Devuelve verdadero si el primer carácter es alfabético.

ISLOWER() Determina si el carácter más a la izquierda de la cadena está en minúsculas.

ISUPPER() Determina si el carácter más a la derecha de la cadena está en mayúsculas.

LEN() Devuelve el número de caracteres que hay en una cadena

LEFT() Devuelve el número de caracteres especificados desde la izquierda

RIGHT() Devuelve el número de caracteres especificados desde la derecha.

BLEM 1.0 Nova32 Development Software


105 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

LTRIM() Elimina los espacios de la izquierda de una cadena.

REPLICATE() Repite una expresión de caracteres.

SPACE() Crea una cadena de espacios.

STR() Convierte un valor numérico en cadena.

STRTRAN() Busca y reemplaza dentro de una cadena de caracteres.

SUBSTR() Extrae una parte específica de una cadena.

TRANSFORM() Devuelve la tira de caracteres con el formato especificado.

TRIM() Elimina los espacios de una cadena.

FUNCIONES FECHA,HORA Y DE SISTEMA

BLEM proporciona un conjunto de funciones para trabajar con valores de tipo fecha, hora y funciones especiales de sistema, estas funciones pueden ser invocadas en cualquier lugar del código de programa.

CDOW() Devuelve el nombre de día de la semana de una fecha CMONTH() Devuelve el nombre del mes de una fecha

CTOD() Convierte a fecha una cadena

DATE() Devuelve la fecha del sistema BLEM 1.0 Nova32 Development Software


106 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

DAY() Devuelve el número de día del mes de una fecha

DOW() Devuelve el número que representa el día de la semana de un valor fecha

DTOC() Convierte una fecha a cadena

DTOS() Convierte una fecha a cadena tipo índice

MONTH() Devuelve un número que representa el mes

YEAR() Devuelve el valor número completo del año dada una fecha

SECONDS() Devuelve la hora del sistema como segundos y centésimas TIME() Devuelve la hora del sistema

SECS() Devuelve hora como segundos y centésimas

TSTGRING() Dada una cantidad de segundos nos devuelve dicha cantidad en formato hora

FILE() Devuelve verdadero si existe el fichero especificado GETE() Recupera el contenido de una variable de entorno del sistema operativo EXIRION OS

TYPE() Devuelve el tipo de dato de la variable, expresión o campo

COL() Devuelve la columna actual del cursor

ROW() Devuelve la fila actual del cursor

BLEM 1.0 Nova32 Development Software


107 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CURDIR() Determina el data set particionado actual

DISKSPACE() Determina el nĂşmero de bytes disponible en una unidad

MEMORY() Devuelve el espacio de memoria libre, asignado para la terminal de usuario en el gestor transaccional ETM.

READVAR() Devuelve el nombre de la variable de un GET/MENU

BLEM 1.0 Nova32 Development Software


108 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

HERRAMIENTA DE DATOS EN EXIRION OS

BLEM 1.0 Nova32 Development Software


109 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

UTILIDAD QMF (Query Manager Facility)

Para manejar información proveniente de una Base de Datos, y poder compartirla entre diferentes proyectos de desarrollo de software en la plataforma ETM de EXIRION OS, es necesario utilizar una herramienta especializada en dicha manipulación.

Esta herramienta es QMFE(Query Manager Facility Express), mediante la cual podemos crear tablas de una base de datos, editar registros, eliminar, consultar y depurar información, sin necesidad de escribir programas adicionales para realizar estas operaciones, EXIRION OS es un robusto sistema operativo que incluyen gran cantidad de herramientas similares para facilitar las tareas comunes de programación al desarrollador de aplicaciones ETM.

QMFE es una herramienta orientada por completo a los sistemas de gestión en RED de 16 bits que corren bajo el entorno del monitor transaccional ETM, por lo cual solo puede administrar Bases de Datos de tipo XBASE, la Base de Datos Nova32 DMO 3.0 (Data Massive Objects) y Nova32 DEO 2.0 (Data Express Objects) son exclusivamente para el modo de 32 bits del sistema operativo EXIRION OS utilizando el Framework Nova32 GEX32, para aplicaciones de tipo UI orientadas a gráficos desarrolladas con el compilador Berly 2.0.

BLEM 1.0 Nova32 Development Software


110 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ACCESO A QMFE Si dispone de la edición Small Business o Enterprise, seguramente tiene instalado el escritorio gráfico de usuario del sistema operativo EXIRION OS, desde el cual simplemente puede acceder a QMFE desde el lanzador de aplicaciones, para el Escritorio de 32 bits, y en caso de utilizar la versión de 16 bits, desde el menú de Programas.

Escritorio de 32 bits:

Al finalizar QMFE, si fue llamado desde el Escritorio, regresara a dicho lugar, y si fue invocado desde la terminal, regresara al prompt de SYSPROC.

BLEM 1.0 Nova32 Development Software


111 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Escritorio de 16 bits:

También podemos acceder a QMFE desde una sesión de Terminal, simplemente ejecutando el comando QMFE desde el prompt READY del procesador de instrucciones SYSPROC.

BLEM 1.0 Nova32 Development Software


112 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

FORMATO BINARIO DE TABLAS El archivo de tabla tipo DBF, contiene una matriz que estรก formada por el encabezado del registro y datos de los mismos. BLEM 1.0 Nova32 Development Software


113 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

El encabezado del registro, define la estructura del archivo y contiene cualquier información relacionada con la tabla. El encabezado del registro inicia en la posición cero. Los registros de datos son seguidos del encabezado, en bytes consecutivos, los cuales contienen el texto actual de los campos. El registro de los datos de la tabla, inician en la posición indicada en bytes del 8 al 9 del encabezado del registro. El registro de los datos, del archivo de datos se inicia en la posición indicada en bytes, esto es de la posición 8 a la 9 del encabezado. Los registros de datos comienzan con una bandera de eliminación, de tamaño de un byte. Si este byte es un espacio en ASCII (0x20), el registro no se elimina. Si el primer byte es un asterisco (0x2A), se elimina el registro. Los datos de los campos nombrados en los campos subregistro, son seguidos de la bandera de eliminación.. La longitud de un registro, es en bytes y esta se define al sumar la longitud de los campos del registro. Los tipos enteros en una tabla son almacenados con el primer byte menos significativo. Encabezado de la estructura de la tabla de registro:

OFFSET EN BYTES

DESCRIPCION Tipo de archivo:

0

• • • • • • • • • • •

0x02 xBASE clásico 0x03 xBASE, sin campos memo 0x30 Otro 0x31 Otro, autoincremento habilitado 0x43 xBASE archivos tabla, sin campos memo 0x63 xBASE archivos de sistema, sin campos memo 0x83 xBASE, con campos memo 0x8B xBASE con campos memo 0xCB xBASE tabla, con campos memo 0xF5 Otros (o anterior) con campos memo 0xFB Otros

1-3

Ultima actualización (YYMMDD)

4–7

Número de registros en el archivo

BLEM 1.0 Nova32 Development Software


114 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

8–9

Posición del primer registros de datos

10 – 11

Longitud de un registros de datos, incluyendo la bandera de eliminación

12 – 27

Reservado Tabla de banderas: • 0x01 el archivo tiene una estructura .tdx • 0x02 el archivo tiene archivo con campos Memo • 0x04 el archivo es una base de datos (.dbc)

28

Este byte puede contener la suma de cualquiera de los valores antes mencionados. Por ejemplo, el valor 0x03 indica que el archivo DBF tiene una estructura .tdx y tiene campos Memo. 29

Código marca de página

30 – 31

Reservado, contiene 0x00

32 – n

Campos subregistro El número de campos determina el numero de campos subregistro. Un campo subregistro existe para cada campo de la tabla.

n+1

Finalizador del encabezado del registro (0x0D)

n+2 to n+264

Un rango de 263 bytes, contienen el vínculo de retroceso, el cual es la ruta de acceso relativa a la base de datos asociada (. dbc). Si el primer byte es 0x00, el archivo no está asociado a una base de datos. Por lo tanto, los archivos de base de datos siempre contienen 0x00.

Estructura de campos subregistro:

OFFSET EN BYTES

DESCRIPCION

0 – 10

El nombre del campo es como máximo de 10 caracteres. Si es menos de 10, se rellena con caracteres nulos (0x00).

11

Tipo de campo: • C – Carácter

BLEM 1.0 Nova32 Development Software


115 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

• • • • • • • • • • • • •

N – Numérico F – Flotante D – Fecha L – Lógico M – Memo G – General C – Carácter (binario) M – Memo (binario) B – Doble I – Entero Y – Monetario T – Fecha-Hora P – Imagen

12 – 15

Desplazamiento de campo en el registro

16

Longitud del campo (en bytes)

17

Numero de decimales Campo de Banderas: 0x01 Columna de Sistema (invisible para el usuario) 0x02 Columna que puede almacenar valores nulo 0x04 Columna Binaria (solo para CHAR y MEMO) 0x06 Cuando un campo es NULO y binario (Entero, Monetario y campos del tipo Carácter o Memo) • 0x0C Columna de autoincremento • • • •

18

19 - 22

Siguiente valor de autoincremento

23

Siguiente paso, valor de autoincremento

24 – 31

Reservado

CREACION DE BASE DE DATOS

En los sistemas de tipo XBASE, Nova32 DMO y Nova32 DEO, una Base de Datos es algo distinta a los sistemas actuales orientados a SQL, donde las conexiones al BLEM 1.0 Nova32 Development Software


116 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

servidor se realizan mediante cadenas de conexión llamadas Connection String, que contienen generalmente la dirección ip del servidor, nombre de la base de datos, usuario y password, en una plataforma de sistema operativo EXIRION OS, que utiliza el gestor transaccional de red ETM, todos estos datos son innecesarios, ya que ETM, es quien administra los usuarios,terminales y programas que están conectados a un Servidor central, desde que un usuario hace login en ETM, se inicia una sesión que le proveerá de acceso a todos los recursos que le han sido asignados por el administrador de la red ETM, por lo tanto podrá utilizar todos los recursos que le fueron asignados, archivos secuenciales, bases de datos, transacciones, etc. Dentro del ambiente de ETM, utilizar una base de datos es totalmente transparente para los programas y transacciones que ejecutan los usuarios, para crear una base de datos, simplemente debemos crear un data set particionado, desde una sesión de terminal en el sistema operativo EXIRION OS, el cual contendrá las tablas, cada una en formato de data set binario, con extensión DBF. Para saber mas detalles, consultar el manual del sistema operativo EXIRION OS 9.01 publicado por Nova32 Development Software en formato impreso o digital.

CREACION Y EDICION DE TABLAS Debemos tener creado un data set particionado, que utilizaremos como Base de Datos, y debemos poner en uso dicho data set, antes de poder crear tablas. Para saber más detalles, consultar el manual del sistema operativo EXIRION OS 9.01 publicado por Nova32 Development Software en formato impreso o digital. Para crear tablas pulsamos la tecla de función PF3, y movemos la selección en la opción de Base de Datos, esto indica que la tabla sera creada en la base de datos abierta actualmente.

BLEM 1.0 Nova32 Development Software


117 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

DespuĂŠs procedemos a ir agregando los diferentes campos que integran la Tabla:

Debemos agregar los siguientes datos por cada campo: BLEM 1.0 Nova32 Development Software


118 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CAMPO

DESCRIPCION

Field Name

Nombre del campo de la tabla

Type

Tipo de datos que podrá almacenar: Character, Numeric, Logical, Date o Memo.

Width

Logitud del campo, cantidad de datos.

Dec

Logitud de decimales.

Para guardar la Tabla diseñada pulsamos la tecla de función PF4 y ENTER, QMFE nos pedirá el nombre para salvar los cambios de manera permanente.

Debemos repetir este proceso para ir agregando más tablas a nuestra base de datos en uso. Para modificar una Tabla ya existente utilizamos la tecla de función PF2 y pulsamos ENTER, apareciendo una pantalla que nos pide la Tabla a editar.

BLEM 1.0 Nova32 Development Software


119 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Seleccionamos la Tabla DBF, y pulsamos ENTER, en este momento tendremos la tabla en uso, podemos ver sus campos.

BLEM 1.0 Nova32 Development Software


120 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Si deseamos modificar sus campos pulsamos la tecla de funciรณn PF3 y ENTER.

Pulsamos ESC, para salir de esta pantalla, si deseamos consultar los registros que contiene o editar los datos de sus registros, podemos pulsar la tecla de funciรณn PF5 y ENTER para realizar un Browse:

BLEM 1.0 Nova32 Development Software


121 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

La tecla de funciรณn PF6, nos proporciona las siguientes utilidades:

BLEM 1.0 Nova32 Development Software


122 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

COMANDO

ACCION

Copy

Permite copiar el contenido de una Tabla a un data set secuencial, en función de las condiciones especificadas.

Append

Permite copiar el contenido de un data set secuencial a una Tabla, en función de las condiciones especificadas.

Replace

Permite cambiar el contenido de los campos de todos los registros que cumplan con la condición especificada.

Pack

Elimina todos los registros marcados para borrado.

Zap

Elimina todos los registros de la tabla, sin importar si están marcados o no para su eliminación.

Run

Permite realizar un XCTRL desde QMFE, esta acción es delicada ya que transfiere el control total del CPU actual a un programa de aplicación industrial, si no existe el programa al cual se intenta transferir el control, el sistema operativo EXIRION iniciara un ciclo infinito, tenido que reiniciar todo el computador.

Para saber mas detalles, consultar el manual de la herramienta QMFE del sistema operativo EXIRION OS 9.01 publicado por Nova32 Development Software en formato impreso o digital.

BLEM 1.0 Nova32 Development Software


123 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

INTEGRACIÓN DE DATOS

BLEM 1.0 Nova32 Development Software


124 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

INTEGRACIÓN DE DATOS El manejo de bases de datos relacionales es sumamente importante en cualquier lenguaje de programación, en BLEM existen un conjunto de instrucciones que intentan facilitar este trabajo con el objetivo de que el programador de aplicaciones se enfoque especialmente en las reglas de negocio del proceso que está abstrayendo al ambiente computacional o informático, dejando de preocuparse por aspectos técnicos como la conexión, y ejecuciones de querys de maneras complicadas. Por el momento para la versión BLEM 1.0 se dispone de unas sentencias que permitirían importar y exportar información de las tablas creadas con QMFE a archivos de texto plano, para poder compartir información con otros sistemas operativos y plataformas de software.

EXPORTAR TABLAS COPY TO Copia toda la Tabla de datos en curso o sólo una parte a un nuevo archivo secuencial. COPY TO <archivo> [<ámbito> [FIELDS <lista campos>] [FOR <condición>] [WHILE <condición>] [SDF/DELIMITED/DELIMITED WITH <delimitador>] <archivo> - Es el nombre del nuevo archivo. <ámbito> - Determina la porción del archivo a copiar, por defecto es ALL (todo). FIELDS <lista campos> - Son los campos a copiar a la nueva base de datos. FOR/WHILE <condición> - Especifican la condición a cumplir. SDF - Especifica que el archivo de salida será con formato ASCII, con campos de longitud fija. DELIMITED - Formato para el archivo de salida ASCII, con campos de longitud variable y separados por comas. Si se desea pueden separase con espacios (BLANK), o con cualquier otro delimitador. Ejemplo 1: USE HELP COPY TO HELP.TXT SDF

BLEM 1.0 Nova32 Development Software


125 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

IMPORTAR DATA SET SECUENCIAL APPEND FROM añade datos a la Tabla en uso a partir de otro archivo que puede ser que no sea (.DBF). Podemos seleccionar los datos a añadir mediante calificadores. APPEND [<registros> [FIELDS <campos>] FROM <fichero> [FOR <condición>] [WHILE <condición>] [SDF/DELIMITED [WITH BLANK/<delimitador>]] <registros> - Registros a agregar por defecto son todos. <campos> - Lista de campos a agregar. <fichero> - Nombre del archivo origen. Por defecto, (.DBF), FOR/WHILE <condición> - Indican las condiciones que han de cumplir los registros para ser agregados. SDF - Identifica archivos ASCII. DELIMITED - Archivos ASCII con separación de campos con comas. DELIMITED WITH BLANK - Campos separados por un espacio DELIMITED WITH <delimitador> - Podemos especificarlo. Ejemplo 1: USE CLIENTES APPEND FROM VENTAS FOR PEDIDO > 5000

BLEM 1.0 Nova32 Development Software


126 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

TRANSACCIONES ETM 1.0

BLEM 1.0 Nova32 Development Software


127 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

INTRODUCCION A ETM 1.0 ETM (Exirion Transactional Module) versión 1.0 modo Transaccional.

ETM es el gestor transaccional para el sistema operativo EXIRION que se instala en computadores individuales que realizan la función de terminales cliente, para comunicarse con un servidor centralizado o un mainframe.

ETM es un componente que procesa información descomponiéndola en forma unitaria en operaciones indivisibles, llamadas transacciones, cada transacción debe finalizar de forma correcta o incorrecta como una unidad completa, no puede acabar en un estado intermedio. ETM inicializa los drivers de red vía DHCP, protocolo TCP/IP para poder iniciar sesión Online, pudiendo conectarse a un Mainframe OS/390 o Z/OS con OpenMVS habilitado, y también con servidores Unix.

BLEM 1.0 Nova32 Development Software


128 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Con ETM 1.0 el sistema operativo EXIRION visto desde un modelo de red, se convierte en un cliente que puede invocar la ejecuciรณn de aplicaciones alojadas en un servidor central, mediante el protocolo TCP/IP, pudiendo conectarse incluso a un Mainframe 390 o Z/Architecture que tenga habilitado y customizado el OpenMVS.

Es posible conectar los clientes con sistema operativo EXIRION a servidores para solicitar la carga y ejecuciรณn de programas nativos de EXIRION mediante los servicios de comunicaciรณn de ETM.

Pueden emplearse los siguientes modelos de mainframe como servidor tcp/ip central de DHCP:

-ESA/370 -390 -Z/Architecture

Siempre y cuando tengan habilitado puertos para OpenMVS, en una red segura LAN, e instalar el software necesario para conectar con los clientes EXIRION.

BLEM 1.0 Nova32 Development Software


129 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Pueden emplearse como servidores centrales: -Unix Solaris -Unix BeOS -Unix OpenMVS -Linux Ubuntu -Linux Kubuntu -Windows Server 2003 -Windows Server 2008

La solicitud y ejecución de programas en una red de esta naturaleza se realiza mediante la petición de transacciones desde las terminales al host o servidor central.

TRANSACCIONES

Una transacción es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro. La transacción debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se haya finalizado todos sus procesos.

Las transacciones deben cumplir 4 propiedades ACID:

(A)Atomicity (C)Consistency (I)Isolation (D)Durability BLEM 1.0 Nova32 Development Software


130 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Atomicidad

Es la propiedad que asegura que la operación se haya realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.

Consistencia

Es la propiedad que asegura que sólo se empieza aquello que se puede acabar, por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos.

Aislamiento

Es la propiedad que asegura que una operación no puede afectar a otras, esto asegura que la realización de 2 transacciones sobre la misma información nunca generará ningún tipo de error.

Permanencia

Es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

BLEM 1.0 Nova32 Development Software


131 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

IDENTIFICACION DE TRANSACCIONES ETM

En ETM, las transacciones se nombran por la agrupación de 4 caracteres, por ejemplo: CESN

Como reglas generales cuando se crean, se aplican las siguientes:

1. Deben empezar con una letra 2. No deben contener espacios en blanco 3. No deben contener símbolos especiales (incluida la ñ) 4. Cada usuario debe administrar un catálogo de sus transacciones 5. El gestor transaccional ETM impide nombrar una transacción con más de 4 letras 6. Toda transacción esta enlazada a uno o varios programas binarios del sistema operativo EXIRION.

EJECUCION DE TRANSACCIONES

Para solicitar la carga en memoria principal, y ejecución de la transacción por el microprocesador de la terminal activa, se debe escribir y pulsar un ENTER desde el punto indicativo del ETM:

Ejemplo:

BLEM 1.0 Nova32 Development Software


132 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CESN

<-ENTER

Resultado: Esta acción realiza la petición de la transacción al host o servidor central y de manera inmediata es ejecutada en la terminal que la ha solicitado.

ETM Y OTROS GESTORES TRANSACCIONALES

ETM a diferencia de otros gestores transaccionales, cuando una terminal solicita una transacción, ETM la proveerá a la terminal que la ha solicitado, la transacción genera una nueva Tarea de trabajo en el servidor central, pero los programas a los cuales esta enlazada serán ejecutados por el micropocesador de la terminal, no por el host o el servidor, de esta manera le resta trabajo al host o servidor central, optimizando la operación que se está procesando.

La transacción una vez concluida satisfactoriamente solo afecta a la base de datos del sistema central, sin realizar cambios en ningún lugar de la memoria temporal de la terminal que solicito la ejecución de la transacción.

TIPO DE TRANSACCIONES

En el sistema ETM existen básicamente 2 tipos:

BLEM 1.0 Nova32 Development Software


133 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

_______ 1.1 De sistema | ETM

----------|

Transactions

|_______ 1.2 De usuario

1.1 De usuario Las transacciones del usuario son aquellas que han sido creadas por programadores para cubrir las necesidades de un sistema de informaciรณn en una determinada empresa, en resumen podemos decir que son los sistemas de los clientes que han adquirido una plataforma EXIRION, y nunca deben iniciar con la letra C para evitar confundirlas con las transacciones de sistema.

1.2 De sistema: De manera predeterminada ETM incluye un poderoso conjunto de transacciones denominadas "Transacciones de sistema", que permiten administrar y realizar el monitor del gestor transaccional, todas inician con la letra C de manera predefinida por Nova32 Development Software.

ETM 1.0 LISTA DE TRANSACCIONES PRE-INSTALADAS CLEA Clear ETM Screen system Display CECI Command Level Interpreter CEDA Resource Definition Online CEDF Execution diagnostic facility BLEM 1.0 Nova32 Development Software


134 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CEDX Alias CEDF CEMT Master Terminal CEOT Terminal Status CESF Sign OFF CMAC Messages and Codes Display CESN Sign ON CEBR Temporary Storage Browse CEST Supervisory Terminal Transactions Availables CLER Language Environment Runtime Options CRTE Remote Transactions by User

BLEM 1.0 Nova32 Development Software


135 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

PROGRAMAS EJECUTABLES EN ETM 1.0

Técnicamente ETM espera encontrar un almacén de programas en formato 4D5A, sean con modelo de memoria tiny, small, large y huge, alojados en el servidor central, pero compilados para poder ejecutarlos en una terminal EXIRION, si se desea programar sistemas o utilería usando BLEM, BLAST o RiverPlex! para ejecutarse en el servidor central, se deberán compilar con las versiones para cada plataforma y estos últimos no podrán ser ejecutados por ETM en una terminal EXIRION.

Las aplicaciones de modo gráfico para el escritorio EXIRION, no pueden funcionar en el gestor transaccional ETM 1.0 de red, debido a que el API XA2600, el API GEX16 y el Framework GEX32 están diseñados exclusivamente para el Desktop EXIRION, no son, ni serán compatibles con la funcionalidad de ETM, ya que este último no dispone de API para desarrollo de escritorios basados en ventanas, ETM dispone de un poderoso conjunto de transacciones modo terminal para ejecutar aplicaciones distribuidas por medio de grupos de trabajo en una red LAN.

Por tal motivo a nivel de aplicaciones, el gestor transaccional ETM y los escritorios GUI16 y GUI32 del sistema operativo EXIRION son incompatibles.

En cuanto a aplicaciones de tipo terminal programadas con BLEM,BLAST o RiverPlex! en un sistema operativo EXIRION, estas pueden llegar a ejecutarse en un ambiente OpenMVS, Unix o Windows, siempre y cuando sean re-compiladas con las versiones mirror adecuadas de esos compiladores en el sistema operativo destino.

Los compiladores del kernel de EXIRION por default generan binarios para el x86 en modo real, es decir a 16 bits en formato 4D5A, mientras que los compiladores para el kernel de otros sistemas operativos, generan por lo común código binario x86 en modo protegido, es decir a 32 bits en función de la arquitectura destino que disponga el servidor Unix o la arquitectura MIPS del Mainframe destino.

Por lo cual el código fuente entre ambas plataformas es el mismo, pero los binarios producidos no lo son, recompilando se obtienen a partir del mismo fuente versiones para varias plataformas.

Ejemplos: BLEM 1.0 Nova32 Development Software


136 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

EXIRION OS, Compilación BLAST, internamente el JCL de compilación ejecuta esta instrucción en un paso del job:

BLAST16 FUENTE.BLS /x86 OBJETO.OUT

Produce un OBJETO.PGM de 16 bits binario formato 4D5A customizado, después de ser enlazado.

Unix/Linux (x86), Compilación BLAST desde la consola:

blast32 fuente.bls /x86 objeto.out

Produce un objeto.out de 32 bits binario para modo protegido del microprocesador.

Windows (x86), Compilación BLAST desde símbolo del sistema:

blast32 fuente.bls /x86 objeto.exe

Produce un objeto.exe de 32 bits binario para modo protegido del microprocesador.

BLEM 1.0 Nova32 Development Software


137 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

El mismo código fuente pudo producir una versión para cada plataforma, siempre y cuando sea recompilado en cada una, y no se utilicen sentencias de lenguaje o funciones propias de la plataforma utilizada, para más detalles ver manuales de programación en EXIRION OS y plataformas OpenMVS, Unix y Windows de Nova32.

REQUISITOS DE HARDWARE PARA ETM 1.0

Por el momento el gestor transaccional ETM 1.0 solo dispone de drivers para las tarjetas de red de RealTek, por lo cual para realizar la instalación física de los terminales cada computador debe tener instalada una tarjeta de red tipo PCI compatible con los modelos:

-RTL 8139A -RTL 8139B -RTL 8139C -RTL 8139D

El cableado para la red, puede ser el estándar "A" o el estándar "B", y usar switch's para las direcciones MAC de los grupos de trabajo en la capa nivel 2 descrita en la arquitectura OSI. También es importante disponer de un servidor DHCP dinámico para la asignación automática de las IP's de las terminales, sin el cual el ETM no puede iniciar, cuando el ETM arranca espera que el servidor DHCP que existe en su red, le asigne una ip dinámica a la terminal que esta conectando. el

BLEM 1.0 Nova32 Development Software


138 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ETM lleva su propio control de la terminal, conociendo en todo momento su estado e historial de conexiones.

Para mayor información consulte "ETM 1.0 Guía de Administración" publicada por Nova32 Development Software en formato PDF o impreso.

ETM Y BLEM

BLEM por excelencia es el lenguaje para desarrollar aplicaciones para el gestor transaccional ETM del sistema operativo EXIRION OS, también se pueden crear aplicaciones y programas utilizando BLAST XC y RiverPlex!, pero BLEM es la mejor opción al momento de crear nuevos desarrollos para ETM, debido a su facilidad de codificación, robusta biblioteca estándar de funciones y su completo acceso al API de ETM.

API DE ETM

El API ETM permite a los compiladores BLEM, BLAST XC y RiverPlex! acceder a los servicios de ETM, cuando un programa se encuentra en ejecución al ser invocado desde una transacción. Las principales funciones del API ETM, se describen a continuación:

BLEM 1.0 Nova32 Development Software


139 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SET_SPOOL Permite escribir en el spool del sistema ETM, designado para la terminal activa, generalmente esta función es sumamente útil, cuando deseamos depurar o rastrear la ejecución de una transacción en curso. Parámetros: HEADER Datos de arranque de la transacción TITLE

Identificador de la transacción

TEXT1

DD(Data Definition) celda para datos disponible 1

TEXT2

DD(Data Definition) celda para datos disponible 2

TEXT3

DD(Data Definition) celda para datos disponible 3

TEXT4

DD(Data Definition) celda para datos disponible 4

TEXT5

DD(Data Definition) celda para datos disponible 5

END

Código de retorno esperado por ETM para finalizar

SET_EIBCALEN Esta función informa a ETM, el tamaño del DCB(Data Control Block) bloque de control de datos de la COMMAREA de un programa BLEM, que esta manejando el programa en el momento preciso que accede a una base de datos o archivo secuencial para mover datos, esta información se expresa en bytes. Parámetros: EIBCALEN Tamaño de la COMMAREA de un programa BLEM, que se encuentre accediendo a una base de datos o archivo secuencial, expresada en bytes.

SET_EIBCOMPL BLEM 1.0 Nova32 Development Software


140 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Función para informar a ETM, que el programa ha logrado ejecutar correctamente su objetivo, por lo tanto la transacción sera finaliza con éxito. Parámetros: EIBCOMPL Valor booleano expresado en formato de byte con valores de 1 y 0 para informar éxito o fracaso del programa y de la transacción.

SET_EIBCONF Permite informar a ETM, de cualquier parámetro de configuración necesario para arrancar la transacción. Parámetros: EIBCONF Cadena tipo string que agrupa los parámetros de manera contigua en grupos de 2 bytes, ejemplo: EIBCONF con un valor de 19238967, significativo: CODIGO RC PARA BOOTSTRAP

OPERACION EJECUTABLE

19

La transacción requiere fecha condicional para ser ejecutada

23

La transacción requiere hora condicional para ser ejecutada

89

La transacción requiere un fichero secuencial de entrada

67

La transacción requiere validar un registro ID en base de datos

Para conocer todos los códigos RC, de esta función, leer la guía de desarrollo en ETM, publicada por Nova32 Development Software.

BLEM 1.0 Nova32 Development Software


141 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SET_EIBERR

Durante la ejecución de una transacción, el objetivo esperado no siempre puede terminar de manera correcta, existen innumerables factores tanto internos como externos a cualquier sistema computacional, que pueden causar resultados inesperados, lo importante es poder controlar las posibles desviaciones, esto se logra en ETM, mediante el acceso a esta función para conocer el código de error producido en un momento critico de la ejecución de la transacción. Parámetros: EIBERR Código de error del estado de la transacción en curso, expresado en bytes.

SET_EIBCODE Esta función nos permite informar a ETM, el código de repuesta con el cual la transacción ha finalizado de manera correcta, en ETM, una transacción puede finalizar de manera correcta con diferentes estados de terminación, por ejemplo una falla de hardware momentánea, la ausencia de un dato temporal, no imprescindible para la finalización del proceso, o ningún estado de advertencia, el código de finalización correcta es diferente al código de finalización errónea, ya que el segundo informa el motivo por el cual la transacción no se pudo completar, mientras que el primero informa la manera o estado en que se pudo completar la transacción en ejecución por ETM. Parámetros: EIBCODE Valor numérico expresado en bytes que contiene el estado en que una transacción ha finalizado de manera correcta tras su ejecución en el gestor ETM.

BLEM 1.0 Nova32 Development Software


142 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SET_EIBRESP En algunas ocasiones las transacciones pueden devolver un valor de respuesta a ETM, adicional a su EIBCODE, ya que este segundo es el estado en que la transacción finaliza, el primero es un valor que pudiera ser de utilidad al momento de rastrear el resultado de la transacción. Por ejemplo una transacción de un negocio de prestamos financieros podría finalizar con un EIBCODE de 35F0, y un EIBRESP con valor de 57890.55, el primer campo expresa que durante la ejecución la transacción intento varias veces acceder a un archivo secuencial que había llegado al final, para realizar descuentos a la cuenta, logrando realizar la acción, pero con problemas de acceso por elevados usuarios conectados, y el campo EIBRESP, informa a ETM, que el saldo final de la cuenta del cliente tras ejecutar la transacción es de $ 57,890.55 pesos, en este ejemplo el programa que fue invocado por la transacción tenia un llamado a la función SET_EIBRESP, sin embargo usted podría pensar que este tipo de campos de respuesta quebrantarían la seguridad del sistema ETM, sin embargo esto no sucede ya que los campos EIB, donde esta función responde solo están disponibles para la terminal y el usuario que cuenta con los privilegios suficientes para haber lanzado la transacción, ninguna otra terminal o usuario pueden ver estos datos que han sido informados a ETM.

ETM gestiona sesiones por cada terminal y usuario, logrando un elevado nivel de seguridad y privacidad durante la ejecución de una transacción, aun cuando todas las transacciones accedan a la misma base de datos, o ficheros secuenciales.

Parámetros: EIBRESP Valor numérico que puede ser informado por un programa BLEM a ETM, tras finalizar correctamente, si la transacción finaliza de manera incorrecta, aunque se invoque esta función con un valor entero positivo, ETM recibirá un valor de 0, puesto que la transacción no se completo de manera exitosa.

BLEM 1.0 Nova32 Development Software


143 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

API ETM DE ENTORNO XBASE PARA BLEM

Se integro en BLEM una biblioteca estándar especial para la configuración de ciertos aspectos de compatibilidad con la gestión de bases de datos tipo XBASE y el entorno de ejecución de ETM, es un API de ETM, especial que solo existe en BLEM, no se puede utilizar en el compilador gemelo BLAST XC ni en otros compiladores de Nova32 como RiverPlex! o Berly, ya que este conjunto de sentencias están totalmente orientadas a los sistemas de gestión XBASE a los cuales solo BLEM tiene soporte para trabajar con el formato de archivo binario DBF. Los compiladores BLAST XC, RiverPlex! y Berly 2.0 fueron especialmente diseñados para trabajar con la Base de Datos DMO 3.0 de 8 bits, y DEO 2.0 de 32 bits de Nova32 Development Software, para el sistema operativo EXIRION OS en modo de 16 y 32 bits.

LISTADO DE INSTRUCCIONES: SET EXCLUSIVE Permite el uso exclusivo o no de archivos de base de datos, índices y campos memos, en redes locales. Por defecto esta en ON. SET EXCLUSIVE ON/OFF SET ALTERNATE TO <fichero> Crea un fichero de protocolo. SET COLOR TO <expresión> Fija los colores de pantalla. SET DECIMALS TO <expN> Fija el número de los decimales a mostrar en los resultados de las funciones numéricas y cálculos. SET DEFAULT TO <unidad>[:<rutra>] Especifica la unidad y directorio por defecto para la creación de ficheros. SET DATE AMERICAN/ANSI/BRITISH/ITALIAN/FRENCH/GERMAN Fija el formato de los campos de fecha:

BLEM 1.0 Nova32 Development Software


144 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

AMERICAN mm/dd/aa ANSI aa.mm.dd BRITISH dd/mm/aa ITALIAN dd-mm-aa FREMCH dd/mm/aa GERMAN dd.mm.aa. SET DELIMITERS TO <expr> Especifica los caracteres empleados como delimitadores. SET DEVICE TO SCREEN/PRINTER Dirige el resultado de la SYSOUT al dispositivo elegido. SET FILTER TO <condición> Hace que la base de datos se vea como si sólo contuviese los registros que cumplen la condición. SET INDEX TO <lista ficheros> Abre el índice indicado y cierra los anteriores abiertos con la misma base de datos. SET KEY <expN> TO <procedimiento> Asigna a una tecla un procedimiento. SET MARGIN TO <expN> Fija el margen izquierdo de la impresora. SET MESSAGE TO <expN>/CENTER Establece la línea donde se muestran los mensajes asociados a PROMPT. SET ORDER TO [<expN>] Establece que fichero índice es el principal. SET PATH TO [<lista de rutas>] Especifica la ruta de búsqueda que sigue en el acceso a ficheros. SET PRINTER TO [<dispositivo>/<fichero>] Determina la salida de la impresora. SET PROCEDURE TO [<fichero>] Activa fichero de procedimientos XBASE. SET ALTERNATE on/OFF Determina cuando la salida se envía al fichero. SET BELL on/OFF Determina cuándo suena la alarma durante la entrada de datos. SET CENTURY on/OFF Determina si una fecha debe mostrar los dígitos del siglo o no. SET CONFIRM on/OFF Determina si se requiere pulsar return para cada GET. SET CONSOLE on/off Determina si la ejecución de los comandos utilizarán la pantalla como salida.. SET CURSOR on/off Muestra u oculta el cursor en la pantalla. SET DELETED on/OFF Oculta/procesa los registros marcados para borrar.

BLEM 1.0 Nova32 Development Software


145 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

SET DELIMITERS on/OFF Determina si se muestran los delimitadores SET ESCAPE ON/off Activa/Desactiva el desvío producido al pulsar la tecla ESC. SET INTENSITY ON/off Muestra los campos de entrada durante los GETs en color o en vídeo inverso. SET PRINT on/OFF Determina si la salida de los comandos SYSOUT se mandarán a la impresora. SET SCOREBOARD ON/off Determinan si los mensajes aparecen en la línea 0. SET SOFTSEEK on/OFF Permite acceder al registro más próximo si el buscado no se encuentra. SET UNIQUE on/OFF Determina si sólo los registros con clave no repetida aparecerán en el índice. SET WRAP on/OFF Permite el movimiento circular entre opciones de menús.

EIB (EXEC INTERFACE BLOCK) EIB es el bloque de interfaz ejecutable junto con los bloques habituales de control de ETM, cada tarea en un entorno ETM de nivel de mando dispone de un bloque de control conocido como el bloque de interfaz ejecutable(EIB) asociado a él. Un programa de aplicación puede acceder a todos los campos de EIB por una función del API ETM. EIB contiene información que es útil durante la ejecución de un programa de aplicación, tal como el identificador de la transacción, la fecha y la hora (inicialmente cuando se inicia la tarea, y posteriormente, si actualizado por el programa de aplicación utilizando ASKTIME), y la posición del cursor en un dispositivo de visualización. EIB también contiene información que es útil cuando se utiliza para depurar un programa. Para obtener información acerca de los campos de programación EIB de una transacción de usuario utilice la transacción de sistema CECI desde ETM.

BLEM 1.0 Nova32 Development Software


146 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Todos los campos EIB puede ser accedidos desde los bloques de control:

EXEC ETM

... sentencias

END-EXEC

Utilizando las funciones y sentencias del API ETM en BLEM.

CAMPOS EIB EIBAID Permite conocer información importante del estado de conexión de una Terminal en el gestor transaccional ETM.

EIBTRMID Contiene toda la información de las Terminales actualmente conectadas en una red gestionada por ETM.

EIBATT Almacena datos de inicio o finalización durante la ejecución de una transacción en el monitor ETM. BLEM 1.0 Nova32 Development Software


147 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

EIBCALEN Permite almacenar en bytes, el tamaño de la COMMAREA de un programa BLEM en el momento de realizar una operación de tipo critica durante su ejecución como resultado de haber sido invocado por una transacción, con fines de rastreo y depuración en la terminal activa.

EIBCOMPL Este campo es sumamente importante ya que nos permite determinar si la transacción pudo o no, ser completada. Valor booleano expresado en formato de byte con valores de 1 y 0 para informar éxito o fracaso del programa y de la transacción.

EIBCONF Cadena tipo string que agrupa los parámetros de manera contigua en grupos de 2 bytes, ejemplo: EIBCONF con un valor de 19238967, significativo: CODIGO RC PARA BOOTSTRAP

OPERACION EJECUTABLE

19

La transacción requiere fecha condicional para ser ejecutada

23

La transacción requiere hora condicional para ser ejecutada

89

La transacción requiere un fichero secuencial de entrada

67

La transacción requiere validar un registro ID en base de datos

BLEM 1.0 Nova32 Development Software


148 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Para conocer todos los códigos RC, de esta función, leer la guía de desarrollo en ETM, publicada por Nova32 Development Software.

EIBDATE Campo EIB que contiene la fecha de ejecución de la transacción en el gestor ETM del sistema operativo EXIRION OS 9.01.

EIBTIME Campo EIB que contiene la hora de ejecución de la transacción en el gestor ETM del sistema operativo EXIRION OS 9.01., si la transacción ha iniciado el campo toma la hora en que la TX hace el START, en cambio si ya ha finalizado el campo tomara el valor de la TX cuando hace el END.

EIBERR Código de error del estado de la transacción en curso, expresado en bytes.

BYTE

ERROR LEVEL

BYTE

ERROR LEVEL

00 NORMAL

55 ENQBUSY

01 ERROR

56 ENVDEFERR

02 RDATT

57 IGREQCD

03 WRBRK

58 SESSIONERR

04 EOF

59 SYSBUSY

05 EODS

60 SESSBUSY

BLEM 1.0 Nova32 Development Software


149 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BYTE

ERROR LEVEL

BYTE

ERROR LEVEL

06 EOC

61 NOTALLOC

07 INBFMH

62 CBIDERR

08 ENDINPT

63 INVEXITREQ

09 NONVAL

64 INVPARTNSET

10 NOSTART

65 INVPARTN

11 TERMIDERR

66 PARTNFAIL

12 FILENOTFOUND

69 USERIDERR

13 NOTFND

70 NOTAUTH

14 DUPREC

72 SUPPRESSED

15 DUPKEY

80 NOSPOOL

16 INVREQ

81 TERMERR

17 IOERR

82 ROLLEDBACK

18 NOSPACE

83 END

19 NOTOPEN

84 DISABLED

20 ENDFILE

85 ALLOCERR

21 ILLOGIC

86 STRELERR

22 LENGERR

87 OPENERR

23 QZERO

88 SPOLBUSY

24 SIGNAL

89 SPOLERR

25 QBUSY

90 NODEIDERR

26 ITEMERR

91 TASKIDERR

27 PGMIDERR

92 TCIDERR

28 TRANSIDERR

93 DSNNOTFOUND

BLEM 1.0 Nova32 Development Software


150 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BYTE

ERROR LEVEL

BYTE

ERROR LEVEL

29 ENDDATA

94 LOADING

31 EXPIRED

95 MODELIDERR

32 RETPAGE

96 OUTDESCRERR

33 RTEFAIL

97 PARTNERIDERR

34 RTESOME

98 PROFILEIDERR

35 TSIOERR

99 NETNAMEIDERR

36 MAPFAIL

100 LOCKED

37 INVERRTERM

101 RECORDBUSY

38 INVMPSZ

102 UOWNOTFOUND

39 IGREQID

103 UOWLNOTFOUND

40 OVERFLOW

104 LINKABEND

41 INVLDC

105 CHANGED

42 NOSTG

106 PROCESSBUSY

43 JIDERR

107 ACTIVITYBUSY

44 QIDERR

108 PROCESSERR

45 NOJBUFSP

109 ACTIVITYERR

46 DSSTAT

110 CONTAINERERR

47 SELNERR

111 EVENTERR

48 FUNCERR

112 TOKENERR

49 UNEXPIN

113 NOTFINISHED

50 NOPASSBKRD

114 POOLERR

51 NOPASSBKWR

115 TIMERERR

BLEM 1.0 Nova32 Development Software


151 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BYTE

ERROR LEVEL

BYTE

ERROR LEVEL

53 SYSIDERR

116 SYMBOLERR

54 ISCINVREQ

117 TEMPLATERR 118 NOTSUPERUSER 119 CSDERR 120 DUPRES 121 RESUNAVAIL 122 CHANNELERR 123 CCSIDERR 124 TIMEDOUT 125 CODEPAGEERR

EIBCODE Este campo nos permite informar a ETM, el código de repuesta con el cual la transacción ha finalizado de manera correcta, en ETM, una transacción puede finalizar de manera correcta con diferentes estados de terminación, por ejemplo una falla de hardware momentánea, la ausencia de un dato temporal, no imprescindible para la finalización del proceso, o ningún estado de advertencia, el código de finalización correcta es diferente al código de finalización errónea, ya que el segundo informa el motivo por el cual la transacción no se pudo completar, mientras que el primero informa la manera o estado en que se pudo completar la transacción en ejecución por ETM.

CODE 1E0

BLEM 1.0 Nova32 Development Software

VALUE INVREQ


152 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

204

EOF

310

EODS

4C1

EOF

5C2

ENDINPT

6D0

SYSIDERR

7D2

SESSIONERR

8D3

SYSBUSY

9D4

SESSBUSY

10D5

NOTALLOC

11E0

INVREQ

12E1

LENGERR

13E3

WRBRK

14E4

RDATT

15E5

SIGNAL

16E6

TERMIDERR

17E7

NOPASSBKRD

18E8

NOPASSBKWR

19EA

IGREQCD

20EB

CBIDERR

21EC

PARTNERIDERR

22ED

NETNAMEIDERR

23F1

TERMERR

BLEM 1.0 Nova32 Development Software


153 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

2420

EOC

2540

INBFMH

26F6

NOSTART

27F7

NONVAL

2801

FILENOTFOUND

2902

ILLOGIC

3003

LOCKED

3105

RECORDBUSY

3208

INVREQ

330C

NOTOPEN

340D

DISABLED

350F

ENDFILE

3680

IOERR

3781

NOTFND

3882

DUPREC

3983

NOSPACE

4084

DUPKEY

4185

SUPPRESSED

4286

LOADING

43D0

SYSIDERR

44D1

ISCINVREQ

45D6

NOTAUTH

BLEM 1.0 Nova32 Development Software


154 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

46E1

LENGERR

4701

QZERO

4802

QIDERR

4904

IOERR

5008

NOTOPEN

5110

NOSPACE

52C0

QBUSY

53D0

SYSIDERR

54D1

ISCINVREQ

55D6

NOTAUTH

56D7

DISABLED

57E0

INVREQ

58E1

LENGERR

5901

ITEMERR

6002

QIDERR

6104

IOERR

6208

NOSPACE

6320

INVREQ

64D0

SYSIDERR

65D1

ISCINVREQ

66D6

NOTAUTH

BLEM 1.0 Nova32 Development Software


155 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

67E1

LENGERR

68E0

INVREQ

69E1

LENGERR

70E2

NOSTG

7101

PGMIDERR

72D6

NOTAUTH

73D9

RESUNAVAIL

74DA

CHANNELERR

75E0

INVREQ

76E1

LENGERR

77F1

TERMERR

7801

ENDDATA

7904

IOERR

8011

TRANSIDERR

8112

TERMIDERR

8220

EXPIRED

8381

NOTFND

84D0

SYSIDERR

85D1

ISCINVREQ

86D6

NOTAUTH

87D8

USERIDERR

88D9

RESUNAVAIL

BLEM 1.0 Nova32 Development Software


156 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

89DA

CHANNELERR

90E1

LENGERR

91E9

ENVDEFERR

92FF

INVREQ

9332

ENQBUSY

94E0

INVREQ

95E1

LENGERR

9601

JIDERR

9702

INVREQ

9805

NOTOPEN

9906

LENGERR

1007

IOERR

1109

NOJBUFSP

12D6

NOTAUTH

1301

ROLLEDBACK

1401

INVREQ

1502

RETPAGE

1604

MAPFAIL

1708

INVMPSZ

1820

INVERRTERM

1940

RTESOME

2080

RTEFAIL

BLEM 1.0 Nova32 Development Software


157 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

21E1

LENGERR

22E3

WRBRK

23E4

RDATT

2402

PARTNFAIL

2504

INVPARTN

2608

INVPARTNSET

2710

INVLDC

2820

UNEXPIN

2940

IGREQCD

3080

TSIOERR

3101

OVERFLOW

3204

EODS

3308

EOC

3310

IGREQID

34E0

INVREQ

3504

DSSTAT

3608

FUNCERR

370C

SELNERR

3810

UNEXPIN

39E1

LENGERR

4011

EODS

412B

IGREQCD

BLEM 1.0 Nova32 Development Software


158 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

CODE

VALUE

4220

EOC

4380

INVEXITREQ

4401

INVREQ

450D

NOTFND

4610.

INVREQ

4713

NOTOPEN

4814

ENDFILE

4915

ILLOGIC

5016

LENGERR

512A

NOSTG

5246

NOTAUTH

5350

NOSPOOL

5455

ALLOCERR

5556

STRELERR

5657

OPENERR

5758

SPOLBUSY

5859

SPOLERR

605A

NODEIDERR

EIBRES En algunas ocasiones las transacciones pueden devolver un valor de respuesta a ETM, adicional a su EIBCODE, ya que este segundo es el estado en que la BLEM 1.0 Nova32 Development Software


159 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

transacción finaliza, el primero es un valor que pudiera ser de utilidad al momento de rastrear el resultado de la transacción. Por ejemplo una transacción de un negocio de prestamos financieros podría finalizar con un EIBCODE de 35F0, y un EIBRESP con valor de 57890.55, el primer campo expresa que durante la ejecución la transacción intento varias veces acceder a un archivo secuencial que había llegado al final, para realizar descuentos a la cuenta, logrando realizar la acción, pero con problemas de acceso por elevados usuarios conectados, y el campo EIBRESP, informa a ETM, que el saldo final de la cuenta del cliente tras ejecutar la transacción es de $ 57,890.55 pesos, en este ejemplo el programa que fue invocado por la transacción tenia un llamado a la función SET_EIBRESP, sin embargo usted podría pensar que este tipo de campos de respuesta quebrantarían la seguridad del sistema ETM, sin embargo esto no sucede ya que los campos EIB, donde este campo responde solo están disponibles para la terminal y el usuario que cuenta con los privilegios suficientes para haber lanzado la transacción, ninguna otra terminal o usuario pueden ver estos datos que han sido informados a ETM.

EIBTASKN Cuando un usuario ejecuta una transacción desde su terminal de ETM, el gestor transaccional asigna un numero de tarea único a la transacción, este valor es importante para determinar cuantas transacciones se realizan en ciertos periodos de tiempo.

AUDITORIA DE TRANSACCIONES EN ETM El gestor transaccional ETM, incorpora de manera predefinida un conjunto de transacciones para administración y monitoreo de todo el sub-sistema de red que opera con ETM.

BLEM 1.0 Nova32 Development Software


160 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Las transacciones que nos permitirán dar seguimiento al bloque de EIB e información de las terminales son:

– CECI – CEMT – CEDX – CRTE

Para visualizar en la Terminal el bloque EIB de una transacción utilizamos CECI y el comando EIB mas el nombre de la transacción. Ejemplo: CECI EIB UHAL

BLEM 1.0 Nova32 Development Software


161 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

La transacciรณn CEMT nos permite conocer el programa ejecutable del sistema operativo EXIRION OS asociado a la transacciรณn ETM, que sera arrancado por la TX invocada desde las terminales.

BLEM 1.0 Nova32 Development Software


162 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

Las transacciones CEDF y CEDX nos permiten depurar la memoria de una Terminal ETM, con fines de rastreo y depuraciรณn de una transacciรณn, podemos volcar la memoria principal y realizar el desensamblado de un programa asociado a la transacciรณn.

BLEM 1.0 Nova32 Development Software


163 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BLEM 1.0 Nova32 Development Software


164 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

BLEM 1.0 Nova32 Development Software


165 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

La transacciรณn CRTE nos permite conocer todas las transacciones que se encuentran actualmente asignadas a la terminal ETM y que el usuario puede ejecutar.

BLEM 1.0 Nova32 Development Software


166 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

ANEXO

BLEM 1.0 Nova32 Development Software


167 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

EJEMPLO DE PROGRAMA BLEM CON BASE DE DATOS Y RED ETM 1.0

001000 IDENTIFICATION DIVISION 001001 APP-SYS PUHA1001 001002 PROGRAMMER-SYS ROLANDO FERNANDEZ BENAVIDEZ 001003 SYSTEM-APP EXIRION /OS 001004 ASKDATE 06/12/2012 001005 REMARKS-RM CAPTURA DE DATOS DE LA SOLICITUD DE INSCRIPCION 001006 ENVIRONMENT DIVISION 001007 MODULE PHUA1001 001008 DATA DIVISION 001009 WORKING-STORAGE SECTION 001010 WSOPCI PICTURE 0 001011 WSMAIN PICTURE 0 001012 WSFOUND PICTURE 0 001013 WCMATI PICTURE 0 001014 WCSOLI PICTURE 0 001015 STORE SPACE(9) TO WTMATI 001016 TRVOE PICTURE 0 001017 STORE SPACE(12) TO TMATRICULA 001018 TSOLICITUD PICTURE 0 001019 TTURNO PICTURE 0 001020 TPLAN PICTURE 0 001021 STORE SPACE(10) TO TFEDE 001022 TSEMESTRE PICTURE 0 001023 STORE SPACE(40) TO TNOMBRE 001024 STORE SPACE(30) TO TAPEMAT 001025 STORE SPACE(30) TO TAPEPAT 001026 STORE SPACE(10) TO TFECHANAC 001027 STORE SPACE(30) TO TLUGNAC 001028 TSEXO PICTURE 0 001029 TVIVES PICTURE 0 001030 STORE SPACE(50) TO TDIREC1 001031 TNUMERO PICTURE 0 001032 STORE SPACE(3) TO TINTERIOR 001033 STORE SPACE(50) TO TREFEREN 001034 STORE SPACE(30) TO TCOLONIA1 001035 STORE SPACE(20) TO TESTADO1 001036 STORE SPACE(20) TO TMUNICI1 001037 TCP1 PICTURE 0 001038 STORE SPACE(20) TO TTEL1 001039 STORE SPACE(20) TO TCEL1 001040 STORE SPACE(30) TO TCORREO1 001041 STORE SPACE(30) TO TNPRV 001042 STORE SPACE(20) TO TPPRV 001043 TTUTOR PICTURE 0 001044 STORE SPACE(50) TO TNOMPADRE 001045 STORE SPACE(50) TO TDIREC3 001046 STORE SPACE(30) TO TCOLONIA3 001047 STORE SPACE(25) TO TESTADO3 001048 STORE SPACE(20) TO TMUNICI3 001049 STORE SPACE(20) TO TTEL3 001050 STORE SPACE(20) TO TCEL2

BLEM 1.0 Nova32 Development Software


168 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001051 TCP3 PICTURE 0 001052 STORE SPACE(30) TO TCORREO2 001053 STORE SPACE(50) TO TLUGTRA1 001054 STORE SPACE(30) TO TCARGO1 001055 STORE SPACE(30) TO TDOMI1 001056 STORE SPACE(30) TO TCOLONIA4 001057 STORE SPACE(25) TO TESTADO4 001058 STORE SPACE(20) TO TMUNICI4 001059 STORE SPACE(20) TO TTEL4 001060 TCP4 PICTURE 0 001061 TINGMEN1 PICTURE 0 001062 STORE SPACE(50) TO TDEPEN1 001063 TESTCIV1 PICTURE 0 001064 STORE SPACE(50) TO TNOMMADRE 001065 STORE SPACE(50) TO TDIREC4 001066 STORE SPACE(30) TO TCOLONIA5 001067 STORE SPACE(25) TO TESTADO5 001068 STORE SPACE(20) TO TMUNICI5 001069 STORE SPACE(20) TO TTEL5 001070 STORE SPACE(20) TO TCEL5 001071 TCP5 PICTURE 0 001072 STORE SPACE(30) TO TCORREO3 001073 STORE SPACE(30) TO TLUGTRA2 001074 STORE SPACE(30) TO TCARGO2 001075 STORE SPACE(30) TO TDOMI2 001076 STORE SPACE(30) TO TCOLONIA6 001077 STORE SPACE(25) TO TESTADO6 001078 STORE SPACE(20) TO TMUNICI6 001079 STORE SPACE(20) TO TTEL6 001080 TCP6 PICTURE 0 001081 TINGMEN2 PICTURE 0 001082 STORE SPACE(50) TO TDEPEN2 001083 TESTCIV2 PICTURE 0 001084** LAYOUT DE LA RUTINA INFOALUM 001085 STORE SPACE(40) TO TLUGARTRA 001086 STORE SPACE(20) TO TDEPTO1 001087 STORE SPACE(20) TO TPUESTO1 001088 STORE SPACE(20) TO TNOMBREJI 001089 STORE SPACE(20) TO TPUESTO2 001090 STORE SPACE(30) TO TDIREC2 001091 STORE SPACE(17) TO TCOLONIA2 001092 STORE SPACE(15) TO TESTADO2 001093 TCP2 PICTURE 0 001094 STORE SPACE(15) TO TMUNICI2 001095 STORE SPACE(14) TO TTEL2 001096** LAYOUT DE LA RUTINA DATMEDIC 001097 TCCSM PICTURE 0 001098 TCUAL PICTURE 0 001099 STORE SPACE(20) TO TESPEC 001100 STORE SPACE(30) TO TNUMAFI 001101 STORE SPACE(30) TO TCLINICA 001102 STORE SPACE(20) TO TTELMEDI 001103 TTRAMEDI PICTURE 0 001104 TPADCRONI PICTURE 0 001105 CONST-STORAGE SECTION 001106** YOUR ELEMENTS 001107 PROGRAM DIVISION 001108 PROCESS START SECTION 001109** PREPARAR CODIGO PARA EJECUTAR LA TRANSACCION EN ETM 001110 EXEC ETM 001111 (* 001112 SET INTENSITY ON 001113 WRITEQ SET_EIBCALEN WITH 28 001114 WRITEQ SET_EIBCOMPL WITH 0

BLEM 1.0 Nova32 Development Software


169 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001115 WRITEQ SET_EIBCONF WITH 1001 001116 WRITEQ SET_EIBERR WITH 0 001117 WRITEQ SET_EIBCODE WITH 33 001118 WRITEQ SET_EIBRESP WITH 0 001119 *) 001120 END-EXEC 001121 PERFORM AUTONUMS 001122**ESTE CODIGO SOLO ES CON FINES DE DEPURACION DEL PROGRAMA 001123** EXEC SQL 001124** (* 001125** SET EXCLUSIVE ON 001126** USE INSALM 001127** DELETE ALL 001128** PACK 001129** CLOSE 001130** USE INSENCA 001131** DELETE ALL 001132** PACK 001133** CLOSE 001134** USE INSMED 001135** DELETE ALL 001136** PACK 001137** CLOSE 001138** USE INSLAB 001139** DELETE ALL 001140** PACK 001141** CLOSE 001142** USE INSFAM 001143** DELETE ALL 001144** PACK 001145** CLOSE 001146** *) 001147** END-EXEC 001148 PERFORM MENUALTA 001149 SYSOUT 001150 STOP-RUN 001151 PROCESS MENUALTA SECTION 001152 WSMAIN MOVE 1 001153 DO-WHILE WSMAIN = 1 001154 SYSOUT 001155 POS 1,1 SCREEN "UNIVERSIDAD EJEMPLO" 001156 POS 1,64 SCREEN "FECHA:" 001157 POS 1,70 SCREEN DATE() 001158 POS 2,1 SCREEN "TX:UHAL" 001159 POS 2,64 SCREEN "HORA:" 001160 POS 2,69 SCREEN TIME() 001161 POS 3,1 SCREEN "SYSID:MXUHC1" 001162 POS 5,33 SCREEN "ALUMNOS INSCRITOS VIGENTES" 001163 POS 6,43 SCREEN "UHC" 001164 POS 8,38 SCREEN "PRINCIPAL" 001165 POS 9,28 SCREEN "--------------------------------------" 001166 POS 10,28 SCREEN "1) DATOS ESCOLARES Y PARTICULARES" 001167 POS 11,28 SCREEN "2) INFORMACION LABORAL" 001168 POS 12,28 SCREEN "3) INFORMACION FAMILIAR" 001169 POS 13,28 SCREEN "4) DATOS MEDICOS" 001170 POS 14,28 SCREEN "5) ABRIR REGISTRO" 001171 POS 15,28 SCREEN "7) FINALIZAR TRANSACCION" 001172 POS 16,28 SCREEN "---------------------------------------" 001173 POS 20,3 SCREEN "SELECCIONE OPCION:" 001174 POS 20,23 GET WSOPCI MASK "99" 001175 ACCEPT 001176 IF WSOPCI = 1 THEN 001177 PERFORM DATESCOL 001178 END-IF

BLEM 1.0 Nova32 Development Software


170 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001179 IF WSOPCI = 2 THEN 001180 PERFORM INFOALUM 001181 END-IF 001182 IF WSOPCI = 3 THEN 001183 PERFORM INFOPATE 001184 END-IF 001185 IF WSOPCI = 4 THEN 001186 PERFORM DATMEDIC 001187 END-IF 001188 IF WSOPCI = 5 THEN 001189 PERFORM ABREREGI 001190 END-IF 001191 IF WSOPCI = 7 THEN 001192 WSMAIN MOVE 0 001193 END-IF 001194 END-DO 001195 RETURN 001196 PROCESS DATESCOL SECTION 001197 SYSOUT 001198 POS 1,1 SCREEN "UNIVERSIDAD EJEMPLO" 001199 POS 1,33 SCREEN "SOLICITUD DE INSCRIPCION" 001200 POS 1,64 SCREEN "FECHA:" 001201 POS 1,70 SCREEN DATE() 001202 POS 2,1 SCREEN "TX:UHAL" 001203 POS 2,43 SCREEN "UHC" 001204 POS 2,64 SCREEN "HORA:" 001205 POS 2,69 SCREEN TIME() 001206 POS 4,2 SCREEN "RVOE:" 001207 POS 4,16 SCREEN "MATRICULA:" 001208 POS 4,39 SCREEN "SOLICITUD No:" 001209 POS 4,60 SCREEN "TURNO:" 001210 POS 6,2 SCREEN "PLAN DE ESTUDIOS No:" 001211 POS 6,28 SCREEN "FECHA DE INSCRIPCION:" 001212 POS 6,61 SCREEN "SEMESTRE:" 001213 POS 8,1 SCREEN "DATOS PARTICULARES DEL ALUMNO" 001214 POS 10,2 SCREEN "NOMBRE:" 001215 POS 10,27 SCREEN "APELLIDO PAT:" 001216 POS 10,52 SCREEN "APELLIDO MAT:" 001217 POS 12,2 SCREEN "FECHA DE NACIMIENTO:" 001218 POS 12,33 SCREEN "LUGAR DE NACIMIENTO:" 001219 POS 12,66 SCREEN "SEXO:" 001220 POS 14,2 SCREEN "VIVES EN CASA:" 001221 POS 14,18 SCREEN "DIRECCION:" 001222 POS 14,51 SCREEN "NUMERO:" 001223 POS 14,63 SCREEN "INTERIOR:" 001224 POS 16,2 SCREEN "REFERENCIAS:" 001225 POS 16,33 SCREEN "COLONIA:" 001226 POS 16,57 SCREEN "ESTADO:" 001227 POS 18,2 SCREEN "MUNICIPIO:" 001228 POS 18,26 SCREEN "C.P:" 001229 POS 18,37 SCREEN "TELEFONO:" 001230 POS 18,60 SCREEN "CELULAR:" 001231 POS 20,2 SCREEN "CORREO:" 001232 POS 22,2 SCREEN "NOMBRE PERSONA RESPONSABLE DE VIVIENDA:" 001233 POS 23,2 SCREEN "PARENTESCO PERSONA RESPONSABLE DE VIVIENDA:" 001234** CAMPOS DE ENTRADA DE PANTALLA ** 001235 POS 4,7 GET TRVOE MASK "9999999" 001236 POS 4,26 GET TMATRICULA MASK "XXXXXXXXXXXX" 001237 POS 4,52 GET TSOLICITUD MASK "999999" 001238 POS 4,66 GET TTURNO MASK "99" 001239 POS 6,22 GET TPLAN MASK "999" 001240 POS 6,49 GET TFEDE MASK "XXXXXXXXXX" 001241 POS 6,70 GET TSEMESTRE MASK "99" 001242 POS 10,9 GET TNOMBRE MASK "XXXXXXXXXXXXX"

BLEM 1.0 Nova32 Development Software


171 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001243 POS 10,40 GET TAPEPAT MASK "XXXXXXXXXXX" 001244 POS 10,65 GET TAPEMAT MASK "XXXXXXXXXXX" 001245 POS 12,22 GET TFECHANAC MASK "XXXXXXXXXX" 001246 POS 12,53 GET TLUGNAC MASK "XXXXXXXXXXX" 001247 POS 12,71 GET TSEXO MASK "9" 001248 POS 14,16 GET TVIVES MASK "9" 001249 POS 14,28 GET TDIREC1 MASK "XXXXXXXXXXXXXXXXXXXXX" 001250 POS 14,58 GET TNUMERO MASK "9999" 001251 POS 14,72 GET TINTERIOR MASK "999" 001252 POS 16,14 GET TREFEREN MASK "XXXXXXXXXXXXXXXXX" 001253 POS 16,41 GET TCOLONIA1 MASK "XXXXXXXXXXXXXX" 001254 POS 16,64 GET TESTADO1 MASK "XXXXXXXXXXXXXX" 001255 POS 18,12 GET TMUNICI1 MASK "XXXXXXXXXXXXX" 001256 POS 18,30 GET TCP1 MASK "99999" 001257 POS 18,46 GET TTEL1 MASK "XXXXXXXXXXXX" 001258 POS 18,68 GET TCEL1 MASK "XXXXXXXXXXXX" 001259 POS 20,9 GET TCORREO1 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXX" 001260 POS 22,41 GET TNPRV MASK "XXXXXXXXXXXXXXXXXXXXXXX" 001261 POS 23,45 GET TPPRV MASK "XXXXXXXXXXXXXXXXXXXXXXX" 001262 ACCEPT 001263 PERFORM MSGGUARD 001264 IF WSOPCI = 1 THEN 001265** SI EL USUARIO ACEPTA GUARDAR EN BASE DE DATOS DE HOST 001266 EXEC SQL 001267 (* 001268 USE INSENCA 001269 APPEND BLANK 001270 REPLACE RVOE WITH TRVOE 001271 REPLACE MATRI WITH TMATRICULA 001272 REPLACE NUMSOLI WITH TSOLICITUD 001273 REPLACE TURNO WITH TTURNO 001274 REPLACE PENU WITH TPLAN 001275 REPLACE FECHAINS WITH TFEDE 001276 REPLACE SEMREINS WITH TSEMESTRE 001277 CLOSE 001278 USE INSALM 001279 APPEND BLANK 001280 REPLACE NOMBRE WITH TNOMBRE 001281 REPLACE APEPAT WITH TAPEPAT 001282 REPLACE APEMAT WITH TAPEMAT 001283 REPLACE FECHANAC WITH TFECHANAC 001284 REPLACE LUGNAC WITH TLUGNAC 001285 REPLACE VIVES WITH TVIVES 001286 REPLACE SEXO WITH TSEXO 001287 REPLACE DIREC1 WITH TDIREC1 001288 REPLACE REFEREN WITH TREFEREN 001289 REPLACE NUM WITH TNUMERO 001290 REPLACE INTERIOR WITH TINTERIOR 001291 REPLACE COLONIA1 WITH TCOLONIA1 001292 REPLACE ESTADO1 WITH TESTADO1 001293 REPLACE MUNICI1 WITH TMUNICI1 001294 REPLACE CP1 WITH TCP1 001295 REPLACE TEL1 WITH TTEL1 001296 REPLACE CEL1 WITH TCEL1 001297 REPLACE CORREO1 WITH TCORREO1 001298 REPLACE NPRV WITH TNPRV 001299 REPLACE PPRV WITH TPPRV 001300 REPLACE MATRI WITH TMATRICULA 001301 CLOSE 001302 USE CONTADOR 001303 GO TOP 001304 LOCK() 001305 REPLACE MATRI WITH WCMATI 001306 REPLACE SOLI WITH WCSOLI

BLEM 1.0 Nova32 Development Software


172 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001307 UNLOCK 001308 CLOSE 001309 *) 001310 END-EXEC 001311** INFORMAR A ETM SI LA TRANSACCION SE COMPLETO CON EXITO 001312 EXEC ETM 001313 (* 001314 WRITEQ SET_EIBCALEN WITH 28 001315 WRITEQ SET_EIBCOMPL WITH 1 001316 WRITEQ SET_EIBCONF WITH 1001 001317 WRITEQ SET_EIBERR WITH 0 001318 WRITEQ SET_EIBCODE WITH 33 001319 WRITEQ SET_EIBRESP WITH 1 001320 *) 001321 END-EXEC 001322 SYSOUT 001323 DISPLAY "DATOS GUARDADOS SATISFACTORIAMENTE" 001324 DELAY 001325 ELSE 001326** SI NO SE GUARDAN LOS DATOS EN BASE DE DATOS INFORMAR A ETM 001327** CODIGO DE ERROR 110 001328 EXEC ETM 001329 (* 001330 WRITEQ SET_EIBCALEN WITH 28 001331 WRITEQ SET_EIBCOMPL WITH 0 001332 WRITEQ SET_EIBCONF WITH 1001 001333 WRITEQ SET_EIBERR WITH 110 001334 WRITEQ SET_EIBCODE WITH 33 001335 WRITEQ SET_EIBRESP WITH 0 001336 *) 001337 END-EXEC 001338 SYSOUT 001339 DISPLAY "DATOS NO GUARDADOS" 001340 DELAY 001341 END-IF 001342 WSOPCI MOVE 0 001343 RETURN 001344 PROCESS MSGGUARD SECTION 001345 SYSOUT 001346 WSOPCI MOVE 0 001347 POS 1,1 SCREEN "UNIVERSIDAD EJEMPLO" 001348 POS 1,33 SCREEN "SOLICITUD DE INSCRIPCION" 001349 POS 1,64 SCREEN "FECHA:" 001350 POS 1,70 SCREEN DATE() 001351 POS 2,1 SCREEN "TX:UHAL" 001352 POS 2,43 SCREEN "UHC" 001353 POS 2,64 SCREEN "HORA:" 001354 POS 2,69 SCREEN TIME() 001355 POS 5,30 SCREEN "DESEA GUARDAR LOS CAMBIOS ?" 001356 POS 7,33 SCREEN "1.GUARDAR DATOS" 001357 POS 8,33 SCREEN "2.REGRESAR SIN GUARDAR" 001358 POS 12,33 SCREEN "OPCION:" 001359 POS 12,40 GET WSOPCI MASK "99" 001360 ACCEPT 001361 RETURN 001362 PROCESS INFOPATE SECTION 001363 SYSOUT 001364 POS 1,1 SCREEN "TX:UHAL" 001365 POS 1,18 SCREEN "INFORMACION FAMILIAR I" 001366 POS 1,64 SCREEN "FECHA:" 001367 POS 1,70 SCREEN DATE() 001368 POS 2,1 SCREEN "SYSID:MXUHC1" 001369 POS 2,64 SCREEN "HORA:" 001370 POS 2,69 SCREEN TIME()

BLEM 1.0 Nova32 Development Software


173 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001371 POS 4,1 SCREEN "MATRICULA" 001372 POS 6,1 SCREEN "TUTOR:" 001373 POS 6,11 SCREEN "NOMBRE DEL PADRE:" 001374 POS 8,1 SCREEN "DOMICILIO:" 001375 POS 8,52 SCREEN "COLONIA" 001376 POS 10,1 SCREEN "ESTADO" 001377 POS 10,24 SCREEN "MUNICIPIO:" 001378 POS 10,50 SCREEN "TELEFONO:" 001379 POS 12,1 SCREEN "CELULAR:" 001380 POS 12,26 SCREEN "C.P:" 001381 POS 12,40 SCREEN "CORREO:" 001382 POS 14,1 SCREEN "LUGAR DE TRABAJO:" 001383 POS 16,1 SCREEN "CARGO:" 001384 POS 16,28 SCREEN "DOM.TRABAJO:" 001385 POS 18,1 SCREEN "COLONIA:" 001386 POS 18,30 SCREEN "ESTADO:" 001387 POS 18,53 SCREEN "MUNICIPIO:" 001388 POS 16,72 SCREEN "CP" 001389 POS 20,11 SCREEN "INGRESO MENSUAL:" 001390 POS 22,1 SCREEN "DEPENDENCIA:" 001391 POS 22,38 SCREEN "ESTADO CIVIL:" 001392** CAMPOS DE ENTRADA DE PANTALLA * 001393 POS 4,10 GET TMATRICULA MASK "XXXXXXXXXXXX" 001394 POS 6,7 GET TTUTOR MASK "99" 001395 POS 6,28 GET TNOMPADRE MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001396 POS 8,11 GET TDIREC3 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001397 POS 8,60 GET TCOLONIA3 MASK "XXXXXXXXXXXXXXXXXXXX" 001398 POS 10,8 GET TESTADO3 MASK "XXXXXXXXXXXX" 001399 POS 10,32 GET TMUNICI3 MASK "XXXXXXXXXXXXXX" 001400 POS 10,60 GET TTEL3 MASK "XXXXXXXXXXXXXXX" 001401 POS 12,9 GET TCEL2 MASK "XXXXXXXXXXXXXXXXX" 001402 POS 12,31 GET TCP3 MASK "999999" 001403 POS 12,47 GET TCORREO2 MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001404 POS 14,18 GET TLUGTRA1 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001405 POS 16,7 GET TCARGO1 MASK "XXXXXXXXXXXXXXX" 001406 POS 16,40 GET TDOMI1 MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001407 POS 18,9 GET TCOLONIA4 MASK "XXXXXXXXXXXXX" 001408 POS 18,36 GET TESTADO4 MASK "XXXXXXXXXXXXXX" 001409 POS 18,63 GET TMUNICI4 MASK "XXXXXXXXXXXXXX" 001410 POS 16,74 GET TCP4 MASK "999999" 001411 POS 20,27 GET TINGMEN1 MASK "99999" 001412 POS 22,13 GET TDEPEN1 MASK "XXXXXXXXXXXXXXXXXXXXXXX" 001413 POS 22,51 GET TESTCIV1 MASK "99" 001414 ACCEPT 001415 PERFORM INFOMATE 001416 RETURN 001417 PROCESS INFOMATE SECTION 001418 SYSOUT 001419 POS 1,1 SCREEN "TX:UHAL" 001420 POS 1,18 SCREEN "INFORMACION FAMILIAR II" 001421 POS 1,64 SCREEN "FECHA:" 001422 POS 1,70 SCREEN DATE() 001423 POS 2,1 SCREEN "SYSID:MXUHC1" 001424 POS 2,64 SCREEN "HORA:" 001425 POS 2,69 SCREEN TIME() 001426 POS 4,1 SCREEN "MATRICULA" 001427 POS 6,1 SCREEN "NOMBRE DE MADRE:" 001428 POS 8,1 SCREEN "DOMICILIO:" 001429 POS 8,52 SCREEN "COLONIA:" 001430 POS 10,1 SCREEN "ESTADO:" 001431 POS 10,24 SCREEN "MUNICIPIO:" 001432 POS 10,50 SCREEN "TELEFONO:" 001433 POS 12,1 SCREEN "CELULAR:" 001434 POS 12,26 SCREEN "CP"

BLEM 1.0 Nova32 Development Software


174 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001435 POS 12,40 SCREEN "CORREO:" 001436 POS 14,1 SCREEN "LUGAR DE TRABAJO:" 001437 POS 16,1 SCREEN "CARGO:" 001438 POS 16,28 SCREEN "DOM.TRABAJO:" 001439 POS 18,1 SCREEN "COLONIA:" 001440 POS 18,30 SCREEN "ESTADO:" 001441 POS 18,53 SCREEN "MUNICIPIO:" 001442 POS 20,1 SCREEN "CP" 001443 POS 20,11 SCREEN "INGRESO MENSUAL:" 001444 POS 22,1 SCREEN "DEPENDENCIA:" 001445 POS 22,38 SCREEN "ESTADO CIVIL:" 001446** CAMPOS DE ENTRADA DE PANTALLA * 001447 POS 4,10 GET TMATRICULA MASK "XXXXXXXXXXXX" 001448 POS 6,17 GET TNOMMADRE MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001449 POS 8,11 GET TDIREC4 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001450 POS 8,60 GET TCOLONIA5 MASK "XXXXXXXXXXXXXXXXXXXX" 001451 POS 10,8 GET TESTADO5 MASK "XXXXXXXXXXXX" 001452 POS 10,32 GET TMUNICI5 MASK "XXXXXXXXXXXXXX" 001453 POS 10,60 GET TTEL5 MASK "XXXXXXXXXXXXXXX" 001454 POS 12,9 GET TCEL5 MASK "XXXXXXXXXXXXXXXXX" 001455 POS 12,28 GET TCP5 MASK "999999" 001456 POS 12,47 GET TCORREO3 MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001457 POS 14,18 GET TLUGTRA2 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001458 POS 16,7 GET TCARGO2 MASK "XXXXXXXXXXXXXXX" 001459 POS 16,40 GET TDOMI2 MASK "XXXXXXXXXXXXXXXXXXXXXXXX" 001460 POS 18,9 GET TCOLONIA6 MASK "XXXXXXXXXXXXX" 001461 POS 18,36 GET TESTADO6 MASK "XXXXXXXXXXXXXX" 001462 POS 18,63 GET TMUNICI6 MASK "XXXXXXXXXXXXXX" 001463 POS 20,3 GET TCP6 MASK "9999999" 001464 POS 20,27 GET TINGMEN2 MASK "99999" 001465 POS 22,13 GET TDEPEN2 MASK "XXXXXXXXXXXXXXXXXXXXXXX" 001466 POS 22,51 GET TESTCIV2 MASK "99" 001467 ACCEPT 001468 PERFORM MSGGUARD 001469 IF WSOPCI = 1 THEN 001470** SI EL USUARIO ACEPTA GUARDAR EN BASE DE DATOS DE HOST 001471 EXEC SQL 001472 (* 001473 USE INSFAM 001474 APPEND BLANK 001475 REPLACE MATRI WITH TMATRICULA 001476 REPLACE TUTOR WITH TTUTOR 001477 REPLACE NOMPADRE WITH TNOMPADRE 001478 REPLACE DIREC3 WITH TDIREC3 001479 REPLACE COLONIA3 WITH TCOLONIA3 001480 REPLACE ESTADO3 WITH TESTADO3 001481 REPLACE MUNICI3 WITH TMUNICI3 001482 REPLACE TEL3 WITH TTEL3 001483 REPLACE CEL2 WITH TCEL2 001484 REPLACE CP3 WITH TCP3 001485 REPLACE CORREO2 WITH TCORREO2 001486 REPLACE LUGTRA1 WITH TLUGTRA1 001487 REPLACE CARGO1 WITH TCARGO1 001488 REPLACE DOMI1 WITH TDOMI1 001489 REPLACE COLONIA4 WITH TCOLONIA4 001490 REPLACE ESTADO4 WITH TESTADO4 001491 REPLACE MUNICI4 WITH TMUNICI4 001492 REPLACE TEL4 WITH TTEL4 001493 REPLACE CP4 WITH TCP4 001494 REPLACE INGMEN1 WITH TINGMEN1 001495 REPLACE DEPEN1 WITH TDEPEN1 001496 REPLACE ESTCIV1 WITH TESTCIV1 001497 REPLACE MATRI WITH TMATRICULA 001498 REPLACE NOMMADRE WITH TNOMMADRE

BLEM 1.0 Nova32 Development Software


175 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001499 REPLACE DIREC4 WITH TDIREC4 001500 REPLACE COLONIA5 WITH TCOLONIA5 001501 REPLACE ESTADO5 WITH TESTADO5 001502 REPLACE MUNICI5 WITH TMUNICI5 001503 REPLACE TEL5 WITH TTEL5 001504 REPLACE CEL5 WITH TCEL5 001505 REPLACE CP5 WITH TCP5 001506 REPLACE CORREO3 WITH TCORREO3 001507 REPLACE LUGTRA2 WITH TLUGTRA2 001508 REPLACE CARGO2 WITH TCARGO2 001509 REPLACE DOMI2 WITH TDOMI2 001510 REPLACE COLONIA6 WITH TCOLONIA6 001511 REPLACE ESTADO6 WITH TESTADO6 001512 REPLACE MUNICI6 WITH TMUNICI6 001513 REPLACE TEL6 WITH TTEL6 001514 REPLACE CP6 WITH TCP6 001515 REPLACE INGMEN2 WITH TINGMEN2 001516 REPLACE DEPEN2 WITH TDEPEN2 001517 REPLACE ESTCIV2 WITH TESTCIV2 001518 CLOSE 001519 *) 001520 END-EXEC 001521** INFORMAR A ETM SI LA TRANSACCION SE COMPLETO CON EXITO 001522 EXEC ETM 001523 (* 001524 WRITEQ SET_EIBCALEN WITH 44 001525 WRITEQ SET_EIBCOMPL WITH 1 001526 WRITEQ SET_EIBCONF WITH 1001 001527 WRITEQ SET_EIBERR WITH 0 001528 WRITEQ SET_EIBCODE WITH 35 001529 WRITEQ SET_EIBRESP WITH 1 001530 *) 001531 END-EXEC 001532 SYSOUT 001533 DISPLAY "DATOS GUARDADOS SATISFACTORIAMENTE" 001534 DELAY 001535 ELSE 001536** SI NO SE GUARDAN LOS DATOS EN BASE DE DATOS INFORMAR A ETM 001537** CODIGO DE ERROR 112 001538 EXEC ETM 001539 (* 001540 WRITEQ SET_EIBCALEN WITH 44 001541 WRITEQ SET_EIBCOMPL WITH 0 001542 WRITEQ SET_EIBCONF WITH 1001 001543 WRITEQ SET_EIBERR WITH 112 001544 WRITEQ SET_EIBCODE WITH 35 001545 WRITEQ SET_EIBRESP WITH 0 001546 *) 001547 END-EXEC 001548 SYSOUT 001549 DISPLAY "DATOS NO GUARDADOS" 001550 DELAY 001551 END-IF 001552 WSOPCI MOVE 0 001553 RETURN 001554 PROCESS INFOALUM SECTION 001555 SYSOUT 001556 POS 1,1 SCREEN "TX:UHAL" 001557 POS 1,24 SCREEN "INFORMACION LABORAL DEL" 001558 POS 1,64 SCREEN "FECHA:" 001559 POS 1,70 SCREEN DATE() 001560 POS 2,1 SCREEN "SYSID:" 001561 POS 2,7 SCREEN "MXUHC1" 001562 POS 2,32 SCREEN "ALUMNO"

BLEM 1.0 Nova32 Development Software


176 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001563 POS 2,64 SCREEN "HORA:" 001564 POS 2,69 SCREEN TIME() 001565 POS 4,1 SCREEN "MATRICULA" 001566 POS 6,1 SCREEN "LUGAR DE TRABAJO" 001567 POS 8,1 SCREEN "DEPARTAMENTO" 001568 POS 8,35 SCREEN "PUESTO" 001569 POS 10,1 SCREEN "JEFE INMEDIATO" 001570 POS 10,37 SCREEN "PUESTO" 001571 POS 12,1 SCREEN "DIRECCION DEL TRABAJO" 001572 POS 12,54 SCREEN "COLONIA" 001573 POS 14,1 SCREEN "ESTADO" 001574 POS 14,24 SCREEN "CP" 001575 POS 14,35 SCREEN "MUNICIPIO" 001576 POS 14,61 SCREEN "TEL" 001577** CAMPOS DE ENTRADA DE TECLADO 001578 POS 4,11 GET TMATRICULA MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001579 POS 6,18 GET TLUGARTRA MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"001580 POS 6,18 GET TLUGARTRA MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"001581 POS 8,14 GET TDEPTO1 MASK "XXXXXXXXXXXXXXXXXXXX" 001582 POS 8,14 GET TDEPTO1 MASK "XXXXXXXXXXXXXXXXXXXX" 001583 POS 8,42 GET TPUESTO1 MASK "XXXXXXXXXXXXXXXXXXXX" 001584 POS 10,16 GET TNOMBREJI MASK "XXXXXXXXXXXXXXXXXXXX" 001585 POS 10,44 GET TPUESTO2 MASK "XXXXXXXXXXXXXXXXXXXX" 001586 POS 12,23 GET TDIREC2 MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001587 POS 12,62 GET TCOLONIA2 MASK "XXXXXXXXXXXXXXXXX" 001588 POS 14,8 GET TESTADO2 MASK "XXXXXXXXXXXXXXXXX" 001589 POS 14,27 GET TCP2 MASK "9999999" 001590 POS 14,45 GET TMUNICI2 MASK "XXXXXXXXXXXXXXX" 001591 POS 14,65 GET TTEL2 MASK "XXXXXXXXXXXXXX" 001592 ACCEPT 001593 PERFORM MSGGUARD 001594 IF WSOPCI = 1 THEN 001595** SI EL USUARIO ACEPTA GUARDAR EN BASE DE DATOS DE HOST 001596 EXEC SQL 001597 (* 001598 USE INSLAB 001599 APPEND BLANK 001600 REPLACE LUGARTRA WITH TLUGARTRA 001601 REPLACE DEPTO1 WITH TDEPTO1 001602 REPLACE PUESTO1 WITH TPUESTO1 001603 REPLACE NOMBREJI WITH TNOMBREJI 001604 REPLACE PUESTO2 WITH TPUESTO2 001605 REPLACE DIREC2 WITH TDIREC2 001606 REPLACE COLONIA2 WITH TCOLONIA2 001607 REPLACE ESTADO2 WITH TESTADO2 001608 REPLACE CP2 WITH TCP2 001609 REPLACE MUNICI2 WITH TMUNICI2 001610 REPLACE TEL2 WITH TTEL2 001611 REPLACE MATRI WITH TMATRICULA 001612 CLOSE 001613 *) 001614 END-EXEC 001615** INFORMAR A ETM SI LA TRANSACCION SE COMPLETO CON EXITO 001616 EXEC ETM 001617 (* 001618 WRITEQ SET_EIBCALEN WITH 13 001619 WRITEQ SET_EIBCOMPL WITH 1 001620 WRITEQ SET_EIBCONF WITH 1001 001621 WRITEQ SET_EIBERR WITH 0 001622 WRITEQ SET_EIBCODE WITH 34 001623 WRITEQ SET_EIBRESP WITH 1 001624 *) 001625 END-EXEC 001626 SYSOUT

BLEM 1.0 Nova32 Development Software


177 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001627 DISPLAY "DATOS GUARDADOS SATISFACTORIAMENTE" 001628 DELAY 001629 ELSE 001630** SI NO SE GUARDAN LOS DATOS EN BASE DE DATOS INFORMAR A ETM 001631** CODIGO DE ERROR 111 001632 EXEC ETM 001633 (* 001634 WRITEQ SET_EIBCALEN WITH 13 001635 WRITEQ SET_EIBCOMPL WITH 0 001636 WRITEQ SET_EIBCONF WITH 1001 001637 WRITEQ SET_EIBERR WITH 111 001638 WRITEQ SET_EIBCODE WITH 34 001639 WRITEQ SET_EIBRESP WITH 0 001640 *) 001641 END-EXEC 001642 SYSOUT 001643 DISPLAY "DATOS NO GUARDADOS" 001644 DELAY 001645 END-IF 001646 WSOPCI MOVE 0 001647 RETURN 001648 PROCESS DATMEDIC SECTION 001649 SYSOUT 001650 POS 1,1 SCREEN "TX:" 001651 POS 1,4 SCREEN "UHAL" 001652 POS 1,23 SCREEN "DATOS MEDICOS" 001653 POS 1,64 SCREEN "FECHA:" 001654 POS 1,70 SCREEN DATE() 001655 POS 2,1 SCREEN "SYSID:MXUHC1" 001656 POS 2,64 SCREEN "HORA:" 001657 POS 2,68 SCREEN TIME() 001658 POS 4,1 SCREEN "MATRICULA" 001659 POS 6,1 SCREEN "CUENTA CON SERVICIO MEDICO ?" 001660 POS 6,34 SCREEN "CUAL?" 001661 POS 6,45 SCREEN "AFILIACION" 001662 POS 8,1 SCREEN "ESPECIFIQUE" 001663 POS 8,34 SCREEN "CLINICA" 001664 POS 10,1 SCREEN "TEL.MEDICO" 001665 POS 10,33 SCREEN "EN TRATAMIENTO MEDICO" 001666 POS 12,1 SCREEN "PADECIMIENTOS CRONICOS" 001667** CAMPOS PARA LECTURA DESDE TECLADO 001668 POS 4,11 GET TMATRICULA MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001669 POS 6,30 GET TCCSM MASK "99" 001670 POS 6,40 GET TCUAL MASK "99" 001671 POS 6,45 GET TNUMAFI MASK "XXXXXXXXXXXXXXXXXXXX" 001672 POS 8,13 GET TESPEC MASK "XXXXXXXXXXXXXXXXXXXX" 001673 POS 8,42 GET TCLINICA MASK "XXXXXXXXXXXXXXXXXXXX" 001674 POS 10,12 GET TTELMEDI MASK "XXXXXXXXXXXXXXXXXXXX" 001675 POS 10,55 GET TTRAMEDI MASK "99" 001676 POS 12,25 GET TPADCRONI MASK "99" 001677 ACCEPT 001678 PERFORM MSGGUARD 001679 IF WSOPCI = 1 THEN 001680** SI EL USUARIO ACEPTA GUARDAR EN BASE DE DATOS DE HOST 001681 EXEC SQL 001682 (* 001683 USE INSMED 001684 APPEND BLANK 001685 REPLACE CCSM WITH TCCSM 001686 REPLACE CUAL WITH TCUAL 001687 REPLACE ESPEC WITH TESPEC 001688 REPLACE NUMAFI WITH TNUMAFI 001689 REPLACE CLINICA WITH TCLINICA 001690 REPLACE TELMEDI WITH TTELMEDI

BLEM 1.0 Nova32 Development Software


178 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001691 REPLACE TRAMEDI WITH TTRAMEDI 001692 REPLACE PADCRONI WITH TPADCRONI 001693 REPLACE MATRI WITH TMATRICULA 001694 CLOSE 001695 *) 001696 END-EXEC 001697** INFORMAR A ETM SI LA TRANSACCION SE COMPLETO CON EXITO 001698 EXEC ETM 001699 (* 001700 WRITEQ SET_EIBCALEN WITH 10 001701 WRITEQ SET_EIBCOMPL WITH 1 001702 WRITEQ SET_EIBCONF WITH 1001 001703 WRITEQ SET_EIBERR WITH 0 001704 WRITEQ SET_EIBCODE WITH 36 001705 WRITEQ SET_EIBRESP WITH 1 001706 *) 001707 END-EXEC 001708 SYSOUT 001709 DISPLAY "DATOS GUARDADOS SATISFACTORIAMENTE" 001710 DELAY 001711 ELSE 001712** SI NO SE GUARDAN LOS DATOS EN BASE DE DATOS INFORMAR A ETM 001713** CODIGO DE ERROR 113 001714 EXEC ETM 001715 (* 001716 WRITEQ SET_EIBCALEN WITH 10 001717 WRITEQ SET_EIBCOMPL WITH 0 001718 WRITEQ SET_EIBCONF WITH 1001 001719 WRITEQ SET_EIBERR WITH 113 001720 WRITEQ SET_EIBCODE WITH 36 001721 WRITEQ SET_EIBRESP WITH 0 001722 *) 001723 END-EXEC 001724 SYSOUT 001725 DISPLAY "DATOS NO GUARDADOS" 001726 DELAY 001727 END-IF 001728 WSOPCI MOVE 0 001729 RETURN 001730 PROCESS ABREREGI SECTION 001731 SYSOUT 001732 POS 1,1 SCREEN "TX:" 001733 POS 1,4 SCREEN "UHAL" 001734 POS 1,23 SCREEN "CARGAR REGISTRO" 001735 POS 1,64 SCREEN "FECHA:" 001736 POS 1,70 SCREEN DATE() 001737 POS 2,1 SCREEN "SYSID:MXUHC1" 001738 POS 2,64 SCREEN "HORA:" 001739 POS 2,68 SCREEN TIME() 001740 POS 4,1 SCREEN "MATRICULA" 001741 POS 4,11 GET TMATRICULA MASK "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 001742 ACCEPT 001743** SOLICITAR A ETM REGISTRO DE BASE DE DATOS 001744 EXEC ETM 001745 (* 001746 WRITEQ SET_EIBCALEN WITH 10 001747 WRITEQ SET_EIBCOMPL WITH 0 001748 WRITEQ SET_EIBCONF WITH 1001 001749 WRITEQ SET_EIBERR WITH 0 001750 WRITEQ SET_EIBCODE WITH 37 001751 WRITEQ SET_EIBRESP WITH 0 001752 *) 001753 END-EXEC 001754 EXEC SQL

BLEM 1.0 Nova32 Development Software


179 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001755 001756 001757 001758 001759 001760 001761 001762 001763 001764 001765 001766 001767 001768 001769 001770 001771 001772 001773 001774 001775 001776 001777 001778 001779 001780 001781 001782 001783 001784 001785 001786 001787 001788 001789 001790 001791 001792 001793 001794 001795 001796 001797 001798 001799 001800 001801 001802 001803 001804 001805 001806 001807 001808 001809 001810 001811 001812 001813 001814 001815 001816 001817 001818

(*

USE INSENCA GO TOP LOCATE FOR TRIM(MATRI) = TRIM(TMATRICULA) IF FOUND() THEN TRVOE ASSIGN RVOE TSOLICITUD ASSIGN NUMSOLI TTURNO ASSIGN TURNO TPLAN ASSIGN PENU TFEDE ASSIGN FECHAINS TSEMESTRE ASSIGN SEMREINS ELSE SYSOUT DISPLAY "MATRICULA NO ENCONTRADA EN ENCABEZADO" DELAY END-IF CLOSE USE INSALM GO TOP LOCATE FOR TRIM(MATRI) = TRIM(TMATRICULA) IF FOUND() THEN TNOMBRE ASSIGN NOMBRE TAPEPAT ASSIGN APEPAT TAPEMAT ASSIGN APEMAT TFECHANAC ASSIGN FECHANAC TLUGNAC ASSIGN LUGNAC TVIVES ASSIGN VIVES TSEXO ASSIGN SEXO TDIREC1 ASSIGN DIREC1 TREFEREN ASSIGN REFEREN TNUMERO ASSIGN NUM TINTERIOR ASSIGN INTERIOR TCOLONIA1 ASSIGN COLONIA1 TESTADO1 ASSIGN ESTADO1 TMUNICI1 ASSIGN MUNICI1 TCP1 ASSIGN CP1 TTEL1 ASSIGN TEL1 TCEL1 ASSIGN CEL1 TCORREO1 ASSIGN CORREO1 TNPRV ASSIGN NPRV TPPRV ASSIGN PPRV ELSE SYSOUT DISPLAY "MATRICULA NO ENCONTRADA EN ALUMNOS" DELAY END-IF CLOSE USE INSFAM GO TOP LOCATE FOR TRIM(MATRI) = TRIM(TMATRICULA) IF FOUND() THEN TTUTOR ASSIGN TUTOR TNOMPADRE ASSIGN NOMPADRE TDIREC3 ASSIGN DIREC3 TCOLONIA3 ASSIGN COLONIA3 TESTADO3 ASSIGN ESTADO3 TMUNICI3 ASSIGN MUNICI3 TTEL3 ASSIGN TEL3 TCEL2 ASSIGN CEL2 TCP3 ASSIGN CP3 TCORREO2 ASSIGN CORREO2 TLUGTRA1 ASSIGN LUGTRA1 TCARGO1 ASSIGN CARGO1 TDOMI1 ASSIGN DOMI1

BLEM 1.0 Nova32 Development Software


180 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001819 001820 001821 001822 001823 001824 001825 001826 001827 001828 001829 001830 001831 001832 001833 001834 001835 001836 001837 001838 001839 001840 001841 001842 001843 001844 001845 001846 001847 001848 001849 001850 001851 001852 001853 001854 001855 001856 001857 001858 001859 001860 001861 001862 001863 001864 001865 001866 001867 001868 001869 001870 001871 001872 001873 001874 001875 001876 001877 001878 001879 001880 001881 001882

TCOLONIA4 ASSIGN COLONIA4 TESTADO4 ASSIGN ESTADO4 TMUNICI4 ASSIGN MUNICI4 TTEL4 ASSIGN TEL4 TCP4 ASSIGN CP4 TINGMEN1 ASSIGN INGMEN1 TDEPEN1 ASSIGN DEPEN1 TESTCIV1 ASSIGN ESTCIV1 TNOMMADRE ASSIGN NOMMADRE TDIREC4 ASSIGN DIREC4 TCOLONIA5 ASSIGN COLONIA5 TESTADO5 ASSIGN ESTADO5 TMUNICI5 ASSIGN MUNICI5 TTEL5 ASSIGN TEL5 TCEL5 ASSIGN CEL5 TCP5 ASSIGN CP5 TCORREO3 ASSIGN CORREO3 TLUGTRA2 ASSIGN LUGTRA2 TCARGO2 ASSIGN CARGO2 TDOMI2 ASSIGN DOMI2 TCOLONIA6 ASSIGN COLONIA6 TESTADO6 ASSIGN ESTADO6 TMUNICI6 ASSIGN MUNICI6 TTEL6 ASSIGN TEL6 TCP6 ASSIGN CP6 TINGMEN2 ASSIGN INGMEN2 TDEPEN2 ASSIGN DEPEN2 TESTCIV2 ASSIGN ESTCIV2 ELSE SYSOUT DISPLAY "MATRICULA NO ENCONTRADA EN INF.FAMILIAR" DELAY END-IF CLOSE USE INSLAB GO TOP LOCATE FOR TRIM(MATRI) = TRIM(TMATRICULA) IF FOUND() THEN TLUGARTRA ASSIGN LUGARTRA TDEPTO1 ASSIGN DEPTO1 TPUESTO1 ASSIGN PUESTO1 TNOMBREJI ASSIGN NOMBREJI TPUESTO2 ASSIGN PUESTO2 TDIREC2 ASSIGN DIREC2 TCOLONIA2 ASSIGN COLONIA2 TESTADO2 ASSIGN ESTADO2 TCP2 ASSIGN CP2 TMUNICI2 ASSIGN MUNICI2 TTEL2 ASSIGN TEL2 ELSE SYSOUT DISPLAY "MATRICULA NO ENCONTRADA EN INF.LAB" DELAY END-IF CLOSE USE INSMED GO TOP LOCATE FOR TRIM(MATRI) = TRIM(TMATRICULA) IF FOUND() THEN TCCSM ASSIGN CCSM TCUAL ASSIGN CUAL TESPEC ASSIGN ESPEC TNUMAFI ASSIGN NUMAFI TCLINICA ASSIGN CLINICA

BLEM 1.0 Nova32 Development Software


181 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1 001883 TTELMEDI ASSIGN TELMEDI 001884 TTRAMEDI ASSIGN TRAMEDI 001885 TPADCRONI ASSIGN PADCRONI 001886 ELSE 001887 SYSOUT 001888 DISPLAY "MATRICULA NO ENCONTRADA EN INF.MED" 001889 DELAY 001890 END-IF 001891 CLOSE 001892 *) 001893 END-EXEC 001894 WSOPCI MOVE 0 001895 RETURN 001896 PROCESS AUTONUMS SECTION 001897 WCMATI MOVE 0 001898 WCSOLI MOVE 0 001899 EXEC SQL 001900 (* 001901 USE CONTADOR 001902 GO TOP 001903 WCMATI ASSIGN MATRI 001904 WCSOLI ASSIGN SOLI 001905 WCMATI MOVE WCMATI ADD 1 001906 WCSOLI MOVE WCSOLI ADD 1 001907 CLOSE 001908 *) 001909 END-EXEC 001910 WTMATI MOVE STR(WCMATI) 001911 WTMATI MOVE LTRIM(WTMATI) 001912 TMATRICULA MOVE "UH" ADD WTMATI ADD "C" 001913 TSOLICITUD MOVE WCSOLI 001914 DO-WHILE LEN(TMATRICULA) < 12 001915 TMATRICULA MOVE TMATRICULA ADD " " 001916 END-DO 001917 RETURN

BLEM 1.0 Nova32 Development Software


182 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

JCL PARA COMPILACION DE PROGRAMAS BLEM A 16 BITS EN EXIRION OS 1.2600.1

//* CONFIGURATION MEMBERS OF PROJECT //* COMPILE SOURCE CODE BM/BLS/XML/PRG //* Nova32 EXIRION SDK version 1.7800.1 //* All Righst Reserved (c)Rolando Fdz.B. 1999-2007. // COMPLR16 JOB GODDES,URD,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),REGION=64K // STEP0001 EXEC PGM= EXNOS200 // PARM DD 1 // SYSUT00 DD DSN= PUHA1001 // SYSUT01 DD DSN= PROG2 // SYSUT02 DD DSN= PROG3 /*

JCL PARA LINKER DE PROGRAMAS OBJETO BLEM A 16 BITS EN EXIRION OS 1.2600.1

//* CONFIGURATION PROJECT //* LINKER OBJECT MODULES OBJ //* Nova32 EXIRION SDK version 1.7800.1 //* All Righst Reserved (c)Rolando Fdz.B. 1999-2007. // LINK0016 JOB GODDES,URD,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),REGION=64K // STEP0001 EXEC PGM= EXNOS300 // PARM DD 1 // SYSUT00 DD DSN= PUHA1001 /*

BLEM 1.0 Nova32 Development Software


183 Nova32 Development Software BLEM 1.0 for EXIRION/OS 1.2600.1

TABLA ASCII

BLEM 1.0 Nova32 Development Software


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.