Ispirer MnMTK convierte aplicaciones Progress 4GL OpenEdge a Java.
Características de Conversión
Bases de datos Progress a bases de datos Oracle/PostgreSQL/MySQL

- Convierte tablas/vistas/secuencias de Progress a Oracle/PostgreSQL/MySQL
Por ejemplo,
Progress 4GL:
ADD TABLE "TB_DATATYPES" AREA "Schema Area" DUMP-NAME "tb_datat" ADD FIELD "c1" OF "TB_DATATYPES" AS CHARACTER FORMAT "X(8)" INITIAL "" POSITION 2 SQL-WIDTH 16 ORDER 10 ADD FIELD "c4" OF "TB_DATATYPES" AS INTEGER FORMAT "->,>>>,>>9" INITIAL "0" POSITION 5 SQL-WIDTH 4 ORDER 20 ADD FIELD "c5" OF "TB_DATATYPES" AS logical FORMAT "yes/no" INITIAL "no" POSITION 6 SQL-WIDTH 1 ORDER 30 . PSC cpstream=ISO8859-1 . 0000000976
Oracle:
CREATE TABLE TB_DATATYPES ( c1 CHAR(16), c4 NUMBER(10,0), c5 NUMBER(1,0) );
- Convierte triggers de Progress 4GL a triggers/procedimientos de Oracle/PostgreSQL/MySQL o clases Java:
Progress 4GL:
TRIGGER PROCEDURE FOR DELETE OF gsinvhd. FIND distribution WHERE distribution.company = gsinvhd.company NO-LOCK NO-ERROR.
Oracle:
CREATE OR REPLACE TRIGGER SWT_Delete_gsinvhd AFTER DELETE ON gsinvhd DECLARE v_distribution_company VARCHAR2(255); BEGIN SELECT company INTO v_distribution_company FROM distribution WHERE (distribution.company = gsinvhd.company) AND ROWNUM <=1; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END;
Para obtener más detalles, por favor consulte los artículos:
Migración de Base de Datos Progress a Oracle
Migración de Base de Datos Progress a PostgreSQL
Migración de Base de Datos Progress a MySQL
Convierte código Progress 4GL a código Java

- Convierte Procedure Files (*.p) de Progress 4GL a paquetes Java con clases
Progress 4GL:
DEF VAR w_ail AS CHAR NO-UNDO. PROCEDURE act_InitValues. IF w_ ail EQ "ac21" OR w_ ail EQ "first" THEN DO: ASSIGN w_ ail ="first". END. ELSE IF w_ ail EQ "ac50" THEN DO: ASSIGN w_ ail ="second". END. ELSE DO: ASSIGN w_ ail ="third" END. END PROCEDURE.
Java:
package ispirer; public class If_statement { private String w_ ail = null; public void act_InitValues() { if((w_ ail.equals("ac21")) ||( w_ ail.equals("first"))) { w_ ail = "first"; } else if(w_ ail.equals("ac50")) { w_ ail = "second"; } else { w_ ail = "third"; } } }
- Convierte Include Files (*.i) de Progress 4GL a paquetes Java con clases
Progress 4GL:
FUNCTION days-in-MONTH RETURNS INTEGER ( INPUT pmonth AS INTEGER, INPUT pyear AS INTEGER ) : DEFINE VARIABLE idays AS INTEGER EXTENT 12 INITIAL [31,28,31,30,31,30,31,31,30,31,30,31]. IF pmonth NE 2 THEN DO: RETURN idays[pmonth]. END. ELSE DO: IF INTEGER(pyear / 4) * 4 = pyear THEN DO: IF INTEGER(pyear / 100) * 100 = pyear THEN DO: IF INTEGER(pyear / 400) * 400 = pyear THEN RETURN 29. ELSE RETURN 28. END. ELSE RETURN 29. END. ELSE RETURN 28. END. END FUNCTION.
Java:
package ispirer; public class Daymonth { public final int Days_in_month(int pmonth, int pyear) { int[] idays = new int[] {31,28,31,30,31,30,31,31,30,31,30,31}; if (pmonth != 2) { return idays[pmonth - 1]; } else { if ((int)(pyear / 4) * 4 == pyear) { if ((int)(pyear / 100) * 100 == pyear) { if ((int)(pyear / 400) * 400 == pyear) { return 29; } else { return 28; } } else { return 29; } } else { return 28; } } } }
- Convierte Window Procedure (*.w) Files de Progress 4GL a Java UI Frameworks (Swing, SWT, Java FX, etc.)
- Convierte informes de Progress ABL a informes de Java Jasper o informes Crystal
- Convierte Data Access a Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)
Ispirer MnMTK puede generar automáticamente mapas de Hibernate, Torque XML de acuerdo con tablas de base de datos.
Por ejemplo, Progress 4GL:
DEF BUFFER buf_LogOverview FOR test_table. PROCEDURE test_proc. FIND FIRST buf_LogOverview NO-LOCK WHERE buf_LogOverview.col1 EQ "1" AND buf_LogOverview.col2 EQ 2 NO-ERROR. END PROCEDURE. CREATE TABLE test_table ( col1 VARCHAR, col2 INTEGER PRIMARY KEY );
Java:
package buffer_migration; import java.util.List; import org.hibernate.Session; import org.hibernate.Transaction; import util.HibernateUtil; public class Find_stmt { private Test_table buf_LogOverview; public void test_proc() { Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); buf_LogOverview =((List< Test_table >) session.createQuery("from Test_table WHERE col1 = '1' "+ " AND col2 = 2").list()).get(0); session.getTransaction().commit(); } } import java.util.Set; import java.util.HashSet; public class Test_table { private String col1; private Integer col2; private Set test_tables = new HashSet(); public Test_table() { } public void setCol1(String col1) { this.col1=col1; } public String getCol1() { return col1; } public void setCol2(Integer col2) { this.col2=col2; } public Integer getCol2() { return col2; } } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Test_table" table="test_table"> <property column="col1" name="col1" type="java.lang.String"/> <id column="col2" name="col2" type="java.lang.Integer"/> </class> </hibernate-mapping>
Por qué Ispirer MnMTK
Ispirer MnMTK automatiza el proceso de migración de su aplicación OpenEdge corriente a Java. Además, con Ispirer MnMTK Usted elimina la mayoría de los riesgos asociados y reduce considerablemente los esfuerzos internos. Todos estos beneficios están disponibles a costos muy razonables y competitivos, lo que hace Ispirer MnMTK aún más atractivo instrumento para este tipo de proyecto.
Nuestra tecnología de conversión asegura:
- Código legible y mantenible
Generación de código legible y mantenible con calidad de conversión manual
- Transformación y refactorización y de código
Transformación de código con implementación de las mejores prácticas de Java en lugar de emulación de vieja tecnología en la nueva plataforma
- Las últimas tecnologías
Uso de las ventajas de Java frameworks y tecnologías
- Código Java Puro
No hay biblioteca o IP de Ispirer utilizados después de la conversión
Ispirer MnMTK es eficaz para convertir grandes scripts que contienen miles o millones de líneas de código:
- Resuelve Automáticamente Dependencias
Puede extraer información de los archivos dependientes, bases de datos, etc. para resolver automáticamente dependencias y conflictos
- Configuraciones
Puede leer información de varias archivos de configuración y archivos de proyecto (archivos de configuración de Ispirer MnMTK, archivos .xml)
- Personalización Rápida y Poderosa
Capas abstractas, modelos de conversión reutilizables, lenguaje de conversión interno y herramientas permiten personalización rápida y transformaciones de código complejas.
Nuestro Enfoque
Por favor, rellene el cuestionario para iniciar las discusiones de colaboración para su proyecto o recibir algún estimación aproximada:
Para empresas ISV Ispirer ofrece Modelo de Cooperación integral para convertir aplicaciones con millones de líneas de código.
Solución de Migración de Ispirer
Progress 4GL a Java Solicitar
Si Usted tiene algunas preguntas o desea obtener más información, siempre puede ponerse en contacto con nosotros.
|