ALERTE COOKIE : En naviguant sur notre site, vous acceptez l’utilisation de cookies.
Pour en savoir plus, n’hésitez pas à lire notre Politique de confidentialité et Politique d’usage de cookies.

Migration de Base de données et d'Application multiplateforme Hautement Automatisée, Personnalisée et Optimisée


Conversion de Progress 4GL vers Java

Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis Progress 4GL vers Java!


Pourquoi Ispirer MnMTK?


Effectuez votre migration avec Ispirer Systems et profitez donc des avantages suivants que vous offre notre outil:

  • Cohérence et Intégration: automatisation jusqu'à 100%

  • Personnalisation rapide: individualisation et optimisation de la converson (1-3 jours ouvrables en moyenne)

  • Engagement pré-vente: nous démontrons une conversion complète au cours de l'évaluation avant que vous preniez une décision

  • Prix Raisonnable: nous offrons une tarification souple

  • Conversion Optimisée: en tant que résultat vous obtenez un code intelligent et maintenable, sans aucun middleware à utiliser après la conversion

Evaluation et Achat


L'évaluation de votre projet de migration permettra de mesurer les ressources nécessaires aussi bien que le coût de votre migration. Afin de faciliter ce processus, n'hésitez pas à remplir et nous envoyer en retour le questionnaire ci-dessous:


Présentation en direct

Ispirer Migration Solution

Progress 4GL vers Java

Commander

Demander un devis

Ispirer Migration Solution

Progress 4GL vers Java

Service L'outil

Caractéristiques de Conversion


Convertir le code Progress 4GL vers Java

Migration des bases de données Progress vers des bases de données Oracle/PostgreSQL/MySQL lors de la migration de l'application Progress 4GL:


Migrer les bases de données  Progress vers les bases Oracle/PostgreSQL/MySQL

  • Convertit les tables/ vues/ séquences vers Oracle/PostgreSQL/MySQL

Par exemple,

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)   
);
 
  • Convertit les triggers de Progress 4GL vers les triggers/procédures de PostgreSQL/ Oracle/MySQL et les classes 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;
 
  • Convertit les fichiers de procédures (*.p) Progress 4GL vers les paquets Java avec les classes

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";
      }
   }
}
 
  • Convertit les fichiers Include (*.i) Progress 4GL vers les paquets Java avec les classes

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;
      }
    }
  }
}
 
  • Convertit les fichiers de procédure Window (*.w) Progress 4GL vers les UI Frameworks Java (Swing, SWT, Java FX, etc.)
  • Convertit les Progress ABL reports vers Java Jasper reports ou Crystal reports
  • Convertit Data Access vers Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)

Ispirer MnMTK peut également générer automatiquement Hibernate, Torque XML maps selon les tables de bases de données.

Par exemple, 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>
    
    

Contactez-nous pour en savoir plus.

 
Témoignages
Decitre, France

Sybase ASE vers PostgreSQL

Nous recherchions un outil pour effectuer une migration de Sybase à PostgreSQL.

Après quelques recherches nous avons trouvé l’outil d’Ispirer que nous avons...

...

TSS Consultancy, Inde

Microsoft SQL Server vers Oracle

Tout a commencé lorsque mon entreprise était à la recherche de la solution de migration de la base de données SQL Server vers Oracle. Plus de 10...

...

Etudes de cas
IBM DB2 LUW vers PostgreSQL, Etats-Unis

Notre client était la société publique américaine et l'unité indépendante du gouvernement de l'État.

...

Sybase ASE vers Microsoft SQL Server, Chili

Ispirer a déjà réalisé des projets pour des clients sur sept continents, y compris l'Amérique du Sud. Cette fois, nous avons eu l'honneur de coopérer avec un grand fabricant de logiciels basé au...

...