%@ 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()));
}
%>