KR102150909B1 - 비즈니스 룰 관리 시스템 - Google Patents
비즈니스 룰 관리 시스템 Download PDFInfo
- Publication number
- KR102150909B1 KR102150909B1 KR1020200024526A KR20200024526A KR102150909B1 KR 102150909 B1 KR102150909 B1 KR 102150909B1 KR 1020200024526 A KR1020200024526 A KR 1020200024526A KR 20200024526 A KR20200024526 A KR 20200024526A KR 102150909 B1 KR102150909 B1 KR 102150909B1
- Authority
- KR
- South Korea
- Prior art keywords
- rule
- conditional
- item
- return
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Game Theory and Decision Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 비즈니스 룰 관리 시스템에 관한 것이다.
본 발명에 따른 비즈니스 룰 관리 시스템은 테이블 룰 정보를 수신하고, 테이블 룰을 구성하는 입력부와, 테이블 룰을 이용하여 결과값을 출력하는 결과값 출력부 및 테이블 룰 정보를 고려하여 테이블 룰 내에서의 조건부의 순서를 조정하는 테이블 룰 조정부를 포함하는 것을 특징으로 한다.
본 발명에 따른 비즈니스 룰 관리 시스템은 테이블 룰 정보를 수신하고, 테이블 룰을 구성하는 입력부와, 테이블 룰을 이용하여 결과값을 출력하는 결과값 출력부 및 테이블 룰 정보를 고려하여 테이블 룰 내에서의 조건부의 순서를 조정하는 테이블 룰 조정부를 포함하는 것을 특징으로 한다.
Description
본 발명은 비즈니스 룰 관리 시스템에 관한 것이다.
모든 기업은 비즈니스 수행에 필요한 각종 의사결정의 통제를 위한 가이드라인을 보유한다.
비즈니스 정책은 이러한 가이드라인을 문장으로 표현하여 문서화한 것이고, 비즈니스 룰(업무 규칙)은 이러한 비즈니스 정책에 부합하여 의사결정을 명료하게 수행할 수 있도록 구체적인 조건, 환경, 행위들을 상세히 규정한다.
각종 규제와 준수 요구사항, 고객의 서비스 고도화 요구 증대 및 비즈니스 정책 변화는 비즈니스 룰의 변경 또는 개발을 끊임 없이 요구하고 있으나, 종래 기술에 따른 인하우스 어플리케이션, 패키지 어플리케이션, BPM(Business Process Management)의 프로그래밍 방식은 비즈니스 룰을 어플리케이션 내에 하드 코딩된 형태로 존재하도록 하므로, 이러한 변화를 빠르고 효과적으로 수용하기 어려운 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위하여 제안된 것으로, 비즈니스 룰을 어플리케이션 및 시스템 프로세스로부터 분리시켜 관리하기 위한 전용 플랫폼(BRMS, Business Rules Management System)을 제안하며, 테이블 룰을 이용한 비즈니스 룰 관리 시스템 및 방법을 제공하는데 그 목적이 있다.
본 발명에 따른 비즈니스 룰 관리 시스템은 테이블 룰에 관한 정보와 입력 데이터를 수신하는 입력부와, 테이블 룰을 이용하여 결과값을 출력하는 프로그램이 저장된 메모리 및 프로그램을 실행시키는 프로세서를 포함하고, 프로세서는 조건부와 결과부의 스프레드 쉬트로 테이블 룰을 구성하고, 조건부의 부하 연산량을 고려하여 테이블 룰을 수정하고, 입력 데이터와 매칭되는 조건부를 조회하여 결과값을 출력하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 어플리케이션 수명 주기 및 비즈니스 룰의 수명 주기의 이질적인 성격에 따른 비효율성을 개선하고, IT와 비즈니스 부서 간의 원활하고 정확한 의사소통 및 협업을 지원하는 효과가 있다.
부하 연산량을 예측하여 테이블 룰을 수정함으로써, 리턴값 출력의 효율성을 높이는 효과가 있다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 비즈니스 룰 관리 시스템을 도시한다.
도 2는 본 발명의 실시예에 따른 테이블 룰을 도시한다.
도 3은 본 발명의 실시예에 따른 테이블 룰의 추적 화면을 도시한다.
도 4는 본 발명의 실시예에 따른 테이블 룰 조정 과정을 도시한다.
도 5는 본 발명의 실시예에 따른 데이터 룰을 도시한다.
도 6은 본 발명의 실시예에 따른 데이터 모델을 도시한다.
도 7은 디시전 테이블 룰의 기본 실행 방식을 도시한다.
도 8은 디시전 테이블 룰의 조건에 '비교값 미지정 허용' 옵션이 적용될 경우를 도시한다.
도9는 디시전 테이블 룰의 리턴 형식이 다중 값일 때 옵션 처리를 도시한다.
도 10은 디시전 테이블 룰의 리턴 선택을 도시한다.
도 11은 플로우 룰을 도시한다.
도 12는 플로우 룰을 이용한 상품 추천 프로세스를 도시한다.
도 13 및 도 14는 브랜치 룰 및 브랜치 노드 룰을 도시한다.
도 15 내지 도 17은 루프 룰의 정의, 실행 방식, 항목의 스코프(scope)를 도시한다.
도 18은 룰 추가 윈도우를 도시한다.
도 19는 테이블 룰의 편집 영역을 도시한다.
도 20은 룰 템플릿 영역 구성을 도시한다.
도 21은 셀 편집 영역을 도시한다.
도 22는 사용 항목 리스트를 도시한다.
도 23은 사용 항목 관리 윈도우를 도시한다.
도 24는 사용 항목의 항목 배열 윈도우를 도시한다.
도 25는 참조값 리스트를 도시한다.
도 26은 참조값 리스트에 대한 지급항목 대분류 코드 추가 삽입을 도시한다.
도 27은 문법 강조를 도시한다.
도 28은 열 채우기 윈도우를 도시한다.
도 29는 조건 실행에 따른 값을 도시한다.
도 30은 문자열 변환 윈도우를 도시한다.
도 31은 조건 실행에 따른 변경된 값을 도시한다.
도 32는 찾기 윈도우를 도시한다.
도 33은 DB 룰의 찾기 윈도우를 도시한다.
도 34는 플로우 룰의 찾기 윈도우를 도시한다.
도 35는 바꾸기 윈도우를 도시한다.
도 36은 DB룰의 바꾸기 윈도우를 도시한다.
도 37은 리턴 항목 찾기 윈도우를 도시한다.
도 38 및 도 39는 참조값 표시를 도시한다.
도 40은 SQL 도구 윈도우를 도시한다.
도 41은 문법 에러 리스트를 도시한다.
도 42는 변경 사유 등록 윈도우를 도시한다.
도 43은 셀 메모를 도시한다.
도 44는 메모가 등록된 셀을 도시한다.
도 45는 룰 탭과 룰 탭 팝업 메뉴를 도시한다.
도 46은 룰 템플릿 공통 메뉴를 도시한다.
도 47은 룰 선택 윈도우를 도시한다.
도 48는 테이블 룰 템플릿을 도시한다.
도 49는 룰-버전 정보 윈도우를 도시한다.
도 50은 룰-버전 정보 윈도우의 리턴 항목 정보를 도시한다.
도 51은 룰-버전 윈도우의 사용 항목 정보를 도시한다.
도 52은 리턴 불일치 룰 리스트를 도시한다.
도 53는 룰 이름 일괄 변경 윈도우를 도시한다.
도 54는 상위룰 일괄 변경 윈도우를 도시한다.
도 55는 룰 복사/붙여넣기 윈도우를 도시한다.
도 56은 룰 이름 복사를 도시한다.
도 57은 사용 중인 룰에 대한 삭제 불가 안내 화면을 도시한다.
도 58은 룰 관계도 윈도우를 도시한다.
도 59는 노드 표시 도형을 도시한다.
도 60은 룰 관계도 윈도우의 네비게이터를 도시한다.
도 61은 룰 찾기 윈도우를 도시한다.
도 62는 룰 찾기 윈도우의 항목을 도시한다.
도 63은 룰 찾기 윈도우의 사용된 리턴 항목(상위룰)을 도시한다.
도 64는 룰 찾기 윈도우의 등록된 리턴 항목을 도시한다.
도 65는 룰 찾기 윈도우의 데이터 모델을 도시한다.
도 66은 룰 찾기 윈도우의 웹 서비스를 도시한다.
도 67은 룰 찾기 윈도우의 DB 접속명을 도시한다.
도 68은 룰 비교 윈도우를 도시한다.
도 2는 본 발명의 실시예에 따른 테이블 룰을 도시한다.
도 3은 본 발명의 실시예에 따른 테이블 룰의 추적 화면을 도시한다.
도 4는 본 발명의 실시예에 따른 테이블 룰 조정 과정을 도시한다.
도 5는 본 발명의 실시예에 따른 데이터 룰을 도시한다.
도 6은 본 발명의 실시예에 따른 데이터 모델을 도시한다.
도 7은 디시전 테이블 룰의 기본 실행 방식을 도시한다.
도 8은 디시전 테이블 룰의 조건에 '비교값 미지정 허용' 옵션이 적용될 경우를 도시한다.
도9는 디시전 테이블 룰의 리턴 형식이 다중 값일 때 옵션 처리를 도시한다.
도 10은 디시전 테이블 룰의 리턴 선택을 도시한다.
도 11은 플로우 룰을 도시한다.
도 12는 플로우 룰을 이용한 상품 추천 프로세스를 도시한다.
도 13 및 도 14는 브랜치 룰 및 브랜치 노드 룰을 도시한다.
도 15 내지 도 17은 루프 룰의 정의, 실행 방식, 항목의 스코프(scope)를 도시한다.
도 18은 룰 추가 윈도우를 도시한다.
도 19는 테이블 룰의 편집 영역을 도시한다.
도 20은 룰 템플릿 영역 구성을 도시한다.
도 21은 셀 편집 영역을 도시한다.
도 22는 사용 항목 리스트를 도시한다.
도 23은 사용 항목 관리 윈도우를 도시한다.
도 24는 사용 항목의 항목 배열 윈도우를 도시한다.
도 25는 참조값 리스트를 도시한다.
도 26은 참조값 리스트에 대한 지급항목 대분류 코드 추가 삽입을 도시한다.
도 27은 문법 강조를 도시한다.
도 28은 열 채우기 윈도우를 도시한다.
도 29는 조건 실행에 따른 값을 도시한다.
도 30은 문자열 변환 윈도우를 도시한다.
도 31은 조건 실행에 따른 변경된 값을 도시한다.
도 32는 찾기 윈도우를 도시한다.
도 33은 DB 룰의 찾기 윈도우를 도시한다.
도 34는 플로우 룰의 찾기 윈도우를 도시한다.
도 35는 바꾸기 윈도우를 도시한다.
도 36은 DB룰의 바꾸기 윈도우를 도시한다.
도 37은 리턴 항목 찾기 윈도우를 도시한다.
도 38 및 도 39는 참조값 표시를 도시한다.
도 40은 SQL 도구 윈도우를 도시한다.
도 41은 문법 에러 리스트를 도시한다.
도 42는 변경 사유 등록 윈도우를 도시한다.
도 43은 셀 메모를 도시한다.
도 44는 메모가 등록된 셀을 도시한다.
도 45는 룰 탭과 룰 탭 팝업 메뉴를 도시한다.
도 46은 룰 템플릿 공통 메뉴를 도시한다.
도 47은 룰 선택 윈도우를 도시한다.
도 48는 테이블 룰 템플릿을 도시한다.
도 49는 룰-버전 정보 윈도우를 도시한다.
도 50은 룰-버전 정보 윈도우의 리턴 항목 정보를 도시한다.
도 51은 룰-버전 윈도우의 사용 항목 정보를 도시한다.
도 52은 리턴 불일치 룰 리스트를 도시한다.
도 53는 룰 이름 일괄 변경 윈도우를 도시한다.
도 54는 상위룰 일괄 변경 윈도우를 도시한다.
도 55는 룰 복사/붙여넣기 윈도우를 도시한다.
도 56은 룰 이름 복사를 도시한다.
도 57은 사용 중인 룰에 대한 삭제 불가 안내 화면을 도시한다.
도 58은 룰 관계도 윈도우를 도시한다.
도 59는 노드 표시 도형을 도시한다.
도 60은 룰 관계도 윈도우의 네비게이터를 도시한다.
도 61은 룰 찾기 윈도우를 도시한다.
도 62는 룰 찾기 윈도우의 항목을 도시한다.
도 63은 룰 찾기 윈도우의 사용된 리턴 항목(상위룰)을 도시한다.
도 64는 룰 찾기 윈도우의 등록된 리턴 항목을 도시한다.
도 65는 룰 찾기 윈도우의 데이터 모델을 도시한다.
도 66은 룰 찾기 윈도우의 웹 서비스를 도시한다.
도 67은 룰 찾기 윈도우의 DB 접속명을 도시한다.
도 68은 룰 비교 윈도우를 도시한다.
본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게 알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다.
한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.
룰을 조건부(True, False를 판단하는 표현식) 및 결과부(결과값을 만들어내는 표현식)를 포함하는 룰 내용과, 룰 정보로 구성되며, 룰을 실행할 때 필요한 요소는 항목(입력) 및 리턴(출력)이다.
항목은 어플리케이션으로부터 전달받는 입력 값으로, 룰이 수행될 때 입력되어야 하는 값을 의미하며, 기본적으로 배열 구조를 가진다.
입력 항목은 어플리케이션으로부터 입력 값을 전달받기 위해 사용되는 항목이고, 임시 항목은 룰 수행 과정에서 임시로 값을 할당하여 처리하기 위해 사용되는 항목이다.
룰 정보는 업무문서에 기술된 규칙을 시스템화하여, 룰 시스템에 등록된 형태이며, 규칙처리를 위해 항목을 사용하거나 다른 룰의 결과를 사용한다.
룰의 효과적인 사용과 운영을 위해, 룰을 작성할 때는, 작성하고자 하는 규칙의 성격을 고려하여, 가장 간결하고 쉽게 정의할 수 있는 룰 템플릿을 선정한다.
본 발명의 실시예에 따르면, 다양한 업무 규칙의 유형을 표현할 수 있도록 테이블 룰, 플로우 룰, 디시전 테이블 룰, DB 룰, 브랜치 룰, 루프 룰, 데이터 룰, 콜백 룰을 제공한다.
도 1은 본 발명의 실시예에 따른 비즈니스 룰 관리 시스템을 도시한다.
본 발명의 실시예에 따른 비즈니스 룰 관리 시스템(100)은 비즈니스 룰 템플릿 중 테이블 룰에 관한 정보 및 입력 데이터를 수신하는 입력부(110)와, 테이블 룰을 이용하여 결과값에 대한 출력(리턴)을 수행하는 프로그램이 저장된 메모리(120) 및 프로그램을 실행시키는 프로세서(130)를 포함하고, 프로세서(130)는 조건부와 결과부의 스프레드 쉬트로 테이블 룰을 구성하고, 입력 데이터와 매칭되는 조건부에 해당되는 결과값을 출력한다.
도 2는 본 발명의 실시예에 따른 테이블 룰을 도시한다.
도 2를 참조하면, 결과부에 대해서는 평가항목이 정의되어 있고, 조건부에 대해서는 직급 또는 부서가 정의되어 있다.
직급과 부서(조건부)는 평가 항목과 함께 리턴되도록 설정할 수 있다.
리턴 형식은 단일 값 또는 다중 값으로 설정된다.
작성하고자 하는 룰의 결과가 반드시 하나의 결과값을 리턴하는 경우, 단일 값이 리턴 형식으로 선택되고, 작성하고자 하는 룰의 결과가 없을 수도 있거나, 또는 여러 개의 결과값을 리턴할 수 있는 경우, 다중 값이 리턴 형식으로 선택된다.
테이블 룰에서 조건부의 행은 AND 조건으로, 열은 OR 조건으로 연결되며, 최종열 추가를 통해 조건부를 추가한다.
프로세서(130)는 입력 데이터를 수신하면, 테이블 룰의 첫 행부터 입력 데이터에 해당되는 조건이 있는지 확인하고, 만족되는 조건이 있는 경우 그에 매칭되는 결과부(평가항목)를 리턴한다.
프로세서(130)는 이전의 행에서 조건이 만족하지 않으면, 다음 행의 조건이 만족하는지 순차적으로 확인한다.
도 3은 본 발명의 실시예에 따른 테이블 룰의 추적 화면을 도시한다.
도 3은 직급이 "대리"이고, 부서가 "영업"으로 입력된 경우의 룰 실행 결과에 대한 추적 화면을 도시한다.
도 3에 도시한 바와 같이, 룰 테스트를 통해 추적을 실행하면, 조건부의 True/False에 따라 상이한 색깔로 조건부 만족 여부에 대해 표시되고, 리턴된 항목이 표시된다(False인 경우 붉은 색, True인 경우 파란 색, 리턴 항목은 노란 색으로 표시됨).
도 3을 참조하면, 기본 실행 모드(모든 만족 조건 실행에 체크가 되어 있지 않은 모드)인 경우, 조건이 만족하는 행이 있다면(직급이 "대리"이고 부서가 "영업"인 경우) 결과값("성실성")을 리턴하고 해당 프로세스가 종료된다.
기본 실행 모드인 경우, 즉 모든 만족 조건 실행이 아닌 경우, 도 3의 상단에 도시한 바와 같이, 3번째 행의 조건1이 만족되면 "성실성"을 결과값으로 리턴하고 해당 프로세스가 종료되며, 다음 행에 대한 조건 만족 확인이 더 이상 수행되지 않는다.
모든 만족 조건 실행의 경우, 입력 데이터가 각 조건에 부합하는지 여부를 모두 확인하고, 도 3의 하단에 도시한 바와 같이 조건을 만족하는 항목이 복수 개인 경우, 복수 개의 결과값(성실성, 근면성)을 리턴한다.
프로세서(130)는 조건부에 대한 우선순위를 부여하여 행의 순서를 조정하는데, 도 4는 본 발명의 실시예에 따른 테이블 룰 조정 과정을 도시한다.
도 4를 참조하면, 프로세서(130)는 입력 값을 단순 비교하는 수준의 조건부인 경우, 별도의 함수 또는 서브 룰을 수행하는 조건부의 경우보다 높은 우선순위를 부여하고, 테이블 룰에서 행 간의 순서를 조정한다.
도 4를 참조하면, 테이블 룰의 조건부에는 Count 함수값, 신용등급, SUM 함수값, 성별이 포함된다.
프로세서(130)는 AND 조건으로 연결된 각 조건부(즉, 조건부를 구성하는 하나의 행)에 대한 개별 부하 연산량을 산출하여, 부하 연산량이 적은 순으로 우선순위를 부여하고, 우선순위에 따라 테이블 룰의 상하 기재 순서를 변경한다.
도 4에 도시한 바와 같이, 프로세서(130)는 복수의 조건부 행 중에서 결과부 "승인"과 매칭되는 조건1 및 조건2에 대한 부하 연산량이 가장 적은 것으로 예측하면, 이를 테이블 룰 최상단에 배치되도록 테이블 룰을 구성하는 행의 순서를 변경시키고, 결과부 "심사"와 매칭되는 조건 1 및 조건 2에 대한 부하 연산량이 가장 큰 것으로 예측하면, 이를 테이블 룰의 최하단에 배치하도록 테이블 룰을 변경한다.
이 때, 프로세서(130)는 AND 조건으로 연결된 1개의 행에 배치된 복수의 조건부에 대해서도, 조건부 각각의 부하 연산량을 산출하고 비교한 결과에 따라, 조건부의 배치 위치(좌/우)를 조정한다.
즉, 도 4의 상단과 같이, 결과부 "거절"에 해당되는 조건부에 대해, Count 함수값이 조건 1, 신용등급이 조건 2로 기재된 경우, 프로세서(130)는 조건 1의 부하 연산량이 조건 2의 부하 연산량보다 큰 것을 예측하고, 도 4의 하단과 같이 순서를 변경하여, 신용 등급이 조건 1, Count 함수값이 조건 2가 되도록 테이블 룰 중 하나의 행 내에서 조건부의 순서를 변경한다.
프로세서(130)는 입력 데이터에 대한 결과값 리턴에 소요되는 시간 및 결과값에 대한 카운팅 값을 모니터링하여, 모니터링 결과에 따라 테이블 룰을 변경한다.
프로세서(130)는 전술한 바와 같이 조건부에 대한 부하 연산량 예측 결과를 고려하여 테이블 룰의 순서를 1차 변경한 다음, 입력 데이터에 대해 결과값 리턴을 수행하며, 결과값 리턴을 위한 확인에 소요되는 시간 및 결과값에 대한 카운팅 값을 지속적으로 모니터링하고, 모니터링 결과를 고려하여 테이블 룰의 순서를 다시 변경한다.
예컨대, 도 4를 참조하면, "거절"에 대한 조건부 만족 여부 확인을 위한 부하 연산량보다 "심사"에 대한 조건부 만족 여부 확인을 위한 부하 연산량이 상대적으로 클 것을 예상하고, 사용자로부터 입력된 테이블 룰의 순서를 변경하여, 테이블 룰에 대한 조정을 수행한 것이다.
이후, 프로세서(130)는 도 4의 하단에 도시한 바와 같이 조정된 테이블 룰을 이용하여 테이블 룰을 실행하여 결과값을 리턴하며, 결과값을 리턴하는 데 소요되는 시간 및 결과값에 대한 카운팅 값을 모니터링한다.
입력 데이터 군의 특성에 따라, 실질적으로는 "심사" 결과값을 리턴한 경우가 "거절" 결과값을 리턴한 경우보다 기설정 배수 이상 많고(예: 10배 이상), 따라서 "심사" 결과값에 대한 카운팅 값이 "거절" 결과값에 대한 카운팅값보다 기설정 배수 이상 큰 상황임을 가정한다.
전술한 바와 같이, 현재 실행 모드가 "기본 실행 모드"이고, "단일 값"으로 리턴 항목이 설정되어 있는 경우를 가정하면, 프로세서(130)는 부하 연산량이 상대적으로 적을 것으로 예상되어 "심사"에 대한 조건부 확인보다 선행되도록, 테이블 룰에 저장된 "거절"에 대한 조건부 확인을 필수적으로 수행하여야 하고, 이러한 "거절"에 대한 조건부 확인을 수행함에 따라, 실제로는 결과값 리턴을 위한 총 소요 시간이 증가되고 있음에 대한 추이를 분석한다.
프로세서(130)는 입력 데이터 군의 특성에 따른 카운팅 값 모니터링 결과와, 테이블 룰의 특성 및 실행 모드를 종합적으로 고려하여, "거절"에 대한 조건부 확인의 우선순위를 "심사"에 대한 조건부 확인의 우선순위보다 후순위로 재조정하고, 결과값 리턴 과정을 재개하여, 지속적으로 결과값 리턴에 관해 모니터링을 수행한다.
즉, 프로세서(130)는 조건부에 대한 부하 연산량을 예측하여 테이블 룰을 조정하고, 실제 입력 데이터를 처리한 결과를 모니터링하여, 결과 추이 분석에 따라 테이블 룰에 대한 재조정을 수행한다.
본 발명의 실시예에 따르면, 조건부의 부하 연산량을 예측하여 테이블 룰 내의 순서를 정하는 것이 가능하고(1차 조정), 나아가 입력 데이터에 대한 결과값 리턴 결과 추이를 분석함으로써, 입력 데이터의 특성과 조건부 확인에 필요한 부하 연산량 예측 결과를 종합적으로 고려하여 테이블 룰의 순서를 조정(2차 조정)한다.
다른 예로서, 프로세서(130)는 입력 데이터 군에 대해 특징을 추출하여, 추출된 특징에 따라 부하 연산량이 적을 것으로 예상되는 행이 상대적으로 상단에 배치되도록 테이블 룰을 자동 조정한다.
프로세서(130)는 테이블 룰에 포함되는 행의 총 개수, 각 행에 포함되는 조건부의 개수, 조건부의 항목을 고려하여, 테이블 룰을 디시전 테이블 룰로 변환한다.
본 발명의 실시예에 따르면, 사용자 선택에 따라 룰 템플릿이 정해지면 그에 따른 룰을 정의하는 것을 기본 기능으로 제공하고, 나아가 테이블 룰의 특성에 따라, 상이한 분류의 룰 템플릿으로 변환될 경우 리턴 성능이 개선될 것으로 예상되는 경우, 상이한 분류의 룰 템플릿(디시전 테이블 룰)으로 자동 변환한다.
테이블 룰의 경우 조건부의 셀이 나열되어 셀 안에 항목과 변수가 표현되나, 디시전 테이블 룰의 경우 조건에 항목이 고정되어 테이블 형태로 설정된다.
테이블 룰의 경우, 예컨대 1행부터 1500행까지 결과부와 조건부가 입력되어 있고, 특정 입력 데이터에 매칭되는 조건부가 1499행에 배치되어 있는 경우, 1행부터 1499행까지의 각 조건부에 대한 매칭 여부에 대한 확인이 필요하여, 리턴을 위한 처리 시간이 길다.
반면, 디시전 테이블 룰의 경우, 입력 데이터에 매칭되는 조건부를 인덱스 방식으로 바로 찾아가고, 그에 따른 결과값을 리턴하므로(조건부의 데이터를 인덱스 키로 사용하여, 해당 값이 일치하는 행을 직접 찾아 리턴함), 결과값 출력을 위한 소요 시간이 테이블 룰의 경우보다 상대적으로 적게 소요된다.
다만, 비즈니스 룰 작성의 니즈 및 룰 작성을 위한 입력 정보에 따라, 프로세서(130)는 룰 템플릿이 테이블 룰로 선택되어 테이블 룰에 대한 입력이 완료되면, 테이블 룰에 포함되는 행의 개수, 각 행에 포함되는 조건부의 개수, 조건부의 항목을 고려하여, 룰 변환 여부를 결정하고, 테이블 룰을 디시전 테이블 룰로 변환한다.
예컨대 행 1(첫번째 행)내지 행 100(100번째 행)에는 조건부 1, 조건부 2에 "직급"과 "부서"가 기재된 경우를 가정하고, 행 101 내지 행 130에는 "직급", "부서", "나이"가 기재된 경우를 가정한다.
프로세서(130)는 행 1 내지 행 100에 조건부에 기재된 공통 항목을 추출하여, 행 1 내지 행 100을 디시전 테이블 룰로 변환한다.
입력 데이터에 "직급"과 "부서"가 포함되는 경우, 프로세서(130)는 행 1 내지 행 100에 대해 테이블 룰과 같이 일일이 조건 만족 여부를 확인하지 않고, 인덱싱 방식을 통해 만족하는 조건부의 결과값을 곧바로 찾아가 리턴한다.
테이블 룰은 유저 인터페이스를 통해 조건부 및 결과부에 대한 자유로운 기입이 가능한데, 프로세서(130)는 테이블 룰을 구성하는 조건부 항목의 공통 특징을 추출하여, 디시전 테이블 룰로 변환하는 경우의 검출 성능을 예측하고, 예측된 검출 성능의 개선도가 기설정된 개선도보다 높을 것으로 예상하는 경우, 테이블 룰을 디시전 테이블 룰로 변환시킨다.
프로세서(130)가 수행하는 조건부 항목의 공통 특징 추출은 열 별로 수행되는 것이 아니라, 조건부 전체에 대해 통합적으로 수행된다.
즉, 테이블 룰에서 제1 행에는 조건부 1에 "직급: 대리"가, 조건부 2에 "부서: 영업"이 기재되고, 제2 행에는 조건부 1에 "부서: 기획"이, 조건부 2에 "직급: 사원"이 기재되는 경우에도, "직급"과 "부서"를 공통 항목으로 추출하고, 이를 디시전 테이블 룰의 조건부 고정 항목으로 변환한다.
이를 통해, 디시전 테이블 룰의 조건부 1은 직급으로 고정되고, 조건부 2는 부서로 고정된다.
따라서, 사용자는 자유로운 기입이 가능한 테이블 룰의 장점을 활용하면서도, 공통 항목으로 묶여지는 조건부와 관련하여 변환된 디시전 테이블 룰을 제공받을 수 있다.
이 때, 프로세서(130)는 테이블 룰에서 셀 단위로 입력된 조건부에 대한 항목 분류를 수행하여, 디시전 테이블 룰의 고정형 조건부 및 그 항목으로 변환시키고, 테이블 룰의 조건부에 기재된 내용을 분석하여 디시전 테이블 룰에서의 범위형 조건부로 변환한다.
프로세서(130)는 하나의 룰을 복수의 룰 템플릿으로 분할하여 저장하고, 입력 데이터의 파라미터를 고려하여 입력 데이터를 어느 룰 템플릿을 이용하여 리턴값을 출력할 것인지에 대한 진행 경로를 설정하여, 설정된 경로에 해당되는 룰 템플릿을 이용하여 결과값을 리턴한다.
이 때, 프로세서(130)는 하나의 테이블 룰을 테이블 룰 및 디시전 테이블 룰로 변환하여 저장하고, 입력 데이터로부터 추출된 특징 정보를 이용하여, 입력 데이터를 변환된 룰, 즉 테이블 룰 또는 디시전 테이블 룰 중 어느 룰 템플릿을 이용할 것인지 결정한다.
이러한 설정은 룰 템플릿의 조건부 항목의 특징 및 입력 데이터의 특징의 매칭도에 따라 이루어진다.
사용하고자 하는 룰 템플릿으로 테이블 룰이 설정된 경우, 행의 개수, 행에 포함되는 조건부의 개수, 조건부의 항목을 고려하여, 테이블 룰 중 일부를 디시전 테이블 룰로 변환하고, 그 나머지를 테이블 룰로 존속시킨다.
입력 데이터의 특징을 추출하여, 추출된 특징에 따라 1차적으로 디시전 테이블 룰을 이용한 조건부 확인을 수행하고, 만족하는 조건부가 없을 경우 2차적으로 테이블 룰을 이용한 조건부 확인을 수행하거나, 반대로 테이블 룰, 디시전 테이블 룰을 순서대로 이용하는 것으로 조건부 확인을 수행할 수 있다.
프로세서(130)는 입력 데이터의 특징을 추출하여 관리자(사용자)가 획득하고자 하는 데이터를 예측하고, 관리자가 원하는 결과값에 근사한 값, 즉 유사도가 높은 결과값을 출력한다.
또한, 프로세서(130)는 입력 데이터와 매칭되는 조건부가 없는 경우, 추적 기능을 통해 조건부 매칭 확인 내역을 제공할 뿐 아니라, 입력 데이터 중 특정 항목이 변경될 경우 예상되는 결과값 리턴 항목을 제공한다. 이 때, 프로세서(130)는 변경 가능성에 따라 항목 변경에 대한 가중치를 상이하게 설정하여, 특정 항목의 변경 시나리오를 설정하고, 특정 항목의 변경에 따라 예상되는 결과값 리턴 항목을 출력한다.
예컨대, 연금 보험 상품의 경우, 현재 입력 데이터에 따르면 매칭되는 조건부가 없으나, 입력 데이터 중 나이 항목이 변경된다면(즉, 현재 나이가 아닌, 현재로부터 3년이 경과한 후의 나이를 가정하면), 만족하는 조건부와 매칭되는 결과값(연금 보험에 따른 실수령 액수)을 리턴 항목으로 출력한다.
프로세서(130)는 입력 데이터에 대한 조건부 매칭이 되지 않아, 결과값이 출력되지 못하는 경우, 입력 데이터를 분석하여, 입력 데이터 중 특정 항목의 변경 시나리오를 경우의 수에 따라 생성한다.
전술한 바와 같이, 프로세서(130)는 변경 가능성에 따라 항목 변경에 대한 가중치를 상이하게 설정하여, 변경 시나리오의 경우의 수에 따른 결과값을 예상 결과값으로 출력하여 제공한다.
예를 들어, 테이블 룰의 조건부의 항목 및 입력 데이터의 항목 중 "성별"이 포함될 경우, 이러한 항목이 변경될 가능성은 극히 적으므로, 항목 변경에 대한 가중치를 최소로 설정한다.
이를 통해, 사용자는 현 시점에서의 입력 데이터와 매칭되는 조건부가 없어, 결과값이 출력되지 않음을 확인함에 그치지 않고, 입력 데이터 중 특정 항목이 변화하는 경우에 예상되는 결과값을 제공받을 수 있다.
프로세서(130)는 입력 데이터의 변경에 따라 예상되는 결과값을 모두 추출하여, 전술한 가중치를 고려하여 변경 가능성이 높은 순서대로 결과값의 우선순위를 적용하여 제공하되, 기설정된 개수의 높은 순위에 해당하는 예상 결과값들을 제공한다.
프로세서(130)는 입력 데이터 항목 중 변경 가능성이 높은 항목의 순서대로 결과값에 대한 시뮬레이션을 수행하여 제공함에 따라, 사용자는 현재의 상황(현재의 입력 데이터)뿐 아니라 장래의 상황 변경(장래의 입력 데이터)에 따른 예측 결과값을 확인하는 것이 가능하다.
예컨대, 대리로 진급이 예정된 사원의 경우, 도 3에 도시한 바와 같이 직급이 대리로 올라감에 따라 현재와는 달리 산출되는 평가항목 리턴값을 확인하는 것이 가능하다.
또한, 현재 영업 부서에서 컨설팅 부서로 부서 이동이 예정된 사원의 경우, 도 3에 도시한 바와 같이 부서 이동에 따라 현재 상황과는 다르게 산출되는 평가항목 리턴값을 확인하는 것이 가능하다.
프로세서(130)는 입력 데이터가 테이블 룰의 조건부에 부합됨에 따라, 매칭된 결과값을 리턴하는 경우, 사용자의 설정에 따라 예상되는 결과값을 함께 리턴할 수 있다.
예컨대, 도 4에 도시한 바와 같이, 입력 데이터에 대한 테이블 룰의 조건부 확인(모든 만족 조건 실행임을 가정)에 따라, "승인"이 결과값으로 출력되는 상황임을 가정한다.
이 때, 프로세서(130)는 입력 데이터의 특징 분석을 통해, 현재는 "승인"으로 결과값이 출력되지만, 입력 데이터가 현재 분석된 추이와 같이 변경될 경우, "거절"이 될 수 있음을 사용자에게 알려준다.
프로세서(130)는 디시전 테이블 룰의 데이터 양을 고려하여, 데이터 룰로 전환한다.
도 5를 참조하면, 데이터 룰은 디시전 테이블 룰과 유사한 형태의 템플릿을 사용하나, 조건부와 결과부의 항목에 해당하는 데이터를 룰에 정의하는 것이 아니라, 업무 테이블(물리적인 테이블)에 저장한다.
디시전 테이블 룰은 메모리에 탑재되는 바, 입력 데이터에 대해 조건에 부합하는 결과값을 찾아오고자 하는 니즈에 있어서, 데이터의 양이 많으면 이들을 룰에 저장하기에 한계가 있으므로, 조건부와 결과부의 항목에 해당하는 데이터를 업무 테이블에 저장하고, 업무 테이블에 저장한 데이터 내용으로 조회 시 화면에 출력한다.
도 6을 참조하면, 데이터 룰은 메타형태의 레거시(legacy) 테이블을 이용하여 논리적 모델링을 통해 여러 관점의 데이터 관리 구현이 가능한 룰 템플릿이다.
데이터 룰을 이용하는 경우, 하나의 물리적 테이블 안에 다양한 종류의 데이터 정보를 통합 관리하는 것이 가능하다.
데이터 룰은 테이블의 데이터를 룰 빌더에서 제어할 수 있도록 하는 형태이고, 업무 테이블 준비, 업무 테이블 등록, 데이터 모델 생성, 데이터 룰 생성 및 모델 적용 과정을 통해 정의된다.
업무 테이블 준비 과정은 업무 테이블에 룰 제어 칼럼을 추가한다.
업무 테이블 등록 과정은 룰 시스템에서 인식할 수 있도록 업무 테이블을 룰 시스템에 등록하고, 룰 시스템에서 해당 테이블의 칼럼 중, 룰 관련 제어 칼럼을 인식할 수 있도록 설정한다.
데이터 모델 생성 과정은 등록된 테이블 리스트에서 선택하고, 업무 테이블의 키 필드(keyfield)에 정의된 값이 데이터 모델 ID가 되며, 물리 칼럼을 목록에서 선택하고, 키(key) 항목 및 업무적으로 사용할 칼럼 이름을 지정한다.
데이터 룰 생성 및 모델 적용 과정은 데이터 룰 편집 창에서 디시전 테이블 룰과 동일한 방식으로 조건 영역의 칼럼을 설정한 이후, 데이터 모델 선택/매핑 버튼을 이용하여 칼럼을 매핑한다.
본 발명의 실시예에 따르면, 테이블 룰의 특성 정보(행의 개수, 각 행에 포함되는 조건부의 개수, 조건부의 항목)를 고려하여, 테이블 룰의 전부 또는 일부를 상이한 분류의 룰 템플릿으로 변환한다.
테이블 룰의 경우 조건부의 셀이 나열되어 셀 안에 항목과 변수가 표현되나, 디시전 테이블 룰의 경우 조건에 항목이 고정되어 테이블 형태로 설정된다.
디시전 테이블 룰의 경우, 입력 데이터에 매칭되는 조건부를 인덱스 방식으로 바로 찾아가고, 그에 따른 결과값을 리턴하므로, 결과값 출력을 위한 소요 시간이 테이블 룰의 경우보다 상대적으로 적게 소요된다.
본 발명의 실시예에 따르면, 테이블 룰의 일부 또는 전부를 디시전 테이블 룰로 변환하고, 디시전 테이블 룰의 데이터 양을 고려하여 데이터 룰로 변환한다.
디시전 테이블 룰을 이용한 비즈니스 룰 관리 시스템은 비즈니스 룰 템플릿 중 디시전 테이블 룰에 관한 정보 및 입력 데이터를 수신하는 입력부(110)와, 디시전 테이블 룰을 이용하여 결과값에 대한 출력(리턴)을 수행하는 프로그램이 저장된 메모리(120) 및 프로그램을 실행시키는 프로세서(130)를 포함하고, 프로세서(130)는 고정된 항목의 조건부와, 조건부에 매칭되는 결과부를 포함하는 스프레드 쉬트로 디시전 테이블 룰을 구성하고, 인덱스 방식으로 입력 데이터와 매칭되는 조건부에 해당되는 결과값을 출력한다.
테이블 룰의 경우 조건부의 셀이 나열되어 셀 안에 항목과 변수가 표현되나, 디시전 테이블 룰의 경우 조건에 항목이 고정되어 테이블 형태로 설정된다.
디시전 테이블 룰의 경우, 입력 데이터에 매칭되는 조건부를 인덱스 방식으로 바로 찾아가고, 그에 따른 결과값을 리턴하므로(조건부의 데이터를 인덱스 키로 사용하여, 해당 값이 일치하는 행을 직접 찾아 리턴함), 결과값 출력을 위한 소요 시간이 테이블 룰의 경우보다 상대적으로 적게 소요된다.
디시전 테이블 룰은 인덱스 방식으로 처리되며, 조건부의 데이터를 인덱스 키(index key)로 사용하여, 해당 값이 일치하는 행을 직접 찾아 리턴하며, 리턴 방식으로는 옵션에 따라 다양한 변형 처리가 가능하다.
도 7은 디시전 테이블 룰의 기본 실행 방식을 도시한다.
조건을 만족하는 경우의 수는 하나이고, 조건식의 사용 여부는 실행 판단식을 이용하여 결정할 수 있다.
디시전 테이블 룰은 비교 대상이 되는 조건 칼럼의 데이터에 '비교값 미지정'을 허용함으로써, 최대 조건 만족에 따른 결과 선택이 가능하며, 도 8은 디시전 테이블 룰의 조건에 '비교값 미지정 허용' 옵션이 적용될 경우를 도시한다.
디시전 테이블 룰은 리턴 형식이 다중 값인 경우, 만족하는 모든 조건을 허용하거나, 비교값이 정의된 조건을 우선하여 리턴한다.
도 9는 디시전 테이블 룰의 리턴 형식이 다중 값일 때 옵션 처리를 도시한다.
리턴 형식이 다중 값일 때, 기본적으로 옵션 체크가 없다면, 만족하는 경우의 수는 1개 이하가 된다.
"모든 만족 조건 실행"이 체크되고, "비교값 지정 조건만"에 대해 체크되지 않으면, 만족하는 경우의 수가 여러 개로 될 수 있다.
"모든 만족 조건 실행"이 체크되고, "비교값 지정 조건만"에 대해서도 체크되면, 만족하는 경우의 수가 여러 개 될 수 있다.
도 10은 디시전 테이블 룰의 리턴 선택을 도시하며, 다른 조건들은 모두 같은데 특정 조건에 따라 결과값이 달라지는 경우, 리턴 선택을 구성하여 간결하게 디시전 테이블 룰을 작성할 수 있다.
프로세서(130)는 디시전 테이블 룰의 데이터 양을 고려하여, 데이터 룰로 전환한다.
도 10을 참조하면, 데이터 룰은 디시전 테이블 룰과 유사한 형태의 템플릿을 사용하나, 조건부와 결과부의 항목에 해당하는 데이터를 룰에 정의하는 것이 아니라, 업무 테이블(물리적인 테이블)에 저장한다.
디시전 테이블 룰은 메모리에 탑재되는 바, 입력 데이터에 대해 조건에 부합하는 결과값을 찾아오고자 하는 니즈에 있어서, 데이터의 양이 많으면 이들을 룰에 저장하기에 한계가 있으므로, 조건부와 결과부의 항목에 해당하는 데이터를 업무 테이블에 저장하고, 업무 테이블에 저장한 데이터 내용으로 조회 시 화면에 출력한다.
도 6을 참조하면, 데이터 룰은 메타형태의 레거시(legacy) 테이블을 이용하여 논리적 모델링을 통해 여러 관점의 데이터 관리 구현이 가능한 룰 템플릿이다.
데이터 룰을 이용하는 경우, 하나의 물리적 테이블 안에 다양한 종류의 데이터 정보를 통합 관리하는 것이 가능하다.
데이터 룰은 테이블의 데이터를 룰 빌더에서 제어할 수 있도록 하는 형태이고, 업무 테이블 준비, 업무 테이블 등록, 데이터 모델 생성, 데이터 룰 생성 및 모델 적용 과정을 통해 정의된다.
업무 테이블 준비 과정은 업무 테이블에 룰 제어 칼럼을 추가한다.
업무 테이블 등록 과정은 룰 시스템에서 인식할 수 있도록 업무 테이블을 룰 시스템에 등록하고, 룰 시스템에서 해당 테이블의 칼럼 중, 룰 관련 제어 칼럼을 인식할 수 있도록 설정한다.
데이터 모델 생성 과정은 등록된 테이블 리스트에서 선택하고, 업무 테이블의 키 필드(key field)에 정의된 값이 데이터 모델 ID가 되며, 물리 칼럼을 목록에서 선택하고, 키(key) 항목 및 업무적으로 사용할 칼럼 이름을 지정한다.
데이터 룰 생성 및 모델 적용 과정은 데이터 룰 편집 창에서 디시전 테이블 룰과 동일한 방식으로 조건 영역의 칼럼을 설정한 이후, 데이터 모델 선택/매핑 버튼을 이용하여 칼럼을 매핑한다.
프로세서(130)는 입력 데이터의 특징을 추출하여 관리자(사용자)가 획득하고자 하는 데이터를 예측하고, 관리자가 원하는 결과값에 근사한 값(유사도가 높은 결과값)을 출력하도록 유사도 판단 결과를 출력한다.
디시전 테이블에서 조건부의 행은 AND 조건으로, 열은 OR 조건으로 구성된다.
입력부(110)는 조건부와 결과부에 대한 기입 정보를 디시전 테이블 룰 정보로 수신하고, 디시전 테이블 룰을 생성한다.
디시전 테이블 룰의 조건부는 항목이 고정되고, 테이블 형태로 설정된다.
프로세서(130)는 생성된 디시전 테이블 룰에 대해, 입력 데이터에 매칭되는 조건에 해당하는 결과값을 출력한다.
이 때, 프로세서(130)는 입력 데이터에 매칭되는 조건부를 인덱스 방식으로 바로 찾아가고, 그에 따른 결과값을 리턴한다.
프로세서(130)는 모든 만족 조건 실행 여부와 비교값 지정 조건 선택 여부에 따라 리턴 형식이 다중 값인 경우의 옵션 처리를 수행한다.
프로세서(130)는 특정 조건에 따라 결과 값이 달라지는 경우, 리턴 선택을 구성한다.
입력부(110)는 테이블 룰을 사용하는 시스템으로부터, 테이블 룰에 포함되는 행의 수, 각 행에 포함되는 조건부의 수, 조건부의 항목을 고려하여, 테이블 룰을 디시전 테이블 룰로 변환한 결과를 수신하고, 프로세서(130)는 수신한 디시전 테이블 룰을 이용하여 리턴 처리를 수행하는 것이 가능하다.
프로세서(130)는 디시전 테이블 룰의 데이터 양을 고려하여, 디시전 테이블 룰을 데이터 룰로 전환한다.
도 11은 플로우 룰을 도시한다.
프로세서(130)는 순서도 형태로 플로우 룰을 작성하며, 플로우 룰은 조건 노드, 리턴 노드, 연결선을 이용하여 작성된다.
조건 노드에는 조건식이 기입되고, True, False 외 범위형 등으로 분기가 2개를 초과하는 경우(도 11, "나이에 따라"), 연결선에 조건을 부여한다.
리턴 노드는 결과값을 리턴하는 노드이다.
조건 노드를 선택하면 편집창이 디스플레이되고, 조건부에는 True, False로 분기되는 조건식이 개입된다.
연결선은 True, False 외에도 디폴트, 룰 표현식으로 표현된다.
도 11은 리턴 노드에 하나의 항목(이율)이 결과값으로 출력됨을 도시한 것인데, 이 외에도 플로우 룰 생성 시 입력한 리턴 항목의 개수에 따라, 리턴 노드 클릭 시 표출되는 결과값이 출력된다.
조건 노드 만족 여부에 대해, True, False가 아니라, 기입된 조건에 따라 분기되는 경우, 조건 노드(분기 노드)에 조건을 표시하지 않고, 연결선에 조건을 입력한다.
플로우 룰은 If Else 가 중첩되는 로직에 주로 사용되며, 조건부 만족에 대한 흐름을 한눈에 볼 수 있는 장점이 있다.
입력 데이터에 성별, 나이, 가입 년도를 여성, 15, 2018을 입력하고, 플로우 룰을 실행하면, 이율 0.05가 결과값으로 출력되고, 추적을 해보면 도 11에서 해당되는 노드(조건 노드, 리턴 노드)와 연결선에 별도의 표시(예: 굵은 파란색)로 표출된다.
프로세서(130)는 유저 인터페이스를 통해 입력된 플로우 룰을 분석하여, 조건 노드에 대한 만족 여부 판단의 부하를 고려하여, 플로우 룰을 수정한다.
예컨대 하나의 조건 노드에, "조건 1 OR 조건 2"로, True 또는 False로 분기되는 조건문이 기입된 경우를 가정한다(OR인 것을 가정하여 설명하나, AND의 경우도 동일함). If Else의 중첩문 내에서도, 이러한 경우와 같이 "조건 1 OR 조건 2"인 경우, 프로세서(130)는 입력 데이터를 이용하여 조건 1의 만족 여부 및 조건 2의 만족 여부를 확인하며, 조건 1의 만족 여부를 먼저 확인하고, 조건 2의 만족 여부를 그 후에 확인하는 경우를 가정한다.
그런데, 조건 1의 만족 여부를 확인하는데 소요되는 연산 시간이 조건 2의 만족 여부를 확인하는데 소요되는 연산 시간보다 일정 수준 이상(예: 10배) 길 것으로 예상되는 경우, 프로세서(130)는 조건 1 및 조건 2의 만족 여부 확인의 순서를 변경시키거나, 조건 노드를 분할시킨다.
즉, OR 조건의 조건 노드 내에서 각 조건의 확인 순서를 변경시킬 수 있고, OR 조건의 조건 노드를 분할시켜 조건 2의 만족 여부를 먼저 확인하고, False인 경우 조건 1의 만족 여부를 확인하도록 할 수 있다.
프로세서(130)는 해당 조건 노드에서 분기 결과를 산출함에 소요되는 실제 시간 및 카운팅 값을 모니터링하여, 플로우 룰을 수정한다.
전술한 예에서, 조건2의 만족 여부 확인을 위한 부하 연산량이 조건 1의 만족 여부 확인을 위한 부하 연산량보다 상대적으로 적어, "조건 1 OR 조건 2"의 조건 노드를 "조건 2" 확인 시 True이면, "조건 1" 확인으로, 조건 노드를 분할한 경우를 가정한다.
이 때, 입력 데이터 군의 특성에 따라, 실질적으로는 "조건 1"을 만족하는 경우가 "조건 2"를 만족한 경우보다 기설정 배수 이상 많고(예: 10배 이상), "조건 1" 만족에 대한 카운팅 값이 "조건 2"만족에 대한 카운팅값보다 기설정 배수 이상 큰 경우를 가정한다.
이 때, 실제로는 "조건 1 OR 조건 2" 조건 노드 확인 시 "조건 1"의 만족 여부 확인을 위한 부하 연산량이 클 것으로 예상되어, "조건 2" 만족 여부 확인이 선행되도록 플로우 룰을 수정한 것이나, 실제 입력 데이터에 대한 결과값 리턴 시, "조건 2"를 만족하는 경우가 드물고, "조건 1"을 만족하는 경우가 대다수인 경우이다.
이러한 경우라면, "조건 2"의 만족 여부를 필수적으로 선행되도록 함으로써, 플로우 룰을 이용한 결과값 리턴을 위한 속도 성능이 결과적으로는 저하된 것이다.
따라서, 프로세서(130)는 해당 조건 노드의 특성과 입력 데이터 군의 특성을 고려하여, 실제 조건 노드의 분기 결과 및 분기에 소요되는 연산 시간을 모니터링하여, 그 추이에 따라 플로우 룰을 재수정한다.
프로세서(130)는 조건 노드 확인에 따른 단순 확인 뿐 아니라, 입력 데이터 중 특정 항목이 변경될 경우 예상되는 분기 결과를 제공한다.
예컨대, 도 11을 참조하면, 제1 입력 데이터가 "가입 년도: 2014, 성별: 여성, 나이: 9"이고, 제2 입력 데이터가 "가입 년도: 2014, 성별: 여성, 나이: 20"인 경우이고, 예상 분기 결과를 제공하기 위한 추가 조건이 "분기 범위 오차 5이내"임을 가정한다.
프로세서(130)는 제1 입력 데이터에 대해, 결과값으로 이율 3%를 출력하고, 추적 기능 실행 시 년도→성별→나이에 따라→이율 3%의 플로우를 별도 식별 표시(예: 굵은 파란색 실선 화살표)로 표시한다.
이 때, 제1 입력 데이터에는 "나이: 9"이므로, "분기 범위 오차 5 이내"가 된다.
즉, 프로세서(130)는 현재의 입력 데이터로는 리턴 노드가 이율 3%로 출력되나, 1년이라는 시간 내에 입력 데이터는 변동될 것이고(나이가 "10"으로 변동됨), 그 때에는 리턴 노드가 이율 3.5%로 출력될 것임을 예측한다.
이 경우, 프로세서(130)는 년도→성별→나이에 따라→이율 3.5%의 플로우를 추가 별도 식별 표시(예: 굵은 파란색 파선 화살표)로 표시하며, 코멘트 란에 "OOO님은 OO년 OO월 OO일 생으로, OO년 OO월 OO일을 기점으로 이율이 3%에서 3.5%로 상승됩니다"라는 안내 문구를 출력하도록 한다.
제2 입력 데이터의 경우, "나이: 20"으로, "분기 범위 오차 5 이내"인 추가 조건을 만족하지 않는다.
따라서, 프로세서(130)는 제2 입력 데이터에 대해, 결과값으로 이율 3.5%를 출력하고, 추적 기능 실행 시 년도→성별→나이에 따라→이율 3.5%의 플로우를 별도 식별 표시(예: 굵은 파란색 실선 화살표)로 표시하며, 제1 입력 데이터와 같이 현재 입력 데이터의 변동 시 예상되는 분기 결과를 표시하지는 않는다.
전술한 추가 내부 조건은 입력 데이터 항목의 변동 가능성을 고려하여 설정되며, 예컨대 도 11에 도시한 성별=여성에 관한 조건 노드의 경우 변동 가능성이 적음을 고려하여 추가 내부 조건을 설정하지 않는다.
프로세서(130)는 빅데이터 수집, 분석을 통해, 목적하는 결과값을 출력하도록 플로우 룰을 자동 생성한다.
도 12를 참조하면, 프로세서(130)는 쇼핑몰 구매 히스토리에 대한 빅데이터를 수집하여 분석한다.
구매 히스토리 분석 결과, 고객 정보에 따라 공통 특징이 추출되면, 공통 특징에 해당되는 고객 정보를 분류하고, 그 결과로서 "회원 여부, 결혼 여부, 성별, 자녀 있음 여부, 자녀 나이, 자녀 성별, 시즌"이 추출된다.
프로세서(130)는 추출된 고객 정보 분류 결과를 토대로, 조건 노드 및 리턴 노드를 생성하여 상품 추천 프로세스를 플로우 룰로 생성한다.
도 12를 참조하면, 자녀 나이 조건 노드의 "20세 미만"에 따라, "성별", "나이"에 따라 추천 상품 항목이 달라지게 된다.
프로세서(130)는 과거의 구매 히스토리 정보를 고려하여, 회원인 미혼 남성이 과거의 30대에 "수영복" 구매 이력이 3회 있고, 현재는 기혼 및 자녀 있음(자녀 나이: 3세, 자녀 성별: 남아)인 경우, "자녀 나이 8세 미만 완구" 중 "물놀이용 장난감"을 추천하도록 플로우 룰을 수정한다.
이 때, 프로세서(130)는 고객의 검색 이력을 이용하여 상품을 추천하되, 이전의 구매 히스토리 내역 및 고객 정보를 고려하여 상품을 추천할 수 있다.
즉, 프로세서(130)는 기생성된 플로우 룰에 대한 정보와, 빅데이터 분석 결과를 융합하여, 기생성된 플로우 룰의 세부 조건 노드 및 리턴 노드를 추가/변경함으로써, 개인화된 상품 추천이 가능한 효과가 있다.
도 13 및 도 14는 브랜치 룰 및 브랜치 노드 룰을 도시한다.
브랜치 룰은 특정 변화요소를 중심으로 분기처리를 효과적으로 표현할 수 있는 룰 템플릿이다.
브랜치 룰은 그 분기조건을 표현하고, 그 분기 조건에 따라 분기되어 처리되는 하위 룰(서브 룰)을 브랜치 노드 룰이라고 하며, 브랜치 룰은 브랜치 노드 룰과 짝을 이루어 실행된다.
테이블 룰이나 플로우 룰은 상품 코드, 나이, 가입 연도 등 다양한 조건으로 분기되는데, 브랜치 룰은 분기 항목을 고정시킨다.
도 13을 참조하면, 분기 조건 "상품 [상품코드] 이율"은 상품코드의 값에 따라 분기하겠다는 의미이다.
상품코드 값이 prod1으로 입력되면 이를 상품 prod1 이율이라는 서브 룰로 분기하고, 상품코드 값이 prod2로 입력되면 상품 prod2 이율이라는 서브룰로 분기한다.
프로세서(130)는 도 13에 도시한 바와 같이, 룰 코드, 룰 이름, 룰 설명을 포함하는 브랜치 노드 룰 리스트를 출력하며, 브랜치 노드의 유효한 버전이 없을 때 디폴드 값 실행이 체크되어 있으면, 리턴되는 디폴트 값(룰 표현식)을 실행한다.
디폴드 값 실행이 체크되어 있지 않으면, 브랜치 노드의 유효한 버전이 없을 경우, 실행 에러 처리한다.
프로세서(130)는 브랜치 룰에서 정의한 패턴과 동일한 양식의 이름을 가지는 브랜치 노드 룰을 정의한다.
도 13을 참조하면, 프로세서(130)는 사용자 인터페이스를 통해 입력된 정보를 이용하여, 새로 출시된 상품3(prod3)에 대한 브랜치 노드 룰을 생성하여 저장하고, 이러한 상품 prod3 이율은 상품 [상품코드] 이율로 브랜치 노드 룰 리스트에 포함되어, 입력 데이터에 prod3이 포함되는 경우 해당 서브 룰로 분기된다.
즉, 사용자는 브랜치 룰에서 조건을 추가하지 않더라도, 브랜치 노드 룰을 새로 생성함으로써, 새로 생성된 브랜치 노드 룰로 분기되도록 할 수 있어, 유지 보수의 측면에서 효율성이 크다.
도 14를 참조하면, 입력값은 [지점코드], [상품코드]이고, {상품 이율 결정}과 관련하여 분기조건은 [지점코드]_상품 [상품코드] 이율이다.
001, prod1이 입력되면 {001_상품 prod1 이율}이 브랜치 노드 룰이 되고, 001, prod2가 입력되면 {001_상품 prod2 이율}이 브랜치 노드 룰이 되고, 003, prod3이 입력되면 {003_상품 prod3 이율}이 브랜치 노드 룰이 된다.
브랜치 룰의 리턴 항목은 서브 룰인 브랜치 노드 룰의 리턴 항목과 동일하다.
브랜치 노드 룰에 대해서는 템플릿 양식의 제한이 없으며, 프로세서(130)는 테이블 룰, 디시전 테이블 룰 등 다양한 룰 템플릿을 이용하여 브랜치 노드 룰을 각각 생성한다.
예컨대, 제1 브랜치 노드 룰에서 이율을 리턴하면 다른 제2 브랜치 노드 룰에서도 이율을 리턴하여야 한다.
이러한 브랜치 룰, 브랜치 노드 룰은 정형화된 분기 처리를 할 때 유용하며, 상품이 추가되었을 때, 로직을 수정하는 것이 아니라, 상품에 대한 기준 정보만 추가하여 생성하면, 자동으로 분기가 생성되므로, 유지보수의 측면에서 유용하다.
브랜치 노드 룰 리스트에 prod1 내지 prod10이 포함되어 있음을 가정한다.
프로세서(130)는 입력 데이터를 수신하면, 입력 데이터에 "prod1"이 입력된 경우, 전술한 바와 같이 상품 prod1 이율에 대한 서브 룰을 호출하여 리턴값을 출력하고, 입력 데이터와 관련성 있는 다른 브랜치 노드 룰을 호출하여 예상 리턴값을 출력한다.
예를 들어, prod1에는 20세 이상인 경우 이율 2%가 서브 룰로 저장되어 있고, prod3에는 21세 이상인 경우 이율 3%가 서브 룰로 저장되어 있음을 가정한다.
현재 나이 20세를 나이 정보로, prod1을 상품 코드로 포함하는 입력 데이터를 이용하여 이율을 조회하는 경우, 프로세서(130)는 입력 데이터에 포함된 prod1과 관련한 이율(2%)을 출력함과 더불어, 입력 데이터에 포함된 나이 정보와 관련성 있는 prod3와 관련한 이율(3%)을 추가로 출력하여 제시한다.
이 때 프로세서(130)는 입력 데이터의 항목과, 브랜치 노드 룰의 조건부 항목 중 기설정 범위 내에 있는 경우 관련성이 있는 것으로 판단한다.
기설정 범위가 "나이 오차 2년 이내"인 경우, 프로세서(130)는 전술한 prod1의 이율 2%뿐 아니라, prod3의 이율 3%를 추가로 리턴하되, prod1은 현재 입력 데이터에 따른 리턴값이고, prod3은 1년 이후의 입력 데이터 변동에 따른 리턴값임을 설명하는 텍스트를 함께 제공한다.
전술한 prod3가 "21세 이상 이율 3%"가 아닌 "25세 이상 이율 3%"라면, 기설정 범위가 만족되지 않으므로, 프로세서(130)는 입력 데이터에 포함되는 prod1에 대한 분기만을 실행하고, 이율 2%를 출력한다.
프로세서(130)는 입력 데이터를 구성하는 항목 정보와, 각 브랜치 노드 룰 리스트에 포함되는 조건부의 항목 정보를 고려하여, 입력 데이터를 구성하는 항목 정보 중 변동 가능한 정보가 브랜치 노드 룰 리스트에 포함되는 조건부의 항목 정보와 매칭되는 경우, 입력 데이터에 대응되는 제1 브랜치 노드 룰의 결과값을 리턴할 뿐 아니라, 입력 데이터의 변동 시나리오를 가정하여 그에 대응되는 제2 브랜치 노드 룰의 결과값을 예상 결과값으로 추가적으로 리턴할 수 있다.
전술한 디폴트값 실행 기능과 더불어, "추천 제공 받음"이라는 기능 버튼이 추가로 구비되고, 사용자가 "추천 제공 받음"에 체크를 하는 경우, 프로세서(130)는 현재 입력 데이터에 대응되어 결과값을 리턴할 브랜치 노드 룰이 없는 경우에도(분기 조건에 맞는 브랜치 노드 룰이 없는 상황과는 상이함, 본 경우는 분기 조건에 맞는 브랜치 노드 룰은 있으나, 입력 데이터에 포함되는 정보가 브랜치 노드 룰의 조건부를 만족하지 않아 리턴값이 없는 경우를 말함), 입력 데이터에 포함되는 정보의 변동 가능성에 따라 가중치를 부여하여 예상 시나리오를 생성하고, 입력 데이터에 포함되는 정보의 변동 및 예상 시나리오에 따라, 특정 브랜치 노드 룰의 경우 출력되는 결과값을 예상 결과값으로 리턴한다.
예를 들어 브랜치 노드 룰 리스트에는 prod1 내지 prod10과 관련한 서브 룰이 저장되어 있고, 이들 서브 룰의 조건부에는 나이가 20세~30세, 30~40세, 40~50세의 범위형이 포함되어 있는 경우를 가정하고, 입력 데이터의 나이 정보가 18세, 성별 정보가 남성임을 가정한다. 또한, prod1 내지 prod5는 남성 전용 상품, prod6 내지 prod10은 여성 전용 상품임을 가정한다.
프로세서(130)는 입력 데이터에 포함된 상품 코드가 어떤 값이 들어오던지, 입력 데이터에 포함된 나이 정보에 따라, prod1 내지 prod10에 의한 결과값 리턴이 없음을 확인한다.
이 경우, 프로세서(130)는 입력 데이터에 포함된 "나이", "성별" 정보 중 변동 가능한 항목인 "나이"를 고려하여, 2년 후의 예상 결과값을 prod 1 내지 prod5를 통해 산출하여 리턴하며, 관련 설명을 함께 제공한다(현 시점에서는 결과값이 없으나, 2년 후에는 prod1에 의할 경우 2%, prod2에 의할 경우 2.2%, ??prod 5에 의할 경우 1.7%가 제공됨을 관련 설명으로 제공함).
"성별"은 변동 가능성이 적으므로, prod6 내지 prod10을 이용한 예상 결과값 리턴 과정은 수행되지 않는다.
루프 룰은 반복처리하기 수행하기 위한 룰이며, 도 15 내지 도 17은 루프 룰의 정의, 실행 방식, 항목의 스코프를 도시한다.
루프 룰은 반복 처리를 하기 위해 사용되는 데이터(하위 룰에 전달할 항목, 값이 변하는 항목 및 항목별 금액이 어레이로 들어감) 및 반복 수행되어야 할 부분(루프 룰의 리턴 항목)으로 나뉘어 진다.
루프 룰은 반복 처리를 수행하기 위한 룰이므로, 결과값의 리턴 형식은 다중값으로 설정된다.
도 15를 참조하면, 급여 항목과 급여 금액이 리턴 항목으로 정의된다.
도 16을 참조하면, 어플리케이션에서 룰로 전달되는 입력 항목에는 급여 항목별로 기본급, 야근수당, 특근수당, 가족수당, 복지수당이 기입되며, 항목별 급여 금액이 정의되어, 루프를 수행하는 횟수에 따라 항목에 전달된다.
급여 항목은 데이터 사이즈가 5이므로, 1~5번째 루프가 실행되어 5개의 결과값이 출력된다.
프로세서(130)는 급여금액 가공이라는 서브룰을 실행하여, 챔피언 보너스 및 챌린지 보너스를 고려하여 리턴값을 출력한다.
프로세서(130)는 입력 항목값과 임시 항목값을 고려하여 루프 룰을 실행하고, 리턴값을 출력한다.
입력 항목은 어플리케이션으로부터 값을 전달 받기 위해 정의된 항목이고, 임시 항목은 하위 룰 범주에서만 사용하기 위해 정의한 항목이다.
야근 수당일 경우 챌린지 보너스 10%를 부여하는 것으로 설정된 경우, 기본 야근 수당 45만원에 챌린지 보너스 4만5천원이 부가된 49만5천원이 야근수당의 리턴값으로 출력된다.
프로세서(130)는 각 급여항목 별 하위룰을 적용하여 각 급여항목의 리턴값을 출력하는 것이 가능하고, 각 급여항목에 공통적으로 적용되는 하위룰을 적용하여 전체 급여항목의 리턴값을 출력하는 것이 가능하다.
프로세서(130)는 특정 입력항목에 대한 하위 룰에 대해 조건식을 설정하여, 예컨대 특근 수당이 기설정 값 이상인 경우(예: 60만원), 챌린지 보너스에 적용되는 임시 항목값을 10%에서 15%로 상향 조정하여 최종 리턴값을 출력한다.
프로세서(130)는 입력부와 리턴부의 항목을 고려하여, 루프 반복에도 변하지 않는 값을 입력 및 리턴 과정의 고려 대상에서 제외시키고, 루프 룰이 적용되는 급여항목 및 급여금액에 대하여 서브 룰을 실행하여 리턴값을 출력한다.
비즈니스 룰(Business Rule)이란 업무 처리 프로세스 중에서, 사용자가 쉽게 정의하고 적용할 수 있는 업무에 대한 원칙, 규정, 기준, 가이드라인, 노하우 등을 의미한다. 테이블 룰은 조건에 만족할 경우 해당 룰을 실행하는 테이블 형태의 룰이고, 조건과 결과에 대한 단순한 형태의 스프레드 쉬트 유저 인터페이스를 가지고 있어, 다양한 형태의 비정형적인 조건 처리에 유용하며, 다수의 조건에 의해 결과가 선택되는 구조를 표현하는데 효과적인 룰 템플릿이다. 룰은 항목을 입력 받고 리턴을 출력하며, 룰 정보 및 룰 내용을 포함한다. 룰 내용은 조건부(True/False를 판단하는 표현식)와 결과부(결과값을 만들어내는 표현식)로 구성된다. 테이블 룰의 UI는 결과부 및 조건부를 포함하여 구성되는데, 결과부에는 임의의 조건을 만족할 시 리턴되는 결과값들이 배열되고, 조건부에는 임의의 결과값을 리턴받기 위해 만족해야 하는 조건들이 배열된다. 조건부에서 각 조건들의 세로 배열은 OR조건이 되고, 가로 배열은 AND 조건이 된다. 룰을 정의할 때, 작성하고자 하는 룰의 결과의 수가 반드시 1개가 리턴되어야 하는 룰인지, 또는 결과가 없거나 여러 개의 결과가 리턴될 수 있는 룰인지 정의하며, 일부 룰 템플릿(예: 루프 룰)은 그 성격상 리턴 형식이 다중 값으로 고정된다. 작성하고자 하는 룰의 결과가 반드시 하나의 결과값을 리턴하는 경우, 단일 값이 리턴 형식으로 선택되고, 작성하고자 하는 룰의 결과가 없을 수도 있거나, 또는 여러 개의 결과값을 리턴할 수 있는 경우, 다중 값이 리턴 형식으로 선택된다. 단일 값이 리턴 형식으로 선택된 경우, 룰 실행 시 결과가 없거나 생성된 결과값이 복수 개의 행일 경우 에러가 발생한다. 단일 값이 리턴 형식으로 선택된 경우, 최초의 조건을 만족하면 하나의 값을 리턴값으로 보내고, 다중 값이 리턴 형식으로 선택된 경우, 최초의 조건을 만족하더라도 마지막 행까지 조회를 수행한다. 룰 작성 시에는 작성하고자 하는 규칙의 성격을 고려하여 룰 템플릿을 사용한다.
작성된 룰을 분류하여 체계적으로 관리하기 위해 폴더를 사용한다. 폴더는 계층적 구조를 가지고 있으며, 계층 레벨이 깊어질수록 세분화된 분류를 의마한다. 최상위 폴더는 폴더 계층 구조에서 가장 위에 위치하는 폴더이고, 하위 폴더는 최상위 폴더 아래 위치하는 모든 폴더로서, 현재 폴더를 기준으로 한 상대적 개념의 용어이다. 폴더의 속성 중 ID는 룰 시스템 내부에서 사용하는 유니크한 식별자이고, 폴더 생성 시 자동 부여된다. 폴더의 속성 중 이름은 업무 분류에 따른 업무 이름 또는 하위에서 관리하는 룰들을 대표할 수 있는 업무 용어로 정의되며, 같은 계층 레벨에서 중복되지 않도록 정의된다.
룰 템플릿에는 테이블 룰, 플로우 룰, DB 룰, 브랜치 룰, 루프 룰, 디시전 테이블 룰, 데이터 룰 및 콜백 룰이 포함된다. 테이블 룰은 Excel과 동일한 UI 를 사용하며, 조건에 만족할 경우 해당 룰(행)을 실행하는 테이블 형태의 룰이다. 플로우 룰은 플로우 차트를 이용하여 업무의 흐름을 표현하는 룰 표현 방법으로, 각각의 노드는 하나의 프로세스를 나타내고 조건의 True, False 값에 따라 분기하여 룰을 구성하며, 하나의 프로세스에서 다른 프로세스를 콜(Call) 하는 방식의 구성이다. DB 룰은 DB SQL문을 이용하여 DB 테이블 값을 연계한 룰 작성이 가능하고, SQL문장 오류 발생 시 해당 룰 실행 시 오류 부분을 자동 표시한다. 브랜치 룰은 입력 항목 값에 의해 특정 룰로 분기하여 실행한다. 루프 룰은 입력된 값의 개수만큼 반복 수행 하는 룰이다. 디시전 테이블 룰은 내부 테이블 정의를 통해 기준 값을 저장 관리하고 값 참조에 의해 해당 룰을 실행한다. 데이터 룰은 물리적인 테이블을 논리적 관점으로 재정의하고 칼럼을 대상으로 룰을 실행하여 해당되는 로우의 칼럼 값을 리턴한다. 콜백 룰은 기존 프로그램과 통신하여 결과에 따라 실행하고, 프로그램의 재활용성 향상을 위한 룰이다.
룰 템플릿 유형
도 18에 도시된 룰 추가 윈도우에서 룰 이름과 룰 템플릿, 리턴 형식, 룰 리턴을 구성하는 리턴 항목 등의 룰 정보를 등록함으로써, 하나의 룰이 정의된다.
식별자로 룰 코드, 룰 이름, 룰 별칭이 정의되고, 이들은 룰 시스템 내에서 유일한 값으로 존재한다.
어플리케이션과의 인터페이스에는 룰 코드, 룰 이름, 룰 별칭을 식별자로 사용할 수 있으나, 기타의 룰 호출식을 포함한 모든 룰 표현식에서는 룰 이름을 사용하며, EXECRULE 함수 등 일부 함수는 룰 코드 사용이 가능하다.
룰의 내용은 선택된 해당 템플릿의 편집 영역에 룰 표현식을 기술함으로써 작성된다.
이하에서는 룰 템플릿 유형별로 지정 가능한 리턴 형식과 실행 모드, 룰 표현식이 사용되는 위치, 사용 가능한 룰 표현식의 데이터 형식 및 데이터 타입에 대해 설명한다.
테이블 룰
도 19은 도 18에 도시한 룰 추가 윈도우에서, 룰 템플릿 유형을 테이블 룰로 선택했을 때 나타나는 룰 편집 영역으로, 3개의 리턴 항목이 정의된 것을 도시한다.
템플릿 용법으로, 조건 영역의 동일한 행에 있는 각 셀의 룰 표현식의 실행 결과를 "AND" 연산하여, 만족(참, True)하는 행에 대해 동일한 행에 있는 리턴 영역의 각 룰 표현식을 실행하고, 해당 실행 결과를 각 리턴 항목에 대응시켜 룰의 리턴으로 반환한다.
조건 영역과 리턴 영역 각 셀의 실행 순서는 위쪽에서 아래쪽, 왼쪽에서 오른쪽으로 차례대로 진행된다.
지정 가능한 리턴 형식과 실행 모드로, 단일 값 형식은 만족하는 첫 번째 조건 행에 대응하는, 리턴 영역의 룰 표현식을 실행한다. 항상 만족하는 1개의 조건 행이 있어야 하며, 그렇지 않을 경우 실행 에러가 발생한다. 룰 리턴 영역의 룰 표현식의 결과값은 단일 값 형식이어야 하고, 그렇지 않을 경우 문법 오류가 발생한다.
다중 값 형식("모든 만족 조건 실행" 지정)은 만족하는 모든 조건 행에 대응하는, 리턴 영역의 룰 표현식을 실행한다. 만족하는 조건이 없다면 빈 행을 반환한다. 룰 리턴은 다중값 형식을 가지며, 만족하는 조건 행에 대응하는 리턴 영역 행의 룰 표현식의 실행 결과가 순차적으로 룰 리턴의 행으로 추가된다(Append).
다중 값 형식("모든 만족 조건 실행" 미지정)은 만족하는 첫 번째 조건 행에 대응하는, 리턴 영역의 룰 표현식을 실행한다. 만족하는 조건이 없다면 빈 행을 반환한다. 룰 리턴은 다중값 형식을 가지며, 만족하는 조건 행에 대응하는 리턴 영역 행의 룰 표현식의 실행 결과가 룰 리턴이 된다.
기본형과 결합형의 구분은 리턴 항목의 개수에 의해 결정된다.
리턴 항목의 데이터 타입은 문자형과 숫자형, 논리형이 사용 가능하다.
룰 표현식 용법과 관련하여, 리턴 영역의 룰 표현식은 리턴 영역에서의 룰 표현식 작성 규칙을 준수하는 모든 룰 표현식의 사용이 가능하다. 조건 영역의 룰 표현식은 실행 결과가 기본형 단일 값 형식의 논리형인 룰 표현식 사용이 가능하고, 룰 표현식이 비교 연산식인 경우, 피연산자는 각각의 연산자가 지원하는 데이터 형식과 데이터 타입을 준수하여야 한다.
테이블 룰에서 조건 처리는 조건 영역의 위에서부터 아래로 순차적으로 처리된다.
실행 모드로 "모든 만족 조건 실행"을 지정하지 않은 경우, 만족하는 첫 번째 조건 행에 대응하는 리턴 영역의 룰 표현식의 실행 결과가 룰 리턴이 되므로, 만족 빈도가 높은 조건 순으로 위에서 아래로 기술한다.
조건 영역이나 리턴 영역 내 룰 표현식에 공통화할 룰 표현식이 많다면, 룰 분해를 통해 별도의 룰로 작성함으로써, 룰 결과 캐시를 이용함에 따라 성능이 향상된다.
하나의 조건 행에서는 실행 부하가 적고 False로 판단될 경우가 많은 조건을 앞쪽(왼쪽)에 기술하고, 실행 부하가 큰 조건은 뒤쪽(오른쪽)에 위치 시킨다.
조건 영역의 셀 내에 다수의 "OR"를 사용한 룰 표현식 작성 시, 만족 빈도가 높은 조건문을 앞에 기술한다.
조건 영역의 비교값이 상수이고, 디시전 테이블 룰로 표현이 가능한 규칙인 경우 디시전 테이블로 표현한다.
기설정 수의 행(예: 100행)을 넘기지 않도록 작성하며, 이보다 큰 경우 룰 분해를 수행한다.
행이 많은 경우, 룰 분해를 통해 최소의 조건 비교가 이루어지는 형태로 구성한다.
리턴 형식이 단일 값 형식인 경우, 만족하는 조건이 없는 경우에 대해 적절한 에러 처리를 하는 조건 행을 작성하여, 실행 에러 발생 시 디버깅이 용이하다.
모든 룰은 가능하다면 성능에 유리한 방향으로 작성하는 것이 좋으나, 기타 유지보수의 신속성을 위한 가독성 등에 대한 고려도 중요하다.
룰 편집(룰 템플릿)
본 발명의 실시예에 따르면, 각각의 룰을 사용자가 쉽고 편리하게 구현하게 하기 위해 서로 다른 형식을 갖는 다양한 룰 템플릿을 제공한다.
룰 추가 윈도우를 통한 룰 정의 시, 구현 요건에 적합한 룰 템플릿을 선택하고, 선택한 룰 템플릿의 편집 영역에 룰 표현식(룰 문법)을 기술함으로써 룰을 구현한다.
룰 템플릿의 편집 영역에 룰 표현식을 기술하는 것을 룰 편집(작성)이라고 한다.
룰 편집이 이루어지는 룰 템플릿에 대한 영역 구성과, 룰 편집 시 도움 기능, 룰 편집 공통 기능, 그리고 각 룰 템플릿 유형별 사용 방법에 대해 설명한다.
룰 템플릿 구성
룰 편집 영역은 도 20에 도시한 바와 같이, 룰 탭, 룰 템플릿(룰 템플릿 메뉴와 룰 내용 편집 영역을 통칭), 셀 편집 영역, 사용 항목 리스트, 참조값 리스트의 영역으로 구성된다.
룰 편집 영역의 구성과, 룰 템플릿 메뉴 및 룰 내용 편집 영역은 룰 템플릿 유형별로 다르게 표시될 수 있다.
룰 템플릿 영역 구성의 표시 항목 및 설명은 아래 [표 1]과 같다.
셀 편집 영역
도 21은 테이블 룰, 루프 룰 등 셀 편집 영역이 나타나는 룰 템플릿에서, 선택된 셀(플로우 룰의 경우 노드)의 내용을 표시한다.
룰 내용 편집 영역의 셀에 직접 편집하거나, 해당 셀을 선택하고 셀 편집 영역에서 편집할 수 있으며, 각각의 편집 사항은 동기화되어 표시된다.
룰 문법 구성 요소에 대해 문법 강조(Syntax highlighting) 기능을 지원한다.
셀 편집 영역의 표시 항목 및 그에 대한 설명은 아래 [표 2]와 같다.
룰 대상 메뉴는, 룰 호출식 구문 내 커서를 위치한 상태 또는 룰 호출식을 포함하는 문장을 포함하여 드래그한 상태(하이라이트)에서 선택한다.
하이라이트된 문장에 2개 이상의 룰 호출식이 포함된 경우, 룰 선택 창이 표시되고, 룰 선택 창에서 선택한 룰에 대해 기능이 실행된다.
항목 대상 메뉴는, 항목의 이름 내에 커서를 위치시킨 상태 또는 1개 항목 이름만을 드래그한 상태(하이라이트)에서 선택한다.
하이라이트된 문장에 2개 이상의 항목이 포함되거나 항목 이름이 아닌 문자가 포함된 경우 기능이 수행되지 않는다.
사용 항목 리스트
도 22를 참조하면, 활성화된 룰 내에 사용되고 있는 항목을 자동 표시한다.
룰 내에서 미사용(제거)되는 경우에는 리스트에서 자동으로 제거되어 표시되지 않는다.
사용 중인 항목을 제거하는 경우, 룰 저장 시 복원되어 다시 표시된다.
활성화된 룰이 메인 룰일 경우, 하위의 룰이 사용하는 항목을 검색하고 추가하거나 현재는 사용하지 않은 항목을 추가하여 관리/참조할 수 있다.
표시된 항목을 선택하고 룰 템플릿 셀 또는 셀 편집 영역으로 드래그 앤 드롭하여 룰 표현식에 삽입할 수 있다.
사용 항목 리스트의 표시 항목 및 그 설명은 아래 [표 3]과 같다.
사용 항목 추가/제거
도 23에 도시한 사용 항목 관리 윈도우를 통해, 활성화된 룰의 사용 항목 리스트에 사용 항목을 추가하거나, 제거한다.
사용 항목 관리 윈도우의 표시 항목 및 그 설명은 아래 [표 4]와 같다.
리스트의 사용 항목 관리 아이콘 또는 팝업 메뉴의 사용 항목 관리 메뉴를 선택하면, 위와 같은 사용 항목 관리 윈도우가 표시된다.
항목 찾기를 통해 항목을 찾고, 추가하고자 하는 항목을 더블 클릭하거나, 항목을 선택하고 우측 방향 화살표를 선택하면 항목 리스트에 추가된다.
우측의 사용 항목 리스트에서 제거할 항목을 선택하고 좌측 방향 화살표를 선택하면 항목 리스트에서 제거된다.
사용 항목에 대해 배열/설명 등이 변경된 경우, 룰은 변경 상태가 되고, 룰을 저장해야 해당 정보가 유지된다.
하위룰의 사용 항목 참조 시 설명/배열을 체크하는 경우, 하위룰의 사용 항목에 설명이 등록되어 있으면 해당 설명을 읽어 표시하고, 등록되어 있지 않으면 항목 관리에 등록된 항목의 설명을 읽어 표시한다.
동일한 항목에 대해 하위룰간 설명이 다른 경우, 임의의 사용 항목의 설명이 표시된다.
하위룰의 사용 항목에 배열 크기 값이 등록되어 있는 경우, 가장 큰 배열 크기 값을 읽어 표시하고, 등록되어 있지 않은 경우 디폴트 값으로 1을 표시한다.
하위룰 사용 항목 참조 시 설명/배열을 체크하지 않은 경우, 하위룰이 사용하는 항목을 표시하고, 설명은 참조하지 않으며, 배열 크기 값은 디폴트 값으로 1을 표시한다.
이전 등록된 설명과 배열 크기 값이 있는 경우 그대로 유지한다.
사용 항목의 배열/설명 관리
도 23에서 배열/설명 버튼을 선택하면, 도 24와 같이 사용 항목의 배열 크기와 설명을 관리하는 항목 배열 윈도우가 표시된다.
설명은 여러 사용자가 참조하기 위한 참조 정보이며, 배열의 값은 룰 테스트 윈도우에서 테스트 데이터 등록 시에 디폴트 배열 개수 제한의 값으로 사용된다.
항목의 배열 크기와 설명은 룰 시스템의 항목이 아닌, 룰 단위의 사용 항목에 대해 관리된다.
항목의 배열 크기와 설명은, 사용 항목 관리 윈도우의 확인 버튼 선택 시 적용된다.
참조값 리스트
항목 관리에서 등록한, 항목의 참조값을 표시한다.
사용 항목 리스트의 참조값 리스트 표시 아이콘을 선택하면, 항목의 선택이나 참조값 등록 여부와 관계없이 도 25에 도시한 바와 같은 참조값 리스트가 표시된다.
셀 편집 영역 또는 사용 항목 리스트에서 항목을 선택하고 팝업 메뉴의 참조값 메뉴를 선택하면, 해당 항목에 대해 참조값이 등록된 경우에 도 25에 도시한 바와 같이 참조값이 표시된다.
최초 참조값이 조회된 이후에 해당 룰이 열려 있는 동안에 변경된 참조값은 참조값 리스트에 반영되지 않는다.
변경된 최신의 참조값을 조회하기 위해서는 [표 5]와 같이 "참조값 다시 조회" 메뉴를 선택하여야 한다.
참조값 리스트의 각 참조값을 선택하고 드래그 앤 드롭을 통해 룰 템플릿 영역의 룰 내용에 삽입한다. 도 26은 도 25에 도시한 참조값 리스트에서 "04 진단비"를 삽입하는 경우의 예시이다.
참조값의 룰 내용 삽입에서, 삽입되는 값은 "코드" 형태이다.
참조값의 이름은 룰 내용이 표시될 때 참조로 표시되는 것이고, 실제 룰 내용으로 저장되는 것은 코드이다.
직접 입력하는 경우에는 코드로 입력해야 하며, "(코드)이름" 형태의 입력은 허용되지 않는다.
문법 강조
도 27에 도시한 문법 강조에서는, 셀 편집 영역에서 문법 강조 기능은 {룰}, [항목], "문자열", 내장 함수 등에 적용된다.
룰 구분자 {룰} 내부에 [항목]이나 "문자열" 등이 사용된 경우는 [항목]이나 "문자열" 등의 문법 강조 기능은 적용되지 않는다.
룰 구분자 {룰1} 내부에 다른 룰 {룰2}가 사용된 경우, {룰2} 다음에는 [항목]이나 "문자열" 등의 문법 강조 기능은 적용된다.
룰 내용 편집 도움 기능
본 발명의 실시예에 따르면, 다양한 룰 편집 도움 기능을 제공하며, 지원되는 룰 편집 도움 기능은 룰 템플릿 유형에 따라 다를 수 있다.
아래 [표 6]은 룰 편집 도움 기능이다.
문법 자동 완성 기능
룰 편집 영역에서 룰 표현식 작성 시, 문자열 입력과 Ctrl + Space 사용을 통해 룰 이름 및 함수 등 다양한 룰 표현식의 구성 요소의 자동 완성 입력이 가능하다.
아래 [표 7]은 문법 자동 완성 기능과 관련하여, 위치, 대상, 입력 상태 및 설명을 나타낸다.
열 채우기
도 28은 열 채우기 윈도우를 도시하며, 테이블 룰과 디시전 테이블 룰의 1개 열의 복수 행에 대해, 숫자와 숫자 앞뒤에 붙일 문자열을 지정하여 이들의 조합된 값으로 일괄적으로 채운다.
열 헤드 또는, 값을 채우고자 하는 열의 셀에서 팝업 메뉴의 열 채우기 메뉴를 선택한다.
[표 8]은 열 채우기 윈도우의 표시 항목 및 그 설명을 나타낸다.
도 28에 도시한 조건으로 실행한 경우, 1행 내지 5행에 채워지는 값은 도 29와 같다. 지정한 자릿수보다 작은 자릿수의 숫자는 앞 부분에 0이 채워지고, 지정한 자릿수보다 큰 자릿수의 숫자는 0 없이 표시된다.
문자열 변환
도 30은 문자열 변환 윈도우를 도시하며, 테이블 룰, 디시전 테이블 룰, 루프 룰, 콜백 룰, DB 룰의 리턴 항목, 브랜치 룰의 리턴 항목에서, 선택한 복수의 셀의 값 들을 지정 조건에 따라 일괄 치환한다.
마우스 드래그, 또는 시작 셀 선택 후 Shift 키 + 화살표를 이용하여 셀 범위를 지정하고, 팝업 메뉴의 문자열 변환 메뉴를 선택한다.
아래 [표 9]는 문자열 변환 윈도우의 표시 항목 및 설명을 나타낸다.
도 31의 좌측의 열 내용을 선택하여, 도 30에 도시한 조건으로 실행했을 경우 변경된 값은 도 31의 우측과 같다.
룰 내용 찾기/바꾸기, 리턴 항목 찾기
룰 템플릿의 내용을 대상으로 지정한 조건으로 내용을 찾거나, 지정한 조건으로 내용을 찾고 다른 내용으로 치환한다.
내용 찾기
도 32은 찾기 윈도우를 도시하며, 활성화된 룰을 대상으로 찾는 조건을 지정하여, 해당 내용이 있는 위치를 찾는다.
내용 찾기는 테이블 룰, 디시전 테이블 룰, 데이터 룰, 루프 룰, 콜백 룰의 셀과 DB 룰의 SQL 내용, 플로우 룰의 노드/연결선, DB 룰의 리턴 항목, 브랜치 룰의 리턴 항목을 대상으로 한다.
플로우 룰인 경우 내용 찾기 윈도우에서 내용 바꾸기 기능도 수행한다.
테이블 룰의 룰 내용 편집 영역에서, 또는 내용 찾기 할 셀 범위를 지정(마우스 드래그 또는 Shift 키 + 화살표 이용)한 후, 팝업 메뉴의 내용 찾기 메뉴를 선택한다.
[표 10]은 찾기 윈도우의 표시 항목 및 그 설명을 나타낸다.
도 33에 도시한 바와 같이, DB 룰의 SQL 영역에서, 팝업 메뉴의 내용 찾기 메뉴를 선택한다.
단어 단위로 표시 항목은 단어 단위로 일치하는 내용을 찾는 것이다.
도 34에 도시한 바와 같이, 플로우 룰에서, 팝업 메뉴의 내용 찾기 메뉴를 선택한다.
노드와 연결선에 기술된 내용 및 설명을 대상으로 찾고, 그 결과가 리스트 형태로 표현된다.
리스트에서 바꾸기 할 대상을 선택하고 바꾸기를 하면 해당 대상만 바꿀 내용으로 바뀌고, 특정 행을 더블 클릭하면 해당 노드 또는 연결선이 캔버스의 중앙에 표시된다.
내용 바꾸기
도 35는 내용 바꾸기 윈도우를 도시하고, 룰 편집 영역의 룰의 내용을 대상으로, 특정 문자열을 찾아 다른 문자열로 일괄 치환한다.
내용 바꾸기는 테이블 룰, 디시전 테이블 룰, 루프 룰, 콜백 룰의 셀과 DB 룰의 SQL 내용, DB 룰의 리턴 항목, 브랜치 룰의 리턴 항목을 대상으로 한다.
테이블 룰의 룰 내용 편집 영역에서, 또는 내용 찾기 할 셀 범위를 지정(마우스 Drag 또는 Shift 키 + 화살표 이용)한 후, 팝업 메뉴의 내용 바꾸기 메뉴를 선택한다.
내용 바꾸기 윈도우의 표시 항목 및 그 설명은 [표 11]과 같다.
도 36은 DB룰의 바꾸기 윈도우를 도시하며, DB 룰의 SQL 영역에서, 팝업 메뉴의 내용 바꾸기 메뉴를 선택한다.
처음부터 바꾸기 항목은 SQL 첫 라인부터 바꾸기를 실행하는 것이다.
열린 모든 동일 템플릿의 룰 옵션은 테이블 룰, 디시전 테이블 룰, DB 룰인 경우에만 지원한다
리턴 항목 찾기
도 37은 리턴 항목 찾기 윈도우를 도시하고, 룰 편집 영역에서 리턴 항목을 표시하는 헤더를 대상으로, 리턴 항목을 검색하여 해당 리턴 항목의 첫 번째 행으로 포커스를 이동한다
리턴 항목 찾기는 테이블 룰, 디시전 테이블 룰, 데이터 룰, 루프 룰의 리턴 항목, 콜백 룰의 어플리케이션에서 전달받을 리턴 항목, DB 룰의 리턴 항목, 브랜치 룰의 리턴 항목, 룰 실행경로의 결과 리스트, 다중 테스트의 결과 영역을 대상으로 한다.
디시전 테이블 룰, 데이터 룰에서 리턴 선택이 여러 개인 경우 첫 번째 리턴 선택만을 대상으로 한다.
룰 내용 잘라내기/복사/붙여넣기
Hoy-Key 또는 팝업 메뉴의 잘라내기/복사/붙여넣기 메뉴를 통해 룰 템플릿 간, 룰 템플릿과 Excel 간에 룰 내용 잘라내기/복사/붙여넣기를 수행한다.
셀 형태에서는 복수의 선택 셀을 대상으로 동일한 형태의 셀에 붙여넣기를 할 수 있고, 기타 단일 입력 영역 간에도 붙여넣기가 가능하다.
참조값 표시
테이블 룰과 디시전 테이블 룰에 대해, 참조값이 등록된 항목의 값을 "(코드)이름" 형태로 표시할 수 있다.
이는 리턴 항목 이름을 참조값이 등록된 항목의 이름과 동일하게 부여하고, 리턴 항목 열의 셀에 상수 형태의 코드가 기술된 경우, 디시전 테이블 룰에 대해, 조건식에 참조값이 등록된 항목이 단독 사용되고, 해당 열의 비교값 셀에 상수 형태의 코드가 기술된 경우, 테이블 룰에서 항목에 참조값이 등록되어 있고 조건에 [항목] 연산자 상수 형태로 기술된 경우, 리턴 항목과 조건 영역의 항목에 대해 지원된다.
도 38 및 도 39는 참조값 표시에 대해 도시한다.
“참조값 표시"가 선택된 상태에서는 룰 내용의 편집이 허용되지 않는다.
존재하지 않는 참조값 코드인 경우 "(코드)이름" 형태로 변환되지 않으며 별도의 색깔(예: 빨간색)으로 표시된다.
테이블 룰의 조건에 참조값이 array로 사용된 경우 array 값에 항목이 사용되면 항목 이후부터는 "(코드)이름" 형태로 변환되지 않는다.
예를 들어, [항목1] = (1, 2, [항목2], 3)인 경우 [항목2] 이후인 3부터는 변환을 하지 않는다.
도 38의 좌측은 "참조값 표시" 선택을 하지 않았을 경우의 디시전 테이블 룰의 리턴/조건 영역의 표시이고, 우측은 선택 후 리턴/조건 영역의 표시인데, 좌측에서 코드로만 표시되었던 참조값이 우측에서 (코드)이름 형태로 표시된다.
SQL 도구
도 40은 SQL 도구 윈도우를 도시하며, SQL 도구를 통해 업무 DB의 데이터를 조회할 수 있다.
DB 룰에 기술하는 SQL의 적정성 등을 미리 파악하는 용도로 사용할 수 있으며, 조회(Select)만 가능하다.
SQL 도구 윈도우의 표시 항목 및 그에 대한 설명은 [표 12]와 같다.
DB 접속 정보 정의는 룰 빌더 서버의 설정에서 이루어지며, 설정은 해당 작업 담당자에게 요청한다.
SQL문 구분자는 ;(Semicolon)으로, SQL문에 Semicolon을 사용하는 경우 \;로 사용한다.
룰 편집 공통 기능
룰 편집 시 문법 에러 리스트, 룰 저장 시 변경 사유 등록, 셀 메모 기능, 셀 내 복수 텍스트 라인 입력, 편집 취소, 편집 관련 Hot-Key에 대한 기능 활용이 가능하다.
이러한 룰 편집 공통 기능은 룰 템플릿 유형에 따라 다르게 제공될 수 있다.
문법 에러 리스트
도 41은 문법 에러 리스트를 도시한다.
문법 에러 리스트에 표시된 에러 내역 행을 선택하면, 해당 에러가 발생한 편집 영역의 위치로 커서가 이동한다.
룰 저장 시 문법 에러가 있는 경우 저장 여부 메시지를 표시하는데, "Y"를 선택하는 경우 에러 내역의 표시와 함께 저장(에러 룰)되고, "N"를 선택하는 경우 에러 내역만 표시하고 저장되지 않는다(관리자 환경 설정에서 "BO.RULE.SAVE.ERROR"가 "Y"인 경우).
문법 에러가 있는 룰은 저장은 되지만 룰 테스트 및 룰 이관을 할 수 없다.
룰 저장 시 변경 사유 등록
룰 내용 변경 후 룰 저장 시, 변경 사유를 등록할 수 있고, 도 42는 변경 사유 등록 윈도우를 도시한다.
이는 관리자 환경 설정에서 "BO.RULE.SAVE.COMMENT"가 "Y"인 경우에만 표시된다.
셀 메모 기능
도 43은 셀 메모 기능에 대해 도시한다.
테이블 룰과 디시전 테이블 룰의 셀에, 메모 등록이 가능하다.
룰 템플릿 팝업 메뉴에서 메모 삽입/삭제 메뉴 선택 후, 해당 셀에 커서가 위치한 상태에서 메모가 표시되면 편집(등록/수정)이 가능하다.
메모가 등록된 셀을 선택하고, 팝업 메뉴의 메모 삽입/삭제 메뉴를 선택하면 삭제된다.
팝업 메뉴의 메모 찾아가기 메뉴를 선택하면, 메모가 등록된 셀을 순차적으로 표시한다.
해당 메뉴를 선택할 때마다 현재 선택된 셀 위치에서 행(아래 방향) 우선, 다음 열(우측 방향)로 메모가 삽입된 셀로 커서가 이동된다.
메모가 등록된 셀은 도 44에 도시된 바와 같이, 셀 상단 우측에 삼각형 마크가 표시된다.
편집 취소
Ctrl + z 키를 사용하여, 작성한 내용을 역순으로 취소할 수 있다.
셀 병합/분할, 메모 삽입/삭제는 편집 취소를 지원하지 않고, 행/열 이동, 정렬, 디시전 테이블 룰의 조건 추가/삭제 등이 실행된 경우는 편집 히스토리가 삭제 되어 기존에 실행된 동작을 편집 취소할 수 없다.
편집 관련 Hot-Key
셀 편집 방식의 템플릿들에 대해서, 편집 영역에 [표 13]과 같은 Hot-Key를 지원한다.
룰 템플릿 공통사항
룰 탭
도 45는 룰 탭 및 룰 탭 팝업 메뉴를 도시하고, 룰 탭 영역의 각 룰 탭을 선택하여, 해당 룰의 내용을 표시한다.
룰 탭은 룰 템플릿 유형을 의미하는 아이콘과, 현재 표시되는 룰이 속한 룰 시스템, 룰 이름 및 버전 일자, 해당 룰 닫기 버튼 및 아래 룰 탭 팝업 메뉴로 구성되어 있다.
룰 템플릿 메뉴
도 46은 룰 템플릿 공통 메뉴를 도시한다.
[표 14]는 각 룰 템플릿 유형에 사용되는 공통 기능으로, 각 템플릿의 최 상단에 표시되며, 템플릿 유형에 따라 일부 메뉴가 표시되지 않을 수 있다.
룰 템플릿 영역 팝업 메뉴 표시
각 룰 템플릿 유형에 사용되는 공통 기능으로, 각 템플릿의 최상단에 표시되고, 각 룰 템플릿에서 룰 내용 작성 시 사용하는 팝업 메뉴는, 셀(룰 템플릿에 따라 텍스트 영역 내, 또는 도형 객체 등) 선택 상태에서 마우스 우측 버튼을 선택하여 표시한다.
셀 편집 상태인 경우에는, 룰 작성을 위한 팝업 메뉴가 표시되지 않고 Windows OS의 팝업 메뉴가 표시된다.
룰 내용에 기술된 룰 열기
도 47은 룰 선택 윈도우를 도시한다.
룰 내용에 기술된 룰(하위룰 호출식)을 룰 편집 영역에 표시(열기)할 수 있다.
DB 룰을 제외한 룰 템플릿 유형인 룰에서는, 셀 또는 도형 선택 상태에서 팝업 메뉴의 룰 열기 메뉴를 선택한다.
셀 또는 도형에 2개 이상의 룰 호출식이 있는 경우 도 47과 같은 룰 선택 창이 표시되고, 선택 후 확인 또는 더블 클릭한 룰이 룰 편집 영역에 표시된다.
DB 룰은 하나의 하위룰 호출식 내에 커서를 위치한 상태에서 팝업 메뉴의 룰 열기 메뉴를 선택한다.
복수 개 룰이 포함된 문장을 드래그한 하이라이트 상태에서의 룰 열기는 지원하지 않는다.
메인 메뉴의 하위룰 메뉴와 룰 편집 영역 팝업 메뉴의 룰 열기 차이점은, 전자는 저장된 룰 내용 전체를 대상으로 하고, 후자는 편집 중인 내용을 포함한 선택한 셀 또는 노드 또는 룰 호출식을 대상으로 하는 것이다.
테이블 룰
도 48은 테이블 룰 템플릿을 도시한다.
테이블 룰 템플릿과 관련한 표시 항목 및 그 설명은 [표 15]와 같다.
룰 관리
룰 정보 보기
도 49는 룰-버전 정보 윈도우를 도시한다.
메인 메뉴에서 룰-버전 정보 메뉴 선택을 통해 활성화된 룰 또는 선택한 룰에 대한 룰 정의 정보와, 룰에 정의된 리턴 항목 정보, 룰이 사용하는 항목 정보를 조회할 수 있다.
룰-버전 정보 윈도우의 표시 항목 및 그 설명은 [표 16]과 같다.
관리자 환경 설정에서 룰 정보 저장 및 룰 저장의 저장 이력 관리 여부(BO.HISTORY.RULE)를 등록하도록 설정했을 때 관리되고, 표시되는 정보이다. 최근 1,000건 까지만 조회 가능하다.
리턴 항목
선택한 룰에 정의된 리턴 항목을 표시하며, 도 50은 룰-버전 정보 윈도우의 리턴 항목 정보를 도시한다.
사용 항목
선택한 룰의 모든 버전과 해당 룰의 모든 하위룰의 룰 내용에서 사용하는 항목을 표시하며, 도 51은 룰-버전 정보 윈도우의 사용 항목 정보를 도시한다.
룰-버전 정보 윈도우의 사용 항목 정보의 표시 항목 및 그 설명은 [표 17]과 같다.
룰 정보 변경
룰 정보 변경은 룰 변경 윈도우를 통해 이루어지는데, 버전 일자 초기값과 룰 템플릿 지정이 가능하지 않은 점을 제외하고는 룰 추가 윈도우와 동일하다.
룰 추가 시 등록한 버전 일자 초기값은 버전 변경 윈도우를 통해 수정할 수 있고, 룰 템플릿 유형은 수정할 수 없다.
룰 정보 변경이 이루어질 때, 해당 룰 및 호출 관계에 있는 룰에 대해 룰 문법 준수 여부를 체크한다.
이때, 룰 문법에 위배 사항이 발생하는 경우, 리턴 불일치 메시지가 표시되고, 대상 룰이 리턴 불일치 윈도우에 표시된다.
리턴 형식의 변경이 이루어질 때, 해당 룰과 상위룰들의 리턴 형식간 값 개수 일치 규칙이 만족되지 않는 경우, 상위룰을 에러로 표시한다.
리턴 항목의 추가/삭제 또는 리턴 항목의 데이터 타입 변경이 이루어질 때, 해당 룰과 상위룰들간 리턴 항목 개수 일치나 리턴 항목의 데이터 타입 일치 관련 규칙이 만족되지 않는 경우, 해당 룰과 상위룰을 에러로 표시한다.
브랜치 노드인 룰의 리턴 형식 또는 리턴 항목 정보(개수 및 데이터 타입) 또는 이름이 변경되는 경우, 해당 룰과 해당 룰을 브랜치 노드로 사용하는 브랜치 룰간 리턴 형식과 리턴 항목 정보(개수 및 데이터 타입)가 동일해야 하고, 동일하지 않은 경우에는 브랜치 룰을 에러로 표시한다.
브랜치 노드가 아닌 룰을 브랜치 노드로 지정하는 경우, 해당 룰과 해당 룰의 이름 형식을 분기 조건으로 하는 브랜치 룰간 리턴 형식이나 리턴 항목 정보(개수 및 데이터 타입)가 다르면 브랜치 룰을 에러로 표시한다.
도 52는 에러 리스트를 도시하는 것으로, 리턴 불일치 윈도우에 표시되는 룰들은 내부적으로 에러 룰로 관리된다.
브랜치 노드로 지정되는 경우, 브랜치 룰의 분기 조건에 의해 분기(호출) 관계가 성립되는 브랜치 룰이 존재하는 경우에는 리턴 정보의 체크가 이루어지나, 해당 조건의 브랜치 룰이 없는 경우와 브랜치 노드가 해제된 경우에는 이러한 검증이 이루어지지 않는다.
따라서 브랜치 노드인 룰의 이름은 관계를 갖는 브랜치 룰의 분기 조건을 고려하여 변경하여야 한다.
룰 이름 일괄 변경
도 53은 룰 이름 일괄 변경 윈도우를 도시한다.
선택한 폴더(하위 폴더 포함)내 복수 개 룰의 이름을 대상으로 특정 문자열을 찾아 일괄 치환하거나 룰 이름의 맨 앞과 맨 끝에 문자열을 일괄 추가한다.
룰 이름 일괄 변경 윈도우의 표시 항목 및 그 설명은 [표 18]과 같다.
폴더를 선택하고 메인 메뉴의 룰 이름 일괄 변경 메뉴를 선택한다.
이름을 변경하고자 하는 대상 룰을 선택한다.
문자열 바꾸기나 문자열 추가의 각 표시 항목에 값을 입력하고, 각각 바꾸기 버튼과 추가 버튼을 클릭하여 룰 이름을 변경한 후 확인 버튼을 선택한다.
룰 이름 일괄 변경을 위해서는, 선택한 폴더의 모든 하위 폴더에 대해 폴더 조회 권한 및 룰 관리 권한이 필요하다.
폴더 조회 권한이 없는 경우 룰 이름 일괄 변경 윈도우가 표시되지 않는다.
룰 관리 권한이 없는 룰의 경우 룰 이름 행에 "Y"가 표시되지 않으며, "Y"가 표시되지 않은 룰이 목록에 포함된 경우, 선택과 상관없이 일괄 변경을 수행할 수 없다.
룰 이름 일괄 변경을 통해 변경된 룰 이름이 룰 시스템 내에 이미 존재하는 경우, 이름 변경 대상 룰이 브랜치 노드로 지정된 룰인 경우, 변경된 룰 이름의 형식을 분기 조건으로 가지는 브랜치 룰과 리턴 정보가 다른 경우, 룰 이름 일괄 변경 실행 중 오류가 발생한다.
이름이 변경되는 룰이 브랜치 노드로 정의된 룰인 경우, 변경된 룰 이름의 형식을 분기 조건으로 가지는 브랜치 룰이 존재하지 않을 경우, 변경된 브랜치 노드 룰은 실행될 수 없다.
상위룰 일괄 변경
도 54는 상위룰 일괄 변경 윈도우를 도시한다.
특정 룰을 호출하는 상위룰들의 룰 내용에 기술된 룰 호출식을, 다른 룰을 호출하는 룰 호출식으로 일괄 변경한다.
변경 후, 상위룰 들과 리턴 정보 관련 규칙에 위배 될 때 메시지를 표시하고 변경되지 않는다.
브랜치 노드인 룰은 상위룰의 룰 호출식으로 기술되지 않고, 브랜치 룰의 분기 조건으로 기술되므로 일괄 변경 대상이 되지 않는다.
다만, 해당 룰이 브랜치 룰의 디폴트 리턴 영역에 사용된 경우, 일괄 변경 처리된다.
상위룰 일괄 변경은 상위룰에 대한 룰 편집 권한이 필요하다.
룰 편집 권한이 없는 룰은 도 54에 도시한 상위룰 일괄 변경 윈도우의 상위룰 리스트에 표시되지 않는다.
룰을 선택하고 메인 메뉴의 상위룰 일괄 변경 메뉴를 선택하면, 도 54에 도시한 바와 같은 상위룰 일괄 변경 윈도우가 표시된다.
상위룰 일괄 변경 윈도우의 표시 항목 및 그 설명은 [표 19]와 같다.
룰 선택을 통해 상위룰의 룰 내용에 기술된 룰 호출식에서 선택한 룰을 대체할 룰을 선택한다.
변경하고자 하는 상위룰을 체크하고 확인 버튼을 선택한다.
룰 잘라내기/복사/붙여넣기/이동
룰을 대상으로 하는 잘라내기/복사/붙여넣기, 드래그 앤 드롭을 통해 룰 복사/붙여넣기를 통해 룰 추가, 룰 잘라내기/붙여넣기 또는 룰 드래그 앤 드롭을 통해 특정 폴더에서 다른 폴더로 룰 이동, 룰 드래그 앤 드롭을 통해 동일 폴더 내에서 룰 위치 순서를 변경이 가능하다.
룰 복사/붙여넣기를 통해 룰 추가를 하는 경우, 사용하는 룰 템플릿이 같고, 룰 정보나 룰 내용이 유사한 룰을 복사/붙여넣기하고 룰 내용을 수정함으로써 룰을 신규 등록한다.
룰 잘라내기
룰 잘라내기는 룰을 선택하고, 메인 메뉴 또는 팝업 메뉴에서 룰 잘라내기 메뉴를 선택한다.
룰 잘라내기는 대상 룰이 관리되는 폴더에 대해 룰 관리 권한이 필요하다.
룰 복사
룰 복사는 룰-버전 리스트에서 대상 룰을 선택하고, 메인 메뉴 또는 팝업 메뉴에서 룰 복사 메뉴를 선택한다.
룰 복사는 대상 룰에 대해 룰 내용 조회 권한이 필요하다.
각 룰에 대한 정보 변경 이력과 버전 저장 이력은 복사 대상에서 제외된다.
룰 붙여넣기
룰 잘라내기 또는 룰 복사 후, 붙여 넣을 폴더를 선택하고, 메인 메뉴 또는 팝업 메뉴에서 룰 붙여넣기 메뉴를 선택한다.
룰 붙여넣기는 붙여 넣을 폴더에 대한 룰 관리 권한이 필요하다.
룰 복사/붙여넣기는 룰이 추가되는 것이므로, 룰 식별자를 새로운 이름으로 정의해야 한다.
룰 복사 후 붙여넣기 시에는 도 55에 도시한 바와 같은 룰 복사/붙여넣기 윈도우가 표시된다.
윈도우를 통해 추가되는 룰 사본에 대한 식별자를 변경하고, 최신 버전만 붙여넣기 할 것인지 또는 전체 버전을 붙여넣기 할 것인지를 지정한다.
기타 룰 정보 및 룰 내용 등은 각각 룰 정보 변경과 룰 열기 및 편집을 통해 수행하여야 한다.
문자열 바꾸기 기능과 문자열 추가 기능을 통해 룰 사본의 식별자를 일괄 변경 할 수 있다.
일괄 변경 후, 각 룰 사본에 대해 개별 변경이 가능하다.
버전 일자 일괄 변경 기능을 통해, 최신 버전만 붙여넣기 하는 사본 룰의 버전 일자를 일괄 변경할 수 있다.
일괄 변경 후, 각 룰 사본에 대해 개별 변경이 가능하다.
룰 구분을 변경할 수 있고, 메인 룰인 경우 체크한다.
룰 구분 윈도우에서는 메인 룰(어플리케이션에서 호출하는 룰) 및 로직을 구성할 때, 템플릿 단위로 룰을 만들어서 호출 관계로 구성하게 되는데, 메인 룰은 어플리케이션에서 최초로 호출하게 되는 인터페이스가 되고, 서브 룰은 로직을 구성한다.
“최신 버전만 복사" 열의 "최신"이 체크된 룰 사본은, 버전 일자를 포함하여 원본의 최신 버전 내용만 등록된다.
“변경”을 체크하여 버전 일자를 바꿀 수 있고, 체크하지 않는 경우에는 원본의 최신 버전 일자로 등록된다.
“최신 버전 만 복사" 열의 "최신"이 체크되지 않은 룰 사본은, 버전 일자를 포함하여 원본의 모든 버전 내용이 등록된다.
버전 일자는 "변경"의 체크 여부와 관계없이 원본의 버전 일자로 등록된다.
룰 드래그 앤 드롭
룰 드래그 앤 드롭을 통해 룰을 다른 폴더로 이동하거나, 동일 폴더 내 위치 순서를 변경할 수 있다.
다른 폴더로의 이동은 룰을 선택하고 드래그하여 원하는 폴더 이름 위에 드롭한다.
이동 대상 룰이 관리되는 폴더와 이동할 폴더에 대해 각각 룰 관리 권한이 필요하다.
동일 폴더 내 위치 순서 변경은 이동할 룰을 선택하고 드래그하여 원하는 룰 이름 위에 드롭한다.
동일 폴더 내 룰 위치 순서 변경은, 해당 폴더에 대한 폴더 관리 권한이 필요하다.
순서 변경 시, 드롭 후의 위치는 룰-버전 리스트의 하단에서 상단으로 드래그 앤 드롭하는 경우 해당 룰 앞에 위치하게 된다. 룰-버전 리스트의 상단에서 하단으로 드래그 앤 드롭하는 경우 해당 룰 뒤에 위치하게 된다.
룰 코드/이름 복사/붙여넣기
룰 코드 또는 기호를 포함한 룰 이름 복사를 통해, 룰 내용 편집 시 활용할 수 있다.
룰 코드 복사
룰 코드 복사 대상 룰을 선택하고, 팝업 메뉴에서 룰 코드 복사 메뉴를 선택한다. 선택한 룰 코드는 클립보드에 저장된다.
룰 이름 복사
도 56은 룰 이름 복사를 도시하며, 룰 이름 복사 대상 룰을 선택하고, 팝업 메뉴에서 룰 이름 복사 메뉴의 하위 메뉴 중 원하는 룰 문법 기호를 선택한다. 선택한 룰 이름 및 룰 문법 기호는 클립보드에 저장된다.
{룰 이름} 형태는 룰 호출식 형태이다.
<$ {룰 이름} $>와 <$$ {룰 이름} $$>은 DB 룰의 쿼리 영역에 사용하는 형태이다.
룰 코드/이름 붙여넣기
룰 템플릿 상의 셀이나 기타 룰 문법 기술 위치, 외부 편집기에서 팝업 메뉴의 붙여넣기 메뉴를 선택하면 복사된 내용이 삽입된다.
룰 삭제
룰 시스템에 관리되는 룰은 폴더 또는 룰 또는 룰 버전 단위로 삭제할 수 있다.
다른 룰에 사용되고 있는 룰은 삭제할 수 없다.
삭제하고자 하는 룰이 다음 단계 룰 시스템으로 이관된 룰인 경우, 해당 룰은 삭제되더라도 다음 단계 룰 시스템에서의 삭제를 위해 룰 저장소에 유지된다. 다음 단계 룰 시스템에서 삭제할 목적으로 유지되는 룰은 룰 템플릿 유형 아이콘이 와 같이 표시된다.
룰 단위 삭제는, 룰을 선택하고 메인 메뉴의 룰 삭제 메뉴를 선택하거나, 룰-버전 리스트 또는 룰 찾기 윈도우의 팝업 메뉴 등에서 룰 삭제 메뉴를 선택하면 확인 과정을 거쳐 수행된다.
다른 룰에 사용 중이지 않은 경우, 즉 삭제 대상 룰을 호출하여 사용하는 상위룰이 없는 경우, 해당 룰은 확인 메시지를 거쳐 삭제된다.
다른 룰에 사용 중인 경우, 즉 삭제 대상 룰을 호출하여 사용하는 상위룰이 있는 경우, 확인 삭제 확인 메시지가 표시될 때 동의하더라도 도 57의 경고 메시지와, 공통 기능 영역에 상위룰 리스트가 표시되면서 삭제되지 않는다.
상위룰이 있는 경우의 룰 삭제는, 상위룰 리스트(또는 룰 관계도)를 통해 해당 룰을 호출하는 상위룰을 확인하고 찾아 사용하지 않도록 수정한 후 삭제하여야 한다.
상위룰 리스트에 표시된 룰을 더블 클릭하거나 팝업 메뉴에서 룰 열기 메뉴를 선택하면, 해당 상위룰이 열려 룰 편집 영역에 표시된다.
복수 개의 룰을 지정하여 삭제하는 경우, 상위룰이 있는 룰 또는 권한이 없는 룰 또는 이관 중인 룰이 포함되어 있다면 해당 룰은 에러로 분류되어 공통 기능 영역의 미삭제룰 리스트에 표시되고, 에러가 발생하지 않는 나머지 룰만이 삭제 처리된다.
룰 운영 기능/도구
룰 개발 및 유지 운영에 로직을 파악하고, 수정의 영향 범위를 식별하고, 변경된 내용의 전후 비교 등을 수행할 수 있다.
룰 관계도
도 58은 룰 관계도 윈도우를 도시한다.
룰 간 호출 관계를 통해 룰 로직을 파악하고, 룰 수정 시 영향 범위를 파악할 수 있다.
룰-버전 리스트의 룰을 선택하고 메인 메뉴 또는 팝업 메뉴에서 룰 관계도(선택한 룰) 메뉴를 선택하거나, 활성화된 룰에 대해 메인 메뉴의 룰 관계도(활성화된 룰) 메뉴를 선택하면 룰 관계도 윈도우가 표시된다.
룰 관계도 윈도우의 표시 항목 및 그 설명은 [표 20]과 같다.
북마크 리스트에 등록된 룰은 룰 빌더 실행 중에만 데이터를 유지하고 종료 시에는 데이터를 유지하지 않는다.
북마크에 등록된 룰은 해당 룰이 삭제되더라도 자동으로 제거되지 않는다. 팝업 메뉴의 "제거"를 사용하여 수동으로 제거해야 한다.
북마크에 등록된 룰은 해당 룰의 이름이 변경되더라도 자동으로 동기화되지 않는다.
하나의 노드는 하나의 룰을 표시하며, 선택한 노드를 기준으로 좌측의 노드는 상위룰이고, 우측의 노드는 하위룰이다.
최상위, 최하위를 나타내는 주황색이 아닌 노드(연두색)가 현재 최상위 노드 또는 최하위 노드로 표시되는 경우, 해당 노드를 더블 클릭하면 각각 상위 또는 하위 노드가 1단계 더 표시된다.
하위 노드가 표시된 상태에서 상위 노드를 다시 더블 클릭하는 경우 하위 노드가 닫혀 미표시 된다.
노드 표시 도형
도 59는 룰 관계도 윈도우의 노드 표시 도형을 도시한다.
표시되는 각 노드의 모양은, 노드(룰)가 사용하는 템플릿에 따라 분류된다.
노드의 색상 구분
관계도의 각 노드는 [표 21]의 색상으로 표시되고, 룰 관계도 보기의 기준이 되는 노드는 하단에 음영이 표시된다.
기준이 되는 노드는 룰 관계도 선택 시 선택한 룰 또는 우측 상위룰/하위룰/북마크 영역에서 선택한 룰 또는 관계도 메뉴의 "룰 관계도 다시 구성" 메뉴를 선택한 노드 등이다.
도 60은 룰 관계도 윈도우의 네비게이터를 도시한다.
축소된 룰 관계도 윈도우를 표시하고, 사각 표시 이동 시 관계도의 동일 노드가 선택되고 캔버스 중앙 영역으로 이동한다.
네비게이터가 표시된 상태에서 관계도의 노드 구성이 변하는 경우, 네비게이터의 노드도 동기화되어 표시된다.
룰 찾기
메인 메뉴의 룰 찾기(선택 폴더) 또는 폴더-리스트의 팝업 메뉴에서 룰 찾기 메뉴를 선택하여 선택한 폴더 내에서 룰을 검색하거나, 메인 메뉴의 룰 찾기(모든 폴더)를 선택하여 현재 단계 룰 시스템을 대상으로 룰을 검색할 수 있다.
룰 찾기는 룰 찾기 윈도우의 각 탭 선택을 통해 룰 정보/상태의 내용을 갖는 룰, 특정 항목을 사용하는 룰, 특정 리턴 항목을 사용하는 상위룰, 특정 리턴 항목을 정의한 룰, 특정 데이터 모델을 사용하는 룰, 특정 웹 서비스를 사용하는 룰, 특정 DB 접속명을 사용하는 룰을 검색할 수 있다.
결과 리스트의 룰을 더블 클릭하여 룰을 열 수 있고, 범위 지정을 통해 복수 룰을 대상으로 결과 리스트 메뉴의 일부 기능을 수행할 수 있다.
결과 리스트에 검색된 룰에 대해 룰 열기, 룰 정보 변경, 룰 이관 등의 작업을 수행 가능하나 사용자의 작업 권한에 대해 버튼 활성화/비활성화를 수행하지는 않는다.
사용자의 작업 권한에 대한 검증은 해당 작업 요청 시 빌더 서버에서 이루어진다.
룰의 정보와 상태로 룰 찾기
도 61은 룰 찾기 윈도우를 도시한다.
룰 탭을 선택하여, 룰의 정보와 상태를 조건으로 룰을 검색한다.
룰 식별자를 검색 대상으로 선택하고, 검색 대상에 대한 (부분)문자열 입력과, 룰 등록 정보 및 상태 등의 기타 조건을 지정한 후 룰 찾기 버튼을 선택한다.
문자열(옵션)을 지정하지 않는 경우, 기타 조건에 부합하는 모든 룰이 결과 룰 리스트에 표시된다.
룰 찾기 윈도우의 표시 항목 및 그 설명은 [표 22]와 같다.
항목을 사용하는 룰 찾기
도 62는 항목을 사용하는 룰 찾기 윈도우를 도시한다.
항목 탭을 선택하여, 특정 항목을 사용하는 룰을 검색한다.
항목 식별자를 검색 대상으로 선택하고 검색 대상에 대한 (부분)문자열 입력 후 항목 찾기 버튼을 선택하면 검색된 항목이 항목 리스트에 표시된다.
표시된 항목을 선택하면 해당 항목을 사용하는 룰이 결과 룰 리스트에 표시된다.
문자열(옵션)을 지정하지 않는 경우, 모든 항목이 항목 리스트에 표시된다.
검색된 결과 항목의 1회 표시 항목 건수는 최대 5개이다. 계속 조회 버튼 선택을 통해 계속 검색할 수 있다.
룰 찾기(선택한 폴더)인 경우 항목은 모든 폴더를 대상으로 검색하고 항목을 사용하는 룰만 선택된 폴더에서 검색한다.
항목을 사용하는 룰 찾기 윈도우의 표시 항목 및 그 설명은 [표 23]과 같다.
결과 룰 리스트의 메뉴나 팝업 메뉴에 대한 설명은 룰 탭과 동일하다.
리턴 항목을 사용하는 상위룰 찾기
도 63은 리턴 항목을 사용하는 상위룰 찾기 윈도우를 도시한다.
사용된 리턴 항목(상위룰) 탭을 선택하여, 상위룰을 찾을 대상의 룰 이름과 해당 룰의 특정 리턴 항목 식별자를 조건으로 하여, 해당 룰과 리턴 항목을 참조하는 상위룰을 찾는다.
상위룰을 찾고자 하는 룰의 이름을 지정하고 리턴 항목 찾기 버튼을 선택하면, 해당 룰에 정의된 리턴 항목이 리턴 항목 리스트에 표시된다.
표시된 리턴 항목을 선택하면 해당 리턴 항목을 참조하는 룰 호출식을 가진 상위룰이 결과 룰 리스트에 표시된다.
대상 룰의 이름은 완전한 이름이어야 하고, 리턴 항목 식별자 및 (부문)문자열 지정(옵션)을 통해 특정한 리턴 항목만 표시할 수 있다.
룰 찾기(선택한 폴더)인 경우 상위룰을 찾고자 하는 룰은 모든 폴더를 대상으로 검색하고 리턴 항목을 사용하는 상위룰만 선택된 폴더에서 검색한다.
리턴 항목이 r1, r2인 룰A의 r1을 대상으로 검색하는 경우, {룰A}, {룰A:: r1} 등 r1을 참조하는 룰 호출식을 가진 상위룰은 결과에 포함되고, {룰A:: r2}만 참조하는 룰 호출식을 가진 상위룰은 결과에 미포함된다.
룰 이름에 대한 부분(문자열) 검색이 필요한 경우, 룰 탭에서 룰을 검색 후, 특정 룰을 선택하고 리턴 항목을 사용하는 상위룰 찾기 메뉴를 선택하는 방법으로 연계하여 활용할 수 있다.
결과 룰 리스트의 메뉴나 팝업 메뉴에 대한 설명은 룰 탭과 동일하다.
리턴 항목이 등록된 룰 찾기
도 64는 리턴 항목이 등록된 룰 찾기 윈도우를 도시한다.
등록된 리턴 항목 탭을 선택하여, 지정한 이름/별칭을 갖는 리턴 항목이 정의된 룰을 검색한다.
완전한 리턴 항목 이름(또는 별칭)을 입력하고 룰 찾기 버튼을 선택하면, 해당 리턴 항목 이름(또는 별칭)을 갖는 룰이 결과 룰 리스트에 표시된다.
리턴 항목 이름은 완전한 이름이어야 한다.
결과 룰 리스트의 메뉴나 팝업 메뉴에 대한 설명은 룰 탭과 동일하다.
데이터 모델을 사용하는 룰
도 65는 데이터 모델을 사용하는 룰 찾기 윈도우를 도시한다.
데이터 모델 탭을 선택하여, 지정한 데이터 모델 이름(또는 ID)을 사용하는 룰을 검색한다.
데이터 모델 식별자를 검색 대상으로 선택하고 검색 대상에 대한 (부분) 문자열 입력 후 모델 찾기 버튼을 선택하면, 검색된 데이터 모델이 데이터 모델 리스트에 표시된다. 표시된 데이터 모델을 선택하면 해당 데이터 모델을 사용하는 룰이 결과 룰 리스트에 표시된다.
문자열(옵션)을 지정하지 않는 경우, 모든 데이터 모델이 데이터 모델 리스트에 표시된다.
룰 찾기(선택한 폴더)인 경우 데이터 모델은 모든 폴더를 대상으로 검색하고 데이터 모델을 사용하는 룰만 선택된 폴더에서 검색한다.
데이터 모델 이름/ID에 대한 문자열 입력은 옵션이다.
결과 룰 리스트의 메뉴나 팝업 메뉴에 대한 설명은 룰 탭과 동일하다.
웹 서비스를 사용하는 룰 찾기
도 66은 웹 서비스를 사용하는 룰 찾기 윈도우를 도시한다. 웹 서비스 탭을 선택하여, 지정한 웹 서비스 식별자를 사용하는 룰을 검색한다.
웹 서비스 식별자인 서비스 이름 또는 WSDL URL 또는 UDDI Registry를 입력 후 룰 찾기 버튼을 선택하면, 해당 웹 서비스 식별자를 사용하는 모든 룰이 결과 룰 리스트에 표시된다.
WSDL: Web Service Description Language
UDDI: Universal Description, Discovery, and Integration
웹 서비스를 사용하는 룰 찾기 윈도의 표시 항목 및 그 설명은 [표 24]와 같다.
DB 접속명으로 룰 찾기
도 67은 DB 접속명으로 룰 찾기 윈도우를 도시한다.
DB 접속명 탭을 선택하여, DB 접속명을 사용하는 룰을 검색한다.
DB 접속명은, DB 룰과 SQL 도구에서 업무 DB의 테이블을 활용할 목적으로 DB 접속 정보 설정에서 정의된 업무 DB의 접속 식별자이다.
DB 접속 정보 정의는 룰 빌더 서버의 설정에서 이루어진다. 설정은 해당 작업 담당자에게 요청해야 한다.
룰 찾기(선택한 폴더)인 경우 DB 접속 정보는 모든 폴더를 대상으로 검색하고 DB 접속 정보를 사용하는 룰만 선택된 폴더에서 검색한다.
DB 접속명 찾기 버튼을 선택하면, 정의된 DB 접속명이 DB 접속명 리스트에 표시되고, 특정 DB 접속명을 선택하면 해당 DB 접속명을 사용하는 룰이 결과 룰 리스트에 표시된다.
결과 룰 리스트의 메뉴나 팝업 메뉴에 대한 설명은 룰 탭과 동일하다.
룰 비교
동일 룰 템플릿 유형인 룰을 대상으로, 동일한 룰 시스템의 룰(버전) 간, 또는 서로 다른 단계의 룰 시스템의 룰 간, 또는 동일한 룰의 다른 버전 간의 룰 내용을 비교할 수 있다.
룰-버전 리스트의 룰을 선택하고 메인 메뉴의 룰 비교 메뉴를 선택하면, 도 68과 같은 룰 비교 윈도우가 표시된다.
해당 룰에 대해, 최소 룰 내용 조회 권한이 필요하다.
선택했던 룰의 버전 또는 룰 찾기 결과의 팝업 메뉴를 통해 룰 비교 영역에 룰 내용을 표시하고, 룰 찾기를 통해 비교하고자 하는 또 다른 룰을 찾아 결과의 팝업 메뉴를 통해 룰 비교 영역에 룰 내용을 표시한다.
룰 비교 윈도우의 룰 찾기 기능을 통해 위의 룰과 비교할 룰을 표시하고 팝업 메뉴를 통해 최신 버전을 룰 비교 영역에 표시하거나, 룰을 더블 클릭하여 버전을 표시하고 팝업 메뉴를 통해 비교할 버전의 룰 내용을 룰 비교 영역에 표시한다.
선택한 룰 시스템이 이관을 받는 위치의 룰 시스템 단계인 경우, 버전을 더블 클릭하면 이관 이력이 표시된다. 이관 이력 중 특정 시점의 룰 내용을 룰 비교 영역에 표시하여 비교할 수 있다.
룰 비교 영역의 메뉴를 이용하여, 룰-버전 정보 보기나 룰 정보 변경, 룰 내용 편집 및 저장, 룰 테스트가 가능하다.
룰 비교 윈도우의 표시 항목 및 그 설명은 [표 25]과 같다.
비교 기준 룰과 비교 대상 룰의 정보와 내용을 비교하여 다른 경우 메시지를 표시하고, 다른 내용에 대해 색상을 통해 표시한다.
룰 비교는 정의 사항이나, 동일 위치(테이블 형식에서는 셀, 플로우 룰에서는 개체)에 기술된 내용을 비교하는 것으로, 의미적인 내용을 비교하지는 않는다.
메시지 표시
메시지는 룰/버전 정보와 룰 내용을 구분하여 표시한다.
색상 표시 및 비교 내용
리턴 형식, 리턴 항목 개수 및 동일 순서의 리턴 항목간 데이터 타입, 룰 템플릿의 실행 모드, 단위 편집 영역(셀 등) 등 비교 대상이 있고 내용이 다른 경우 붉은색으로 표시되고, DB 룰은 붉은색으로 표시한다.
테이블 룰의 조건 열, 플로우 룰의 노드 및 연결선 등, 비교할 내용이 어느 한쪽에만 있는 경우 파란색으로 표시된다.
테이블 룰 비교
테이블 룰간 리턴 정보, 브랜치 노드 여부, 실행 모드, 셀 내용(동일한 좌표/행렬의 셀 내용을 비교)에 대해 각각 비교가 이루어지며, 셀 병합 정보, 셀에 등록된 메모 내용에 대해서는 비교가 이루어지지 않는다.
룰 일치
일치 기능을 통해, 비교 대상 룰의 실행 모드와 룰 내용을 비교 기준 룰에 동일하게 반영할 수 있다.
일치되는 내용은 값이나 노드 등의 객체이며, 이름 등의 식별자는 반영되지 않는다.
예를 들면, 리턴 항목 이름이 다른 경우 리턴 영역의 내용은 일치되나, 리턴 항목 이름이 변경되지는 않는다.
룰의 리턴 형식이 다른 경우, 룰 부가 정보의 브랜치 노드 지정 여부가 다른 경우, 룰의 비교 내용이 같은 경우, 일치 메뉴가 비활성화되며 일치 기능을 사용할 수 없다.
룰의 리턴 항목 개수 또는 동일 순서의 리턴 항목간 데이터 타입이 다른 경우, 룰의 리턴 개수는 같으나 각 리턴의 리턴 형식이 다른 경우, DB 룰인 경우 DB 접속 정보가 다른 경우, 데이터 룰인 경우, 사용하는 데이터 모델이 다른 경우,
일치 메뉴는 활성화되나, 일치 기능을 사용할 수 없다.
한편, 본 발명의 실시예에 따른 비즈니스 룰 관리 방법은 컴퓨터 시스템에서 구현되거나, 또는 기록매체에 기록될 수 있다. 컴퓨터 시스템은 적어도 하나 이상의 프로세서와, 메모리와, 사용자 입력 장치와, 데이터 통신 버스와, 사용자 출력 장치와, 저장소를 포함할 수 있다. 전술한 각각의 구성 요소는 데이터 통신 버스를 통해 데이터 통신을 한다.
컴퓨터 시스템은 네트워크에 커플링된 네트워크 인터페이스를 더 포함할 수 있다. 프로세서는 중앙처리 장치(central processing unit (CPU))이거나, 혹은 메모리 및/또는 저장소에 저장된 명령어를 처리하는 반도체 장치일 수 있다.
메모리 및 저장소는 다양한 형태의 휘발성 혹은 비휘발성 저장매체를 포함할 수 있다. 예컨대, 메모리는 ROM 및 RAM을 포함할 수 있다.
따라서, 본 발명의 실시예에 따른 비즈니스 룰 관리 방법은 컴퓨터에서 실행 가능한 방법으로 구현될 수 있다. 본 발명의 실시예에 따른 비즈니스 룰 관리 방법이 컴퓨터 장치에서 수행될 때, 컴퓨터로 판독 가능한 명령어들이 본 발명에 따른 비즈니스 룰 관리 방법을 수행할 수 있다.
한편, 상술한 본 발명에 따른 비즈니스 룰 관리 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명의 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (9)
- 테이블 룰에 관한 정보와 입력 데이터를 수신하는 입력부;
상기 테이블 룰을 이용하여 결과값을 출력하는 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하되,
상기 프로세서는 조건부와 결과부의 스프레드 쉬트로 상기 테이블 룰을 구성하고,
상기 테이블 룰 내에서 각각의 행에 해당하는 상기 조건부에 대한 확인을 위한 부하 연산량을 산출하여 상기 테이블 룰 내에서 행의 상하 배치 순서를 수정하고, 상기 각각의 행에 포함되는 복수의 조건에 대해 각각의 부하 연산량을 산출하여 상기 각각의 행에 포함되는 상기 복수의 조건의 좌우 배치 순서를 수정하여 상기 테이블 룰을 수정하고, 상기 입력 데이터와 매칭되는 상기 조건부를 조회하여 상기 결과값을 출력하되, 제1 결과값에 매칭되는 조건부를 확인하는 제1 부하 연산량보다 제2 결과값에 매칭되는 조건부를 확인하는 제2 부하 연산량이 더 큰 것으로 확인하여 상기 제1 결과값에 매칭되는 조건부가 상기 제2 결과값에 매칭되는 조건부보다 먼저 확인되도록 상기 테이블 룰 내에서의 조건부의 순서를 1차 수정하고, 입력 데이터 군의 특성에 따라 상기 제2 결과값을 리턴하는 카운팅 값이 상기 제1 결과값을 리턴하는 카운팅 값보다 기설정 배수 이상 큰 경우, 상기 입력 데이터에 대한 결과값 리턴 소요 시간 및 상기 결과값에 대한 카운팅 값 중 적어도 어느 하나를 고려하여, 상기 테이블 룰 내에서의 조건부의 순서를 2차 수정하여 상기 제2 결과값에 매칭되는 조건부를 상기 제1 결과값에 매칭되는 조건부보다 먼저 확인하도록 상기 테이블 룰을 수정하는 것
인 비즈니스 룰 관리 시스템.
- 제1항에 있어서,
상기 테이블 룰을 구성하는 조건부는 AND 조건인 행과, OR 조건인 열로 구성되는 것
인 비즈니스 룰 관리 시스템.
- 제1항에 있어서,
상기 프로세서는 상기 테이블 룰의 행을 순차적으로 확인하여, 조건부 매칭 여부를 확인하는 것
인 비즈니스 룰 관리 시스템.
- 제3항에 있어서,
상기 프로세서는 상기 조건부 매칭 여부에 대해 룰 테스트 진행 결과에 대한 추적 화면을 제공하는 것
인 비즈니스 룰 관리 시스템.
- 제3항에 있어서,
상기 프로세서는 실행 모드에 따라 조건부 만족 행에 대한 결과값을 리턴한 후 해당 프로세스를 종료하거나, 상기 테이블 룰의 모든 행에 대한 조회를 수행하는 것
인 비즈니스 룰 관리 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200024526A KR102150909B1 (ko) | 2020-02-27 | 2020-02-27 | 비즈니스 룰 관리 시스템 |
PCT/KR2021/002501 WO2021172953A1 (ko) | 2020-02-27 | 2021-02-26 | 비즈니스 룰 관리 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200024526A KR102150909B1 (ko) | 2020-02-27 | 2020-02-27 | 비즈니스 룰 관리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102150909B1 true KR102150909B1 (ko) | 2020-09-03 |
Family
ID=72450122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200024526A KR102150909B1 (ko) | 2020-02-27 | 2020-02-27 | 비즈니스 룰 관리 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102150909B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021172953A1 (ko) * | 2020-02-27 | 2021-09-02 | 주식회사 이노룰스 | 비즈니스 룰 관리 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010271883A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | ルール設計支援方法およびルール設計支援装置 |
KR20150106365A (ko) * | 2014-03-11 | 2015-09-21 | 주식회사 이노룰스 | 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법 |
-
2020
- 2020-02-27 KR KR1020200024526A patent/KR102150909B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010271883A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | ルール設計支援方法およびルール設計支援装置 |
KR20150106365A (ko) * | 2014-03-11 | 2015-09-21 | 주식회사 이노룰스 | 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021172953A1 (ko) * | 2020-02-27 | 2021-09-02 | 주식회사 이노룰스 | 비즈니스 룰 관리 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102187322B1 (ko) | 비즈니스 룰 관리 시스템 | |
US11681694B2 (en) | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface | |
US11775898B1 (en) | Resource grouping for resource dependency system and graphical user interface | |
US11620117B2 (en) | Systems and methods for code clustering analysis and transformation | |
US11436006B2 (en) | Systems and methods for code analysis heat map interfaces | |
US11188319B2 (en) | Systems and methods for entry point-based code analysis and transformation | |
KR102217937B1 (ko) | 비즈니스 룰 관리 시스템 | |
US8176470B2 (en) | Collaborative derivation of an interface and partial implementation of programming code | |
US8429527B1 (en) | Complex data merging, such as in a workflow application | |
CN105723335A (zh) | 数据流探索 | |
CN103092967A (zh) | 一种基于规则引擎的业务规则决策方法及装置 | |
CN106951430A (zh) | 账表查询方法及装置 | |
KR102397495B1 (ko) | 노 코드 애플리케이션 개발 및 운영 시스템과 그 서비스 방법 | |
CA2318847A1 (en) | Information platform | |
US20110295900A1 (en) | Database data dictionary | |
CA2673422C (en) | Software for facet classification and information management | |
US12086194B2 (en) | Methods and systems for building search service application | |
CA2755902A1 (en) | Methods and systems for preserving and accessing information related to decision-making | |
KR102150909B1 (ko) | 비즈니스 룰 관리 시스템 | |
KR102164607B1 (ko) | 비즈니스 룰 관리 시스템 | |
KR102150911B1 (ko) | 비즈니스 룰 관리 시스템 | |
KR102150910B1 (ko) | 비즈니스 룰 관리 시스템 | |
KR102187321B1 (ko) | 비즈니스 룰 관리 시스템 | |
van Eck et al. | Multi-instance mining: Discovering synchronisation in artifact-centric processes | |
US20110004464A1 (en) | Method and system for smart mark-up of natural language business rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |