このWebサイトでは、クッキーを使用しております。
詳細は プライバシー保護およびクッキーに関する通知を参照ください。

インテリジェントでカスタマイズ可能なDB/アプリ自動変換ソリューション


Progress 4GLからJavaへの変換

アプリケーション移行ツールIspirer MnMTKProgress 4GLからJavaへの変換を支援しています。


Progress 4GLからJavaへの移行の概要

Ispirer MnMTK はとても柔軟な変換ツールであり、クライアントのビジネスニーズに応じ、新たな変換方向の追加開発も短期間で行うことができます。私たちの技術者はアプリケーション移行における絶大経験があり、最も複雑なタスクの解決策を見つけることをお約束します。

このデモでIspirer MnMTK 2017によるProgress 4GLからJavaへの移行を見ることができます:



なぜIspirer MnMTKなのか

Ispirer MnMTKは、現行OpenEdgeアプリケーションからJavaへの移行作業を自動化することができ、移行作業に伴うリスクと必要な内部作業を大幅に削減することが出来ます。Ispirer MnMTKはこれらの利点と共にお手頃な価格でデータベースおよびアプリケーションの変換を行う事ができるため、このような移行プロジェクトにとりとても魅力的なツールです。

弊社の変換技術の利点

  • 読み易くて、保守し易いコード
    インテリジェントで保守し易いコードの生成
  • コード変換とリファクタリング
    コード変換による、Javaの最善慣行を実現すること
  • 最新技術
  • Javaの純粋なコード
    IspirerライブラリーとIPは必要ありません

Ispirer MnMTKは大規模なスクリプトの変換に対して、効果的に実行することができます:

  • 自動的な依存関係の解決
    ツールは依存ファイルやデータベース等から情報を抽出し、依存関係や競合を自動的に解決することができます。
  • コンフィギュレーション
    ツールは様々なファイルからの情報を読み出すことができます(SQLWays コンフィギュレーションファイル、 .xmlファイル)。
  • 迅速で強力なカスタマイズ
    抽象的なレイヤー、再利用可能な変換テンプレート、内部変換言語およびツールにより、迅速なカスタマイズと複雑なコード変換が可能になります。

  • アセスメント

    アセスメント作業は簡単ですぐに移行に要する作業とコストを見積もることができます。お見積に必要な情報は、下記のフォームを参照いただくと揃えることができます:

    ISV会社の場合は、Ispirerは大規模のアプリケーションを変換する為、包括的な共同作業モデルを提供しています。


ライブ・プレゼンテーション(英語)

Ispirer移行ソリューションProgress 4GLからJavaへ

リクエスト

お見積

移行サービスProgress 4GLからJavaへ

サービス 移行ツール

変換機能

ProgressデータベースをOracle/PostgreSQL/MySQLデータベースへ変換


Migrate Progress databases to Oracle/PostgreSQL/MySQL databases

  • Progressのテーブル/ビュー/シーケンスをOracle/PostgreSQL/MySQLのテーブル/ビュー/シーケンスへ変換

例えば、

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.  
  • Progress 4GLのトリガをOracle/PostgreSQL/MySQLのトリガ/プロシージャまたは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.  

詳細は以下をご覧ください:

ProgressからOracleへのデータベース移行

ProgressからPostgreSQLへのデータベース移行

ProgressからMySQLへのデータベース移行


Progress 4GLコードをJavaコードへ変換


Convert Progress 4GL code to Java code

  • Progress 4GLのプロシージャファイル (*.p)をクラスのJavaパッケージへ変換

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.  
  • Progress 4GLのインクルードファイル(*.i)をクラスのJavaパッケージへ変換

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.  
  • Progress 4GLのウィンドウプロシージャ ファイル (*.w) をJavaのUI Frameworks (Swing, SWT, Java FX等)へ変換
  • Progress ABLレポートをJava Jasperレポートまたはクリスタルレポートへ変換
  • データアクセスをJavaデータベースアクセスフレームワーク (JDBC, Hibernate, Torque等)へ変換

Ispirer MnMTKはデータベーステーブルに従ってHibernate, Torque XMLマップを自動的に生成することができます。

例えば、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.  

詳細はお問い合わせください。

 
Testimonials
Schulz, Brazil

InterBase to Microsoft SQL Server
Database Migration

In order to change a factory supervision and information system, we were looking for a tool to migrate the existing "Interbase 6.0" database to "Microsoft SQL Server". We tested a few softwares, but they didn't suit us.

...

System Protocol Information, Malaysia

Informix to Microsoft SQL Server
Database Migration

Dear Sir / Madam,

We have just completed our biggest migration job to date from Informix to MS SQL Server. The exercise was efficiently done within schedule given to us. It was a success and thanks to a great part to your tool.

...

Case Studies
Sybase ASEからMicrosoft SQL Serverへの移行、チリ

チリに拠点を置くソフトウェア開発会社です。

...

IBM DB2 iSeriesからMicrosoft SQL Serverへの移行、アメリカ

ソフトウェアとアプリケーションの開発、リエンジニアリングとメンテナンスを専門とする、米国に本拠を置くフルサービスのIT企業です。 同社はウェブサイトデザイン、ウェブホスティング、SEOなどのウェブサービスを提供しています。 また、CRMシステムの導入、アップグレードおよび管理も実施しています。

...