OpenEdge Advanced Business Language , o OpenEdge ABL para abreviar, es un lenguaje de desarrollo de aplicaciones comerciales creado y mantenido por Progress Software Corporation . Generalmente clasificado como un lenguaje de programación de cuarta generación , utiliza una sintaxis similar al inglés para simplificar el desarrollo de software. [1] El lenguaje se llamó PROGRESS o Progress 4GL hasta la versión 9, pero en 2006, PSC cambió el nombre a OpenEdge Advanced Business Language (OpenEdge ABL), para superar una supuesta percepción de la industria de que los 4GL eran menos capaces que otros lenguajes. [2]
OpenEdge ABL ayuda a los desarrolladores a desarrollar aplicaciones utilizando opcionalmente su propia base de datos relacional integrada y herramientas de programación . Estas aplicaciones son portables entre sistemas informáticos y permiten el acceso a diversas fuentes de datos populares sin tener que aprender los métodos de acceso a datos subyacentes . Esto significa que el usuario final de estos productos puede no estar al tanto de la arquitectura subyacente.
Al combinar un lenguaje de cuarta generación y una base de datos relacional, OpenEdge ABL permite el uso del modelo de desarrollo rápido de aplicaciones (RAD) para desarrollar software.
El Progress 4GL original fue diseñado en 1981 como un lenguaje independiente de la arquitectura y un sistema de base de datos integrado que podía ser utilizado por personas no expertas en el desarrollo de aplicaciones empresariales por parte de personas que no fueran informáticos pero que tuvieran conocimientos en su ámbito empresarial. En aquella época, las aplicaciones empresariales se escribían a menudo en COBOL (para máquinas como los mainframes corporativos de IBM ) y, a veces, en C (para minicomputadoras departamentales que ejecutaban el sistema operativo UNIX). Cuando la IBM PC se hizo popular, se generó la necesidad de un software empresarial que pudiera utilizarse en esas y otras computadoras económicas. El sistema Progress fue creado para ser utilizado tanto en máquinas IBM PC que ejecutaban DOS como en una variedad de computadoras que podían ejecutar sistemas operativos UNIX y de minicomputadoras como OpenVMS .
Progress ABL es un lenguaje de programación fuertemente tipado, de tipo late-bound y similar al inglés . Aunque inicialmente fue diseñado como un lenguaje procedimental, a partir de la versión 10.1 se mejoró con elementos de gramática orientada a objetos , que se pueden mezclar con el estilo procedimental original. Un bloque de código puede tener una transacción en su ámbito, en cuyo caso los cambios en la base de datos se confirmarán cuando se complete. Un error generado dentro de un bloque de este tipo deshará estos cambios. El programador puede anular estos valores predeterminados.
Los programas simples se ejecutan sin una interfaz gráfica de usuario, pero existe una sintaxis para crear una mediante programación, o los programadores pueden usar las herramientas proporcionadas para construir una.
El siguiente código ABL crea una ventana con el texto "¡Hola, mundo!" y un botón etiquetado "Aceptar".
DEFINIR VARIABLE w COMO MANEJAR NO-UNDO . CREAR VENTANA w ASIGNAR ANCHO = 50 ALTO = 5 AREA-MENSAJE = FALSO AREA-ESTADO = FALSO . VENTANA-ACTUAL = w . DEFINIR BOTÓN btnOK ETIQUETA "OK" TAMAÑO 12 POR 1.2 . FORMULARIO "¡Hola mundo!" VER COMO TEXTO EN LA COLUMNA 20 FILA 2 btnOK EN LA COLUMNA 20 FILA 4 CON MARCO f TAMAÑO 50 POR 5 SIN CUADRO TRES-D . VER MARCO f . HABILITAR btnOK CON MARCO f . ESPERAR "SELECCIONAR " btnOK . ELIMINAR OBJETO w .
Se puede utilizar un cuadro de mensaje para lograr el mismo efecto:
MENSAJE "¡Hola mundo!" VER COMO CUADRO DE ALERTA BOTONES DE INFORMACIÓN OK .
El INFO
parámetro controla los íconos del mensaje y se puede reemplazar con ERROR
o WARNING
por diferentes apariencias.
El programa "Hola Mundo" más básico es:
MOSTRAR "Hola" .
La declaración SQL :
SELECCIONAR * DEL cliente ;
(junto con los procedimientos de conexión y visualización del idioma elegido) se puede expresar en Progreso/ABL como:
PARA CADA cliente SIN BLOQUEO : MOSTRAR cliente . FIN .
La declaración SQL:
ACTUALIZAR cliente ESTABLECER vendedor = 'Fred' DONDE custno = 14 ;
(de nuevo, junto con los procedimientos de conexión y visualización del idioma elegido) se puede expresar en Progreso/ABL como:
PARA CADA cliente DONDE cliente . custno = 14 BLOQUEO-EXCLUSIVO : ASIGNAR cliente . vendedor = 'Fred' . FIN .
.. (Se han hecho algunas suposiciones sobre la indexación, el bloqueo y el alcance de las transacciones para mantener este ejemplo simple).
El acceso a los datos en el ABL se basa en registros, a diferencia del procesamiento basado en conjuntos de resultados de los lenguajes tradicionales basados en SQL. En SQL, las operaciones funcionan sobre un conjunto de registros; en el ABL, la operación se aplica a un registro a la vez, de forma muy similar al uso de un cursor en SQL, pero mucho más eficiente. El procesamiento basado en registros proporciona un mecanismo de bloqueo limpio y confiable que permite al desarrollador aplicar BLOQUEO EJECUTIVO, BLOQUEO COMPARTIDO o NO BLOQUEO a un registro cuando la aplicación accede a él.
El lenguaje se utiliza en una amplia variedad de áreas de aplicación, algunos ejemplos:
OpenEdge se puede utilizar para: [3]