Progress 4GL에서 Java로 마이그레이션
Ispirer MnMTK 애플리케이션의 마이그레이션 및 현대화는 툴킷은 Progress 4GL에서 Java로 자동 변환을 제공합니다.
Progress 4GL에서 Java로 마이그레이션하기 개요
이제부터 수동 변환 더 이상 필요가 없습니다. Ispirer MnMTK는 Progress 4GL에서 Java로 필요 변환을 수행하겠습니다. Inspirer Systems의 헌신적인 프로프 팀은 저희 툴은 고객님의 가장 복잡한 레거시 근대화 요구 사항에 충족하게 가능하게 합니다.
이 대모 영상은Ispirer MnMTK 2015가Progress 4GL에서 Java로 변환 방볍을 보여줍나다.
왜Ispirer MnMTK인가?
Ispirer MnMTK의 주요 이점
Ispirer MnMTK는 Java로 마이그레이션 과정을 제공으로 가능하게 합니다. 또한, Ispirer MnMTK를 선택하실 때 분명히 위험 및 노력을 줄입니다. 이러한 장점은 합리적이고 경쟁력있는 비용으로 받을 수 있습니다.
저희 변환 택놀로지는 다음으로 보장합니다.
- 유지하고 읽을 수 있는 코드
수동 변환 품질로유지하고 읽을 수 있는 코드는 생성합니다.
- 코드 변환 및 리팩토링
- 최신 택놀로지
- 순수 자바 코드
변환 후 어떤 IP사용과 Ispirer 라이브러리가 없습니다.
Ispirer MnMTK는수천 또는 수백만 라인의 코드를 포함하는 큰 스크립트를 변환하는 것이 효과적입니다.
- 자동으로 의존성을 해결
종속 파일 및 데이터베이스에서 자동으로 해결된 의존성과 갈등으로 정보를 얻을 수 있습니다.
- 구성
다양한 구성 및 프로젝트 파일(SQLWays 구성 파일, .XML 파일)에서 정보를 읽을 수 있습니다.
- 빠른 맞춤화
추상 레이어, 재사용 가능한 변환 템플릿, 내부 변환 언어와 도구는 빠른 사용자 정의 및 복잡한 코드 변환을 할 수있습니다.
평가 과정
고객님께서 Ispirer Systems와 프로젝트에 대해 공동 논의를 위해 주저 없이 설문지를 작성하시고 보내주십시오.
ISV 회사의 경우 Ispirer는 수백만 줄의 코드로 응용 프로그램을 변환하는 Engagement model를 제공한다.
Ispirer 마이그레이션 솔루션
Progress 4GL to Java 요청하기
Ispirer 마이그레이션 솔루션
Progress 4GL to Java 서비스
툴킷
변환의 특징
- Progress tables/view/sequences 를 Oracle/PostgreSQL/MySQL tables/views/sequences로 변환
예를 들어,
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
Oracle:
CREATE TABLE TB_DATATYPES
(
c1 CHAR(16),
c4 NUMBER(10,0),
c5 NUMBER(1,0)
);
- Converts Progress 4GL triggers를 Oracle/PostgreSQL/MySQL triggers/procedures or Java classes로 변환합니다.
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;
더 자세한 정보를 얻고 싶으면 아래에 페이지로 참조하시기 바랍니다.
Progress to Oracle Database Migration
Progress to PostgreSQL Database Migration
Progress to MySQL Database Migration
Progress 4GL code에서 Java code로 변환합니다.
- Progress 4GL Procedure Files (*.p)을 Javaackages with 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";
}
}
}
- Progress 4GL Include Files (*.i)을 Java packages with 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;
}
}
}
}
- Progress 4GL Window Procedure (*.w) Files에서 Java UI Frameworks (Swing, SWT, Java FX, etc.)파일로 변환합니다.
- Progress ABL reports에서 Java Jasper 리포트나 Crystal 리포트로 변롼랍니다.
- Data Access에서 Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)로 변환합니다.
Ispirer MnMTK는 데이터베이스 테이블에 따라 Hibernate, Torque XML 지도를 자동으로 만듭니다.
예를 들어, 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;
}
}
추가로 칠문이 있으시면 언제든지 연락주시기 바랍니다.
|