page no. 88933204
- 기능 설명
- Dynamic SQL 기능은 데이터 소스 편집에서 스크립틀릿(Expression)을 지원합니다.
- 이 기능을 사용하면 SQL 내에서
<%= 변수명 %>
와 같이 변수를 사용하거나, 여러 줄의 코드를 넣기 위해<% JavaScript 표현식 %>
과 같이 사용할 수 있습니다. - Dynamic SQL 기능을 활용하여 SQL 소스의 분기 처리를 통해 권한 관리나 조건에 따른 항목 선택 기능을 구현할 수 있습니다.
- Dynamic SQL 내의 스크립트는 JavaScript를 사용하는 i-AUD의 서버 스크립트와 동일하며, Response(클라이언트로 출력 처리)에 대한 제어는 불가능합니다.
- Dynamic SQL 내에서 사용자 편의를 위해 아래 조건의 파라미터들은 자동으로 변수화되어 제공됩니다.
세션 변수 자동 등록 (아래 4개 항목 + 세션 변수 중 VS_, VN_로 시작하는 변수목록)
세션 변수 자동 생성 샘플var USER_CODE$ = Matrix.getSession().getAttribute("USER_CODE"); //사용자 계정 var USER_NAME$ = Matrix.getSession().getAttribute("USER_NAME"); //사용자 이름 var ORG_CODE$ = Matrix.getSession().getAttribute("ORG_CODE"); //사용자 부서 코드 var DeptCode$ = Matrix.getSession().getAttribute("DeptCode"); //사용자 부서 전체 경로 e.g. 'DEFAULT','ORG100', 'ORG101'
※ 세션 변수는 변수의 마지막에 자동으로 $ 기호가 삽입됩니다.
파라미터 변수 자동 등록(VS_, VN_로 시작하는 변수)
※ 변수명에 JavaScript로 치환할 수 없는 문자를 포함한 경우는 예외 처리됩니다.
e.g. VS_CODE-1010, VS_CODE 공백, VS_AA++- 파라미터 변수 자동 생성 샘플
//변수는 VS_, VN_로 시작해야 하며, javascript 문법에 맞지 않는 대상은 제외 됩니다. var VS_FROM_DT = Matrix.getRequest().getParam("VS_FROM_DT"); var VS_TO_DT = Matrix.getSession().getAttribute("VS_TO_DT");
SQL 작성 샘플
파라미터 바인딩 샘플SELECT SALE_DATE, CUSTOMER_NAME FROM SALES WHERE USER_CODE = '<%=USER_CODE$%>' -- 세션의 사용자 코드를 바인딩 합니다.
권한에 따른 분기 처리<% //권한 허용 목록 Javascript 구문 var AUTH_DEPTS = ["ORG-001", "ORG_002", "ORG_003"];// 판매 단가를 볼 수 있는 부서 목록 %> SELECT SALE_DATE , CUSTOMER_NAME <% //여기는 javascript 구문입니다. if(AUTH_DEPTS.indexOf(ORG_CODE$) >= 0){ %> , SALE_PRICE AS SALE_PRICE <%}else{ %> , 0.0 AS SALE_PRICE <%} %> FROM SALES
sql 수동 설정하기<% // sql을 수동으로 설정하기 var req = Matrix.getRequest(); /* request */ var res = Matrix.getResponse(); /* response */ var session = Matrix.getSession(); /* session */ var util = Matrix.getUtility(); /* utility */ sql = " SELECT " + "\n T1.GROUP_CODE AS GROUP_CODE " + "\n ,T1.CODE AS CODE " + "\n ,T1.NAME AS NAME " + "\n ,T1.ORDER_SEQ AS ORDER_SEQ " + "\n ,T1.DESCRIPTION AS DESCRIPTION " + "\n ,T1.REF_CODE01 AS REF_CODE01 " + "\n ,T1.REF_CODE02 AS REF_CODE02 " + "\n ,T1.REF_CODE03 AS REF_CODE03 " + "\n ,T1.ACTIVE_YN AS ACTIVE_YN " + "\n FROM ACCNT_CODES T1 " + "\n WHERE T1.CODE = 'GRP_100' "; // sql을 수동으로 설정 합니다. Matrix.setResultDynamicSQL(sql); %>
참고 사항
주의 사항
변경 사항
변경 전 변경 후 릴리즈 번호
기능 정보 |
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|
시작 버전 정보 |
샘플 정보
- 샘플 URL :
- 샘플 파일