Skip to content

Aggregation Object

Business Object와 다르게 List Component와 같은 조회에 사용되는 데이터 집계와 요약을 위해 사용되는 Object이다. Base Table 기준으로 여러 개의 테이블에서 수집되는 데이터를 특정 기준에 따라 그룹화하고, 집계 함수를 적용하여 새로운 데이터를 생성하는 역할을 한다. 간략한 집계 정보를 화면에 표시하는 데 주로 사용한다.

Chart Object와 유사한 속성을 가지고 있으나, Chart 정보가 아닌 List 형태의 데이터를 표현하는데 사용된다.

[표1. 사용 가능한 Component 목록]

NameDescription
ToolbarListToolbar component와 List component의 복합유형
ToolbarFormToolbar component와 Form component의 복합유형
Tree메뉴 구조 등을 표현 하기 위한 컴포넌트로 Properties의 Objprop를 필수로 설정해주어야 함
List테이블 형태의 데이터를 화면에 표시하기 위한 Component
FormForm 형태의 데이터를 화면에 표시하기 위한 Component
Box단 건으로 데이터를 표시하기 위한 Component
Schedule달력 형식으로 데이터를 표시해야 하는 경우에 사용하는 Component
Timeline도트와 선형으로 표시된 타임라인 형식으로 데이터를 표시하는 경우 사용하는 Component
Kanban칸반 형식으로 데이터를 표시해아 하는 경우에 사용하는 Component
ToolbarGridToolbar component와 Grid component의 복합유형
Grid대용량 데이터를 테이블 형태로 화면에 표시하기 위한 Component

Aggregation Object는 집계를 표현하기 위해 필드가 BO와 달리 유형을 갖는다.

Type설명SQL 예시
Group by집계 기준 필드로 실제 화면에 표시 후 조회 조건을 입력 받아 표시된 결과 기준으로 검색한다.
화면에서 입력 받는 조건은 조회된 결과 기준으로 Where 절의 제약으로 구성된다.
Select * from (Select t1.a, t1.b, sum(t1.c) as sumC
From table t1
Where t1.d = “DDD”
Group by t1.a, t1.b ) t2
Where t2.a = “AA”
SearchGroup by 로 구성하여 화면에 결과로 표시되지 않고, 제한 조건으로만 사용되는 조회 기준.
실제 SQL에서 where 조건으로 적용됨.
Select t1.a, t1.b, sum(t1.c)
From table t1
Where t1.a = AA and t1.d = “DDD”
Group by t1.a, t1.b
Aggregation집계함수로 값 계산을 하는 필드로 화면에 표시되는 필드이다.
Having spec에 사용 가능하며, 화면에 입력 받는 조건을 조회된 결과 기준으로 Where 절의 제약으로 구성된다
Select * from (Select t1.a, t1.b, sum(t1.c) as sumC
From table t1
Where t1.d = “DDD”
Group by t1.a, t1.b
Having sum(t1.c) > 0 ) t2
Where t2.sumC > 1000
  • How to Create
  1. Business Layer > Aggregation Object 메뉴 이동 후 Aggregation Object List목록의 [New]버튼을 클릭하여 신규 Aggregation Object를 생성한다.

  2. Step1 단계로 Aggregation Object의 Name, Description, Table Name(Base Table)을 지정한다.

  3. Step2단계로 조건에 따라 제한하는 Search Sepc, Having Spec과 정렬을 표시하는 Sort Spec을 입력 할 수 있다. (옵션 정보로 생략 가능하다)

    INFO

    Search Spec 수식: [AO Search 필드명1] = A or [AO Search 필드명2] not in (BB,CC)

    INFO

    Having Spec 수식: [AO Aggregation 필드명1] > 100

    INFO

    Sort Spec 수식: [AO Group by필드명1], [AO Aggregation필드명2] DESC

  4. Step3단계에서 Group by 유형으로 지정할 필드를 선택한다.

    INFO

    Group by 에서 선택한 필드는 순서에 영향을 받는다. 선택한 순서에 따라 Sequence가 지정된다.

  5. Step4단계에서 Search 유형으로 지정할 필드를 선택한다.

    INFO

    List Component의 Static Search 또는 BO, Component에서 Search Spec으로만 사용할 필드를 선택한다. 조회조건 외에 Join spec에서 사용할 필드를 선언해도 된다.

  6. Step5단계에서 Aggregation 유형으로 지정할 필드를 선택한다.

    INFO

    AO 생성 Step에서 선택된 Aggregation 유형은 DB Function Flag가 “No”인 상태로 AO Field에 생성되어 DB Function Express에 사용 가능한 필드 목록으로 표기된다. 따라서 수식으로 사용할 필드 또는 Join Spec에서 사용할 필드를 선택한다.

  7. 최종 단계에서 선택한 AO 정보를 확인 후 [Confirm]을 하면 아래와 같은 기본 속성이 선택된다.

  8. [옵션] Base Table외에 다른 Table과 join을 하여 Aggregation Object를 생성하고자 하면, Join List [New]를 통해 신규 Join정보를 생성한다.

    WARNING

    Base Table을 Schema가 지정된 Table을 사용하는 경우 Table정보에 Schema가 입력된 Table을 선택해야 한다. Default로 지정되어 Data Source 및 Schema 정보가 공백인 Table은 신규로 Table을 생성하여 Schema를 지정하여 사용한다.

  9. [옵션] Base Table(Step1 지정)과 Join Table(Join 지정)의 연결 정보를 Join Spec List에서 생성한다. 이 때 Base Table에서 사용할 연결 필드는 Aggregation Type을 “Search”로 지정하거나 “Aggregation” 지정 후 DB Function Flag = “NO”로 지정하여 집계 결과에 영향을 주지 않도록 한다.

  10. 집계 함수에서 사용할 필드를 추가로 등록한다. 등록할 때 Aggregation Type = Aggregation으로 DB Function Flag = NO로 지정한다.

    [AO 필드 목록]

    [DB Function Expression에 표시된 AO 필드 목록]

  11. 필요한 Table과 Field를 모두 구성 후 구성한 AO가 적합한지 여부를 확인하기 위해 Check SQL을 버튼으로 SQL 검증을 한다.

    1. BO나 AO의 등록된 Meta정보(Field, Join, Join Spec)로 구성되는 SQL로 처음 버튼을 누를 때 구성 되고, 이 후 구성된 SQL문을 저장하여 이 후 해당 정보로 보여준다.

    2. 이 후 Meta 정보가 변경되어 SQL을 재 확인이 필요한 경우 [Refresh]버튼으로 SQL문을 재구성한다.