Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis COBOL 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: automatisationjusqu'à 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:
Questionnaire pour la Migration de Cobol vers Java
Ispirer Migration Solution
COBOL vers Java Commander
Structure de programme COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. DemoId.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
FIRST-PARAGRAPH.
DISPLAY "First DEMO".
Il y a quatre divisions::
- IDENTIFICATION DIVISION: On y insère le nom du programme.
- ENVIRONMENT DIVISION: On y définit les fichiers dont le programme a besoin.
- DATA DIVISION: On y déclare les variables, records, fichiers etc.
- PROCEDURE DIVISION: On y écrit le programme. Dans l’exemple ci-dessous tout est en un paragraphe. Un paragraphe est une série d’instructions nommées par un label. Il n’y a pas de note spéciale à la fin du paragraphe.
Paramètres de Conversion
- Migre la base de données de l’application COBOL vers les bases de données Oracle/MySQL/PostgreSQL/etc.
- Convertit les programmes COBOL vers les classes Java
package CobolApplication;
public class DemoId
{
static void main(String[] args)
{
System.out.println("First DEMO");
}
}
Convertit les noms des identificateurs vers les cases “camel”
Convertit la section WORKING-STORAGE avec les variables de declaration vers les variables de classe
COBOL:
WORKING-STORAGE SECTION.
01 MY_STRING_1 PIC X(20).
01 MY_STRING_2 PIC X(30).
01 MY_NUMBER PIC 9(2) VALUE 1.
Java:
private String MyString1;
private String MyString2;
private int MyNumber = 1;
Convertit les records COBOL records vers les types définis par l’utilisateur Java
COBOL:
01 MY_DATA_RECORD.
03 MY_NAME PIC X(20).
03 MY_ADDRESS PIC X(40).
03 MY_ID PIC 9(2).
Java:
public class MyDataRecord
{
public String MyName = "John Smit";
public String MyAddress = "Walt street";
public int MyId = 123;
}
public MyDataRecord myDataRecord = new MyDataRecord();
Convertit les instructions COBOL MOVE TO/COMPUTE vers les instructions d’affectation Java
COBOL:
MOVE 5 TO MY_NUMBER.
Java:
MyNumber = 5;
Convertit les sections COBOL (groupe de paragraphes ou d’instruction) vers les méthodes Java. La SECTION peut être appelée en utilisant l’instruction PERFORM. PERFORM est convertie pour l’appel de la méthode Java.
COBOL:
DISPLAY-INFORMATION.
DISPLAY DISPLAY 'My Number = ' MY_NUMBER.
Java:
private void DisplayInformation()
{
System.out.println("My Number = " + MyNumber);
}
Convertit les structures control COBOL vers les instructions control Java
COBOL:
IF MY_NUMBER > 5
MOVE 12 TO MY_NUMBER.
Java:
if (MyNumber > 5)
{
MyNumber = 12;
}
COBOL:
PERFORM UNTIL WS-NUMBER-1 > 100 AND WS-NUMBER-1 < 1000
DISPLAY "Still between 100 and 1000"
END-PERFORM
Java:
while ((MyNumber > 100) && (MyNumber < 1000))
{
System.out.println("Still between 100 and 1000");
}
Convertit la sortie d’écran (instruction DISPLAY) vers la méthode “System.out.println”
Convertit les instructions EXEC SQL/ END-EXEC(instructions select, insert, update, delete, CURSOR) vers les appels Java de bases de données SQL procédures générées automatiquement sur la base d’instruction SQL Embarqué
COBOL:
EXEC SQL
DECLARE GET_EMPLOYEE CURSOR FOR
SELECT NAME,
ADDRESS,
PHONE
FROM EMPLOYEE
WHERE EMPID =:MY_ID
END-EXEC.
EXEC SQL
OPEN GET_EMPLOYEE
END-EXEC.
EXEC SQL
FETCH GET_EMPLOYEE
INTO :CST-NAME,
:CST-ADDRESS,
:CST-PHONE
END-EXEC
IF CST-NAME > SPACES
DISPLAY 'NAME = ' CST-NAME
DISPLAY 'ADDRESS = ' CST-ADDRESS
DISPLAY 'PHONE = ' CST-PHONE
ELSE
DISPLAY 'EMPLOYEE NOT FOUND'
END-IF.
EXEC SQL CLOSE GET_EMPLOYEE END-EXEC.
Java:
create or replace
PROCEDURE getEmployee_Cursor_Proc1
(in_my_id IN EMPLOYEE.EMPID%TYPE,
out_cts_name OUT EMPLOYEE.NAME%TYPE,
out_cst_address OUT EMPLOYEE.ADDRESS%TYPE,
out_cst_phone OUT EMPLOYEE.PHONE%TYPE
)
AS
BEGIN
SELECT NAME, ADDRESS, PHONE
INTO out_cts_name, out_cst_address, out_cst_phone
FROM EMPLOYEE
WHERE EMPID = in_my_id;
END;
try{
Connection con = DBConnection.getConnection();
CallableStatement stmt = con.prepareCall
("{call getEmployee_Cursor_Proc1(?,?,?,?)}");
stmt.setInt(1, MyId);
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
stmt.registerOutParameter(3, java.sql.Types.VARCHAR);
stmt.registerOutParameter(4, java.sql.Types.VARCHAR);
stmt.execute();
String CstName = stmt.getString(2);
String CstAddress = stmt.getString(3);
String CstPhone = stmt.getString(4);
if(CstName!=null){
System.out.println("NAME="+CstName+",
ADDRESS="+CstAddress+",PHONE="+CstPhone);
}else{
System.out.println("EMPLOYEE NOT FOUND");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
stmt.close();
con.close();
input.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
|