마이그레이션 가이드

Download Report

Transcript 마이그레이션 가이드

※ 주의사항
본 저작물의 제작 및 사용에 대한 모든 권리는 주식회사 엠엔피시스템에 있습니다.
이 저작물에 기재된 사항은 향후 기능향상을 위해 변경될 수 있습니다.
이 저작물의 일부 또는 전부를 주식회사 엠엔피시스템의 허락 없이 어떤 형태로든
복제하는 행위는 법으로 금지되어 있습니다.
이 저작물은 파워빌더12.5를 기준으로 마이그레이션 하는 과정을 다루고 있습니다.
본 문서에 대한 문의사항이 있으시면 http://www.lop.co.kr로 하시기 바랍니다.
PB12.5
www.lop.com
Contents
01. 개요 및 인사말
• 개요
02.
• 절차
마이그레이션 개요
• 파워빌더의 변화과정
• Migration Assistant
• Edit Source
• Unicode
• ANSI와 Unicode DataBase 지원
• Blob과 String 사이의 변환
• External Function 호출
03.
• 기존 소스백업
마이그레이션
• 기존소스 PBL 내 모든 오브젝트 Regeneration
• 기존소스 PBL Optimize 수행
• 기존소스 PBT Full Build 수행
• 파워빌더 신버전으로 마이그레이션 수행
• 파워빌더 신버전에서 Regenerate 수행
• 파워빌더 신버전에서 Optimize 수행
1.개요
1.1 개요
• 마이그레이션은 그리 어려운 작업은 아닙니다. 시스템적 오류
가 별로 없기 때문에 작업이 종료되었다고 착각하는 경우가
종종 발생합니다. 눈에 보여지는 오류가 없을지는 모르지만
PB의 내부적인 처리(함수의 변화 같은)가 변화된 것이 있기
때문에 중요기능은 테스트를 좀더 신중하게 하셔야 합니다.
• 마이그레이션을 준비하실 때는 테스트할 프로그램의 리스트
를 먼저 확인하시는 것이 무엇보다 중요 합니다.
• 마이그레이션에 초점을 맞추기보단 테스트에 초점을 두시라
는 의미에서 ^^
1.개요
1.2 파워빌더의 변화 과정
• 파워빌더가 크게 변했던 버전은 8, 10,
11,11.5 정도로 볼 수 있겠죠 매 버전마다
큰 변화가 있을 정도 내요 ㅡ,.ㅡ
– 8에서는 워크스페이스와 타켓 개념이 도입되었고
– 10에서는 UNICODE 지원이 시작되었고요 그래서 그런지 마이그레이션
오류도 많이 나는 버전이기도 합니다.
– 11에서는 라이선스를 웹에서 키를 받게 변했고
– 11.5에서는 .NET버전이 통합되었고
• 무엇이든 처음 것들은 조금 안정된 버전에 비해 마이그레이션
오류가 조금 많은 편이니 참고 하세요
Click to add sub title 03
2.1 절차
일반적으로 파워빌더 마이그레이션은 다음의 일곱 가지 과정을
반듯이 거쳐 진행해야 한다.
과정은 다음과 같다
내
저
용
장
확
인
및
마이그레이션
Regeneration 
Optimize  Full Build
백업철저~
Error
Regeneration 
Optimize  Full Build
백
업
마
이
그
레
이
션
진
행
테
스
트
및
실
행
완료 ^^
<5>
2.2 Migration Assistant
파워빌더 라이브러리(PBL)에서 오브젝트들을 검색하여 사라지거나 변경된 문법(함수와 이벤트)들을 알려줌
파워빌더 특정 버전에서 사라지게 된 이벤트와 함수는 마이그레이션 이전 버전에서는 정상적으로 동작할지 모르지만, 이와 관련된 함수와 이벤트가
사라진 이후 버전부터는 기능이 정상적으로 동작하지 않을 수 있기 때문에 마이그레이션을 하고자 한다면, 최신 버전에서 사용 가능한 문법이 어떤
것인지 내용을 이 툴을 이용해 확인해보는 것을 권장한다.
툴을 실행시킨 후 “Search For” 항목에서 Type을 선택하면 사라진 문법들을 보여주고 대체할 수 있는 내용들을 리포트형식으로 보여주게 되며, 이
리포트 문서는 파일로 저장하거나 출력이 가능하다
※ 펜타시스템의 PowerBuilder Migration Course 문서의 내용 참조
2.3 Edit Source
Export와 Import를 이용한 소스 수정을 한번에 모든 스크립트를 Replace가능
데이터윈도우의 SQL문 수정할 때 편리하게 사용됨
2.4 Unicode
PowerBuilder 10 부터 내부적 Unicode 사용
String을 처리하기 위해 PowerScript 함수를 제공
DataBase : ANSI, DBCS, Unicode DataBase를 지원
DW/XmlDW : 다 국어 입력,수정,조회를 지원
External Function : ANSI와 Unicode 파라미터를 제공
Len/Left/Mid/Right/…
Unicode 문자 기반
LenW/LeftW/MidW/RightW/…
“W” 함수 역시 Unicode 문자 기반
LenA/LeftA/MidA/RightA/…
새로운 “A”의 함수들은 String을 byte로 조작하기 위해서 추가됨
ANSI/DBCS DataBase
DataBase는 유럽 언어를 위한 CP1252, 일본어를 위한 CP932, 중국어를 위한 XP936과 같은 문자 집합처럼 ANSI를 사용
Unicode DataBase
Unicode DataBase는 UTF-8, UTF-16과 같은 Unicode 형식의 집합을 표현하는 DataBase
모든 DataBase의 데이터는 Unicode 형식에 맞춰있음
Unicode 컬럼
ANSI(혹은 DBCS)를 사용하는 DataBase는 Unicode 데이터를 저장하기 위해 NCHAR, NVARCHAR/NVARCHAR2를 사용해야 가능함.
※ 펜타시스템의 PowerBuilder Migration Course 문서의 내용 참조
2.5 ANSI와 Unicode DataBase 지원
ANSI/DBCS DataBase
DataBase는 유럽 언어를 위한 CP1252, 일본어를 위한 CP932, 중국어를 위한 XP936과 같은 문자 집합처럼 ANSI를 사용
Unicode DataBase
Unicode DataBase는 UTF-8, UTF-16과 같은 Unicode 형식의 집합을 표현하는 DataBase
모든 DataBase의 데이터는 Unicode 형식에 맞춰있음
Unicode 컬럼
ANSI(혹은 DBCS)를 사용하는 DataBase는 Unicode 데이터를 저장하기 위해 NCHAR, NVARCHAR/NVARCHAR2를 사용해야 가능함.
※ 펜타시스템의 PowerBuilder Migration Course 문서의 내용 참조
2.6 Blob과 String 사이의 변환
Blob에서 String으로 변환
String(blob, {Encoding} )
Encoding : EncodingANSI!, EncodingUTF8!,
EncodingUTF16BE!, EncodingUTF16LE!(기본값)
String에서 Blob으로 변환
Blob(string, {Encoding} )
Encoding : EncodingANSI!, EncodingUTF8!,
EncodingUTF16BE!, EncodingUTF16LE!(기본값)
기타 변환 함수들
FromANSI() / ToANSI() / FromUnicode() / ToUnicode() 함수는 여전히 제공.
하지만 String/Blob 함수을 사용할 것을 권장
※ 펜타시스템의 PowerBuilder Migration Course 문서의 내용 참조
2.7 External Function 호출
PowerBuilder 9 와 이전 버전
FUNCTION int MessageBoxA(int handle, string content, string title, int show type) LIBRARY "user32.dll”
PowerBuilder 10 이상버전
- 시스템 함수의 ansi version을 사용할 때
FUNCTION int MessageBox(int handle, string content, string title, int showtype) LIBRARY "user32.dll" ALIAS FOR "MessageBoxA;ansi”
- 시스템 함수의 Unicode version을 사용할 때
FUNCTION int MessageBox(int handle, string content, string title, int showtype) LIBRARY "user32.dll" ALIAS FOR “MessageBoxW”
3.1 기존소수 백업
마이그레이션을 진행하기 앞서, 반듯이 기존 소스는 백업을 받아야 한다.
백업을 받지 않은 상태에서 마이그레이션이 진행되다가 에러가 발생하면, 내부적으로 소스가 유실되어 마이그레이션 이전버전과 상위버전 둘 다에서
열수가 없는 소스가 된다.
최악의 경우에는 재개발을 해야 하는 상황이 발생할 수 있기 때문에 백업은 마이그레이션의 시작 전 가장 우선이 되어야 하는 작업이다.
3.2 기존소스 PBL 내 모든 오브젝트 Regeneration
파워빌더 8 버전에서 기존 사용하던 MIS프로그램 소스를 열어 모든 PBL 안에 있는 오브젝트들을 Regeneration 해줘야 한다. Regenerate 과정 시
발생되는 문제점은 마이그레이션 전에 반듯이 수정과정을 거쳐야 한다.
3.3 기존소스 PBL Optimize 수행
오브젝트들의 Regenerate 과정이 끝나면, 다음으로 오브젝트들을 관리하고 있는 PBL들의 Optimize 과정을 거처야 한다. Optimize를 함으로써 얻을
수 있는 장점은 크게 두 가지가 있다. 하나는 PBL Size의 최적화이고, 다른 하나는 해당 PBL 파일의 자동 백업파일(.bak) 생성이다. 이 백업파일은 추후,
만약 PBL이 손상되었을 경우 이름 변경(.bak  .pbl)을 통해 최적화 상태 바로 전으로 되돌릴 수 있게 해준다.
※ 모든 PBL OPtimize 수행
※ bak 파일 생성된 것과
Size가 줄어든 것을 확인할 수 있다.
3.4 기존소스 PBT Full Build 수행
Regenerate와 Optimize 과정이 끝나면, PBT Full Build를 진행해야 한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
파워빌더 12.5로 마이그레이션을 진행하기 위해 먼저 PBW를 생성한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
New 화면에서 Workspace탭의 Workspace를 선택하고 OK를 클릭한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
Workspace 이름을 sudo로 지정하고 저장버튼을 선택한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
최신버전으로 마이그레이션을 위한 파워빌더 구 버전 소스 불러오는 과정이다.
생성된 PBW에서 마우스 오른쪽 버튼을 클릭하여 “Add Target”을 선택한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
“Add Target To Workspace” 대화상자에서 Target의 위치를 지정하여 마이그레이션 하고자 하는 Target(***.pbt)을 선택하고 열기를 선택한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
Migrate Application 대화상자에서 “Automatically convert DBCS string manipulation functions” 체크박스를 체크하고 OK를 누른다. 이 옵션은 기존
파워빌더 9 버전까지 내부 인코딩 방식으로 사용되던 DBCS 방식을 파워빌더 10 버전부터 변경된 내부 인코딩방식 즉, Unicode화 방식에 맞게 자동
변경을 해 줄 것인지를 산택하는 옵션이다. 이 옵션에 의해 기존 9 버전에서 사용되던 스트링 관련 함수 ( Left(), Len(), Right(), Pos(), Mid() 등등..)에
자동으로 “A”(LenA(), MidA()….)를 붙처준다. 이 외에도 External Function 등도 유니코드 환경에 맞게 자동 변경해주게 된다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
마이그레이션 과정은 시간이 소요되는 작업이다. 마이그레이션이 수행되는 동안 강제로 멈추지 말아야 한다. 마이그레이션이 진행되고 있을 때
강제로 취소하거나 , 종료를 하게 되면 정상적으로 진행이 되지 않으며, 다시 작업을 진행해야 한다. 만약 강제로 멈추고 소스를 열었을 때 정상적으로
열리지 않는다면 내부적으로 어디서 어떻게 꼬였는지 확인이 불가능 한다. 만약 기존 소스를 백업 받아 놓지 않은 상태에서 이와 같은 상황이
발생한다면 어플리케이션을 다시 개발해야 하는 상황이 발행하게 될 수도 있다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
마이그레이션이 정상적으로 종료되면, Output window의 하단에 “Finished..”문구가 나오게 된다. 하지만 지금의 상태는 12.5버전으로 마이그레이션은
되었지만, 내부적으로 Error와 Warring 정보를 포함하고 있는 상태이므로 실행 전 Error 들을 처리해야 한다.
3.5 파워빌더 신 버전으로 마이그레이션 수행
반복적 작업
3.6 파워빌더 신 버전에서 Regenerate 수행
이전 파워빌더 버전에서 수행했던 모든 오브젝트 Regenerate 와 PBL Optimize 작업을 신 버전에서도 같은 방법으로 수행한다.
3.6 파워빌더 신 버전에서 Regenerate 수행
정상적으로 Regenerate가 진행 되었다면 Output window에 finished가 보이게 된다.
3.7 파워빌더 신 버전에서 Optimize 수행
마이그레이션 된 모든 PBL들을 Optimize 한다.
3.7 파워빌더 신 버전에서 Optimize 수행
Optimize 가 정상적으로 마무리 되면 다음으로, PBT를 Full Build 한다.
3.7 파워빌더 신 버전에서 Optimize 수행
Full Build가 진행된다.
www.lop.com