STE SITIO WEB UTILIZA COOKIES: si continúa navegando en este sitio, está dando su consentimiento para la aceptación de las cookies.
Para obtener más información, por favor, lea nuestra Política de privacidad y Política de cookies.

Migración y Modernización
Automatizada y Personalizada
de Bases de Datos y Aplicaciones


Conversión de Progress 4GL a Java

Java logo

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


Migrar 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:

  1.  
  2. ADD TABLE "TB_DATATYPES"
  3. AREA "Schema Area"
  4. DUMP-NAME "tb_datat"
  5.  
  6. ADD FIELD "c1" OF "TB_DATATYPES" AS CHARACTER
  7. FORMAT "X(8)"
  8. INITIAL ""
  9. POSITION 2
  10. SQL-WIDTH 16
  11. ORDER 10
  12.  
  13. ADD FIELD "c4" OF "TB_DATATYPES" AS INTEGER
  14. FORMAT "->,>>>,>>9"
  15. INITIAL "0"
  16. POSITION 5
  17. SQL-WIDTH 4
  18. ORDER 20
  19.  
  20. ADD FIELD "c5" OF "TB_DATATYPES" AS logical
  21. FORMAT "yes/no"
  22. INITIAL "no"
  23. POSITION 6
  24. SQL-WIDTH 1
  25. ORDER 30
  26.  
  27. .
  28. PSC
  29. cpstream=ISO8859-1
  30. .
  31. 0000000976
  32.  

Oracle:

  1.  
  2. CREATE TABLE TB_DATATYPES
  3. (
  4. c1 CHAR(16),
  5. c4 NUMBER(10,0),
  6. c5 NUMBER(1,0)
  7. );
  8.  
  • Convierte triggers de Progress 4GL a triggers/procedimientos de Oracle/PostgreSQL/MySQL o clases Java:

Progress 4GL:

  1.  
  2. TRIGGER PROCEDURE FOR DELETE OF gsinvhd.
  3. FIND distribution
  4. WHERE distribution.company = gsinvhd.company NO-LOCK NO-ERROR.
  5.  

Oracle:

  1.  
  2. CREATE OR REPLACE TRIGGER SWT_Delete_gsinvhd
  3. AFTER DELETE
  4. ON gsinvhd
  5. DECLARE
  6. v_distribution_company VARCHAR2(255);
  7. BEGIN
  8. SELECT company INTO v_distribution_company FROM distribution
  9. WHERE (distribution.company = gsinvhd.company) AND ROWNUM <=1;
  10. EXCEPTION
  11. WHEN NO_DATA_FOUND THEN
  12. NULL;
  13. END;
  14.  

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 código Progress 4GL a código Java

  • Convierte Procedure Files (*.p) de Progress 4GL a paquetes Java con clases

Progress 4GL:

  1.  
  2. DEF VAR w_ail AS CHAR NO-UNDO.
  3. PROCEDURE act_InitValues.
  4. IF w_ ail EQ "ac21" OR w_ ail EQ "first"
  5. THEN DO:
  6. ASSIGN w_ ail ="first".
  7. END.
  8. ELSE IF w_ ail EQ "ac50"
  9. THEN DO:
  10. ASSIGN w_ ail ="second".
  11. END.
  12. ELSE DO:
  13. ASSIGN w_ ail ="third"
  14. END.
  15. END PROCEDURE.
  16.  

Java:

  1.  
  2. package ispirer;
  3. public class If_statement
  4. {
  5. private String w_ ail = null;
  6. public void act_InitValues()
  7. {
  8. if((w_ ail.equals("ac21")) ||( w_ ail.equals("first")))
  9. {
  10. w_ ail = "first";
  11. }
  12. else if(w_ ail.equals("ac50"))
  13. {
  14. w_ ail = "second";
  15. }
  16. else
  17. {
  18. w_ ail = "third";
  19. }
  20. }
  21. }
  22.  
  • Convierte Include Files (*.i) de Progress 4GL a paquetes Java con clases

Progress 4GL:

  1.  
  2. FUNCTION days-in-MONTH RETURNS INTEGER
  3. ( INPUT pmonth AS INTEGER, INPUT pyear AS INTEGER ) :
  4.  
  5. DEFINE VARIABLE idays AS INTEGER
  6. EXTENT 12 INITIAL [31,28,31,30,31,30,31,31,30,31,30,31].
  7.  
  8. IF pmonth NE 2 THEN DO:
  9. RETURN idays[pmonth].
  10. END.
  11. ELSE DO:
  12. IF INTEGER(pyear / 4) * 4 = pyear THEN DO:
  13. IF INTEGER(pyear / 100) * 100 = pyear THEN DO:
  14. IF INTEGER(pyear / 400) * 400 = pyear
  15. THEN RETURN 29.
  16. ELSE RETURN 28.
  17. END.
  18. ELSE RETURN 29.
  19. END.
  20. ELSE RETURN 28.
  21. END.
  22. END FUNCTION.
  23.  

Java:

  1.  
  2. package ispirer;
  3. public class Daymonth
  4. {
  5. public final int Days_in_month(int pmonth, int pyear)
  6. {
  7. int[] idays = new int[] {31,28,31,30,31,30,31,31,30,31,30,31};
  8. if (pmonth != 2)
  9. {
  10. return idays[pmonth - 1];
  11. }
  12. else
  13. {
  14. if ((int)(pyear / 4) * 4 == pyear)
  15. {
  16. if ((int)(pyear / 100) * 100 == pyear)
  17. {
  18. if ((int)(pyear / 400) * 400 == pyear)
  19. {
  20. return 29;
  21. }
  22. else
  23. {
  24. return 28;
  25. }
  26. }
  27. else
  28. {
  29. return 29;
  30. }
  31. }
  32. else
  33. {
  34. return 28;
  35. }
  36. }
  37. }
  38. }
  39.  
  • 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:

  1.  
  2. DEF BUFFER buf_LogOverview FOR test_table.
  3. PROCEDURE test_proc.
  4. FIND FIRST buf_LogOverview NO-LOCK
  5. WHERE buf_LogOverview.col1 EQ "1"
  6. AND buf_LogOverview.col2 EQ 2
  7. NO-ERROR.
  8. END PROCEDURE.
  9.  
  10. CREATE TABLE test_table
  11. (
  12. col1 VARCHAR,
  13. col2 INTEGER PRIMARY KEY
  14.  
  15. );
  16.  

Java:

  1.  
  2. package buffer_migration;
  3. import java.util.List;
  4. import org.hibernate.Session;
  5. import org.hibernate.Transaction;
  6. import util.HibernateUtil;
  7. public class Find_stmt
  8. {
  9. private Test_table buf_LogOverview;
  10. public void test_proc()
  11. {
  12. Session session = HibernateUtil.getSessionFactory().openSession();
  13. session.beginTransaction();
  14. buf_LogOverview =((List< Test_table >)
  15. session.createQuery("from Test_table WHERE col1 = '1' "+
  16. " AND col2 = 2").list()).get(0);
  17. session.getTransaction().commit();
  18. }
  19. }
  20.  
  21. import java.util.Set;
  22. import java.util.HashSet;
  23.  
  24. public class Test_table
  25. {
  26. private String col1;
  27. private Integer col2;
  28. private Set test_tables = new HashSet();
  29.  
  30. public Test_table()
  31. {
  32. }
  33.  
  34. public void setCol1(String col1)
  35. {
  36. this.col1=col1;
  37. }
  38.  
  39. public String getCol1()
  40. {
  41. return col1;
  42. }
  43.  
  44. public void setCol2(Integer col2)
  45. {
  46. this.col2=col2;
  47. }
  48.  
  49. public Integer getCol2()
  50. {
  51. return col2;
  52. }
  53. }
  54.  
  55. <?xml version="1.0" encoding="UTF-8"?>
  56. <!DOCTYPE hibernate-mapping
  57. PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
  58. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  59. <hibernate-mapping>
  60. <class name="Test_table" table="test_table">
  61. <property column="col1" name="col1" type="java.lang.String"/>
  62. <id column="col2" name="col2" type="java.lang.Integer"/>
  63. </class>
  64. </hibernate-mapping>
  65.  

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.

Presentación en Vivo

Solución de Migración de Ispirer

Progress 4GL a Java

Solicitar

Solicitar un Presupuesto

Solución de Migración de Ispirer

Progress 4GL a Java

Servicio Herramienta

Si Usted tiene algunas preguntas o desea obtener más información, siempre puede ponerse en contacto con nosotros.

 
Testimonios
Septiembre 11, 2017Cardtek, Turquía
Microsoft SQL Server a Oracle

"Cardtek es la empresa más valiosa en el sector financiero y bancario en Turquía. Entre otros numerosos proyectos, estamos operando un sistema de recolección de...

...

Septiembre 11, 2017Caxton & CTP Publishers and Printers Ltd, Sudáfrica
Sybase ASE a MySQL

"Estimada Vera,

Donde estamos es el siguiente:

1. Hemos habilitado todo nuestro software para operar en una 'Agnostic Manner' en que ya no es hardware y tipo de base...

...

Estudios de Caso
Septiembre 14, 2017Oracle Forms a Java, Estados Unidos
¡La viabilidad de la migración automática de Oracle Forms a Java con Ispirer MnMTK se ha probado!


A principios de 2017, Ispirer Systems fue contactado por una de las compañías global de...

...

Junio 5, 2017Oracle a PostgreSQL, Rusia
Servicios profesionales de migración de paquetes y procedimientos almacenados de Oracle a PostgreSQL.


A finales de 2016, Ispirer Systems realizó servicios de migración para uno de los...

...