COBOLからJavaへの変換
アプリケーション移行ツールIspirer MnMTKはCOBOLからJavaへの変換をサポートしています。
Ispirer MnMTK ツールにはお客様の特別な要件を満たすためのカスタマイズを追加することができます。弊社の優れた専門家チームは、複雑な問題に対しても革新的なソリューションを見つけることをお約束します。
このデモでIspirer MnMTKにより 、COBOLからJavaへの変換を見ることができます。
なぜIspirer MnMTKなのか
Ispirer MnMTKはCOBOLからJavaへのアプリケーションの移行作業を自動化し、移行作業に伴うリスクと必要な内部作業を大幅に削減する事ができます。Ispirer MnMTKはこれらの利点と共にお手頃な価格でデータベースおよびアプリケーションの変換を行う事ができるため、このような移行プロジェクトにとってとても魅力的なツールです。
主な利点:
- 優れたテクニカルサポート:移行のプロジェクトにおける絶大経験による、
最も複雑なタスクの解決策を見つけることをお約束します
- 顧客志向のアプローチと迅速なカスタマイズ:1-2営業日での修正対応
- 検討段階での共同作業:お客様の検討期間中に変換のデモをお見せすることができます
- 柔軟な価格設定:広範囲オプションの提供
- 最適化された変換:インテリジェントで保守しやすいコードを生成します。 変換後のソースの利用に特別なIspirerのミドルウェア等は必要ありません
アセスメント
アセスメント作業は簡単ですぐに移行に要する作業とコストを見積もることができます。お見積に必要な情報は、下記のフォームを参照いただくと揃えることができます:
- CobolからJavaへの移行 質問表(英語)
Ispirer移行ソリューションCOBOLからJavaへ リクエスト
COBOLプログラム構造
IDENTIFICATION DIVISION. PROGRAM-ID. DemoId. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. FIRST-PARAGRAPH. DISPLAY "First DEMO".
4つのディビジョンがあります:
- IDENTIFICATION DIVISION: ここにプログラム名を記述します。
- ENVIRONMENT DIVISION: プログラムで必要なファイルを定義します。
- DATA DIVISION: 変数、レコード、ファイル等を定義します。
- PROCEDURE DIVISION:プログラムを記述します。上のサンプルでは全てがひとつのパラグラフ内に記述されています。パラグラフはラベル付けされた一連のステートメントです。パラグラフの終わりを示す特別なマークはありません。
変換の機能
- COBOLアプリケーションのデータベースをOracle/MySQL/PostgreSQL/等のデータベースに移行
- COBOLプログラムをJavaのクラスに変換
package CobolApplication; public class DemoId { static void main(String[] args) { System.out.println("First DEMO"); } }
識別子の名前を「キャメルケース」に変換
WORKING-STORAGEセクションに定義された変数をクラス変数に変換
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;
COBOLレコード定義を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();
COBOLのMOVE TO/COMPUTEステートメントをJavaのアサインステートメントに変換
COBOL:
MOVE 5 TO MY_NUMBER.
Java:
MyNumber = 5;
COBOLセクション(パラグラフやステートメントのグループ)をJavaのメソッドに変換。セクションをCALLするPERFORM文はJavaのcall メソッドに変換。
COBOL:
DISPLAY-INFORMATION. DISPLAY DISPLAY 'My Number = ' MY_NUMBER.
Java:
private void DisplayInformation() { System.out.println("My Number = " + MyNumber); }
COBOLの制御構造を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"); }
画面表示(DISPLAY ステートメント)を「System.out.println」メソッドに変換
EXEC SQL/ END-EXEC (select, insert, update, delete, CURSOR ステートメント)を埋め込みSQL文に基づいたデータベースのSQLプロシージャのJava calls
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(); } }
詳細はお問い合わせください。
|