META 가이드
이 화면은 메타 관련 속성인 meta_id 및 name 속성 설명을 위한 예시화면이다.
메타 관련 속성은 다국어 환경이나 표준화된 용어/속성을 사용하기 위해서 사용된다.
메타 관련 속성은 메타 정보가 제공되는 DB 또는 웹 서비스가 있다는 것을 가정한다.
메타 관련 환경 설정
메타 관련 속성은 “도구”→“옵션” 메뉴에 대한 팝업 창의 “메타 데이터” 탭에서 설정한다.
메타 데이터는 메타 아이디(meta_id)와 메타 데이터(name) 관련 설정으로 구분된다.
메타 아이디(meta_id) 부분은 meta_id 속성 및 라벨성 속성에 메타시스템에 적용된 정보를 설정한다.
메타 데이터(name) 부분은 name 속성 및 입력 데이터 속성에 메타시스템에 적용된 정보를 설정한다.
예시
메타 서비스에 대한 샘플 JSP는 툴 설치 디렉토리\template\STUDIO\META 안에 JSP 파일을 참조한다.
메타 아이디 서비스 URL : meta_id_demo.jsp.txt → meta_id_demo.jsp 이름 변경후 사용한다.
메타 데이터 서비스 URL : meta_data_demo.jsp.txt → meta_data_demo.jsp 이름 변경후 사용한다.
템플릿 위치: /STUDIO/META/meta
템플릿 파일
meta_data_demo.jsp 스크립트
<%@ page import="java.sql.*" contentType="text/html;charset=UTF-8"%> <%! /** * @File Name : meta_data_demo.jsp * @Description : xFrame 메타 Data 검색 서비스 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. */ %> <%! public String getMetaInfo(String FIELD_DEL, String RECORD_DEL, String engName, String korName, String maxLength, String scale, String metaMaxLength) { return engName + FIELD_DEL + korName + FIELD_DEL + maxLength + FIELD_DEL + scale + FIELD_DEL + metaMaxLength + FIELD_DEL + RECORD_DEL; } %> <% //Dev@Studio에서 데이터 처리 시 사용하는 구분자 final String FIELD_DEL = String.valueOf((char)0x01); // 필드 final String RECORD_DEL = String.valueOf((char)0x02); // 레코드 final String DATA_DEL = String.valueOf((char)0x03); // 데이터 시작, 끝 //결과 리턴 코드 final String RESULT_SUCCESS = "1"; final String RESULT_FAIL = "0"; /* 파라미터 * @userid : Dev@Studio 사용자 ID * @projectid : xFrame project ID * @directory : screen directory * @screenid : screen ID */ String userId = request.getParameter("userid") == null ? "" : request.getParameter("userid"); String projectId = request.getParameter("projectid") == null ? "" : request.getParameter("projectid"); String directoryId = request.getParameter("directory") == null ? "" : request.getParameter("directory"); String screenId = request.getParameter("screenid") == null ? "" : request.getParameter("screenid"); // 검색 조건 데이터 String metaValue = request.getParameter("value") == null ? "" : request.getParameter("value"); // 검색 방식 ('0' : 영문명, '1' : 한글명) String searchType = request.getParameter("type") == null ? "" : request.getParameter("type"); // 검색 조건 방식 ('0' : 검색%, '1' : %검색%, '2' : %검색, '3' : 검색) String likeType = request.getParameter("liketype") == null ? "" : request.getParameter("liketype"); // xFrame 오브젝트 종류 String controlType = request.getParameter("controlkind") == null ? "" : request.getParameter("controlkind"); // xFrame Data Type For Grid, TreeGrid, MultilineGrid ('0': number, '1': englisth, '2': hangul) String dataType = request.getParameter("datatype") == null ? "" : request.getParameter("datatype"); try { StringBuffer resultStr = new StringBuffer(); boolean bReturn = false; // 메타 검색 결과 처리 시작 bReturn = true; // DEMO 에서는 성공으로 처리한다. // 데이터 시작 구분값 설정 resultStr.append(DATA_DEL); // 성공 코드 설정 resultStr.append(RESULT_SUCCESS); // 데이터 설정 resultStr.append(getMetaInfo(FIELD_DEL, RECORD_DEL, "JUMIN_NO", "주민번호", "13", "0", "13")); resultStr.append(getMetaInfo(FIELD_DEL, RECORD_DEL, "COM_NO", "사업번호", "10", "0", "10")); resultStr.append(getMetaInfo(FIELD_DEL, RECORD_DEL, "CARD_NO", "카드번호", "16", "0", "16")); resultStr.append(getMetaInfo(FIELD_DEL, RECORD_DEL, "INT_RATE", "이자율", "5", "3", "5")); resultStr.append(getMetaInfo(FIELD_DEL, RECORD_DEL, "MONEY_RATE", "총이자율", "15", "3", "15")); // 데이터 종료 구분값 설정 resultStr.append(DATA_DEL); // 리턴 데이터 전송 if(bReturn == true) // 조회 완료시 처리 { out.print(resultStr); } else // 검색 결과 없을경우 처리 { out.print(DATA_DEL + RESULT_FAIL + "조회 데이터가 없습니다" + FIELD_DEL + RECORD_DEL + DATA_DEL); } } catch(Exception e) { // 에러 발생 시 처리 out.println(DATA_DEL + RESULT_FAIL + e.getMessage() + FIELD_DEL + RECORD_DEL + DATA_DEL); } %>
meta_id_demo.jsp 스크립트
<%@ page import="java.sql.*" contentType="text/html;charset=UTF-8"%> <%! /** * @File Name : meta_id_demo.jsp * @Description : xFrame 메타 ID 검색 서비스 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. */ %> <%! public String getMetaIdInfo(String FIELD_DEL, String RECORD_DEL, String metaId, String metaDesc) { return metaId + FIELD_DEL + metaDesc + FIELD_DEL + RECORD_DEL; } %> <% // Dev@Studio에서 데이터 처리 시 사용하는 구분자 final String FIELD_DEL = String.valueOf((char)0x01); // 필드 구분 final String RECORD_DEL = String.valueOf((char)0x02); // 레코드 구분 final String DATA_DEL = String.valueOf((char)0x03); // 데이터 시작, 끝 // 결과 리턴 코드 final String RESULT_SUCCESS = "1"; final String RESULT_FAIL = "0"; /* 파라미터 * @userid : Dev@Studio 사용자 ID * @projectid : xFrame project ID * @directory : screen directory * @screenid : screen ID */ String userId = request.getParameter("userid") == null ? "" : request.getParameter("userid"); String projectId = request.getParameter("projectid") == null ? "" : request.getParameter("projectid"); String directoryId = request.getParameter("directory") == null ? "" : request.getParameter("directory"); String screenId = request.getParameter("screenid") == null ? "" : request.getParameter("screenid"); // 검색 조건 데이터 String metaValue = request.getParameter("value") == null ? "" : request.getParameter("value"); // 검색 방식 ('0' : 메타 ID, '1' : 설명) String searchType = request.getParameter("type") == null ? "" : request.getParameter("type"); // 검색 조건 방식('0' : 검색%, '1' : %검색%, '2' : %검색, '3' : 검색) String likeType = request.getParameter("liketype") == null ? "" : request.getParameter("liketype"); // xFrame 오브젝트 종류 String controlType = request.getParameter("controlkind") == null ? "" : request.getParameter("controlkind"); // xFrame Data Type For Grid, TreeGrid, MultilineGrid ('0': number, '1': englisth, '2': hangul) String dataType = request.getParameter("datatype") == null ? "" : request.getParameter("datatype"); try { StringBuffer resultStr = new StringBuffer(); boolean bReturn = false; // 메타 검색 결과 처리 시작 bReturn = true; // DEMO 에서는 성공으로 처리한다. // 데이터 시작 구분값 설정 resultStr.append(DATA_DEL); // 성공 코드 설정 resultStr.append(RESULT_SUCCESS); // 데이터 설정 resultStr.append(getMetaIdInfo(FIELD_DEL, RECORD_DEL, "COM_NO", "사업번호")); resultStr.append(getMetaIdInfo(FIELD_DEL, RECORD_DEL, "CARD_NO", "카드번호")); // 데이터 종료 구분값 설정 resultStr.append(DATA_DEL); // 리턴 데이터 전송 if(bReturn == true) // 조회 완료시 처리 { out.print(resultStr); } else // 검색 결과 없을경우 처리 { out.print(DATA_DEL + RESULT_FAIL + "조회 데이터가 없습니다" + FIELD_DEL + RECORD_DEL + DATA_DEL); } } catch(Exception e) { // 에러 발생 시 처리 out.println(DATA_DEL + RESULT_FAIL + e.getMessage() + FIELD_DEL + RECORD_DEL + DATA_DEL); } %>