TranIOMap 가이드

이 화면은 TranIOMap 에 관한 설명을 위한 예시화면이다.

TranIOMap 관련 속성은 미리 정의된 TranIOMap 거래 정보를 가지고 보다 편리하게 개발하기 위해서 사용된다.

TranIOMap 관련 속성은 TranIOMap 정보가 제공되는 웹 서비스가 있다는 것을 가정한다.

TranIOMap 관련 속성은 “도구”→“옵션” 메뉴에 팝업 창의 “기타” 탭에서 설정한다.

“기타” 설정 탭에서 Tran I/O Map 사용 부분에 체크하고 서비스 URL을 설정한다.

TranIOMap 서비스 URL에 대한 샘플 JSP는 툴 설치 디렉토리\template\STUDIO\TRANIOMAP 안에 JSP 파일을 참조한다.

* Depth URL : traniomap_depth_demo.jsp.txt → traniomap_depth_demo.jsp 로 이름 변경후 사용한다.

* Format URL : traniomap_format_demo.jsp.txt → traniomap_format_demo.jsp 로 이름 변경후 사용한다.

TranIOMap 조회는 “오브젝트 윈도우” 창의 “TranIO-Map” 탭에서 조회할수 있다.

“TranIO-Map” 탭에서 돋보기 아이콘으로 조회 후 조회된 내용을 클릭하면 “오브젝트리스트 윈도우” 창에 “TranIO” 탭에 TranIO 목록이 표시된다.

TranIO 목록에서 항목을 선택하고 스크린으로 드래그 앤 드랍 하게되면 해당 오브젝트가 생성된다.

TranIO 연결 해제는 연결된 오브젝트 우측클릭 후 “트렌젝션 항목해제” 를 사용하거나 “TranIO” 탭에서 항목 우측클릭후 해제 기능을 이용한다.

템플릿 위치: /STUDIO/TRANIOMAP/traniomap

템플릿 파일

<%@ page import="java.sql.*" contentType="text/html;charset=UTF-8"%>

<%!
/**
 * @File Name : traniomap_depth_demo.jsp
 * @Description : xFrame TranIOMap Depth 검색 서비스 JSP
 * @Modification Information
 * @
 * @  수정일                          수정내용
 * @ ---------   ---------   -------------------------------
 * @ 2018.09.03     최초생성
 * @ 2020.10.06     수정배포
 *
 * @author 소프트베이스 솔루션 개발팀
 * @since 2018. 09. 03
 * @version 1.0
 * @see
 *
 *  Copyright (C) by Softbase All right reserved.
 */
 %>

<%!
	//Dev@Studio에서 데이터 처리 시 사용하는 구분자
	final String	FIELD_DEL		= String.valueOf((char)0x01);			// 필드
	final String	RECORD_DEL		= String.valueOf((char)0x02);			// 레코드
	final String	STARTEND_DEL	= String.valueOf((char)0x03);			// 데이터 시작, 끝
	// 결과 리턴 코드
	final String	RESULT_SUCCESS	= "1";
	final String	RESULT_FAIL		= "0";

	public String getDepthOneInfo(String id, String desc) {
		return id + FIELD_DEL + desc + FIELD_DEL + RECORD_DEL;
	}

	public String getDepthTwoInfo(String id, String desc) {
		return id + FIELD_DEL + desc + FIELD_DEL + RECORD_DEL;
	}

	public String getDepthThreeInfo(String id, String desc) {
		return id + FIELD_DEL + desc + FIELD_DEL + RECORD_DEL;
	}
%>

<%

	// 검색 조건 데이터
	String 	depthType = request.getParameter("depth_type") == null ? "" : request.getParameter("depth_type");		// value: "1", "2", "3"
	String 	depthOneValue = request.getParameter("depth_one") == null ? "" : request.getParameter("depth_one");
	String 	depthTwoValue = request.getParameter("depth_two") == null ? "" : request.getParameter("depth_two");


	try {
		StringBuffer 	resultStr = new StringBuffer();
		boolean 		bReturn = false;

		// 검색 결과 처리 시작
		bReturn = true; // DEMO에서는 성공으로 처리한다.

		// 데이터 시작 구분값 설정
		resultStr.append(STARTEND_DEL);
		// 성공 코드 설정
		resultStr.append(RESULT_SUCCESS);

		// 데이터 설정
		if(depthType.equalsIgnoreCase("1")) {
			resultStr.append(getDepthOneInfo("CA", "콜센터상담[CA])"));
			resultStr.append(getDepthOneInfo("MB", "경영관리시스템(IFRS)[MB]"));
		}
		else if(depthType.equalsIgnoreCase("2")) {
			if(depthOneValue.equalsIgnoreCase("CA")) {
				resultStr.append(getDepthTwoInfo("CAH", "콜센터폰뱅킹[CAH]"));
				resultStr.append(getDepthTwoInfo("CAN", "스마트브랜치[CAN]"));
			}
			else if(depthOneValue.equalsIgnoreCase("MB")) {
				resultStr.append(getDepthTwoInfo("MBL", "IB통합관리[MBL]"));
				resultStr.append(getDepthTwoInfo("MBM", "IB자산관리[MBM]"));
			}
			else {
				bReturn = false;
			}
		}
		else if(depthType.equalsIgnoreCase("3")) {
			if(depthTwoValue.equalsIgnoreCase("CAH")) {
				resultStr.append(getDepthThreeInfo("FDTERCAH12001S0_I", "고객기본정보 조회 입력 데이터"));
				resultStr.append(getDepthThreeInfo("FDTERCAH12001S0_CAH12001000", "고객기본정보 화면 출력 데이터"));
			}
			else if(depthTwoValue.equalsIgnoreCase("CAN")) {
				bReturn = false;
			}
			else if(depthTwoValue.equalsIgnoreCase("MBL")) {
				resultStr.append(getDepthThreeInfo("FDTERMBL13001S0_I", "고객이체정보 조회 입력 데이터"));
				resultStr.append(getDepthThreeInfo("FDTERMBL13001S0_MBL12001000", "고객이체정보 화면 출력 데이터"));
				resultStr.append(getDepthThreeInfo("FDTERMBL13001S0_MBL12001002", "고객이체정보 전표 출력"));
			}
			else if(depthTwoValue.equalsIgnoreCase("MBM")) {
				bReturn = false;
			}
		}
		else {
			// depthType이 1,2,3 이 아닐경우 에러 처리
			out.print(STARTEND_DEL + RESULT_FAIL + "INVALID DEPTH_TYPE" + FIELD_DEL + RECORD_DEL + STARTEND_DEL);
			return;
		}

		// 데이터 종료 구분값 설정
		resultStr.append(STARTEND_DEL);

		// 리턴 데이터 전송
		if(bReturn == true) {
			out.print(resultStr);
		}
		else {
			// 검색 결과 없을경우 처리
			out.print(STARTEND_DEL + RESULT_FAIL + "조회 데이터가 없습니다" + FIELD_DEL + RECORD_DEL + STARTEND_DEL);
		}
	}
	catch(Exception e) {
		// 에러 발생 시 처리
		out.println(STARTEND_DEL + RESULT_FAIL + e.getMessage() + FIELD_DEL + RECORD_DEL + STARTEND_DEL);
	}
%>

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>

<%!
/**
 * @File Name : traniomap_format_demo.jsp
 * @Description : xFrame TranIOMap format 검색 서비스 JSP
 * @Modification Information
 * @
 * @  수정일                          수정내용
 * @ ---------   ---------   -------------------------------
 * @ 2018.09.03     최초생성
 * @ 2020.10.06     수정배포
 * @ 2022.03.29     수정배포     groupid 기능 추가처리(개발툴 22.3.28.3 대응)
 *
 * @author 소프트베이스 솔루션 개발팀
 * @since 2018. 09. 03
 * @version 1.0
 * @see
 *
 *  Copyright (C) by Softbase All right reserved.
 */
 %>

<%!
	//Dev@Studio에서 데이터 처리 시 사용하는 구분자
	final String STARTEND_DEL	= String.valueOf((char)0x03);		// 데이터 시작, 끝
	final String FIELD_DEL    	= String.valueOf((char)0x01);       // 필드 항목
	final String FORMAT_DEL   	= String.valueOf((char)0x02);       // 포맷 구분자
	final String ITEM_DEL       = String.valueOf((char)0x04);		// 아이템 정보 구분자

	final String RESULT_SUCCESS		= "1";
	final String RESULT_FAIL		= "0";

	// id: 포맷 ID
	// desc: 포맷 설명
	// inout: 입출력 구분 (예시: 'i'(input), 'o'(output))
	// msgType: 메시지 타입 (예시: 'xml', 'flat', 'json');
	// device: 디바이스 ('screen', 'pbprt')
	// formid: 매체 정보 (예시: 화면ID, 임의장표ID, 전표ID, 영수증ID)
	// yyyymmddhhmmss: 적용 일시
	public String getFormatInfo(String id, String desc, String inout, String msgType, String device, String formid, String yyyymmddhhmmss) {
		return "M"
			+ ITEM_DEL + id
			+ ITEM_DEL + desc
			+ ITEM_DEL + inout
			+ ITEM_DEL + msgType
			+ ITEM_DEL + device
			+ ITEM_DEL + formid
			+ ITEM_DEL + yyyymmddhhmmss
			+ FIELD_DEL;
	}

	// id: 데이터 ID
	// desc: 데이터 설명
	// pos: 데이터 위치
	// length: 데이터 길이
	// dataType: 데이터 형식 (예시: 0(숫자), 1:영문+숫자) 2:숫자+영문+한글)
	// places: 소수점 이하 숫자 갯수
	// defaultValue: 기본값
	// metaLength: 메타 데이터 길이
	// groupID : 그룹이 존재할경우 그룹ID(22.3.28.3)
	public String getFieldInfo(String id, String desc, String pos, String length, String dataType, String places, String defaultValue, String metaLength, String groupID) {
		return "F"
			+ ITEM_DEL + id
			+ ITEM_DEL + desc
			+ ITEM_DEL + pos
			+ ITEM_DEL + length
			+ ITEM_DEL + dataType
			+ ITEM_DEL + places
			+ ITEM_DEL + defaultValue
			+ ITEM_DEL + metaLength
			+ ITEM_DEL + groupID
			+ FIELD_DEL;
	}

	// id: 데이터 ID
	// desc: 데이터 설명
	// pos: 데이터 위치
	// groupID : 그룹이 존재할경우 그룹ID(22.3.28.3)
	public String getGridInfo(String id, String desc, String pos, String groupId) {
		return "G"
			+ ITEM_DEL + id
			+ ITEM_DEL + desc
			+ ITEM_DEL + pos
			+ ITEM_DEL + groupId
			+ FIELD_DEL;
	}

	// id: 데이터 ID
	// desc: 데이터 설명
	// pos: 데이터 위치
	// dataType: 데이터 형식 (예시: 0(숫자), 1(영문+숫자) 2(숫자+영문+한글)
	// length: 데이터 길이
	// places: 소수점 이하 숫자 갯수
	// defaultValue: 기본값
	// metaLength: 메타 데이터 길이
	public String getColumnInfo(String id, String desc, String pos, String length, String dataType, String places, String defaultValue, String metaLength) {
		return "C"
			+ ITEM_DEL + id
			+ ITEM_DEL + desc
			+ ITEM_DEL + pos
			+ ITEM_DEL + length
			+ ITEM_DEL + dataType
			+ ITEM_DEL + places
			+ ITEM_DEL + defaultValue
			+ ITEM_DEL + metaLength
			+ FIELD_DEL;
	}

	public String getErrorInfo(String errorMsg) {
		return STARTEND_DEL + RESULT_FAIL + errorMsg + STARTEND_DEL;
	}
%>

<%

StringBuffer	buffer = new StringBuffer();
String formatMultiFlag = request.getParameter("format_multi_flag");		// 0 or 1
String formatId = request.getParameter("format_id");

try {
	// [전체 데이터 구성]
	// 데이터 시작/끝 구분자
	// 성공/실패 여부값 ("1"/"0")
	// 거래코드 정보 + 0x02 + 입력인덱스 정보 + 0x02 + 출력인덱스 정보 + 0x02
	// 데이터 시작/끝 구분자

	buffer.append(STARTEND_DEL);							// 데이터 시작/끝 구분자

	buffer.append(RESULT_SUCCESS);							// 성공/실패 여부

	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	/////////////////////////////////////////////////////////////////////////////////////////////////////////

	if(formatId.equalsIgnoreCase("CAH12001S0") || formatId.equalsIgnoreCase("FDTERCAH12001S0_I")) {
		// 포맷 정보
		buffer.append(getFormatInfo("FDTERCAH12001S0_I", "고객기본정보 조회 입력 데이터", "i", "xml", "screen", "", "20190423123456"));

		// 필드 정보
		buffer.append(getFieldInfo("CUST_ID", "고객번호", "1", "6", "0", "0", "", "6", ""));
		buffer.append(getFieldInfo("ACCT_NO", "계좌번호", "2", "12", "0", "0", "", "12", ""));

		buffer.append(getGridInfo("CUST_ACCT_LIST_INPUT", "고객 보유 계좌 내역", "3", ""));
		buffer.append(getColumnInfo("ACCT_NO_INPUT", "계좌번호", "3.1", "12", "0", "0", "", "12"));
		buffer.append(getColumnInfo("ACCT_TYPE_INPUT", "계좌구분", "3.2", "1", "1", "0", "", "1"));

		buffer.append(FORMAT_DEL);			// 포멧 정보 끝
	}
	if(formatId.equalsIgnoreCase("CAH12001S0") || formatId.equalsIgnoreCase("FDTERCAH12001S0_CAH12001000")) {
		// 포맷 정보
		buffer.append(getFormatInfo("FDTERCAH12001S0_CAH12001000", "고객기본정보 화면 출력 데이터", "o", "xml", "screen", "", "20190423123456"));

		buffer.append(getFieldInfo("CUST_NAME", "고객명", "1", "30", "2", "0", "", "30", ""));
		buffer.append(getFieldInfo("CUST_LEVEL", "고객 등급", "2", "1", "1", "0", "", "1", ""));

		// 그리드 정보
		buffer.append(getGridInfo("CUST_ACCT_LIST", "고객 보유 계좌 내역", "3", ""));
		buffer.append(getColumnInfo("ACCT_NO", "계좌번호", "2.1", "12", "0", "0", "", "12"));
		buffer.append(getColumnInfo("ACCT_TYPE", "계좌구분", "2.2", "1", "1", "0", "", "1"));
		buffer.append(getColumnInfo("ACCT_BALANCE", "계좌잔액", "2.3", "17", "0", "0", "", "17"));
		buffer.append(getColumnInfo("ACCT_RATE", "계좌이율", "2.4", "6", "0", "3", "", "6"));

		buffer.append(getGridInfo("CUST_TRNS_LIST", "고객 계좌 이체 내역", "3", ""));
		buffer.append(getColumnInfo("TRNS_ACCT_NO", "계좌번호", "2.1", "12", "0", "0", "", "12"));
		buffer.append(getColumnInfo("TRNS_ACCT_TYPE", "계좌구분", "2.2", "1", "1", "0", "", "1"));
		buffer.append(getColumnInfo("TRNS_ACCT_BALANCE", "계좌잔액", "2.3", "17", "0", "0", "", "17"));
		buffer.append(getColumnInfo("TRNS_CUST_NAME", "고객명", "1", "30", "2", "0", "", "30"));
		buffer.append(getColumnInfo("TRNS_DATE", "이체일자", "2", "8", "1", "0", "", "8"));
		buffer.append(getColumnInfo("TRNS_MONEY", "이체금액", "3", "17", "0", "0", "", "17"));
		buffer.append(getColumnInfo("TRNS_FEE", "수수료", "4", "17", "0", "0", "", "17"));

		buffer.append(FORMAT_DEL);			// 포멧 정보 끝
	}

	if(formatId.equalsIgnoreCase("MBL13001S0") || formatId.equalsIgnoreCase("FDTERMBL13001S0_I")) {
		// 포맷 정보
		buffer.append(getFormatInfo("FDTERMBL13001S0_I", "고객이체정보 조회 입력 데이터", "i", "xml", "screen", "", "20190423123456"));

		// 필드 정보
		buffer.append(getFieldInfo("CUST_ID", "이체일자", "1", "8", "1", "0", "", "8", ""));
		buffer.append(getFieldInfo("ACCT_NO", "계좌번호", "2", "12", "0", "0", "", "12", ""));

		buffer.append(FORMAT_DEL);			// 포멧 정보 끝
	}
	if(formatId.equalsIgnoreCase("MBL13001S0") || formatId.equalsIgnoreCase("FDTERMBL13001S0_MBL12001000")) {
		// 포맷 정보
		buffer.append(getFormatInfo("FDTERMBL13001S0_MBL12001000", "고객이체정보 화면 출력 데이터", "o", "xml", "screen", "MBL12001000", "20190423123456"));

		buffer.append(getFieldInfo("CUST_NAME", "고객명", "1", "30", "2", "0", "", "30", ""));
		buffer.append(getFieldInfo("CUST_LEVEL", "고객 등급", "2", "1", "1", "0", "", "1", ""));

		// 그리드 정보
		buffer.append(getGridInfo("CUST_ACCT_LIST", "고객 보유 계좌 내역", "3", ""));
		buffer.append(getColumnInfo("ACCT_NO", "계좌번호", "2.1", "12", "0", "0", "", "12"));
		buffer.append(getColumnInfo("ACCT_TYPE", "이체일자", "2.2", "8", "1", "0", "", "8"));
		buffer.append(getColumnInfo("ACCT_BALANCE", "이체금액", "2.3", "17", "0", "0", "", "17"));
		buffer.append(getColumnInfo("TRNS_FEE", "이체수수료", "2.4", "17", "0", "0", "", "17"));
		buffer.append(getColumnInfo("TRNS_MEMO", "이체메모", "2.4", "30", "2", "0", "", "30"));

		buffer.append(FORMAT_DEL);			// 포멧 정보 끝
	}
	if(formatId.equalsIgnoreCase("MBL13001S0") || formatId.equalsIgnoreCase("FDTERMBL13001S0_MBL12001002")) {
		// 포맷 정보
		buffer.append(getFormatInfo("FDTERMBL13001S0_MBL12001002", "고객이체정보 전표 출력", "o", "xml", "pbprt", "MBL12001002", "20190423123456"));

		buffer.append(getFieldInfo("CUST_NAME", "고객명", "1", "30", "2", "0", "", "30", ""));
		buffer.append(getFieldInfo("TRNS_DATE", "이체일자", "2", "8", "1", "0", "", "8", ""));
		buffer.append(getFieldInfo("TRNS_MONEY", "이체금액", "3", "17", "0", "0", "", "17", ""));
		buffer.append(getFieldInfo("TRNS_FEE", "수수료", "4", "17", "0", "0", "", "17", ""));

		buffer.append(FORMAT_DEL);			// 포멧 정보 끝
	}


	buffer.append(STARTEND_DEL);		// 데이터 시작/끝 구분자

	out.print(buffer.toString());

}
catch(Exception e) {
	out.print(getErrorInfo("Error Message: " + e.getMessage()));
}
%>

  • guide/studio/traniomap/traniomap.txt
  • 마지막으로 수정됨: 2023/05/11 16:21
  • 저자 127.0.0.1