본문 바로가기

카테고리 없음

MiPlatform, FSP, SELECT example

MiPlatform + FSP 연동시 SELECT 문장 실행 예
클라이언트에서 서버측에 SELECT문장을 호출하고 그 결과를 trace()함수를 이용하여 출력하는 예제

FSP프로젝트 안에 있는 MiProject 프로젝트 열기
FSP가 배포될 때 Eclipse기반의 프로젝트 안에 구성폴더로 MiPlaform 프로젝트가 포함되어 있으므로 다음과 같이 MiPlatform 화면 개발툴을 실행하고 FSP 프로젝트 안에 들어 있는 MiPlatform 프로젝트를 열고 작업을 할 수가 있다.

1. FSP 프로젝트가 저장된 디렉토리를 확인한다.
2. FSP 프로젝트 안에서 MiPlatform 프로젝트 파일(StartXML.xml)을 확인한다.
3. 위에서 확인한 StartXML 파일을 MiPlatform PID 를 실행하고 프로젝트로 등록한다.
등록하는 방법은 [Tools] > [Project Manager] > [Add Exist] 를 선택하여 위에서 확인한 프로젝트파일을 선택하면 된다.
등록된 프로젝트만 [Open Project]로 열 수가 있도록 되어 있기 때문이다
4. [Open Project] 를 이용하여 등록된 해당 프로젝트를 열면 된다.

FSP SQLMGR 콘솔에서 수행하는 절차
우선 해당 프로젝트를 실행할 WAS(Tomcat 등)를 실행한다.
웹브라우저를 열고 http://www.softzam.com/fsp 를 입력하여 WAS와 연결된 FSP SQLMGR 콘솔을 실행한다.
위와같이 하면 바탕화면에 FSP SQLMGR 아이콘이 등록되므로 다음부터는 이 아이콘을 사용하여 FSP SQLMGR을 실행할 수 있다. FSP프로젝트 설치에 관한 자료는 여기를 참조하면 된다.
FSP 콘솔에서 SELECT 문장을 하나 선언하고 기본출력명에 cw_ds_test_tb 라고 입력한다
그룹을 생성(cwkim/sql), 그룹아래에 SQL문장을 선언하면 된다
cwkim/sql그룹안에 SELECT 문장을 선언하고 이름(ID)은 TEST_TB_SELECT 라고 설정한다
FSP콘솔에서 설정한 이름은 MiPlatform의 클라이언트 스크립트에서 호출되어 서버에서 실행된다

MiPlatform 측에서 수행하는 절차
1. MiPlatform 폼에 버튼 생성
2. cw_ds_test_tb 라는 Dataset 생성(내용은 비어 있어도 되나 컬럼명 정도는 설정해야 서버로 전송할 때 사용가능함)
3. 버튼 이벤트 핸들러 선언
4. 데이터셋 로드 이벤트핸들러 선언
5. 그리드에 데이터셋을 Binding 설정해 놓으면 서버측에서 전달된 데이터셋이 클라이언트에 로드되는 순간 아무런 코드도 없이 해당 데이터셋에 그대로 출력된다.

MiPlatform 스크립트 내용
#include "js::commons.js"; // 공통 스크립트

/* 버튼 이벤트 핸들러 함수 선언 */
function btn_select_test_table_OnClick(obj)
{
 fsp_init();
 fsp_clear();
 fsp_addSearch("cwkim/sql:TEST_TB_SELECT ");
 fsp_callService(
        ""
        , ""
        , ""
        , "cw_ds_test_tb =cw_ds_test_tb"
        , ""
        , "fn_AfterSearch"
        , true);
}

/* 콜백함수에서 응답 데이터를 출력해본다*/
function fn_AfterSearch(){
 //alert('응답성공');
 trace('컬럼수:'+cw_ds_test_tb .ColCount());
 trace('레코드수:'+cw_ds_test_tb .count);
 trace('데이터셋내용:'+cw_ds_test_tb .SaveXML());
}

/* 응답 데이터셋이 로컬 시스템에 로드되면 호출되는 이벤트 핸들러 */
function cw_ds_test_tb_OnLoadCompleted(obj,nErrorCode,strErrorMsg,nReason)
{
 trace('데이터셋내용:'+obj.SaveXML());
}