Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1
Table of Contents Chapter1 개요... 3 1.1 개요... 3 1.2 이글을읽을대상... 3 Chapter2 시나리오 1... 4 2.1 준비... 4 2.2 DerbyDB 에테이블생성... 5 2.3 DSM 개발... 7 2.4 결과확인... 14 Chapter 3 시나리오 2... 15 3.1 준비... 15 3.2 DSM 개발... 15 3.3 결과확인... 19 2
Chapter1 개요 1.1 개요 이가이드는예제를통하여 DSM 을쉽게접근할수있도록기술한문서이다. 이문서는예제를만들기위해필요한것만기술해놓았으므로세부적인설정이나설명을원한다면 DSM Developer Guide 를참고하기바란다. 1.2 이글을읽을대상 DSM 을통해개발하고자하는개발자혹은이를운용하고자하는운영자가참고할수있다. 3
Chapter2 시나리오 1 준비한파일의내용을읽어서 DB(test) 에 Insert 를수행하고 DB(test) 에서 DB(test2) 로옮긴다음 DB 에있는데이터를파일 (test2_ 파일을생성한날짜.txt) 로만들고 DB(test) 의데이터를삭제한다. 2.1 준비 DB 에입력시킬데이터가기록되어있는파일 (USERINFO.txt) 과 DB 가필요하다. USERINFO.txt 여러분이사용하고있는 DB에테이블을생성한다. CREATE TABLE TEST ( ID VARCHAR(20) NOT NULL, NAME VARCHAR(20) NOT NULL, ADDRESS VARCHAR(100), WORK_DT DATETIME ); CREATE TABLE TEST2( ID VARCHAR(20) NOT NULL, NAME VARCHAR(20) NOT NULL, ADDRESS VARCHAR(100), WORK_DT DATETIME, DEL_FLAG DECIMAL(1,0) DEFAULT 0 ); 4
2.2 DerbyDB 에테이블생성 개인이사용하는 DB 가없는경우 FrameBuilder 를설치할때 DerbyDB 가생성되는데 DerbyDB 에테이블을만들면된다. FramBuilder 를실행하면그림 1 과같은화면이나온다. [ 그림 1] Developer Group 을선택하면그림 2 가나온다. [ 그림 2] 5
[ 그림 3] 그림 3 과같이 Config 를누르면 Configure Dialog 창이뜬다. Name 사용자임의로지정한다. DataSource M&Mconsole 에서설정한 DataSource 를입력한다. Logined FrameBuilder Server Other Server FrameBuilder Http Host, Http Port, Context Path 설치시기본으로 DATA_WIZARD 가설정되어있다. DATA_WIZARD 를입력 한다. FrameBuilder 가사용하고있는 Server 를사용한다는의미이다. 자신을사용한다고보면된다. 입력후 Append 버튼을선택하고빠져나온다. 자신의 PC 가아니라다른 PC 의 Server 를사용할때사용한다. 다른 PC 의 Server 를사용할때접속정보를입력한다. [ 그림 4] 그림 4와같이 Connect를누르면창이뜨는데 SQL 입력창에 TABLE CREATE 문을입력한다. CREATE TABLE 문을선택한다음 EXEC Multi statement 를선택한다. Refresh를누르면 DerbyDB에생성되어있는 TABLE목록이출력되는데 TEST와 TEST2가생성된것을확인할수있다. 6
2.3 DSM 개발 [ 그림 5] 왼쪽하단에 Group 을선택하여 Developer Group 을선택한다. [ 그림 6] 왼쪽상단의 Data Sync Manager 를선택하여 DSM 을실행시킨다. [ 그림 7] Projects 창에오른쪽클릭하여 Project 와 Shedule, Process 를생성한다. [ 그림 8] 그림 7 에서 Schedule 을선택하여그림 8 의 Properties 에 FilePath 를입력한다. Value 에는준비한파일이있는경로를입력한다. 7
[ 그림 9] 그림 7에서 Process를선택하면그림 9가나타난다. Function에서 CSVFile -> DB CUD를 Define Function Flow에드래그한다. Properties 설정을한다. 설정에대한자세한설명은 DSM Developer Guide를참고하기바란다. description USERINFO.txt를읽어 DB에입력한다. name test테이블로데이터입력 columnseparater. cudinfo 1번을눌러 List를생성한다. 생성한후 Def(default) 체크를해준다. 2번에서 DATA_WIZARD를선택한다. 3번을눌러만든 DB TABLE을선택한다. TABLE을선택하면 Column이 4번에출력된다. ctrl누른상태로 5번에드래그한다. 5번에서 File Column Index와 Init Value를그림과같이입력한다. File Column Index는파일에서 columnseparater에의해서구분된데이터를순서대로 mapping 한다. inputcsvfile ${FilePath}\USERINFO.txt ${FilePath} 는 Schedule에서설정한 Properties의 FilePath란이름의 value를매핑한다. removeheaderrowcount 1 8
[ 그림 10] 그림 10을 Define Function Flow에드래그해서옮긴다. Properties 설정 description DB(test) 에있는데이터를 DB(test2) 로옮긴다. name DB to DB insertinfo queryobject 1번에서 DATA_WIZARD를설정 2번을누르면테이블목록이나오는데 TEST2를선택하면 TEST2의컬럼이 3번에출력된다. Ct기키누른상태에서 4번으로드래그한다. 4번에서 DEL_FLAG의 Init Value 를 0으로설정한다. 1번에서 DATA_WIZARD를설정 2번을누르면 3번에 TABLE 목록이출력된다. 3번에서 TEST를드래그하여 4번위치에놓는다. 4번을선택, 오른쪽클릭하여 add all select fields in TEST를클릭한다. 9
[ 그림 11] 그림 11 을 Define Function Flow 에드래그해서옮긴다. Properties 설정 description name queryobject test2 에있는데이터를 csv 파일로만듬 CSV 파일생성 1번에서 DATA_WIZARD를선택한다. 2번을누르면 TABLE 목록이 3번에출력된다. 3번에서 TEST2를드래그하여 4번에놓는다. 4번을선택, 오른쪽클릭하여 add all select fields in TEST2를클릭한다. 10
[ 그림 12] 그림 12를 Define Function Flow에드래그해서옮긴다. Properties 설정 description csv파일이름에현재날짜를붙여저장 name RENAME userdefcod e Help Tip 을눌러위의그림과같이로직을작성한다. 여기서 sharedmap 에주목할필요가있다. 모든 Function 은 sharedmap 에담겨져이동하게된다. Define Function Flow 에위의그림이있을것이다. out 에 csv_file: 이라고있을것이 다. 이것은 Hashmap 인 sharedmap 에 csv_file 이란키값으로파일의정보가들어있다. UserDefine Function 에서 csv_file 키값으로파일을꺼내 costomize 하는것이다. 또 DsmSchedulePropertiesManager.getScheduleProperty("FilePath") 는 Schedule 에서설정한 FilePath 의 Value 값을가져오는것이다. 11
[ 그림 13] 그림 13를 Define Function Flow에드래그해서옮긴다. Properties 설정 description TEST 테이블데이터삭제 name 데이터삭제 datasource DATA_WIZARD queryscript Script Java 를선택하고 DELETE FROM TEST 를입력한다. 지금까지 Guide 를잘따라왔다면 Define Function Flow 에아래그림과같은모습이보일것이다. 이제실행해보도록하자. Schedule Time 을지정하여지정한시간에이 Function 을수행하도록할수있지만여기서는 12
바로확인을위해 Direct Execute 를실행한다. 위의그림에서 Execute 를누르면아래그림과같이 Define Function Flow 밑에 Output 창이뜨게된다. [ 그림 14] 에러발생시 Output 창 13
2.4 결과확인 1 번을선택하고오른쪽클릭, 2 번을클릭하면 3 번에데이터가나온다. test2_ 생성한날짜.txt 를열어확인한다. 14
Chapter 3 시나리오 2 준비한파일 (USERINFO.txt) 의내용을읽어데이터를수정 (name->name+ 님, WORK_DT CURREMT_TIMESTAMP 추가 ) 수정한데이터를 DB(test) 에 Insert 를수행하고수정한데이터를 test.xml 파일로 생성한다. 3.1 준비 시나리오 1 에서사용한 USERINFO.txt 를사용한다. 시나리오 1 에서사용한 TEST DB 를사용한다. 3.2 DSM 개발 [ 그림 15] 그림 15 와같이 Projects 창에오른쪽클릭하여 Project 와 Schedule, Process 를생성한다. [ 그림 16] 그림 15 에서 Schedule 을선택하여그림 8 의 Properties 에 FilePath 를입력한다. Value 에는준비한파일이있는경로를입력한다. 15
[ 그림 17] Process의 Function Flow에그림17을드래그한다. Properties 설정 columnseparater. file2meminfo inputcsvfile removeheaderrow Count 1 번을눌러 2 번과같이설정한후 3 번을눌른다. ${FilePath}\USERINFO.txt 1 16
[ 그림 18] 그림18을그림17뒤에드래그한다. Properties설정 userdefcode Help Tip 을눌러아래와같이작성한다. sharedmap 에서 rowset (CSVFile->Memory 에서 out 에있는키이다.) 이란이름으로 FBRowSet 을가져온후 name 을변경과 WORK_DT 를추가하여다시 sharedmap 에설정한다. 17
[ 그림 19] UserDefine에서설정한 rowset을 TEST(DB) 에 Insert를수행한다. Properties 설정 insertinfo 1 번 Data Source 를설정한후 2 번을눌러 TEST 를선택한다. 3 번의 column 을 4 번으로 ctrl 키를누른상태에서드래그한다. [ 그림 20] UserDefine에서설정한 rowset을 Xml파일로생성한다. Properties 설정 fileencode UTF-8 Mem2FileInfo outputfile 1 번을눌러 2 번과같이설정한후 3 번을누른다. ${FilePath}\test.xml 18
3.3 결과확인 지금까지 Guide 를잘따라왔다면그림 21 과같은그림일것이다. Direct Execute 를실행한다. [ 그림 21] Memory -> XML File 에서생성한파일을열어본다. 19
1 번을눌러 2 번의 TEST 를오른쪽클릭해 select Object 를선택한다. 3 번의결과를확인한다. 20