3. www.agadoss.com
3/264
문서 정보
문서 개요
이 문서는 Agados의 모듈과 Control, Monitor 등 Agados 추가 기능을 개발하는 방법을 설명합니다.
이 문서의 내용은 Agados 1.0.x 버전을 기준으로 합니다.
독자
이 문서는 Agados cloud platform을 기반으로 비즈니스 어플리케이션을 개발하고자 하는 개발자를
대상으로 합니다. 이 문서에서는 Script ( C# , Jython , Python , VB Script ) 및 SQL 기술에 대해서 상세히 설명하지 않습니다. Script 와 SQL 기술에 대해서는 관련 서적을 참조하시기 바랍니다.
문의처
이 문서의 내용에 오류가 있거나 내용과 관련한 의문 사항이 있으면 아래의 연락처로 문의합니다.
연락처: eft1998@agadoss.com
문서 버전 및 이력
버전 일자 이력사항
1.0
2014.06.01
1.0 배포
1.1
2014.12.15
1.1 배포
4. www.agadoss.com
4/264
표기 규칙
참고 표기
참고
독자가 참고해야 할 내용을 기술합니다
주의 표기
주의
독자가 반드시 알아야 할 사항, 시스템 에러를 유발할 수 있는 사항, 수행하지 않았을 때
재산상의 피해를 줄 수 있는 사항을 기술합니다
윈도(창) 이름/사이트 이름/메뉴 이름/필드 이름/선택 값, 사용자 입력 값 및 기호 표기
이 문서에서 윈도(창) 이름, 사이트 이름, 메뉴 이름, 입력 필드 이름, 선택 값, 사용자 입력 값은
다음과 같이 표기합니다.
• 윈도(창) 이름 : 윈도 이름 폼
• 사이트 이름 : 'Agados 다운로드' 사이트
• 메뉴 이름 : 메뉴 > 하위메뉴
• 선택 값 : 조건을 선택합니다.
• 사용자 입력 값: localhost를 입력합니다
5. www.agadoss.com
5/264
Script 소스 코드 표기
이 문서에서 Script 소스 코드는 회색 바탕에 검정색 글씨로 표기합니다.
using System; namespace xxxx.xx { public partial class xxxx { protected void Page_Load(object sender, EventArgs e) { } } }
6. www.agadoss.com
6/264
Table of Contents
1. AGADOS CLOUD 이해하기 ........................................................................................................... 10 개 요 ...................................................................................................................................................................................11
AGADOS CLOUD 작업 환경 ........................................................................................................................................12
AGADOS CLOUD 작업 사이클 ...................................................................................................................................13
AGADOS CLOUD 애플리케이션 계층 구조 .............................................................................................................14
AGADOS CLOUD 애플리케이션 OBJECT ...................................................................................................................15
AGADOS CLOUD VALUE 흐름 및 구조.......................................................................................................................16
BUILD ...................................................................................................................................................................................18
1.7.1. Solution Build ..........................................................................................................................................................................18
1.7.2. Project or Package Build ....................................................................................................................................................19
1.7.3. Object Build..............................................................................................................................................................................20 RUN ......................................................................................................................................................................................21
배포 .....................................................................................................................................................................................22
설치 .................................................................................................................................................................................22
2. AGADOS CLOUD 시작하기 ........................................................................................................... 23 AGADOS CLOUD 시작 .....................................................................................................................................................24
2.1.1. Connect Site .............................................................................................................................................................................25
2.1.2. Open Solution .........................................................................................................................................................................26
2.1.3. Set Main form .........................................................................................................................................................................28
2.1.4. Build .............................................................................................................................................................................................30
2.1.5. Run ...............................................................................................................................................................................................30 사용자 DB 확인 .............................................................................................................................................................31
3. AGADOS CLOUD 기본 작업 .......................................................................................................... 32 PROJECT 등록 ....................................................................................................................................................................33
PACKAGE 등록 ..................................................................................................................................................................34
OBJECT 등록 ......................................................................................................................................................................36
CONTROL (FORM) .........................................................................................................................................................38
3.4.1. Control 등록 (FORM)...........................................................................................................................................................38
3.4.2. Control Property 설정 .........................................................................................................................................................40
3.4.3. Control Delete ......................................................................................................................................................................45
3.4.4. Control Bound 저장 .............................................................................................................................................................46 NODE ...................................................................................................................................................................................47
3.5.1. Node 등록 ................................................................................................................................................................................47
3.5.2. Node Style 설정 .....................................................................................................................................................................48
3.5.3. Node Delete .............................................................................................................................................................................49
7. www.agadoss.com
7/264
3.5.4. Node Property (RULE 정의) ...........................................................................................................................................50
3.5.5. Node Connect ......................................................................................................................................................................51
3.5.6. Base Connect ...........................................................................................................................................................................51
3.5.7. Connect – One To One .......................................................................................................................................................52
3.5.8. Connect – One To Many ....................................................................................................................................................53
3.5.9. Flow Condition 설정 ............................................................................................................................................................54
3.5.10. Flow Condition 2 ( Start Node )......................................................................................................................................55
3.5.11. Flow Condition 3 ( Form Event ) .....................................................................................................................................57
3.5.12. Node Bound 저장 .................................................................................................................................................................59 NODE GROUP .....................................................................................................................................................................60
3.6.1. Node Group 등록 ..................................................................................................................................................................60
3.6.2. Looping Group 등록 ............................................................................................................................................................62
3.6.3. Synchronized Group 등록 ..................................................................................................................................................66
3.6.4. Filter Group 등록 ...................................................................................................................................................................66 MEMBER 등록 ...................................................................................................................................................................68
3.7.1. Base 등록 ..................................................................................................................................................................................68
3.7.2. Database column Search 등록 ........................................................................................................................................70 DATATABLE 등록 ..............................................................................................................................................................71
3.8.1. Base 등록 ..................................................................................................................................................................................71
3.8.2. Member Search 등록 ...........................................................................................................................................................73 IMAGECOLLECT 등록 ........................................................................................................................................................74
IMAGELIST 등록 ............................................................................................................................................................74
SCRIPT ..............................................................................................................................................................................74
3.11.1. Script 에서 사용하는 Agados class ..............................................................................................................................75
3.11.2. Script Node ..............................................................................................................................................................................88
3.11.3. Common Script ....................................................................................................................................................................92 솔루션 환경 설정 ......................................................................................................................................................93
3.12.1. Solution Attribute ..................................................................................................................................................................93
3.12.2. Database Adapter 설정 ................................................................................................................................................... 103
3.12.3. Http Server Address 설정 ............................................................................................................................................... 104
3.12.4. Control Style Sheet (CSS)설정 ....................................................................................................................................... 105
3.12.5. Locale Resource설정 ........................................................................................................................................................ 107
4. COLLABORATION ......................................................................................................................... 109 COLLABORATION ............................................................................................................................................................. 109
4.1.1. Request 요청 ........................................................................................................................................................................ 109
4.1.2. Approval ................................................................................................................................................................................. 111
4.1.3. Change work mode ........................................................................................................................................................... 112
4.1.4. Collaboration list ................................................................................................................................................................. 113
4.1.5. Add User ................................................................................................................................................................................. 114
8. www.agadoss.com
8/264
EXPORT ............................................................................................................................................................................. 115
IMPORT ............................................................................................................................................................................. 116
5. LOG TRACE ................................................................................................................................. 118 BASE VIEW ....................................................................................................................................................................... 118
제공되어지는 LOG VIEW ........................................................................................................................................... 121
5.2.1. Access log view ................................................................................................................................................................... 121
5.2.2. Node log view ...................................................................................................................................................................... 122
5.2.3. Statement log view ............................................................................................................................................................ 127
5.2.4. Object log view.................................................................................................................................................................... 127
5.2.5. Throw log view .................................................................................................................................................................... 128
6. AGADOS 따라하기 .................................................................................................................... 129 TEST 용 USER TABLE 생성 .......................................................................................................................................... 129
6.1.1. Empinfo table 생성 ............................................................................................................................................................ 129
6.1.2. Depinfo table 생성 ............................................................................................................................................................ 129 WORK OBJECT 생성 ...................................................................................................................................................... 130
6.2.1. Create Object........................................................................................................................................................................ 130
6.2.2. EmpMem 와 EmpListMem의 Memebr 등록 ........................................................................................................ 131
6.2.3. DepMem 의 Memebr 등록 ........................................................................................................................................... 131
6.2.4. EmpTa 와 EmpListTa 의 Column 등록.................................................................................................................. 131
6.2.5. DepTa 의 Column 등록 .................................................................................................................................................. 132
6.2.6. Used Memberset ( Object 과 FormObject ) .......................................................................................................... 132
6.2.7. Used DataTable ( Form ) ................................................................................................................................................. 133 MAIN FORM .................................................................................................................................................................... 134
6.3.1. BarManager ........................................................................................................................................................................... 135
6.3.2. TabbedMdiManager .......................................................................................................................................................... 137 EDIT FORM ....................................................................................................................................................................... 137
6.4.1. Form ......................................................................................................................................................................................... 138
6.4.2. DataTable ............................................................................................................................................................................... 139
6.4.3. ValueObject ........................................................................................................................................................................... 140
6.4.4. Label ......................................................................................................................................................................................... 140
6.4.5. TextEdit .................................................................................................................................................................................... 141
6.4.6. LookUpEdit ............................................................................................................................................................................ 142
6.4.7. Button ...................................................................................................................................................................................... 144
6.4.8. Grid ........................................................................................................................................................................................... 145 결과 보기 ....................................................................................................................................................................... 150
SELECT 패턴 – DEPARTMENT CODE LOAD ............................................................................................................ 152
6.6.1. EduPro.Event.EditEvt ( Form Object ) 구현 ........................................................................................................ 152
6.6.2. EduPro.Dao.EditDao (OBJECT) 구현 ......................................................................................................................... 154
11. www.agadoss.com
11/264
개 요
Agados Cloud Platform 은 Cloud 환경에서 개발자들이 원하는 비즈니스 애플리케이션을
만드는 기반이 되는 플랫폼입니다. Cloud 환경에서 사용자는 DB, WAS 등 System 전반에
관련된 사항은 신경 쓸 필요가 없습니다. Cloud 환경에서 자신이 정의(디자인)한 로직을 바로 실행해
볼 수 있습니다.
또한 Cloud 환경에서 개발자들은 구성한 앱을 서로 참여, 공유 할 수 있습니다.
자신의 앱에 다른 사용자를 참여 시켜, 함께 작업을 할 수 있으며
, 자신의 앱을 배포 사이트에 등록하여 여러 사용자들이 사용 할 수 있도록 제공 할 수
있습니다.
Agados Cloud Platform은 No Code, Not Compile, Just Defined 를 지향합니다.
Cloud 환경에서 자신이 개발한 어플리케이션을 Compile 없이 바로 실행해 볼 수 있습니다.
또한 Visibility 기능을 제공하여 로직에 대한 분석, 추적 기능을 제공합니다.
Agados Cloud Platform 은 구성한 앱에 대한 Base 와 Extension 구조를 제공하여
Package 환경에 있어 커스터마이징 및 사이트 배포에 가장 적합한 기능을 제공합니다.
Agados Cloud Platform 은 구성한 앱의 실행정보를 분석, 추적 할 수 있는 기능을 제공합니다.
이 장에서는 Agados Cloud Platform 의 주요 기능과 기본 구조를 설명합니다.
12. www.agadoss.com
12/264
AGADOS CLOUD 작업 환경
Agados Cloud 에서 지원하는 환경은 다음과 같습니다.
사용자 실행 환경 및 작업 환경 입니다.
구분 환경
사용자 작업 환경(Building Time)
Windows 7 ( 64bit, 32bit )
.NET Framework 4.5 이상
사용자 실행 환경
(Running Time)
Windows XP , Vista , 7
( 32 or 64 bit )
.NET Framework 4.5 이상
Internet Explorer , Safari, Swing
Agados Cloud 에서 제공하는 환경입니다.
구분 환경
WAS
( Web Application Server )
IIS 7.0+ ( Default )
JBoss 7.0+
Weblogic 11g +
DB
( Database )
MySql 5.5 + ( Default )
Sql Server 2008 R2 +
Oracle 11g
Server
Windows 2008 ( Default )
Linux
Unix
Message Server
Rabbit MQ ( Default )
Local DB
SQL Lite ( Default )
Report
DevExpress Report
SMTP Server
제공되는 환경 및 버전은 당사의 사정에 의해 변경 될 수 있습니다.
기본 제공된 것 외의 선택 시 별도 비용이 발생할 수도 있습니다.
13. www.agadoss.com
13/264
AGADOS CLOUD 작업 사이클
Agados Cloud 의 작업 사이클은 다음과 같습니다.
1. 사용자는 Agados Cloud 에 등록된 ID 로 접속합니다.
2. 기 등록된 솔루션을 선택합니다.
3. 사용자가 원하는 오브젝트를 생성, 수정합니다.
4. 정의 작업이 완료된 후 사용자는 빌드 작업을 수행합니다.
5. 빌드(규칙정보 XML 파싱) 완료된 앱을 실행하여 확인합니다.
사용자는 간단한 작업을 통하여 자신이 만든 애플리케이션을 실행, 배포, 공유할 수 있습니다.
Agados Cloud Platform 연결
솔루션 열기
Object 생성
Cloud Repository 저장
Build
Rule Xml 생성
Run
14. www.agadoss.com
14/264
AGADOS CLOUD 애플리케이션 계층 구조
Agados cloud 를 구성하는 오브젝트 계층 구조는 다음과 같습니다.
구분
솔루션
솔루션은 최상위 단위입니다.
전체 오브젝트를 관리하는 단위이며, 사용자간의 공유 단위입니다.
프로젝트
솔루션의 하위 단위이며 한 솔루션 내에 여러 개의 프로젝트를 가질 수 있습니다.
프로젝트는 1 Level 가능합니다.
패키지
패키지는 오브젝트를 구분 관리할 수 있는 단위입니다.
패키지는 N Level 의 계층구조를 가지면 패키지는 패키지를 하위로 가질 수 있습니다.
오브젝트
사용자가 정의하는 화면, 로직, 스크립트 , 이미지를 관리하는 단위입니다.
오브젝트는 유형에 따라 서로 다른 형식을 정의 할 수 있습니다.
Agados Cloud 의 계층구조는 다음과 같습니다.
Object 의 Full name 은 Project.Package1.Package1-1.Package1-1-1.Object 1 으로 구성되어집니다.
예) Project1.Pack1.Pack1-1.Pack1-1-1.Object1 으로 표현되어집니다.
Package 의 계층 구조는 N level까지 가능합니다.
15. www.agadoss.com
15/264
AGADOS CLOUD 애플리케이션 OBJECT
Agados 기반 애플리케이션의 Object 는 화면에 대한 정보, 로직 정의한 정보를 가지고 있습니다.
다음은 오브젝트의 유형에 대해 알아 보겠습니다.
오브젝트 타입
로직 관련
Object
일반적인 Rule를 관리하는 Object
Web Object ( Java )
Java 환경에서 운영되는 Object
Web Object ( .Net )
. Net 환경에서 운영되는 Object
Event Object
화면에서 실행되어지는 Rule를 관리하는 Object
Process
일반적인 Process를 관리하는 Object
Event Process
화면에서 실행되어지는 Process를 관리하는 Object
화면 관련
Form
화면 및 Event 를 관리하는 객체
IForm
다른 Form 에서 Form 단위로 포함시킬 수 있는 구조이다.
Popup Contain
Popup. Control에 연결되지 않고 단독으로 보여지는 Popup.
Popup Control
Popup. Control에 연결되어 보여지는 Popup
데이터 관련
Memberset
값을 관리하는 Collection set 객체
Datatable
Form 의 Control 의 값을 관리하는 Collection set 객체. 형식은
. Net Framework 에서 제공하는 Datatable 과 같다.
Constant
전역 상수를 관리하는 Collection set 객체
이미지 관련
ImageCollect
Image 를 관리하는 Collection set 객체. Image 별로 접근 가능한
구조이다.
Image List
Image 를 관리하는 Collection set 객체. List 단위로 참조되며
포함된 Image 는 Index로 접근 가능한 구조이다.
Script 관련
VB Script
Common Script 를 관리하는 객체 (VB 전용)
C# Script
Common Script 를 관리하는 객체 (C# 전용)
IronPython Script
Common Script 를 관리하는 객체 (IronPython 전용)
Jython Script
Common Script 를 관리하는 객체 (Jython 전용)
16. www.agadoss.com
16/264
AGADOS CLOUD VALUE 흐름 및 구조
Agados Cloud 내에서 Value 흐름은 다음과 같습니다.
Object 와 Form Object 는 MemberSet 의 단위로 Value 를 관리합니다.
MemberSet 은 하나의 객체로 정의되며 Life time 은 사용된 Object 에 한정됩니다.
Form 에서의 Value 관리 객체는 DataTable 입니다.
각각의 Control 은 DataTable 의 Column 에 binding 됩니다.
Life time 은 Form 의 Life time 에 귀속됩니다.
DataTable 과 Memberset 의 Data 관계성은 DataTable 의 정의되어지는 연관 정보를 활용하며
필요에 따라 User 가 개별적으로 정의할 수 있습니다.
Value 정의 및 전달 단위는 개별Item (Member or DataColumn) 또는 Set 단위 (MemberSet or DataTable) 둘 다 제공하고 있습니다.
17. www.agadoss.com
17/264
Agados Member Collection 은 기본적으로 데이터를 관리하는 Model 입니다.
Collection 는 여러 개의 Member set 을 가지고 있습니다.
Member set 은 여러 개의 Row 를 가집니다.
Row 는 여러 개의 Member 별 데이터를 가집니다.
일반적으로 비교하면 DB Table 의 Column 구조와 유사하다고 할 수 있습니다.
Agados Member Collection
A Memberset
Row ( member , member , … ) - 1
Row ( member , member , … ) - 2
Row ( member , member , … ) - N
B Memberset
Row ( member , member , … ) - 1
Row ( member , member , … ) - 2
C Memberset
Row ( member , member , … ) - 1
18. www.agadoss.com
18/264
BUILD
Agados Cloud에서 정의(디자인)된 규칙정보들은 Agados 규칙 Repository 에 저장됩니다.
제작한 애플리케이션(저장된 규칙)을 실행 환경에서 사용하려면 Xml 형식으로 규칙정의 정보를
변환시켜야 합니다.
이 변환의 단계가 Build 입니다. 3GL 언어를 사용한 프로그램에서 컴파일(Compile)에 해당합니다.
Build는 Build 메뉴, Ctrl + B , Solution Explorer 에서 Popup , 각 정의 화면에서의 Build Button 을
통하여 실행할 수 있습니다. 사용자가 로직 및 화면 정보를 변경한 경우에는 꼭 Build 작업을
실행하여야 합니다.
1.7.1. SOLUTION BUILD
Solution 전체에 대한 Build 를 수행합니다. 빌드 단위는 Object, Resource, All 이 있습니다.
Build 는 Object + Resource, Build (Object) 는 Object 만, Build (Resource) 는 Resource만
빌드 합니다.
Download Xml File 은 Build 되어져 있는 Xml File 을 내 PC에 Download 받는 기능입니다..
① Menu 에서 Build 를 선택합니다.
19. www.agadoss.com
19/264
② Solution Explorer 에서 Solution Node 를 선택 한 후 Popup 을 호출합니다.
1.7.2. PROJECT OR PACKAGE BUILD
Project 나 Package 에 속해 있는 모든 Object 를 Build 할 수 있습니다.
① Solution Explorer 에서 Project 나 Package Node 를 선택 한 후 Popup 을 호출한다.
20. www.agadoss.com
20/264
1.7.3. OBJECT BUILD
Object 단위 별로 Build 할 수 있습니다.
① Solution Explorer 에서 Object Node 를 선택 한 후 Popup 을 호출합니다.
② Object 의 Design Form ( Tab 의 Title bar ) 에서 Popup을 호출합니다.
③ 각각의 Design Form 내의 버튼을 실행합니다.
Object 또는 Resource 정의 Form 내에 이 버튼이 존재한다면 개별적으로 Build 할 수 있음을
뜻합니다.
21. www.agadoss.com
21/264
RUN
Agados Cloud에서 Build 된 Xml 정보를 실행합니다.
Run 은 Test > Run 에서 또는 F5 (단축키)를 통해 실행할 수 있습니다.
메뉴 Test > Run 을 실행합니다.
Test 환경에서 Run 할 경우 Main Form 이 설정되어야 합니다.
Main Form 은 메뉴 Solution > Solution Attribute 내에 Design Tab 에서
확인 할 수 있습니다.
또는 Solution Explorer 의 Popup 에서 Object 선택 후 메뉴 Set Run Form >
에서 선택 할 수 있습니다.
22. www.agadoss.com
22/264
배포
Agados Cloud에서 배포는 세 가지 유형이 존재합니다.
유형별 배포 방식을 설명합니다.
구분
Agados Tools
Agados Designer, Configurator, Monitor, Admin 등은 MS Click Once 를 사용하여 배포합니다.
자세한 사항은 Click Once 정책을 확인하시기 바랍니다.
Agados Smart
Agados Smart 는 정의한 Rule을 클라이언트에서 실행하는 엔진입니다.
사용자가 Designer 에서 정의한 내역을 Smart 에서 실행 할 수 있습니다.
Smart 는 MS Click Once 를 사용하여 배포합니다.
자세한 사항은 Click Once 정책을 확인하시기 바랍니다.
사용자 정의 Rule (Object)
사용자 정의 Object (Rule) 은 Agados 에서 제공하는 Deploy engine 을 사용합니다.
Deploy 정책은 Object 별 Version 을 관리하며 사용자의 현재 버전을 비교하여
선별적으로 배포합니다.
Import , Export
사용자가 정의한 로직을 타 사용자와 공유하기 위한 기능입니다.
현재 정의한 Rule 을 선별하여 Agados 가 정의한 파일의 형태로 변환합니다.
설치
Agados Cloud 은 기본적으로 Cloud 환경에서 실행합니다.
그러나 사용자 의 요구에 의해 여러 가지 형태로 설치될 수 있습니다.
필요에 따라 사용자 사이트에 로컬로 설치될 수도 있습니다.
이 경우에 아가도스 클라우드는 Private Cloud 플랫폼으로 동작합니다.
자세한 사항은 eft1998@agadoss.com 연락 주십시요.
24. www.agadoss.com
24/264
AGADOS CLOUD 시작
Agados 의 시작 시 절차를 설명합니다.
Agados 홈페이지 사이트(www.agadoss.com)에서 User 를 먼저 등록 하셔야 합니다.
이 장에서 설명하는 내용은 User 등록 후 내용입니다.
User 가 정상적으로 등록 된 경우 Download page 에서 Agados cloud platform 을
설치할 수 있습니다.
Agados Cloud Platform 에서의 접속 ID 와 Password 는 Agados 홈페이지의 정보와
동일합니다.
Agados 실행 ( Download Page )
Connect Site
Open Solution
템플릿 설치 ( 자동 )
Set Main Form
Build
첫 시작인 경우
User 등록 ( Agados Site )
User Activation
Run
25. www.agadoss.com
25/264
2.1.1. CONNECT SITE
Email 에 전송된 URL로 접속하면 다음 화면을 볼 수 있습니다.
이 화면에서 Agados Cloud Platform 으로 연결됩니다.
메뉴 File > Connect Site에서 실행할 수 있습니다.
- Connect Site Form
① AGADOS.CLOUD 는 Agados 에서 지정한 사이트 명 입니다.
② Site 의 접속 URL 를 입력합니다.
접속 URL 은 Default 로 Setting 됩니다.
만약 접속 URL 을 재문의 할 경우 eft1998@agadoss.com 으로 연락 주십시오
③ Agados 사이트 에서 등록한 User id 와 Password 를 입력합니다.
④ 저장 버튼을 Click 하면 List 창에 등록된 사이트가 나옵니다.
⑤ Connect 버튼을 Click 합니다. 정상적으로 연결되는 것을 확인합니다.
1
5
4
3
6
2
26. www.agadoss.com
26/264
2.1.2. OPEN SOLUTION
사용자가 사용할 Solution 을 선택합니다.
Cloud 환경에서 솔루션은 User 당 하나씩 생성됩니다. 그리고 솔루션을 추가하는 기능은
Cloud 환경에서는 지원되지 않습니다.
Menu 에 File > Open Solution 에서 실행 할 수 있습니다.
- Open Solution Form
① 등록된 Solution 중 사용할 Solution을 선택합니다.
② OK 버튼을 Click 한 후 정상적으로 오픈 됨을 확인합니다.
정상적으로 Open 된 경우 Main Form의 Solution Explorer 에서 Solution을 확인할 수 있습니다.
Cloud 환경에서 Solution 은 자동 생성됩니다.
Solution 에 대한 권한은 생성자는 Owner, 참여자는 Follow 로 지정됩니다.
Cloud 환경에서 첫 연결 시 자동으로 템플릿이 Export 됩니다.
Export 여부는 Solution Explorer 에서 확인 할 수 있습니다.
1
2
28. www.agadoss.com
28/264
2.1.3. SET MAIN FORM
사용자가 사용할 Solution 을 선택합니다.
Cloud 환경에서 솔루션은 User 당 하나씩 생성됩니다. 그리고 솔루션을 추가하는 기능은
Cloud 환경에서는 지원되지 않습니다.
Menu 에 Solution > ‘솔루션명’ Attribute 에서 실행 할 수 있습니다.
해당 탭 중 Design 을 선택합니다.
- Solution Attribute Form 에서 Run Form 설정
① Desgin Tab 을 선택합니다.
② Run Form 에 Form 을 선택합니다.
Form 명은 BizDemo.Poc1.Forms.CodeListForm 을 선택합니다.
③ 저장 버튼을 Click 합니다.
2
1
3
29. www.agadoss.com
29/264
- Solution Explorer Popup 에서 Run form 설정
① Solution Explorer 애서 CodeListForm 을 선택합니다.
② Popup 에서 Set run form 을 선택합니다.
1
30. www.agadoss.com
30/264
2.1.4. BUILD
Solution 을 빌드합니다.
1.7 Build 에서 빌드 방법을 참조합니다.
빌드 는 Solution Build 을 수행합니다.
2.1.5. RUN
Solution 을 실행합니다.
1.8 Run 에서 Run 방법을 참조합니다.
- 실행 화면
31. www.agadoss.com
31/264
사용자 DB 확인
Agados Cloud 에서 제공하는 Default DB 를 확인합니다.
Agados Cloud 에서는 MySQL 를 User DB 로 기본으로 제공합니다.
DB에 대한 관리 제어 및 Table 생성은 MySQL Workbench 를 사용하시기 바랍니다.
메뉴 Solution > Adapter > Database 를 실행합니다.
① Adapter Name 중 AGADOS.CLOUD 를 선택합니다.
② Connection String 에서 DB Name 과 User, Password 를 확인합니다.
1
32. www.agadoss.com
32/264
3. AGADOS CLOUD 기본 작업
이 장에서는 Agados cloud platform 에서 기본적으로 사용하는 작업들에 대해 설명합니다.
33. www.agadoss.com
33/264
PROJECT 등록
Agados 에서 Project 를 등록하는 방법을 설명합니다.
Solution Explorer 에서 Solution 을 선택, Popup 에서 Add Project 를 선택합니다.
또는 메뉴 File > New Project 로 실행 할 수도 있습니다.
- Add Project Form
① Project 명을 입력한다. Project 명은 Solution 내에서 Unique 해야 합니다.
② OK 버튼을 Click 한 후 정상적으로 저장됨을 확인합니다.
정상적으로 저장되는 경우 Solution Explorer 에서 Project 가 Add 됨을 볼 수 있습니다.
1
2
34. www.agadoss.com
34/264
- Solution Explorer 에서 등록된 Project 확인
PACKAGE 등록
Solution Explorer 에서 Project 또는 Parent Package 을 선택
, Popup 에서 Add Package 를 선택합니다.
35. www.agadoss.com
35/264
- Add Package Form
① Parent 명을 확인한다. 선택한 Project or Package 가 맞는 지 확인합니다.
② Package 명을 입력합니다.
③ OK 버튼을 Click 한 후 정상적으로 저장됨을 확인합니다.
정상적으로 연결되는 경우 Solution Explorer 에서 Package 가 Add 됨을 볼 수 있습니다.
- Solution Explorer 에서 등록된 Package 확인
1
3
2
36. www.agadoss.com
36/264
OBJECT 등록
Solution Explorer 에서 Project 또는 Parent Package 을 선택
, Popup 에서 Add Object 를 선택합니다.
- Add Object Form
1
5
2
3
4
37. www.agadoss.com
37/264
① Object 유형을 선택합니다.
② Parent 명을 확인합니다. 선택한 Project or Package 가 맞는 지 확인합니다.
③ Object 명을 입력합니다.
④ Form 항목은 FormObject Type 일 경우 Relation Form 을 지정할 수 있습니다.
⑤ OK 버튼을 Click 한 후 정상적으로 저장됨을 확인합니다.
정상적으로 연결되는 경우 Solution Explorer 에서 Object 가 Add 됨을 볼 수 있습니다.
- Solution Explorer 에서 등록된 Object 확인
38. www.agadoss.com
38/264
CONTROL (FORM)
Form 에서 화면을 구성하는 것이 Control 입니다.
Agados Cloud 는 다양한 Control을 제공하고 있습니다.
자세한 사항은 별도 문의하시기 바랍니다.
3.4.1. CONTROL 등록 (FORM)
Form 에서 Control를 추가합니다. Control 의 추가는 Tool Box 와 Control Resource 에서
추가 할 수 있습니다. 먼저 Add 할 Control Type을 선택 한 후 Form 에 Control 를
위치시키면 됩니다. Control Resource 에서는 Data 형식의 Control 를 선택 할 수 있습니다.
TOOL BOX 에서 CONTROL ADD
메뉴 View > Tool Box 를 선택합니다.
- Control Tool Box
1
39. www.agadoss.com
39/264
① Control Box 에서 Control 를 선택합니다.
선택 후 Form 에서 위치할 영역에 그려 줍니다.
CONTROL RESOURCE 에서 CONTROL ADD
2
1
3
40. www.agadoss.com
40/264
① Form Design 에서 Control Resource Tab 을 선택합니다.
② Drop Box 에서 Add 할 Control Type을 선택합니다.
③ Add 버튼을 Click 한 경우 Control 이 아래 List에 Add 됨을 확인합니다.
3.4.2. CONTROL PROPERTY 설정
Control 을 선택 후 속성 창에서 Control 속성을 수정 할 수 있습니다.
BASE PROPERTY 설정
① Control 를 선택하거나 Control 선택 후 오른쪽 마우스 Click 후 보여지는
Popup 에서 Properties 를 선택한다.
② Property (속성) 창이 나오면 Control 의 속성을 변경한다.
③ Event 버튼을 Click 시 Event 를 등록할 수 있는 속성 창이 보입니다.
④ Property 버튼을 Click 시 Property 를 등록할 수 있는 속성 창이 보입니다.
2
3
4
41. www.agadoss.com
41/264
PROPERTIES BY TYPE 설정
같은 유형의 Control 에 사용자가 변경하는 Property 를 동일하게 적용할 수 있는 기능이다.
① 여러 개의 Control 을 선택 후 오른쪽 마우스 Click 후 보여지는
Popup 에서 Properties 를 선택한다.
② Property (속성) 창에서 상위 버튼들 중 (Properties by type) 버튼을 선택한다.
1
2
42. www.agadoss.com
42/264
③ 선택된 Control 유형별 또는 선택한 Control 의 Child 유형이 표시됩니다.
변경할 유형을 선택 후 오른 쪽의 Property 을 수정하면 같은 유형의 모든 Control 에
변경된 내역이 적용됩니다.
3
43. www.agadoss.com
43/264
PROPERTY COLLECT 설정
Collect 유형의 Control (Grid, Chart 등) 일 경우 트리 구조로 Control 의 Child 을 표현해 준다.
또한 해당 화면에서 Property 를 수정하거나 Child Control 를 추가 삭제 할 수 있다.
① Property (속성) 창에서 상위 버튼들 중 (Collect) 버튼을 선택합니다.
② Control 을 선택한 후 Control Property 를 수정하거나 Child 를 추가 할 수 있습니다.
2
44. www.agadoss.com
44/264
PROPERTY COPY 설정
Control 의 Property 를 같은 유형의 Control 에 Copy 할 수 있는 기능입니다.
① Property (속성) 창에서 상위 버튼들 중 (Copy Property) 버튼을 선택합니다.
② Source Control 에서 Copy 할 Property 를 선택합니다.
③ 적용 할 Control 를 선택합니다.
④ Save 버튼을 Click 한 후 저장 된 내역을 확인합니다.
필요에 따라서 Form 을 Refresh 해야 할 필요가 있습니다.
2
3
45. www.agadoss.com
45/264
3.4.3. CONTROL DELETE
Control 을 선택 후 Popup 에서 Delete 하거나 Delete 버튼을 눌러 삭제할 수 있습니다.
① Control 를 선택 후 Delete 키를 누르거나 Control 선택 후 오른쪽 마우스 Click 후 보여지는
Popup 에서 Properties 를 선택합니다.
② Ok 버튼을 Click 한 후 정상적으로 삭제 되는 것을 확인합니다.
1
2
46. www.agadoss.com
46/264
3.4.4. CONTROL BOUND 저장
Control 의 Bound 를 변경한 후 저장하지 않으면 변경된 정보가 반영되지 않습니다.
그러므로 변경이 발생 시 필히 정보를 저장하여야 합니다.
① Control 또는 Form 를 선택한 상태에서 Ctrl + S 를 하거나 Form 의 빈 공간에서
오른쪽 마우스 Click 후 보여지는 Popup 에서 Save Form 를 선택합니다.
② 정상적으로 저장된 것을 확인합니다.
47. www.agadoss.com
47/264
NODE
Agados Cloud 에서는 사용자의 로직은 Rule 과 Flow 로 구성됩니다.
Node 는 Rule 을 담당합니다. 다양한 유형의 Node 를 제공하며 이 Node 를 사용하여
로직을 구성할 수 있습니다.
자세한 사항은 별도 문의하시기 바랍니다.
3.5.1. NODE 등록
Object 에 Node 를 등록합니다. Node 는 사용자가 로직을 정의할 수 있습니다.
Canvas 의 빈 공간에서 오른쪽 마우스 Click 후 보여지는 Popup 에서 Add Node를 선택한다.
- Add Control Form
2
3
4
5
6
48. www.agadoss.com
48/264
① Node Type 을 선택합니다.
② Node SubType 을 선택합니다.
등록할 Sub Type 를 한번에 여러 개 선택할 수도 있습니다.
③ Node Name 을 입력합니다.
④ Node 생성 개수를 입력합니다.
⑤ Ok 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장되는 경우 Canvas 에 노드가 보여집니다.
3.5.2. NODE STYLE 설정
① Node 를 선택한 후 오른쪽 마우스 Click 후 보여지는 Popup 에서 Style 를 선택한다.
2
5
3
4
6
49. www.agadoss.com
49/264
② Node의 Note 을 입력합니다.
③ Node Title 의 Font 를 선택합니다.
④ Node Title 의 ForeColor 을 선택합니다.
⑤ Node 의 Shape 속성을 정의 합니다.
⑥ Ok 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장되는 경우 노드의 모양이 바뀌는 것을 확인할 수 있습니다.
3.5.3. NODE DELETE
Node 을 선택 후 Popup 에서 Delete 하거나 Delete 버튼을 눌러 삭제할 수 있습니다.
① Node 를 선택한 후 오른쪽 마우스 Click 후 보여지는 Popup 에서 Remove Node 를
선택합니다. 또는 Delete key 를 선택합니다.
② Yes 버튼을 Click 한 후 정상적으로 삭제되는 것을 확인합니다.
50. www.agadoss.com
50/264
3.5.4. NODE PROPERTY (RULE 정의)
Node Property 는 Node 별 구성된 로직을 등록 할 수 있습니다.
노드 유형에 따라 다양한 로직을 정의할 수 있습니다.
① Node 를 선택한 후 Double Click 을 하거나 오른쪽 마우스 Click 후 보여지는
Popup 에서 Properties 를 선택합니다.
② Save 버튼 – Rule 을 저장할 수 있습니다.
③ Search 버튼 – Rule 의 최신 정보를 조회 할 수 있습니다.
2
3
51. www.agadoss.com
51/264
3.5.5. NODE CONNECT
Node 의 흐름을 정의합니다. Node 와 Node 사이에 선을 연결함으로 인하여 Node 실행 순서
또는 흐름을 정합니다.
3.5.6. BASE CONNECT
① Canvas 의 빈 공간에서 오른쪽 마우스 Click 후 보여지는 Popup 에서 Link 를 선택한다
② Canvas 의 Link Mode 에서 연결 할 두 Node 를 선택한다.
Link Mode 에서 원 상태로 돌아오려면 1. 방식에서 Pointer 들 선택하면 된다.
52. www.agadoss.com
52/264
3.5.7. CONNECT – ONE TO ONE
여러 개의 노드를 한꺼번에 순차적으로 연결합니다.
① 연결할 여러 개의 노드를 선택 한 후 오른쪽 마우스 Click 후 보여지는 Popup 에서
Connect (One to One ) 를 선택한다.
② 방향 버튼들을 사용하여 Node 순서, 포함여부를 조정한다.
③ Connect 버튼을 Click 하여 정상적으로 연결되는 것을 확인한다.
2
3
53. www.agadoss.com
53/264
3.5.8. CONNECT – ONE TO MANY
여러 개의 노드를 한꺼번에 일 대 다의 형식으로 연결합니다.
① 연결할 여러 개의 노드를 선택 한 후 오른쪽 마우스 Click 후 보여지는 Popup 에서
Connect (One to Many ) 를 선택한다.
② 방향 버튼들을 사용하여 Node 순서, 포함여부를 조정한다.
③ 연결 방향에 따라 Target, Source 버튼을 Click 하여 정상적으로 연결되는 것을 확인한다.
2
3
54. www.agadoss.com
54/264
3.5.9. FLOW CONDITION 설정
Node 의 흐름에 대한 조건을 정의합니다. 조건을 설정 시 조건에 부합한 연결만 실행됩니다.
① 조건을 설정할 선의 From node 의 Rule property 를 실행한다.
Node 를 Double click 하거나 Popup 에서 Properties 를 실행한다.
② Rule Property 에서 Flow Tab 을 선택합니다.
③ Condition, Comparison, Value 를 선택하여 입력합니다.
Condition 이 NO_COND_PASS, Comparison 은 =, Value 는 ON 을 선택하면 조건 없이
실행될 수 있음을 의미합니다.
(NO_COND_PASS = ON)
④ List 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장된 경우 List 에서 저장된 내역을 확인할 수 있습니다.
하지만 DB 에 반영되는 것은 아니며, 단지 List 에만 반영이 되어 있는 상태입니다.
⑤ List 를 Click 하면 Flow Condition 의 상세정보를 볼 수 있다. 상세정보가 로드 된 후
Flow Condition 의 수정, 삭제가 가능합니다.
⑥ (DB 반영) 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
이 시점에 DB에 반영되면 정상적으로 저장된 경우 재 호출 또는 조회 시 List 에서
저장된 내역을 확인할 수 있습니다.
2
3
6
5
4
55. www.agadoss.com
55/264
⑦ 해당 선을 Double Click 하거나, 선을 선택한 후 오른쪽 마우스 Click 후 보여지는
Popup 에서 Flow Condition Value 를 선택하거나, Properties 를 선택합니다.
설명한 방법 중 하나를 선택하여 Flow Condition 을 지정할 수 있습니다.
⑧ 원하는 Condition 을 선택하면 Flow 의 Condition 이 지정됩니다.
⑨ Double Click 하거나 Properties 를 선택하면 Flow Condition form 을 볼 수 있습니다.
⑩ 지정 할 Flow Condition 를 선택합니다.
⑪ 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장된 경우 Canvas 에 선의 Condition 이 지정됨을 볼 수 있습니다.
3.5.10. FLOW CONDITION 2 ( START NODE )
Start Node 인 경우 10.5.2 의 방식과 더불어 해당 Object 를 호출하는 Object 혹은 Form 에서
기 정의한 값을 검색하여 Condition 을 정의할 수도 있습니다.
① Start node 의 Rule property 를 실행합니다.
Node 를 Double click 하거나 Popup 에서 Properties 를 실행합니다.
10
8
9
11
56. www.agadoss.com
56/264
② Rule Property 에서 Flow Tab 을 선택합니다.
③ Search 버튼을 Click 하여 Reference Search 창을 실행합니다.
④ Reference Object 나 Form 들 중에서 해당하는 Object 를 선택합니다.
2
8
7
3
4
5
6
57. www.agadoss.com
57/264
⑤ Object 또는 Form 에서 기 정의한 Event Code, Jump Code 를 확인 한 후
해당하는 Parameter 을 선택합니다.
⑥ 적용 버튼을 Click 한 후 Flow Tab 의 Condition Value 에 적용됨을 확인합니다.
⑦ List 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장된 경우 List 에서 저장된 내역을 확인할 수 있습니다.
하지만 DB 에 반영되는 것은 아니며, 단지 List 에만 반영이 되어 있는 상태입니다.
⑧ (DB 반영) 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
이 시점에 DB에 반영되면 정상적으로 저장된 경우 재 호출 또는 조회 시 List 에서
저장된 내역을 확인할 수 있습니다.
⑨ 나머지 과정은 10.5.2 의 과정과 동일합니다.
3.5.11. FLOW CONDITION 3 ( FORM EVENT )
Form 의 Event 정의 시 Run Type 이 FormObject 나 Object 인 경우 Call Parameter 를
해당 Object 의 Start Node Flow Condition 에 등록할 수 있습니다.
① Form 의 Event 등록 창을 실행 한 후 Run Object 나 Run Form Object 정의 화면을
실행합니다.
② Object 의 IN-Param 이 등록되어 있음을 확인합니다.
③ Add Flow Condition 버튼을 Click 하여 Flow Condition Add 를 실행합니다.
3
2
58. www.agadoss.com
58/264
④ 원하는 Parameter 를 선택합니다.
⑤ Add 버튼을 Click 한 후 정상적으로 등록됨을 확인합니다.
정상적으로 등록되는 경우 해당 Object 의 Start Node – Flow 에 등록됨을 볼 수 있습니다.
4
5
59. www.agadoss.com
59/264
3.5.12. NODE BOUND 저장
Node 의 Bound 를 변경한 후 저장하지 않으면 변경된 정보가 반영되지 않습니다.
그러므로 변경이 발생 시 필히 정보를 저장하여야 합니다.
① Canvas 를 선택한 상태에서 Ctrl + S 를 하거나 Canvas 의 빈 공간에서 오른쪽 마우스
Click 후 보여지는 Popup 에서 Save View 를 선택합니다.
② 정상적으로 저장된 것을 확인합니다.
60. www.agadoss.com
60/264
NODE GROUP
Node Group 은 Node 들의 모음 입니다. Node 를 Grouping 할 경우 여러 가지 유형으로
Grouping 할 수 있습니다.
Node Group 은 네 가지 유형을 제공하고 있습니다.
구분
Base Group
기본 그룹입니다.
Node 들을 카테고리화 하여 관리할 수 있습니다.
Looping Group
그룹내의 로직을 정의한 수만큼 반복 수행합니다.
Synchronized Group
그룹내의 로직을 Synchronized, 또는 lock 하여 수행합니다.
Filter Group
그룹에 전달한 Value 를 Filtering 하여 그룹 내에서 수행합니다.
3.6.1. NODE GROUP 등록
Node Group 은 Node 들의 모음 입니다. Node 를 Grouping 할 경우 여러 가지 유형으로
Grouping 할 수 있습니다.
① 연결할 여러 개의 노드를 선택 한 후 오른쪽 마우스 Click 후 보여지는 Popup 에서
Make Group 를 선택합니다.
61. www.agadoss.com
61/264
② Group 유형을 선택합니다.
③ Group 명을 입력합니다. Group 명은 Unique 해야 합니다.
④ Ok 버튼을 Click 하여 정상적으로 생성되는 것을 확인합니다.
그룹 후 화면
2
3
4
62. www.agadoss.com
62/264
3.6.2. LOOPING GROUP 등록
Looping Group 은 정의한 수만큼 Group 내의 노드를 반복 수행 합니다.
노드 내의 값은 Loop Start Node 에서 정의한 것으로 재구성됩니다.
LOOP START NODE
Loop Start node 는 Looping 조건 과 Looping 시 적용되는 Value 를 정의합니다.
① Loop Start Node 을 선택합니다.
② Loop Condition 이 될 Member 를 선택합니다.
Collection 내에 선택된 Member 수만큼 Looping 합니다.
Collection 에 Member 가 5 개가 있다면 5 번 반복수행 합니다.
③ One By One 은 MemberSet (Member 집합) List 를 하나씩 꺼내어 수행합니다.
선택된 MemberSet 는 반복수행 시 1씩 인덱스가 증가 되어 List 에서 꺼내어 집니다.
선택이 안된 MemberSet 은 반복 수행 시 모든 값이 전달됩니다.
④ 저장을 선택하면 아래 Grid에 MemberSet 의 Member 들이 표시됩니다.
⑤ Grid 에 Same 을 선택하면 선택된 Member 는 Looping Count 보다 값이 적은 경우 그 전 Value를 Set 해준다.
⑥ 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인한다.
3
2
5
6
4
63. www.agadoss.com
63/264
LOOP END NODE
Loop End node 는 Looping 완료 된 후 다음 Step 에 전달될 값을 정합니다.
① Loop End Node 를 선택합니다.
② 다음 Step 으로 넘겨질 MemberSet 을 선택한다.
③ 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인한다.
2
3
64. www.agadoss.com
64/264
LOOPING VALUE 흐름
Loop Group 내에 Value 을 흐름 또는 구조를 설명합니다.
Agados Member Collection 에 다음과 같이 데이터가 있다고 가정합니다.
① Looping Count 는 다음과 같이 결정됩니다.
A Mset 의 특정 Member 를 선택할 경우 Looping Count = 3
B Mset 의 특정 Member 를 선택할 경우 Looping Count = 2
C Mset 의 특정 Member 를 선택할 경우 Looping Count = 1
로 결정됩니다.
② One By One 는 다음과 같이 결정됩니다.
A Mset 을 One By One 으로 선택 시 Looping Collection 은
아래 표와 같이 구성됩니다.
A Mset 의 하나의 Row 와 B Mset, C Mset 으로 구성됩니다.
Member Collection
A Mset
Row - 1
Row - 2
B Mset
C Mset
Row - 3
Row - 1
Row - 2
Row - 1
65. www.agadoss.com
65/264
③ Same Check 는 다음과 같이 결정됩니다.
A Mset 의 A’ Member 를 Same Check 한 경우, A’ Member 의 데이터가
Row 별로 (1 , null , null) 로 있을 경우 Looping Collection 은
(1 , 1 , 1) 로 전달됩니다.
Looping Member Collection
( One By One – A Mset )
1 Loop
A Mset
Row - 1
B Mset
C Mset
Row - 1
Row - 2
Row - 1
Looping Member Collection
( One By One – A Mset )
2 Loop
A Mset
Row - 2
B Mset
C Mset
Row - 1
Row - 2
Row - 1
Member Collection
( A Mset )
Row - 1
A’ ( Value = 1 )
B’
C’
D’
Row - 2
A’ ( Value = null )
B’
C’
D’
Row - 3
A’ ( Value = null )
B’
C’
D’
66. www.agadoss.com
66/264
3.6.3. SYNCHRONIZED GROUP 등록
Synchronized Group 은 Group 을 Lock 한 상태에서 수행합니다.
해당 Group 이 수행 중에는 다른 요청 (해당 Group 을 수행하려는) 은 대기 상태로 기다립니다.
Synchronized Group 은 Start 와 End Node 에서 별도의 설정하는 값은 없습니다.
하지만 시작과 끝은 Sync Start Node 와 Sync End Node 에서 수행됩니다.
3.6.4. FILTER GROUP 등록
Filter Group 은 Group 내의 값을 필터링 하여 수행합니다.
전 Step 에서 건너진 Value 를 해당 Group 에서 Filtering 된 Value 로 변환 후
수행됩니다. 그리고 다음 Step 으로 넘어갈 경우 Group 전 Step 으로 넘어온 Value 로
재 치환됩니다.
예) A Member 가 Row-1 ( Value = 1 ) , Row-2 ( Value = 2 ) , Row-3 ( Value = 1 ) 있다고 가정합니다.
Filter 조건을 A Member 가 Value = 1 인 경우만 필터링 한다면 ( A = 1 )
Row -1 과 Row -3 의 Value 만 사용됩니다.
Member Collection
( Same Check A’ – A Mset )
Loop - 1
A’ ( Value = 1 )
B’
C’
D’
Loop - 2
A’ ( Value = 1 )
B’
C’
D’
Loop - 3
A’ ( Value = 1 )
B’
C’
D’
67. www.agadoss.com
67/264
FILTER START NODE
Filter Start node 는 Filtering 조건 과 Filtering 시 적용되는 Value 를 정의합니다.
① Filter Start Node 을 선택합니다.
② Filter 조건을 정의합니다.
Filter 기준이 되는 Member 와 Compare value 를 선택합니다.
③ 등록 한 정보를 Grid 에 반영합니다.
④ 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
FILTER END NODE
Filter End node 는 Filter 완료 된 후 다음 Step 에 전달될 값을 정합니다.
① Filter End Node 를 선택합니다.
② 다음 Step 으로 넘겨질 MemberSet 을 선택한다.
③ 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인한다.
2
3
3
2
4
68. www.agadoss.com
68/264
MEMBER 등록
Member 는 Member set 이라는 오브젝트로 집합됩니다.
Agados Cloud 에서는 모든 데이터의 식별을 Member 와 DataColumn 으로 하고 있습니다.
데이터를 전달하거나 데이터를 관리할 경우 Member 을 등록 관리 하셔야 합니다.
3.7.1. BASE 등록
Member Form 에서 Member Tab 을 선택합니다.
- Member Form ( Member Tab )
① Member 의 Name 을 등록한다.
Name 은 Member Set 내에서 Unique 해야 합니다.
② Type 의 그룹은 Base 와 Control 로 나누어 잡다.
Base 는 Int, String, Boolean, Date 등의 기본 유형을 가지며
, Control 은 Form 에서 사용된 Control 유형을 말합니다.
③ Relation Field 는 Member 와 관계가 있는 Field를 말합니다.
Field는 주로 Database Column을 말합니다.
향후 이 값을 기준으로 Member 와 Relation Field 간의 Auto mapping을 제공합니다.
1
3
5
2
6
4
69. www.agadoss.com
69/264
④ List 를 Click 하면 Member 의 상세정보를 볼 수 있습니다.
상세정보가 로드 된 후 Member의 수정, 삭제가 가능합니다.
⑤ 저장 버튼을 Click 한 후 정상적으로 저장됨을 확인합니다.
정상적으로 저장되는 경우 List에 저장된 내역이 나타납니다.
Member type type
Base
Boolean
Boolean 형 (True, False)
Date
날짜형
Datetime
날짜 시간 형
Double
Double ( 4.9E-324 ~ 1.7976931348623157E308 )
Float
Float ( 1.4E-45 ~ 3.4028235E38 )
Int
Int ( -2147483648 ~ 2147483647 )
String
문자열
Control
Form 에서 사용하는 Control Type
Member Type 이 Control 일 경우
Member Type 이 Control 경우 Form 에서 Control 을 전달할 때
사용됩니다. Member 가 Control 로 설정될 경우 Control 의
Instance 가 전달됩니다.
DB Table 항목
DB Table 항목은 Database 의 Table 과의 연관성을 관리할 수 있습니다.
이 항목에 Table 를 입력하면
메뉴 Visibility > Matrix > Memberset And Datatable (DB) 에서 연관성을 확인할 수 있습니다.
70. www.agadoss.com
70/264
3.7.2. DATABASE COLUMN SEARCH 등록
사용자 DB 의 Column 을 참조하여 Member 를 등록 할 수 있습니다.
Database column Search 버튼을 Click 시 Database search Form 이 호출됩니다.
- Database Search Form
① Database Adapter 을 선택합니다.
만약 존재하지 않는다면 메뉴 Solution > Adapter > Database 에서 Adapter 등록 여부를
확인합니다..
② Metadata는 Database의 Metadata 를 참조하고, Sql 는 Sql 의 Result 를 참조 합니다.
Sql 를 선택한 경우 Sql 문장을 입력할 수 있는 화면이 나옵니다.
③ Search 버튼을 Click 하면 Metadata인 경우 아래 List 에 DB Table 이 나오면
, Sql인 경우 오른쪽 List Box 에 Column 내역이 나옵니다.
④ List를 Click 하면 DB Table에 포함된 Column이 오른쪽 List Box에 나옵니다.
⑤ 원하는 Column 을 선택합니다.
⑥ Apply 버튼을 Click 하면 선택된 Column 이 Member 로 등록됩니다.
정상적으로 등록된 경우 Member Form에서 Member 가 등록됨을 확인할 수 있습니다.
1
3
6
4
2
5
71. www.agadoss.com
71/264
DATATABLE 등록
Control (Form 내의) 이 사용하는 Data 는 Datatable 로 관리합니다.
3.8.1. BASE 등록
Datatable Form 에서 Column Tab 을 선택합니다.
- DataTable Form ( Column Tab )
① Column 의 Name 을 등록합니다.
Name 은 DataTable 내에서 Unique 해야 합니다.
② Column 의 Caption 을 등록합니다.
Caption 은 DataTable 내에서 Unique 해야 합니다.
③ Member 는 Column 와 관계가 있는 Member를 말합니다.
향후 이 값을 기준으로 Column 과 Member 간의 Auto mapping을 제공합니다.
④ Column 의 기본속성들을 지정합니다.
Data Type 이 Image 인 경우 Image Load Type 을 정의하여야 합니다.
⑤ List 를 Click 하면 Column 의 상세정보를 볼 수 있습니다.
1
4
6
3
7
5
2
72. www.agadoss.com
72/264
상세정보가 로드 된 후 Column의 수정, 삭제가 가능합니다.
⑥ 저장 버튼을 Click 한 후 정상적으로 저장됨을 확인합니다.
정상적으로 저장되는 경우 List에 저장된 내역이 나타납니다.
Data Column type
Boolean
Boolean 형 ( True , False )
ByteArray
날짜형
Datetime
날짜 시간 형
Double
Double ( 4.9E-324 ~ 1.7976931348623157E308 )
Float
Float ( 1.4E-45 ~ 3.4028235E38 )
Int
Int ( -2147483648 ~ 2147483647 )
String
문자열
Image
Image.
Image Type 을 선택하는 경우 Image load Type 을 선택하여야 합니다.
Image load type 은 네 가지 유형 을 제공합니다.
1. ImageControl : ImageList, ImageCollect 의 Image 를 활용합니다.
Image Collect 의 Image Control 명을 등록하시면 됩니다.
2. Absolute Path : Image 의 절대 경로를 지정합니다.
3. Relative Path : Solution path 를 Root 로 상대 경로를 지정합니다.
4. Url : Url 를 기준으로 Image 를 Load 합니다.
Expression 활용
Data Column 에서 Expression 설정하면 Data가 변경될 경우 자동으로
Expression을 수행 값을 해당 Column 에 적용합니다.
예를 들어 Column1 * Column2 = Column3 을 정의한다면
Column3 의 Expression 항목에 다음과 같이 등록합니다.
Column1 * Column2
Data Column 의 Expression 은 .Net Data Column 을 따릅니다.
참조:
http://msdn.microsoft.com/en- us/library/system.data.datacolumn.expression(v=vs.110).aspx
73. www.agadoss.com
73/264
3.8.2. MEMBER SEARCH 등록
Member 를 참조하여 DataColumn 을 등록할 수 있습니다.
⑦ Member 을 Search 후 Column 으로 등록할 수 있습니다.
버튼 Click 시 Member search Form 이 호출됩니다.
- Member Search Form
① MemberSet List 를 Click 하면 Memberset 에 포함된 Member가 오른쪽 List Box에 나옵니다.
② 원하는 Member 를 선택합니다.
③ Apply 버튼을 Click 하면 선택된 Member 가 Column 으로 등록됩니다.
정상적으로 등록된 경우 DataTable Form에서 Column 이 등록됨을 확인할 수 있습니다.
Datatable 등록 후 Form 에서 사용 할 경우 별도의 작업이 필요합니다.
Form 에서 Resource Control 중 Datatable or Dataview 를 추가한 후
해당 Control 의 Property 에서 TableName 에 해당 Datatable 을 선택하시면
Datatable 을 사용 할 수 있습니다.
자세한 사항은 3.4.2 의 Control Resource 에서 Control Add 를 참조하십시오.
3
1
2
74. www.agadoss.com
74/264
IMAGECOLLECT 등록
Control (Form 내의) 이 사용하는 Image 를 관리합니다.
Object 유형 중 Image Collect 로 선택 한 후 필요한 Image 를 Add 하시면 됩니다.
Image Collect 에 등록된 Image 는 이름으로 Control 에서 참조됩니다.
IMAGELIST 등록
Control (Form 내의) 이 사용하는 Image 를 관리합니다.
Control 특성 상 Image 명이 아닌 Image List 의 Index 를 참조하는 경우가 있습니다.
이런 경우 Image List 를 사용합니다.
Control Property 에서 ImageList 를 선택 할 경우에는 이름으로 참조되지만 내부적으로는
List Index 로 수행됩니다.
Agados 에서는 Image Collect 를 권장합니다.
Image List 는 필요에 따라 사용하시기 바랍니다.
Data 에 의한 (예를 들어 인사 사진 등) 이미지는 DataColumn 의
Image Type 을 통해 적용할 수 있습니다.
자세한 사항은 3.20 Datatable 등록을 참조하시기 바랍니다.
SCRIPT
사용자는 Script 를 통해서 사용자 로직을 정의할 수도 있습니다.
Script 의 정의는 Rule (Node) , Common Script ( Object ) 를 통해 할 수 있습니다.
Agados Cloud 는 VB Script, C# Script, IronPython Script, Jython Script 를 제공합니다.
Client 환경에서는 VB Script, C# Script, IronPython Script 적용되며
, Server 환경이 Java 인 경우 Jython Script 를 사용하셔야 합니다.
Agados Cloud 는 기본적으로 C# Script 를 권장합니다.
Script 내에서 타 라이브러리를 참조할 경우 다음 부분을 확인하십시오.
메뉴 Solution > Solution Attribute 내의 Tab 중 Library 에 먼저 등록되어야
합니다.
여기에 등록된 라이브러리는 Script 실행 시 자동 load 됩니다.
75. www.agadoss.com
75/264
3.11.1. SCRIPT 에서 사용하는 AGADOS CLASS
Script 와 Agados Engine 이 Data 를 주고 받을 경우 Agados 는 CoScriptModel 이라는
객체를 사용합니다.
CoScriptModel 은 내부적으로 멤버 별 Collection 을 제공합니다.
사용자는 Script 내에서 Agados 가 제공하는 Formatter, Control 등 다양한 모듈을 활용할 수
있습니다. 다음은 Script 를 사용할 경우 주로 쓰는 객체를 설명합니다.
기준은 C# Script 을 기준으로 하였습니다.
SoEngine.Common.Core.Script.CoScriptModel : Method Script 에서 값을 주고 받는 전달 객체입니다. 내부적으로 값과 Adapter 객체를 가지고 있습니다. 구성 key 는 Member name 이 기본입니다.
Collect : CoMap
CoScriptModel 의 모든 값을 가지고 있는 Collection 객체를 Return 합니다.
이 Value 를 Clear 하거나 New 하는 경우 CoScriptModel 내의 모든 Data가 Clear 됩니다.
AdaModel : CoAdaModel
Adapter 객체를 가지고 있는 CoAdaModel 를 Return 합니다.
Adapter 객체는 DB Connection, Hiber Adapter 등이 해당됩니다.
Script Model 정의 시 해당 값들을 전달 할 수 있습니다.
GetModel(bool isMset , Object name) : CoMsetModel
CoMsetModel 객체를 Return 합니다.
CoMsetModel 는 MemberSet 객체이며, Member 의 Collection 을 내부적으로 가지고 있습니다.
isMset name 이 Memberset 이름인지, Member 이름인지를 지정합니다.
True : Memberset 명 , False : Member 명
name MemberSet 명 or Member 명
Add(Object name , Object value) : void
ScriptModel 에 Member 을 Add 합니다.
name Member name 을 지정합니다.
value Member 의 value 를 지정합니다.
Add(Object name , String aliasNm , Object value) : void
ScriptModel 에 Member 을 Add 합니다.
name Member name 을 지정합니다.
76. www.agadoss.com
76/264
aliasNm Member name 의 Alias name 을 지정합니다.
해당 Member 를 참조 시 Alias name 을 사용할 수도 있습니다.
value Member 의 value 를 지정합니다.
AddMsetModel(Object objNm , CoMsetModel value) : void
ScriptModel 에 CoMsetModel 을 Add 합니다.
objNm Memberset name 을 지정합니다.
value CoMsetModel 객체를 지정합니다.
AddByAlias(String aliasNm , Object value) : void
ScriptModel 에 Alias name 을 사용하여 Member 을 Add 합니다.
Script Model 내의 Alias name 사전에 Name 이 기 등록되어야 합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
해당 Member 를 참조 시 Alias name 을 사용할 수도 있습니다.
value Member 의 value 를 지정합니다.
Insert(int idx , Object name , Object value) : void
ScriptModel 에 Member 을 특정 위치에 Insert 합니다.
Idx Insert 할 위치 ( Index ) 를 지정합니다.
name Member name 을 지정합니다.
value Member 의 value 를 지정합니다.
InsertByAlias(int idx , String aliasNm , Object value) : void
ScriptModel 에 Alias name 을 사용하여 Member 을 특정 위치에 Insert 합니다.
Script Model 내의 Alias name 사전에 Name 이 기 등록되어야 합니다.
Idx Insert 할 위치 ( Index ) 를 지정합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
해당 Member 를 참조 시 Alias name 을 사용할 수도 있습니다.
value Member 의 value 를 지정합니다.
Replace(int idx , String name , Object value) : void
ScriptModel 의 Member List 특정 위치의 값을 Replace 합니다.
Idx Replace 할 위치 ( Index ) 를 지정합니다.
name Member name 을 지정합니다.
value Member 의 value 를 지정합니다.
ReplaceByAlias(int idx , String aliasNm , Object value) : void
ScriptModel 의 Member List 특정 위치의 값을 Replace 합니다.
Idx Replace 할 위치 ( Index ) 를 지정합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
77. www.agadoss.com
77/264
value Replace 할 value 를 지정합니다.
ReplaceAll(String name , Object value) : void
ScriptModel 의 Member List 의 모든 Data 를 Replace 합니다.
name Member name 을 지정합니다.
value Replace 할 Value 를 지정합니다.
ReplaceAllByAlias(String aliasNm , Object value) : void
ScriptModel 내의 Member List 의 모든 Data 를 Replace 합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
value Replace 할 value 를 지정합니다.
GetByAlias(String aliasNm ) : CoList
ScriptModel 내의 Member 의 Value 를 CoList 로 반환합니다..
aliasNm Member name 의 Alias name 을 지정합니다.
Get( Object name ) : CoList
ScriptModel 내의 Member 의 Value 를 CoList 로 반환합니다..
name Member name 을 지정합니다.
SingleValueByAlias(String aliasNm , Object value) : String
ScriptModel 내의 Member List 중 하나의 값을 String type 으로 Return 합니다.
만약 데이터가 다수가 존재할 경우, 첫 번째 값을 String으로 변환 리턴 합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
value Value 가 Not null 이거나 empty 아니라면 Value 값을 무조건 return 합니다.
SingleValue(Object name , Object value) : String
ScriptModel 내의 Member List 중 하나의 값을 String type 으로 Return 합니다.
만약 데이터가 다수가 존재할 경우, 첫 번째 값을 String으로 변환 리턴 합니다.
name Member name 을 지정합니다.
value Value 가 Not null 이거나 empty 아니라면 Value 값을 무조건 return 합니다.
SingleObjectByAlias(String aliasNm , Object value) : Object
ScriptModel 내의 Member List 중 하나의 값을 Object type 으로 Return 합니다.
만약 데이터가 다수가 존재할 경우, 첫 번째 값을 Object 로 리턴 합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
value Value 가 Not null 이거나 empty 아니라면 Value 값을 무조건 return 합니다.
78. www.agadoss.com
78/264
SingleObject(Object name , Object value) : Object
ScriptModel 내의 Member List 중 하나의 값을 Object type 으로 Return 합니다.
만약 데이터가 다수가 존재할 경우, 첫 번째 값을 Object 로 리턴 합니다.
name Member name 을 지정합니다.
value Value 가 Not null 이거나 empty 아니라면 Value 값을 무조건 return 합니다.
RemoveMsetByAlias(bool isMset , String aliasNm) : void
CoMsetModel 객체를 Remove 합니다.
isMset name 이 Memberset 명인지, Member 명인지를 지정합니다.
True : Memberset 명 , False : Member 명
aliasNm Member name 의 Alias name 을 지정합니다.
RemoveMset(bool isMset , Object name) : void
CoMsetModel 객체를 Remove 합니다.
isMset name 이 Memberset 명인지, Member 명인지를 지정합니다.
True : Memberset 명 , False : Member 명
name MemberSet 명 or Member 명
RemoveMem(CoList remList , Object name) : void
Member list 에서 지정된 Index 를 Remove 합니다.
remList Value 중 삭제할 index 가진 List 를 지정합니다.
name Member name 을 지정합니다.
RemoveMemByAlias( CoList remList , String aliasNm) : void
Member list 에서 지정된 Index 를 Remove 합니다.
remList Value 중 삭제할 index 가진 List 를 지정합니다.
aliasNm Member name 의 Alias name 을 지정합니다.
Model 내에서 Member Name 은 다음과 같이 구성됩니다.
MemberSet ( Object Full name ) 명 + . + Member 명
예를 들어 Object Full name 이 a.b.c 이고 Member 명 d 라면
Member 명은 a, b, c, d 입니다.
79. www.agadoss.com
79/264
SoCommon.Common.Value.CoMap : Method Agados 내에서 기본적으로 사용하는 Collection 객체입니다. 기본 구조는 name 과 value ( Object ) 이며 , 각각 List 구조를 가져갑니다. List 내에서는 name 의 중복을 허용합니다.
this[int index] : Object
Index 를 기준으로 Value 를 Return 합니다.
index Name List 의 Index
this[String name] : Object
Name 을 기준으로 Value 를 Return 합니다.
name Name
Size : int
CoMap 현재 크기를 제공합니다.
InsertAt(int idx , Object name, Object value) : void
CoMap 에 Value 를 특정 index 에 insert 합니다..
idx Insert 할 index
name Value 의 식별자 입니다.
value name 의 value 를 지정합니다.
Add(Object name, Object value) : void
CoMap 에 Data 를 Add 합니다.
name Value 의 식별자 입니다.
value name 의 value 를 지정합니다.
GetValue(Object name) : Object
Name 을 기준으로 value 를 가져옵니다.
같은 이름의 값이 여러 개 일 경우 첫 값을 리턴 합니다.
name Value 의 식별자 입니다.
GetValue(int index): Object
Index 을 기준으로 value 를 가져옵니다.
index Value List 상의 index
80. www.agadoss.com
80/264
GetName(int index) : Object
Index 을 기준으로 name 를 가져옵니다.
index Name List 상의 index
RemoveValue(Object name) : Object
Name 을 기준으로 Data 를 삭제합니다.
같은 이름의 값이 여러 개 일 경우 첫 값을 Remove 합니다.
name Value 의 식별자 입니다.
Remove(int idx) : void
Index 을 기준으로 Data 를 삭제합니다.
index List 상의 index
RemoveMatchValue(String name): void
Name 을 기준으로 Data 를 삭제합니다.
같은 이름의 값이 여러 개 일 경우 모두 Remove 합니다.
name Value 의 식별자 입니다.
GetString(Object name) : String
Name 을 기준으로 value 를 가져옵니다.
같은 이름의 값이 여러 개 일 경우 첫 값을 String type으로 리턴 합니다.
name Value 의 식별자 입니다.
GetMatchValue(Object name) : CoList
Name 을 기준으로 value 를 가져옵니다.
같은 이름의 모든 값을 List 에 담아 리턴 합니다.
name Value 의 식별자 입니다.
IndexOf(Object name) : int
Name 을 기준으로 Name list 상의 index 를 가져옵니다.
name Value 의 식별자 입니다.
ValueIndexOf(Object value) : int
Value 을 기준으로 Value list 상의 index 를 가져옵니다.
value name 의 value 를 지정합니다.
81. www.agadoss.com
81/264
Replace(Object name , Object value) : void
Name 을 기준으로 Index 를 찾은 후 해당 값을 value 로 치환합니다.
같은 이름의 값이 여러 개 일 경우 첫 값을 Replace 합니다.
name Value 의 식별자 입니다.
value replace value 를 지정합니다.
Replace(int index , Object value) : void
Index 을 기준으로 해당 값을 value 로 치환합니다.
같은 이름의 값이 여러 개 일 경우 첫 값을 Replace 합니다.
name Value 의 식별자 입니다.
value replace value 를 지정합니다.
Set(Object name, Object value) : void
Name 을 기준으로 Index 를 찾은 후 Name 이 존재하면 Replace, 존재하지 않으면 Add 합니다.
같은 이름의 값이 여러 개 일 경우 첫 Index 만 적용 합니다.
name Value 의 식별자 입니다.
value Set 할 value 를 지정합니다.
Clone() : CoMap
객체를 Clone 합니다.
ViewValue() : void
현 객체에 담긴 정보를 Console 에 Print 해 줍니다.
82. www.agadoss.com
82/264
SoEngine.Common.Core.Model.CoMsetModel : Method Member set 의 Data 을 가지고 있는 객체 입니다. CoMap 을 기본 Collection 으로 name = Member name, value = CoList 구조를 가져갑니다. 이 객체는 Name 의 중복을 허용하지 않습니다.
Model : CoMap
CoMsetModel 의 Data를 가지고 있는 Collection 를 반환한다.
ModelValueList(Object name) : CoList
Member name 의 Collection 을 반환한다.
name Member Name ( Short name )
ModelValueList(int index) : CoList
Name Index 을 기준으로 Collection 을 반환한다.
index Name List 상의 index
Insert(int idx , Object name, Object value) : void
Member name 을 가진 List 의 특정 index 에 Data 를 Insert 한다.
idx Insert 할 index
name Member Name ( Short name )
value Insert value 를 지정합니다.
Add(Object name , Object value) : void
Member 의 Data 를 Add 합니다.
name Member Name ( Short name )
value Member 의 value 를 지정합니다.
AddRow(bool isNull , CoMap rowMap): void
CoMap 의 Data 를 Add 한다.
isNull True : rowMap 의 값 중 null 인 것은 skip 한다.
False : rowMap 의 값을 무조건 Add 한다.
rowMap rowMap 의 Name 은 Member name, Value 는 Member data 로 치환된다.
ClearAdd(Object name , Object value) : void
Member 의 Data 를 먼저 Clear 한 후 value 를 add 한다.
83. www.agadoss.com
83/264
name Member Name ( Short name )
value Member 의 value 를 지정합니다.
Replace(int repIdx , Object name , Object value) : void
Member name 을 가진 List 의 특정 index 에 Data 를 Replace 한다.
idx Replace 할 index
name Member Name ( Short name )
value Replace value 를 지정합니다.
ReplaceAll(Object name , Object value) : void
Member name 을 가진 List 의 모든 Data 를 Replace 한다.
name Member Name ( Short name )
value Replace value 를 지정합니다.
Remove(int idx) : void
특정 Index 의 Row 를 삭제한다.
(Row 는 모든 멤버의 동일한 index 의 data 를 말한다.)
idx Remove 할 index
Remove(Object name , CoList list) : void
Member List 중 사용자가 정의한 데이터와 일치하는 Data를 remove 한다.
name Member Name ( Short name )
list 사용자가 삭제할 비교 Data
Get(Object name) : CoList
Member 의 모든 Data 를 가져온다.
name Member Name ( Short name )
GetRow(int idx) : CoMap
특정 Index 의 Row 를 가져온다.
(Row 는 모든 멤버의 동일한 index 의 data 를 말한다.)
idx 가져 올 index
Single(Object name) : Object
Member 의 Data 중 하나의 데이터를 가져온다. 데이터 중 첫 index 의 data 를 가져온다.
name Member Name ( Short name )
84. www.agadoss.com
84/264
isExist(Object name) : bool
Member 가 존재하는 지 여부를 반환한다.
name Member Name ( Short name )
isExist(Object name , Object value) : bool
Member 내의 데이터 중 해당 데이터가 존재하는 지 여부를 반환한다.
name Member Name ( Short name )
value 비교 값을 지정합니다.
IndexOf(Object name) : int
Member 의 List 내의 index 를 반환한다.
name Member Name ( Short name )
RowCount(): int
Row Count 를 반환한다.
(Row 는 모든 멤버의 동일한 index 의 data 를 말한다.)
Copy(CoMsetModel msetModel) : void
객체의 clone 을 반환한다.
View() : void
현 객체에 담긴 정보를 Console 에 Print 해 줍니다.
Model 내에서 Row 는 Database 의 Table 구조와 유사하다고 보시면 됩니다.
Member 를 기준으로 각각의 value List 를 가지면 Member Value list 의 같은
인덱스는 하나의 Row ( Member 와 vale ) 로 제공됩니다.
85. www.agadoss.com
85/264
SoEngine.Common.Core.Model.CoAdaModel : Method Adapter instance 을 가지고 있는 객체입니다. Agados engine 내에서 Create 된 Adapter ( DB , Hibernate 등 ) 을 관리하는 Collection 객체입니다. 이 객체는 Name 의 중복을 허용하지 않습니다.
Count : int
Collection 의 Size 를 Return 합니다.
Add(Object adaOwner , Object adaType , Object adaNm) : void
Adapter 를 Add 합니다.
adaOwner 생성 한 Object 명을 지정합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
Add(Object adaOwner , Object adaType , Object adaNm , Object adaValue) : void
Adapter 를 Add 합니다.
adaOwner 생성 한 Object 명을 지정합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
adaValue 생성된 Adapter instance 을 지정합니다.
Add( Object adaOwner , Object adaType , Object adaNm , Object adaAlias
, Object adaValue) : void
Adapter 를 Add 합니다.
adaOwner 생성 한 Object 명을 지정합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
adaAlias Adapter Name 의 Alias Name 을 지정합니다.
adaValue 생성된 Adapter instance 을 지정합니다.
Set(Object adaType , Object adaNm , Object adaValue) : void
Adapter 를 Set 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
86. www.agadoss.com
86/264
adaValue 생성된 Adapter instance 을 지정합니다.
GetAdapter(Object adaType , Object adaNm) : Object
Adapter Instance 를 Get 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
GetOwner(Object adaType , Object adaNm) : Object
Adapter 의 Owner 를 Get 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
FindWithAlias(Object adaType , Object alias) : Object
Adapter 의 Alias 명을 기준으로 Adapter Instance 를 Get 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaAlias Adapter Name 의 Alias Name 을 지정합니다.
isExist(Object adaType , Object adaNm) : bool
Adapter Instance 가 있는지 여부를 반환 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
IndexOf(Object adaType , Object adaNm) : int
Collection 내에서 Adapter Instance 의 index 를 반환 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
IndexOfAlias(Object adaType , Object alias) : int
Alias 명을 기준으로 Collection 내에서 Adapter Instance 의 index 를 반환 합니다.
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaAlias Adapter Name 의 Alias Name 을 지정합니다.
Remove(Object adaType , Object adaNm) : void
Adapter 를 삭제합니다.
87. www.agadoss.com
87/264
adaType Adapter type 을 지정합니다. ( Type : Database , Hibernate )
adaNm Adapter Name 을 지정합니다. Name 구성은 Node명 + 사용자 지정 Adapter name 입니다.
Adapter name = node명. Adapter name
Copy(CoAdaModel adaModel) : void
Adapter Model 의 Clone 를 반환합니다.
adaModel Copy 대상이 되는 Adapter Model
View() : void
현 객체에 담긴 정보를 Console 에 Print 해 줍니다.
Script Model 에 Adapter 는 AdaModel 를 통해 전달 됩니다.
전 Step 에서 DB Adapter Instance 를 생성시 트랜잭션을 설정 후 전달하게 되면
Script 도 하나의 트랜잭션으로 묶이게 됩니다.
88. www.agadoss.com
88/264
3.11.2. SCRIPT NODE
Script Node 는 Object 내에서 제공되는 Node 입니다.
별도의 창을 통해 Script, Model 등을 정의할 수 있습니다.
MODEL 정의
Script 에서 값의 전달은 CoScriptModel 을 사용합니다.
Function 의 IN-Parameter 로 CoScriptModel 이 정의되며 사용자는 Model 에 값을
등록하면 됩니다.
① ScriptModel 에 값을 전달 할 Member 를 선택합니다.
또한 이 항목에 설정된 값을 기준으로 다음 Step 에 값을 전달합니다.
예를 들어 Object.Mem1 을 선택하시면 SciptModel 에 Object.Mem1 의 값과 이름이 Add
되며 Script 실행 완료 후 Object.Mem1으로 다음 Step 값을 전달합니다.
② Alias Name 항목은 ScriptModel 에서 값을 불러오는 경우 사용 할 Alias Name 입니다.
예를 들어 Object.Mem1 에 Alias Name ‘A’ 로 등록 할 경우 Script Model 에서
‘A’ 로 값을 불러올 수 있습니다.
1
2
6
5
3
4
89. www.agadoss.com
89/264
③ Method 는 Script 수행 후 값을 다음 Step Add 할 경우 Type 을 정합니다.
Type 은 Add, Replace 유형이 있으며 Default 는 Add 입니다.
④ List 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
정상적으로 저장된 경우 List 에서 저장된 내역을 확인할 수 있습니다.
하지만 DB 에 반영되는 것은 아니며, 단지 List 에만 반영이 되어 있는 상태입니다.
⑤ List 를 Click 하면 Model 의 상세정보를 볼 수 있다.
상세정보가 로드 된 후 Model 의 수정, 삭제가 가능합니다.
⑥ ( DB 반영 ) 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
이 시점에 DB에 반영되면 정상적으로 저장된 경우 재 호출 또는 조회 시 List 에서
저장된 내역을 확인할 수 있습니다.
등록된 정보를 기준으로 CoScriptModel 를 구성합니다.
Method 가 제공하는 Add 와 Replace 는 Script 수행 후 CoScriptModel 의 값을
현재 Object 의 MemberSet 에 어떻게 반영할지를 결정합니다.
90. www.agadoss.com
90/264
ADAPTER MODEL 정의
어떤 Adapter Instance 를 Script 에 전달할 지 여부를 정의합니다.
① 전달할 Adapter Instance 를 선택합니다.
② ( DB 반영 ) 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
이 시점에 DB에 반영되면 정상적으로 저장된 경우 재 호출 또는 조회 시 List 에서
저장된 내역을 확인할 수 있습니다.
여기서 등록된 정보는 CoScriptModel 의 AdaModel 에 Add 된다.
사용자는 CoScriptModel 의 AdaModel 를 통하여 Script 내에서 사용할 수 있다.
1
2
91. www.agadoss.com
91/264
SCRIPT 작성
수행될 Script 를 작성합니다.
① 사용자가 실행 할 스크립트를 작성합니다.
② ( DB 반영 ) 저장 버튼을 Click 한 후 정상적으로 저장되는 것을 확인합니다.
이 시점에 DB에 반영되면 정상적으로 저장된 경우 재 호출 또는 조회 시 List 에서
저장된 내역을 확인할 수 있습니다.
③ Compile 기능을 통하여 실행 전 문장의 정합성을 체크할 수 있습니다.
기본적으로 제공되는 Class 명과 Method 명은 사용자가 변경할 수 있습니다.
Agados 엔진에서는 정해진 규칙을 통해서 사용자의 Script 를 참조하고 있습니다.
그러므로 사용자가 해당 명을 변경하면 엔진이 참조할 수 없습니다.
1
2
3