(SEL)
DB 테이블에 대한 Select문을 처리하는 기능인 컴포넌트입니다.
Remark
SEL BOC는 Toad 등의 Query Tool에서 미리 작성된 SQL 쿼리를 복사해서 입력하는 방식으로 사용합니다.
1. SEL BOC 이미지
BOC 컴포넌트 목록에서 SEL BOC를 선택하여 Drag-Drop으로 화면작업 영역에 디자인합니다.
2. SEL BOC 속성
화면작업 영역에서 SEL BOC 선택 시 속성 영역에 설정이 가능한 항목에 값을 입력합니다.
1) 1. 기초정보
① OBJECT명
해당 BOC가 실행된 후 해당 결과 SET을 저장할 Value Object의 명을 지정합니다. 해당 Object의 결과 Set은 그리드 형식의 Object로 구성됩니다.
② 논리명칭
BOC가 어떤 동작을 수행하는지를 간단한 명칭으로 기술합니다. 해당 명칭을 처리 흐름을 간략하게 표현할 수 있도록 기술합니다.
③ 논리설명
논리명칭으로 표현하기 부족할 때 좀 더 상세히 내용을 기술합니다.
2) 2. 입력부
① SQL Query
DB 정보 조회를 위한 Select 문장을 설정합니다.
3) 3. 출력부
① 1. 화면출력유형
- None : Default
- Dataset : View Designer에서 그리드 컴포넌트에 조회 시 설정합니다.
- Recode : JSP 출력방식일 때 단일 컴포넌트에 조회 시 설정합니다.
- Page : JSP 출력방식일 때 페이징 시 설정합니다.
- ChartLabel : View Designer에서 차트 컴포넌트에 범례를 설정합니다.
- ChartData : View Designer에서 차트 컴포넌트에 데이터 조회 시 설정합니다.
- Schedule : View Designer에서 스케줄 컴포넌트에 조회 시 설정합니다.
② 2. Record-Count/Page
Pagination 시 페이지당 레코드 건수를 설정합니다.
③ Column Scroll
해당 BOC 목록이 많을 경우 "true"로 설정했을 때 Display Count에서 설정한 개수만큼 보여주고 나머지 목록은 ▲▼ 버튼으로 확인할 수 있습니다.
④ Display Count
해당 BOC 목록이 많을 때 목록에 보이는 개수를 설정합니다.
4) 4. 메시지부
① 결과메시지
해당 처리 결과에 대한 메시지를 클라이언트. 즉, 호출자에게 보낼 필요가 있을 때 정의합니다.
5) 5. 선택항목
① Alias전송명
전송하는 Object 명의 Alias를 생성합니다.
② DATA SIZE
Common이 기본 설정이며, Batch 형태의 대용량 데이터 처리 시 Large로 설정합니다.
③ DB연결명
기본 접속 DB는 자동 설정됩니다. 추가로 다른 DB 연결 명을 사용하여 데이터 처리의 필요성이 생기면 해당 정보에 접속 명을 등록하여 사용합니다.
④ Log 수준
Debug 테스트 시에 로그 메시지를 정의할 수 있습니다. 데이터베이스 관련된 BOC는 ReturnData와 QueryData를 사용합니다.
- 00. ProcessHead : Seq번호, 프로세스 타입을 표시합니다.
- 01. InputData : 입력 데이터를 표시합니다.
- 02. ReturnData : 결과 데이터를 표시합니다.
- 03. Middle OutputData : 중간 과정 결과 데이터를 표시합니다.
- 04. TabPage : 탭 페이지 결과를 표시합니다.
- 05. Math-Trace : Math의 계산식 결과를 표시합니다.
- 06. Formula-Trace : Formula의 계산식 결과를 표시합니다.
- 07. QueryData : 값이 포함된 쿼리를 표시합니다.
- 08. SCLTrace : SCLT BOC의 결과를 표시합니다.
- 09. PEX부가 Objects : PEX BOC의 부가적인 Object의 결과를 표시합니다.
- 10. 미사용 : 조건 컬럼 부의 계산식 값을 표시합니다.
⑤ 실행 조건
실행 조건에 값이 있는 경우 해당 실행 조건이 "True"가 아니면 실행이 되지 않습니다.
3. SEL BOC 사용 예시
1) 파라미터 컬럼의 계산식 입력 예
[조건 파라미터 설정은 ":" 로 판단]
① 파라미터인 컬럼을 선택합니다.
② 우측 속성에 계산식을 선택해서 나오는 ... 버튼을 클릭합니다.
③ 수식 입력창에서 파라미터에 넣을 값이나 수식을 입력하여 저장합니다.
2) BLOB 컬럼의 입력 예
① BOC 마우스 오른쪽 클릭 후 BLOB-Column 추가를 선택합니다.
② BLOB 컬럼을 추가했을 때 기본 컬럼 ‘TEMP1’이 생성됩니다.
③ 컬럼명을 선택하여 나오는 ... 버튼을 클릭합니다.
⑤ 수정할 컬럼명을 선택하여 더블클릭합니다.
⑥ 해당 BLOB 컬럼의 파일 정보를 입력하여 파라미터 값을 세팅합니다.
Remark
계산식은 필수 입력 속성이므로 “”를 설정합니다. BLOB 컬럼 추가 시 해당 컬럼은 파라미터 명에서 삭제됩니다. BLOB 데이터는 변숫값으로 비교가 불가능합니다.
3) 동적 SQL 처리
구문 : [ 동적처리 조건부 ] { 동적처리 대상 Sql-Syntax }
- 조건 항목의 값이 “Null” 이거나 값의 길이가 “0”일 때 즉 empty일 때 동적처리 대상 Syntax를 SQL문에 반영하지 않습니다.
Ex) SELECT EMPLOYEE, NAME
FROM TABLENAME
[ ORD ] { WHERE ORD = :ORD }
파라미터 설정 변수인 ORD 즉 “[“와 “]” 사이에 있는 ORD의 값이 “Null” 값이면 “{“ 와 “}” 사이의 구문을 삭제 처리합니다. Null일 때 실행 쿼리는 “SELECT COLNM FROM TABLENAME”가 됩니다.
<!--<Ibatis 소스 생성 예>-->
<select parameterClass="java.util.HashMap" resultClass="java.util.HashMap" id="ServicelD02_SEL2">
select
EMPLOYEEID, NAME
from EMPLOYEE
<dynamic>
<isNotEmpty property="ORD">where ORD = #ORD#</isNotEmpty>
</dynamic>
</select>
- 조건 항목의 비교 연산식이 “False”일 때 동적처리 대상 Syntax를 SQL문에 반영하지 않습니다.
동적 조건부에 “VAL” 키워드를 통하여 해당 조건식을 수행합니다. 조건부에는 반드시 비교연산자를 사용하여 결괏값이 Boolean 형식으로 return 되어야 합니다.
Ex) 데이터셋으로 직접 비교 처리
SELECT EMPLOYEE, NAME
FROM TABLENAME
[ VAL, S.ORD==1 ] { WHERE ORD = :ORD }
데이터셋 “S”의 ORD 변숫값이 1일 때 “{“ 와 “}” 사이의 구문을 유효 처리합니다. 연산자 태그 “VAL”을 사용하면 값을 비교 처리하고 해당 조건이 “True”일 때 유효 처리합니다.
S.ORD의 값이 “1”이 아닐 때 또는 “Null”일 때 실행 쿼리는 “SELECT COLNM FROM TABLENAME”가 됩니다.