페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

page no. 

Showpageid

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_로 시작하는 변수목록)

        code

         ※ 세션 변수는 변수의 마지막에 자동으로 $ 기호가 삽입됩니다.

        변수 종류

        languagejs
        firstline1
        title세션 변수 자동 생성 샘플
        linenumberstrue
        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'

        사용 예시

        변수값(예시)

        설명

        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로 치환할 수 없는 문자를 포함한 경우는 예외 처리됩니다

        참고사항
        title참고사항

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

        코드 블럭
        languagejs
        firstline1
        title파라미터 변수 자동 생성 샘플
        linenumberstrue
        //변수는 VS_, VN_로 시작해야 하며, javascript 문법에 맞지 않는 대상은 제외 됩니다.
        var VS_FROM_DT = Matrix.getRequest().getParam("VS_FROM_DT");
        var VS_TO_DT  = Matrix.getSession().getAttribute("VS_TO_DT");


  2. SQL 작성 샘플

    코드 블럭
    languagesql
    firstline1
    title파라미터 바인딩 샘플
    linenumberstrue
    SELECT SALE_DATE,
           CUSTOMER_NAME
    FROM SALES
    WHERE USER_CODE = '<%=USER_CODE$%>' -- 세션의 사용자 코드를 바인딩 합니다.


    코드 블럭
    languagesql
    firstline1
    title권한에 따른 분기 처리
    linenumberstrue
    <% 
    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 


    코드 블럭
    languagejs
    firstline1
    titlesql 수동 설정하기
    linenumberstrue
    	<%
    	// 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);
    	%>
도움말
title참고 사항
참고사항
title주의 사항

변경 사항

변경 전변경 후릴리즈 번호기능 정보
  •  API Open
  •  UI Open
  •  Read Only
  •  Not Use
  •  Hidden
  •  Not Recommend
  •  해당 없음

시작 버전 정보
정보
title샘플 정보
  • 샘플 URL :
  • 샘플 파일

첨부 파일
patterns.*jsp,.*zip,.*xml,.*js,.*mtsd,.*xlsx,.*xlsb,.*mtzb,.*mtvx,.*mtx,.*mtxz,.*mtsz


페이지 속성
hiddentrue


정보
titleBCRM 정보


(BCRM#E1827) Dynamic SQL  Script에서 Client에서 등록되는 변수 자동 등록 처리