페이지 트리
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

page no.  88933198

Start Release No :  / Update Release No : 7.0.500.20240530-11

작성자 :  이영균 / 검수자 : 정해영


  1. 기능 설명
    1. Dynamic SQL 기능은 데이터 소스 편집에서 스크립틀릿(Expression)을 지원합니다.
    2. 이 기능을 사용하면 SQL 내에서 <%= 변수명 %>와 같이 변수를 사용하거나, 여러 줄의 코드를 넣기 위해 <% JavaScript 표현식 %>과 같이 사용할 수 있습니다.
    3. Dynamic SQL 기능을 활용하여 SQL 소스의 분기 처리를 통해 권한 관리나 조건에 따른 항목 선택 기능을 구현할 수 있습니다.
    4. Dynamic SQL 내의 스크립트는 JavaScript를 사용하는 i-AUD의 서버 스크립트와 동일하며, Response(클라이언트로 출력 처리)에 대한 제어는 불가능합니다.
    5. Dynamic SQL 내에서 사용자 편의를 위해 아래 조건의 파라미터들은 별도 설정 없이 변수로 사용 가능 합니다.
      • 세션 변수 자동 등록 (아래 4개 항목 + 세션 변수 중 VS_, VN_로 시작하는 변수목록)

        변수 종류

        사용 예시

        변수값(예시)

        설명

        DeptCode

        <%=DeptCode$%>

        'B060003','B060000','DEFAULT','-1'

        부서Path(사용자부서 포함)

        USER_NAME

        <%=USER_NAME$%>

        홍길동

        사용자명

        USER_CODE

        <%=USER_CODE$%>

        salee

        사용자 코드

        ORG_CODE

        <%=VS_ORG_CODE$%>

        B060003

        사용자 부서코드

      • 파라미터 변수 자동 등록(VS_, VN_로 시작하는 변수)

        참고사항

        ※ 변수명이 JavaScript 문법에 맞지 않을 경우는 사용이 불가 합니다.
        e.g. VS_CODE-1010, VS_CODE 공백, VS_AA++

  2. SQL 작성 샘플

    파라미터 바인딩 샘플
    SELECT SALE_DATE,
           CUSTOMER_NAME
    FROM SALES
    WHERE USER_CODE = '<%=USER_CODE$%>' -- 세션의 사용자 코드를 바인딩 합니다.
    권한에 따른 분기 처리
    <% 
    var req = Matrix.getRequest();
    var res = Matrix.getResponse();
    var session  = Matrix.getSession();
    var util = Matrix.getUtility();
    //권한 허용 목록 Javascript 구문
    var AUTH_DEPTS = ["ORG-001", "ORG_002", "ORG_003"];// 판매 단가를 볼 수 있는 부서 목록
    %>
    SELECT    SALE_DATE
           , CUSTOMER_NAME
           , PRODUCT_CODE
           , SALE_CNT
    
    <% if(AUTH_DEPTS.indexOf(ORG_CODE$) >= 0){   //권한이 있는 경우 %> 
           , SALE_PRICE AS  SALE_PRICE
           , SALE_AMT   AS  SALE_AMT
    <% }else{  //권한 없을 경우 0으로 설정   %>       
           , 0.0  AS  SALE_PRICE 
           , 0.0  AS  SALE_AMT
    <% }  %>         
    FROM SALES 
    sql 수동 설정하기
    	<%
    	// sql을 수동으로 설정하기
    	var req = Matrix.getRequest();
    	var res = Matrix.getResponse();
    	var session  = Matrix.getSession();
    	var util = Matrix.getUtility();
    	
    	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 :
  • 샘플 파일

공유된 파일이 아직 없습니다.