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