TranMap 가이드
이 화면은 TranMap 에 관한 설명을 위한 예시화면이다.
TranMap 관련 속성은 거래 코드 정보를 생성하거나 조회하여 화면 개발을 보다 편리하게 하기 위해서 사용된다.
TranMap 관련 속성은 TranMap 정보가 제공되는 웹 서비스가 있다는 것을 가정한다.
TranMap 관련 환경 설정
TranMap 관련 속성은 “도구”→“옵션” 메뉴에 팝업 창의 “TranMap” 탭에서 설정한다.
“TranMap” 설정 탭에서 “Map ID 검색 사용” 부분에 체크하고 서비스 URL을 설정한다.
TranMap 저장기능을 사용시에는 “TranMap” 설정 탭에서 “Map ID 저장” 부분에 체크하고 서비스 URL을 설정한다.
JSP 설정 방법
TranMap 서비스 URL에 대한 샘플 JSP는 툴 설치 디렉토리\template\STUDIO\TRANMAP 안에 JSP 파일을 참조한다.
* Map ID 검색 서비스 URL : tranmap_demo.jsp.txt → tranmap_demo.jsp 로 이름 변경후 사용한다.
* 저장 URL : tranmap_save_demo.jsp.txt → tranmap_save_demo.jsp 로 이름 변경후 사용한다.
TranMap 기능 설명
TranMap 작성은 화면 개발 영역의 “TranMap” 탭에서 수행할수 있다.
“+ 추가”, “- 삭제” 기능을 이용하여 TranMap을 생성하고 “MAPID 검색” 기능을 이용하여 거래코드 정보를 조회할수 있다.
TranIO 목록에서 항목을 선택하고 스크린으로 드래그 앤 드랍 하게되면 해당 오브젝트가 생성된다.
조회된 거래코드 정보를 선택하면 현재 화면에 생성된 오브젝트 “name” 속성에 매핑되어 TranMap이 설정된다.
“MAP 저장” 기능은 현재 화면의 TranMap 정보를 “저장 URL” 에 설정한 서비스 화면으로 전송하여 저장하는 기능이다.
“엑셀 저장” 기능은 현재 화면의 TranMap 정보를 엑셀 파일로 저장 하는 기능이다.
템플릿 위치: /STUDIO/TRANMAP/tranmap
템플릿 파일
tranmap_demo.jsp 스크립트
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%! /** * @File Name : tranmap_demo.jsp * @Description : xFrame TranMap 검색 서비스 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 STARTEND_DEL = String.valueOf((char)0x03); // 데이터 시작, 끝 final String FIELD_DEL = String.valueOf((char)0x01); // 필드 final String RECORD_DEL = String.valueOf((char)0x02); // 레코드 final String ITEM_DEL = String.valueOf((char)0x04); //결과 리턴 코드 final String RESULT_SUCCESS = "1"; final String RESULT_FAIL = "0"; public String getFieldInfo(String fldName, String fldDesc, String index, String maxLength) { return "F" + ITEM_DEL + "" + ITEM_DEL + fldName + ITEM_DEL + fldDesc + ITEM_DEL + index + ITEM_DEL + maxLength + ITEM_DEL + FIELD_DEL; } public String getGridInfo(String grdName, String grdDesc, String index, String maxLength) { return "G" + ITEM_DEL + "" + ITEM_DEL + grdName + ITEM_DEL + grdName + ITEM_DEL + index + ITEM_DEL + maxLength + ITEM_DEL + FIELD_DEL; } public String getColumnInfo(String grdName, String colName, String colDesc, String index, String maxLength) { return "C" + ITEM_DEL + grdName + ITEM_DEL + colName + ITEM_DEL + colDesc + ITEM_DEL + index + ITEM_DEL + maxLength + ITEM_DEL + FIELD_DEL; } public String getErrorInfo(String errorMsg) { return STARTEND_DEL + RESULT_FAIL + errorMsg + STARTEND_DEL; } %> <% StringBuffer buffer = new StringBuffer(); //검색 조건 데이터 String tranMapId = request.getParameter("code"); String projectId = request.getParameter("projectid"); try { // [전체 데이터 구성] // 데이터 시작/끝 구분자 // 성공/실패 여부값 ("1"/"0") // 거래코드 정보 + 0x02 + 입력인덱스 정보 + 0x02 + 출력인덱스 정보 + 0x02 // 데이터 시작/끝 구분자 System.out.println("조회 기준 정보 : tranMapId = [" + tranMapId + "] projectId = [" + projectId + "]"); if(tranMapId.equals("")) { out.println(getErrorInfo("MapID 검색어를 입력하지 않으셨습니다.\nMapID는 필수 항목입니다.")); return; } buffer.append(STARTEND_DEL); // 데이터 시작/끝 구분자 buffer.append(RESULT_SUCCESS); // 성공/실패 여부 // 거래 코드 정보부 ------------------------------------------ buffer.append(tranMapId + FIELD_DEL); // 거래코드 ID buffer.append("거래코드 설명이다~" + FIELD_DEL); // 거래코드설명 buffer.append("홍길동" + FIELD_DEL); // 작업자 buffer.append("2016-11-20 09:05:11" + FIELD_DEL); // 작업일시 buffer.append("ver1.0" + FIELD_DEL); // 버전 buffer.append(RECORD_DEL); // 레코드 구분자 (거래코드 정보 끝) // 입력 정보부 -------------------------------------------- buffer.append(getFieldInfo("IN_FLD_A", "입력필드 A", "1", "10")); // 입력 전용 필드 buffer.append(getFieldInfo("IO_FLD_B", "입출력필드 B", "2", "20")); // 입출력 필드 buffer.append(getGridInfo("IN_GRD_A", "입력그리드 A", "10", "254")); // 입력 전용 그리드 buffer.append(getColumnInfo("IN_GRD_A", "IN_GRD_A_COL_A", "입력칼럼 A_A", "10.1", "10")); // 입력 전용 그리드 칼럼 buffer.append(getColumnInfo("IN_GRD_A", "IN_GRD_A_COL_B", "입력칼럼 A_B", "10.2", "20")); // 입력 전용 그리드 칼럼 buffer.append(getGridInfo("IO_GRD_B", "입출력그리드 B", "20", "254")); // 입출력 그리드 buffer.append(getColumnInfo("IO_GRD_B", "IO_GRD_B_COL_A", "입력칼럼 B_A", "20.1", "10")); // 입력 그리드 칼럼 buffer.append(getColumnInfo("IO_GRD_B", "IO_GRD_B_COL_B", "입출력칼럼 B_B", "20.2", "20")); // 입출력 그리드 칼럼 buffer.append(RECORD_DEL); // 레코드 구분자 (입력 인덱스 정보 끝) // 출력 정보부 -------------------------------------------- buffer.append(getFieldInfo("OUT_FLD_C", "출력필드 C", "1", "10")); // 출력 전용 필드 buffer.append(getFieldInfo("IO_FLD_B", "입출력필드 B", "2", "20")); // 입출력 필드 buffer.append(getGridInfo("OUT_GRD_C", "출력그리드 C", "10", "254")); // 출력 전용 그리드 buffer.append(getColumnInfo("OUT_GRD_C", "OUT_GRD_C_COL_A", "출력칼럼 A_A", "10.1", "10")); // 출력 전용 그리드 칼럼 buffer.append(getColumnInfo("OUT_GRD_C", "OUT_GRD_C_COL_B", "출력칼럼 A_B", "10.2", "20")); // 출력 전용 그리드 칼럼 buffer.append(getGridInfo("IO_GRD_B", "입출력그리드 B", "20", "254")); // 입출력 그리드 buffer.append(getColumnInfo("IO_GRD_B", "IO_GRD_B_COL_B", "입출력칼럼 B_B", "20.2", "20")); // 입출력 그리드 칼럼 buffer.append(getColumnInfo("IO_GRD_B", "IO_GRD_B_COL_C", "입력칼럼 B_C", "20.3", "20")); // 출력 그리드 칼럼 buffer.append(RECORD_DEL); // 레코드 구분자 (출력 인덱스 정보 끝) buffer.append(STARTEND_DEL); // 데이터 시작/끝 구분자 out.print(buffer.toString()); } catch(Exception e) { // 에러 발생 시 처리 out.print(getErrorInfo("Error Message: " + e.getMessage())); } %>
tranmap_save_demo.jsp 스크립트
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%! /** * @File Name : tranmap_save_demo.jsp * @Description : xFrame TranMap 저장 서비스 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 STARTEND_DEL = String.valueOf((char)0x03); // 데이터 시작, 끝 final String FIELD_DEL = String.valueOf((char)0x01); // 필드 final String RECORD_DEL = String.valueOf((char)0x02); // 레코드 final String ITEM_DEL = String.valueOf((char)0x04); //결과 리턴 코드 final String RESULT_SUCCESS = "1"; final String RESULT_FAIL = "0"; public String getErrorInfo(String errorMsg) { return STARTEND_DEL + RESULT_FAIL + errorMsg + STARTEND_DEL; } %> <% StringBuffer buffer = new StringBuffer(); String userId = request.getParameter("id"); String projectId = request.getParameter("pro"); String screenDir = request.getParameter("dir"); String screenId = request.getParameter("sci"); String fcodeList = request.getParameter("fcodelist"); try { // TO DO : 저장 서비스 로직 수행 buffer.append(STARTEND_DEL); // 데이터 시작/끝 구분자 buffer.append(RESULT_SUCCESS); // 성공/실패 여부 buffer.append("SUCCESS"); // 결과 메세지 buffer.append(RECORD_DEL); // 레코드 구분자 (출력 인덱스 정보 끝) buffer.append(STARTEND_DEL); // 데이터 시작/끝 구분자 out.print(buffer.toString()); } catch(Exception e) { // 에러 발생 시 처리 out.print(getErrorInfo("Error Message: " + e.getMessage())); } %>