페이지 트리

버전 비교

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

Easy Heading Macro
titleExpandClickabletrue
navigationTitle목차
navigationExpandOptioncollapse-all-but-headings-1

작성자 : 김원정  / 검수자 : - 


Release No. 7.0.500.20260122-11 

변수 개요

변수는 변하는 데이터(값)을 저장할 수 있는 메모리 공간입니다.변수에는 데이터가 한 개만 저장됩니다.

1. 데이터 유형별 예약어 가이드

데이터 유형별 변수명 규칙

시스템이 데이터(문자/숫자)를 올바르게 인식할 수 있도록, 반드시 데이터 유형에 맞는 예약어를 사용해 사용하여 변수명을 지정해야 합니다.

변수 유형예약어 형식SQL 바인딩 규칙쿼리 적용 예시
문자형 변수(Variable String)VS_로 시작SQL 바인딩 시 앞뒤로 '(Single Quotation)이 붙여 선언

:VS_USER_NAME → '홍길동'

수치형 변수(Variable Numeric)VN_로 시작별도의 처리 없이 단순 치환으로 선언:VN_AGE → 28
[변수명,


참고사항

변수명을 왜 데이터 타입에 맞춰 지정해야 하나요?

]

· 문자형(:VS_)은 SQL 문법상 문자열은 작은따옴표로 감싸야 하므로, 시스템에서 자동으로 이를 처리해 줍니다.

· 수치형(:VN_)은 숫자 값은 따옴표 없이 사용되므로 입력된 값이 그대로 쿼리에 반영됩니다.

[


데이터 소스에 연결 시, 변수명 앞에 콜론(:)을 왜 붙이나요?

]

쿼리 작성 시

데이터소스에서 변수를 활용하려면 반드시 변수명 앞에 콜론(:)이

작성 되어야

작성되어야 합니다.

· (X) 잘못된 예: WHERE NAME = VS_USER_NAME → 시스템은 VS_USER_NAME이라는 글자 자체를 이름으로 인식하여 데이터를 찾으려 합니다. (결과가 나오지 않음)

· (O) 올바른 예: WHERE NAME = :VS_USER_NAME → 시스템이

콜론을 인식하고,

변수임을 인식합니다.

참고사항

전역변수와 지역변수

변수 선언 시 변수의 유효 범위를 가리킵니다.코드 작성 시 같은 이름의 변수나 함수를 사용하여 충돌할 경우를 방지하기 위해 전역과 지역을 나눕니다.

  • 전역변수 : 코드 전체에서 사용 가능한 변수

  • 지역변수 : 해당 구역 내에서만 사용 가능한 변수

    Image Removed

변수 지정하기 (참조할 객체 지정하기)

변수로 사용할 컨트롤명을 변수명과 동일하게 변수명을 지정합니다.

Image Removed

참고사항

데이터 유형별 변수 예약어 가이드

시스템이 데이터(문자/숫자)를 올바르게 인식할 수 있도록, 반드시 유형에 맞는 예약어를 사용해 변수명을 지정해야 합니다.

변수 유형예약어 형식SQL 바인딩 규칙적용 예시문자형 변수(Variable String)VS_VS_ 로 시작하는 변수는 SQL 바인딩 시 앞뒤로 '(Single Quotation)이 붙여 선언

:VS_USER_NAME → '홍길동'

수치형 변수(Variable Numeric)VN_별도의 처리 없이 단순 치환으로 선언:VN_AGE → 28

Image Removed

2.  변수 사용

지정한 변수값을 데이터의 검색 조건으로 지정하기 위해서는 변수를 선언해야 합니다.

변수를 사용하는 방법에는 스크립트를 통해 변수를 선언하는 방법과 변수편집기 메뉴를 통한 방법이 있습니다.

2.1 컨트롤을 참조한 변수 선언

1) 참조할 컨트롤 객체를 지정하여 변수명을 지정합니다.

    Image Removed

2) Jscript에서 해당 변수를 사용하기 위한 변수를 선언합니다.

    Image Removed

변수 선언 방법

Matrix.GetVariable(name); → 특정 변수의 값을 반환합니다.

Matrix.SetVariable(name ,value); → 특정 변수의 값을 value값으로 셋팅합니다.

Matrix.AddGlobalParams(name ,value ,type); → 전역 쿼리 파라미터 값 객체를 추가합니다.

3) 선언한 변수를 데이터의 검색 조건 (쿼리의 where절)으로 지정합니다.

Image Removed

4) 데이터의 검색 조건에 맞게 데이터가 조회됩니다.

Image Removed

변수 바인딩 확인하기

[ SQL Log Viewer ]를 통해 해당 변수가 바인딩된 것을 확인할 수 있습니다.

Image Removed

3. 변수편집기를 활용한 변수 선언

1) 참조할 컨트롤 객체를 지정하여 변수명을 지정합니다.
Image Removed

2) [ 변수 편집기 ] 를 통해 해당 변수를 지정합니다.
Image Removed  

Image Removed 

3) 변수 편집기를 통해 지정한 변수를 넘기기 위해 [ Process Bot ]을 활용해 버튼에 동작을 지정해줍니다.

Image Removed

"변수값 넘기기" Module은 Process Bot의 Module을 Drag&Drop한 후, 파라미터 및 상세 옵셜을 설정합니다.

Image Removed

Refresh는 Process Bot의 Refresh를 Module을 Drag&Drop한 후, 대상 컨트롤을 선택합니다.

Image Removed

4) 선언한 변수를 데이터의 검색 조건 (쿼리의 where절)으로 지정합니다.

Image Removed

5) 데이터의 검색 조건에 맞게 데이터가 조회됩니다.

Image Removed

변수 바인딩 확인하기

[ SQL Log Viewer ]를 통해 해당 변수가 바인딩된 것을 확인할 수 있습니다.

Image Removed

변수 바인딩 확인하기

[ 변수 편집기 ]를 통해 해당 변수가 바인딩된 것을 확인할 수 있습니다.

Image Removed

AUD플랫폼에서 기본 제공하는 세션 변수는 i-MATRIX, i-AUD, i-MEATA에서 Script 및 SQL 작성 시 사용 할 수 있습니다.

세션 변수는 AUD플랫폼을 실행하면 시스템이 기동 되면서 생성되는 변수로 별도 변수 등록 없이 전역에서 사용 가능 합니다.

1. 변수 목록

이름(고정)

i-AUD Server Script /

Dynamic SQL 사용 서식

SQL 사용 서식
(i-META 조회 조건 값 서식)

i-AUD JScript 사용시

세션 변수 값(예시)

설명

IP_ADDR

session.getAttribute("IP_ADDR")
<%=IP_ADDR$%>

:VS_IP_ADDR$

Matrix.GetUserInfo().IPAddress

192.168.xxx.xxx

접속 아이피

USER_CODE

session.getAttribute("USER_CODE")
<%=USER_CODE$%>

:VS_USER_CODE$

Matrix.GetUserInfo().UserCode

matrix

사용자 코드

USER_NAME

session.getAttribute("USER_NAME")
<%=USER_NAME$%>

:VS_USER_NAME$

Matrix.GetUserInfo().UserName

매트릭스

사용자명

ORG_CODE

session.getAttribute("ORG_CODE")
<%=ORG_CODE$%>

:VS_ORG_CODE$

Matrix.GetUserInfo().DeptCode

B060000

사용자 부서 코드

ORG_NAME

session.getAttribute("ORG_NAME")
<%=ORG_NAME$%>

:VS_ORG_NAME$

-

전사

사용자 부서명

DeptCode

session.getAttribute("DeptCode")
<%=DeptCode$%>

:VS_DeptCode$

Matrix.GetUserInfo().DeptPath

'B060000',DEFAULT,-1

사용자 부서 경로 정보

USER_DEPT_PATH

session.getAttribute("USER_DEPT_PATH")
<%=USER_DEPT_PATH$%>

:VS_USER_DEPT_PATH$

-

|B060000|DEFAULT|-1

사용자 부서 경로 정보

USER_ROLE

session.getAttribute("USER_ROLE")
<%=USER_ROLE$%>

:VS_USER_ROLE$

Matrix.GetUserInfo().UserRole

SU;3;V0;SV;ST;M0;1;

사용자 권한 그룹

LANG_CODE

session.getAttribute("LANG_CODE")
<%=DeptCode$%>

:VS_LANG_CODE$

Matrix.GetUserInfo().LangCode

ko

다국어 언어 코드

(Admin 내 PORTAL 설정에서 선택한 다국어 코드 값)

LANG_IDX

session.getAttribute("LANG_IDX")
<%=DeptCode$%>

:VS_LANG_IDX$

1

다국어 언어 컬럼 인덱스
(MTX_LANG 테이블 > LANG_NAME_COLUMN 데이터의 'COMMENTS' 뒤에 붙은 숫자값)

2. 활용 방법

2.1. i-AUD 디자이너의 JScript에서 사용 예제

/************************************** * 문서 로드 된 후 AutoRefresh 수행 전에 발생합니다. * * arguments : **************************************/ var OnDocumentLoadComplete = function(sender, args){ var SessionValues = ""; SessionValues += "IPAddress : "+Matrix.GetUserInfo().IPAddress+"\n"; //접속 아이피 SessionValues += "UserCode : "+Matrix.GetUserInfo().UserCode+"\n"; //사용자 코드 SessionValues += "UserName : "+Matrix.GetUserInfo().UserName+"\n"; //사용자명 SessionValues += "DeptCode : "+Matrix.GetUserInfo().DeptCode+"\n"; //사용자 부서 코드 SessionValues += "DeptPath : "+Matrix.GetUserInfo().DeptPath+"\n"; //사용자 부서 경로 정보 SessionValues += "UserRole : "+Matrix.GetUserInfo().UserRole+"\n"; //사용자 권한 그룹 SessionValues += "LangCode : "+Matrix.GetUserInfo().LangCode; //다국어 언어 코드 Matrix.getObject("RichTextBox").Text = SessionValues; };

2.2. i-AUD디자이너의 데이터 소스/ i-MATRIX 디자이너 및 MX-GRID의 데이터셋 관리자에서 SQL작성 예제 

<% 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

<% var req = Matrix.getRequest(); /* Request */ var session = Matrix.getSession(); /* Session */ var USER_CODE = session.getAttribute("USER_CODE"); req.setParam("VS_USER_CODE", USER_CODE); %> SELECT * FROM MTX_REPORT WHERE OWNER_CODE = :VS_USER_CODE AND ORG_CODE = '<%=session.getAttribute("ORG_CODE")%>'

※ 상세 내역은 Dynamic SQL 사용 가이드를 참고 바랍니다.

SELECT SALE_DATE, CUSTOMER_NAME FROM SALES WHERE USER_CODE = :VS_USER_CODE$ -- 세션의 사용자 코드를 바인딩 합니다.

2.3.  i-META에서 사용 예제

조건 컨트롤에 ":전역변수명$" 값으로 사용 할 수 있습니다.

Image Removed

세션 변수는 읽기 전용으로 값을 설정해도 세션 값이 변경되지 않습니다.

변수명 뒤에 $ 가 있을 경우 동일한 변수명이어도 세션 변수를 가져 옵니다.

관련 이슈


실제 데이터 조회 쿼리 예시

Image AddedImage Added

변수 활용하기

사용자가 선택한 월(변수)에 따라 데이터가 조회 되는 보고서를 만드는 과정을 설명합니다.

조회 조건(변수) 컨트롤 생성 및 지정

  1. 컨트롤 생성:UI Bot > Month 컨트롤을 배치합니다.
  2. 변수명 설정: 우측 속성 창의 Name 항목에 변수명 규칙을 적용하여 작성합니다.
    예시: VS_YM (문자형 변수)
    Image Added

i-META 활용 데이터 연결

i-META 파일을 활용하여 데이터를 연결해 보겠습니다.

참고사항

컨트롤 유형별 META를 활용한 데이터 연결 방법

1. 데이터 표시 컨트롤 생성

데이터를 화면에 보여주기 위해 UI Bot에서 List-Grid를 생성합니다.

Image Added

2. 데이터 연결

List Grid에서 마우스 우클릭 > [i-META]를 선택합니다.
Image Added

  1. i-META목록에서 조회할 META 선택하고, 조회항목과 조회조건을 배치합니다.

  2. 조회조건 [년월]에 변수 이름(VS_YM)을 콜론(:)과 함께 작성합니다.
    Image Added

    참고사항

    변수명 앞에 콜론(:)이 빠지면 시스템이 변수로 인식하지 못합니다.


  3. 확인 버튼을 클릭합니다.
    Image Added

3. 데이터 확인

보고서를 열었을 때, List Grid에 데이터가 바로 나오도록 우측 속성 창 [Event] > [AutoRefresh]를 활성화 합니다.

Image Added


달력 컨트롤의 날짜를 변경하고 보고서 상단의 [실행] 버튼을 클릭하면 조회 조건에 해당하는 데이터가 정상적으로 조회됩니다.

Image Added

SQL 활용 데이터 연결

SQL 쿼리를 작성하여 데이터를 연결해 보겠습니다.

참고사항

컨트롤 유형별 SQL 활용한 데이터 연결 방법

1. 데이터 표시 컨트롤 생성

데이터를 화면에 보여주기 위해 UI Bot에서 List-Grid를 생성합니다.

Image Added

2. 데이터 연결

List Grid에서 마우스 우클릭 > [SQL]을 선택합니다.
Image Added

  1. 데이터소스 창에서 데이터소스를 추가합니다.
  2. 데이터베이스를 선택합니다.

  3. SQL 쿼리를 작성합니다.
    조회조건 ym 컬럼에 변수 이름(VS_YM)을 콜론(:)과 함께 작성합니다.

    코드 블럭
    languagesql
    firstline1
    title사용한 SQL 쿼리
    linenumberstrue
    collapsetrue
    SELECT T3.ym AS 년월,
    	   T2.store_region AS 매장지역,
    	   SUM(T1.quantity) AS 매출수량,
    	   SUM(T1.revenue_amt) AS 매출금액
    
    FROM sales_performance T1
    INNER JOIN sales_store T2
    	ON (T1.store_cd = T2.store_cd)
    INNER JOIN sales_std_date T3
    	ON (T1.std_date = T3.ymd)
    
    WHERE 1=1
    AND T3.ym = :VS_YM
    
    GROUP BY T3.ym, T2.store_region


    참고사항

    변수명 앞에 콜론(:)이 빠지면 시스템이 변수로 인식하지 못합니다.


  4. 확인 버튼을 클릭하여 데이터를 연결합니다.

    Image Added

3. 데이터 확인

보고서를 열었을 때, List Grid에 데이터가 바로 나오도록 우측 속성 창 [Event] > [AutoRefresh]를 활성화 합니다.

Image Added


달력 컨트롤의 날짜를 변경하고 보고서 상단의 [실행] 버튼을 클릭하면 조회 조건에 해당하는 데이터가 정상적으로 조회됩니다.

Image Added