페이지 트리

버전 비교

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

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

작성자 : 장민지  / 검수자 : - 


Release No. 7.0.500.20260122-11 

Process Bot 개요

Process Bot은 RPA처럼 수행되며 복잡한 업무 Logic이나 Process를 처리하는 기술입니다.

화면에서 간단한 드래그 앤 드롭으로 이벤트별 동작을 쉽게 구현할 수 있습니다.

또한 화면이 Workflow 기반으로 구성되어 있어 단계별 또는 전체 프로세스 흐름을 한 눈에 파악할 수 있습니다.

Process Bot 실행 방법

i-AUD Designer 상단 메뉴 영역에서 [Process Bot]을 선택합니다.

image2024-4-16_16-25-35.pngImage Removed

화면 구성 설명

Process Bot 화면은 모듈 목록 , 모듈 배치 영역 , 로그 정보 표시 영역 , 전체 표시 영역으로 표시됩니다.

image2024-4-16_15-11-52.pngImage Removed

1. 모듈 목록 영역

모듈 목록 영역은 [Objects] 탭과 [Activities] 탭으로 구성되어 있습니다.

Objects

현재 보고서에 생성된 컨트롤 목록을 표시합니다.

Image Removed

Activities

워크플로우 구성에 사용할 수 있는 모듈 목록을 제공합니다. 모듈은 크게 두 가지로 구분됩니다.

  • 시스템 모듈: 제품 내에 기본적으로 내장되어 제공되는 표준 모듈입니다.
  • 사용자 정의 모듈: 사용자가 직접 작성한 스크립트(Script)를 모듈화하여 등록한 커스텀 모듈입니다.
Image Removed
정보

사용자 정의 모듈 작성 방법은 Module Editor를 참고하세요.

2. 모듈 배치 영역

보고서에서 사용 중인 컨트롤, 모듈 노드(Node) 및 각각의 연결선(Link)의 배치 정보를 표현하는 화면입니다.

3. 로그 정보 영역

모듈 실행에 대한 로그 정보를 표시하는 화면입니다.

정보

Process Bot 창이 실행된 상태로 보고서 동작을 수행하면 로그 정보가 표시됩니다.

4. 전체 화면 표시 영역

모듈 배치 영역을 전체 화면으로 표시하는 화면입니다.

Process Bot으로 인터랙션 구현하기

Process Bot을 활용하여 Button을 클릭했을 때, 메시지 창이 띄워지는 동작을 구현해 보겠습니다.

Step 1. 컨트롤 생성

보고서에서 클릭 시 사용할 [Button] 컨트롤을 생성합니다.

Image Removed
Image Removed

정보

Button의 [Name]과 [Text]를 설정합니다.

Step 2. Process Bot 실행

i-AUD Designer 상단의 [Process Bot]을 선택합니다.

Image Removed

Image Removed

Step 3. Process Bot 설정

1. 컨트롤 배치

Objects 탭에서 [Button]을 더블 클릭하여 모듈 배치 영역에 배치합니다.

Image Removed

정보

배치한 컨트롤의 유형별로 하위에 표시되는 이벤트가 상이합니다.

Image Removed

2. 모듈 배치

Activities 탭에서 메시지 창이 띄워지는 [MessageBox]를 더블 클릭하여 모듈 배치 영역에 배치합니다.

Image Removed

정보

모듈은 시스템 모듈과 사용자 정의 모듈이 있습니다.

Image Removed

  • 이벤트 비활성화 모듈 (Image Removed): 보고서 실행 시 최초 1회만 실행되는 모듈입니다. 컨트롤의 특정 이벤트(클릭 등)와 직접 연결하여 반복 실행할 수 없습니다.
    • 용도: 주로 보고서 전체에서 사용될 전역 함수(Global Function)를 선언하거나, 초기 로직을 설정할 때 사용합니다. 이 모듈 안에 작성된 이벤트별 동작들은 보고서 로딩 시 미리 등록되어 준비 상태가 됩니다.
    • 연결: 모듈 배치 시 자동으로 Report의 [OnDocumentLoadComplete]와 연결됩니다. 이는 보고서가 열리는 즉시 해당 로직을 가장 먼저 읽어 들이기 위함입니다.
      Image Removed

3. 모듈 설정

모듈 상단의 버튼을 클릭하여 모듈의 파라미터를 설정합니다.

Image Removed

Image Removed

정보

모듈별로 파라미터 설정 값이 상이합니다.

4. 이벤트 모듈 연결

[Button] 클릭 시 [MessageBox]가 실행되도록 배치한 컨트롤과 모듈을 연결합니다.

Button의 [OnClick]에서 [MessageBox]까지 마우스로 드래그 앤 드롭합니다.

Image Removed

Image Removed

Step 4. 저장 및 동작 확인

1. Process Bot 저장

설정이 완료되면 하단의 [저장] 버튼을 클릭하여 설정한 내용을 저장합니다.

Image Removed

2. 보고서 실행 테스트

보고서에서 [Button] 클릭 시 메시지 창이 정상적으로 실행되는지 확인합니다.

Image Removed

3. 로그 확인

Process Bot 창에서 로그 정보를 확인합니다.

Image Removed

정보

설정한 Process가 정상적으로 실행됐는지 확인할 수 있습니다.

1. 변수 지정

1.1 변수란 ?

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

도움말
titleDescription

전역변수와 지역변수

변수 선언 시 변수의 유효 범위를 가리킵니다.

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

  • 전역변수 : 코드 전체에서 사용 가능한 변수
  • 지역변수 : 해당 구역 내에서만 사용 가능한 변수
    Image Added


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

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


Image Added

도움말
titleDescription
변수 바인딩 규칙변수의 유형에 따라 바인딩 규칙이 다르기 때문에, 유형에 맞는 예약어로 변수명을 지정해야 합니다.
  • 문자형 변수 예약어 :VS_NAME

: VS_ 로 시작하는 변수는 SQL 바인딩 시 앞뒤로 '' (Single Quotation)을 붙여 선언됩니다.


예) AND USER_NAME = :VS_USER_NAME → AND USER_NAME = '홍길동'


  • 수치형 변수 예약어 :VN_NAME

: VN_ 로 시작하는 변수는 SQL 바인딩 시 단순 치환으로 선언됩니다.


예) AND AGE = :VN_AGE → AND AGE = 28


Image Added



2.  변수 사용

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

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

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

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

    Image Added


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

    Image Added

도움말
titleDescription

변수 선언 방법

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

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

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


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

Image Added


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

Image Added


도움말
titleDescription

변수 바인딩 확인하기

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

Image Added


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

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


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

Image Added 


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

Image Added

참고사항
titleDescription

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

Image Added


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

Image Added


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

Image Added


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

Image Added


도움말
titleDescription

변수 바인딩 확인하기

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

Image Added


변수 바인딩 확인하기

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

Image Added

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

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


1. 변수 목록

이름(고정)

i-AUD Server Script /

Dynamic SQL 사용 서식

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

i-AUD JScript 사용시세션 변수 값(예시)설명
IP_ADDRsession.getAttribute("IP_ADDR")
<%=IP_ADDR$%>
:VS_IP_ADDR$

Matrix.GetUserInfo().IPAddress

192.168.xxx.xxx접속 아이피
USER_CODEsession.getAttribute("USER_CODE")
<%=USER_CODE$%>
:VS_USER_CODE$

Matrix.GetUserInfo().UserCode

matrix사용자 코드
USER_NAMEsession.getAttribute("USER_NAME")
<%=USER_NAME$%>
:VS_USER_NAME$

Matrix.GetUserInfo().UserName

매트릭스사용자명
ORG_CODEsession.getAttribute("ORG_CODE")
<%=ORG_CODE$%>
:VS_ORG_CODE$Matrix.GetUserInfo().DeptCodeB060000사용자 부서 코드
ORG_NAMEsession.getAttribute("ORG_NAME")
<%=ORG_NAME$%>
:VS_ORG_NAME$-전사사용자 부서명
DeptCodesession.getAttribute("DeptCode")
<%=DeptCode$%>
:VS_DeptCode$

Matrix.GetUserInfo().DeptPath

'B060000',DEFAULT,-1사용자 부서 경로 정보
USER_DEPT_PATHsession.getAttribute("USER_DEPT_PATH")
<%=USER_DEPT_PATH$%>
:VS_USER_DEPT_PATH$

-

|B060000|DEFAULT|-1사용자 부서 경로 정보
USER_ROLEsession.getAttribute("USER_ROLE")
<%=USER_ROLE$%>
:VS_USER_ROLE$

Matrix.GetUserInfo().UserRole

SU;3;V0;SV;ST;M0;1;사용자 권한 그룹
LANG_CODEsession.getAttribute("LANG_CODE")
<%=DeptCode$%>
:VS_LANG_CODE$

Matrix.GetUserInfo().LangCode

ko

다국어 언어 코드

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

LANG_IDXsession.getAttribute("LANG_IDX")
<%=DeptCode$%>
:VS_LANG_IDX$1다국어 언어 컬럼 인덱스
(MTX_LANG 테이블 > LANG_NAME_COLUMN 데이터의 'COMMENTS' 뒤에 붙은 숫자값)


2. 활용 방법

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

코드 블럭
languagejs
firstline1
titleJScript
linenumberstrue
/**************************************
 * 문서 로드 된 후 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작성 예제 


코드 블럭
languagejs
titleDynamic SQL 활용 - SQL 분기처리
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
titleDynamic SQL 활용 - 변수 바인딩
linenumberstrue
<%
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 사용 가이드를 참고 바랍니다.


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



2.3.  i-META에서 사용 예제

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

Image Added

참고사항
title참고사항
  • 세션 변수는 읽기 전용으로 값을 설정해도 세션 값이 변경되지 않습니다.
  • 변수명 뒤에 $ 가 있을 경우 동일한 변수명이어도 세션 변수를 가져 옵니다.


페이지 속성
hiddentrue


관련 이슈