mondegreen

[Mendix Beginner] Build your app using a template - Domain Model 본문

Mendix/Academy 및 Docs

[Mendix Beginner] Build your app using a template - Domain Model

앙갱 2024. 5. 23. 18:22
반응형

How to define domain model

페이지와 데이터를 연결하기 전에 우리는 데이터 모델을 먼저 만들어야 한다. 멘딕스에서는 RDBMS에서의 Table과 같은 맥락으로 Domain Model을 정의해준다. 형성된 모델은 entity이며 맨 윗줄은 엔티티명, 아래 항목들은 엔티티가 가지는 속성들이며 괄호 안의 값은 그 속성의 타입을 말한다.

이 엔티티 간에도 화살표로 이어서 관계를 정의한다. 우리가 이미 알고 있는 것처럼 일대일, 일대다, 다대다의 관계를 가질 수 있다. 아래 이미지를 통해 어떻게 속성과 엔티티를 추가할 수 있는지 확인해보자. 

먼저 위의 엔티티 중 변경하고자 하는 엔티티를 두번 클릭하면 아래와 같은 창을 확인할 수 있다. 여기서 Attribute의 new를 클릭하면 새로운 속성을 추가할 수 있다. 

아래의 창이 new 버튼을 클릭해 새로운 속성을 추가하는 경우이다. 여기서 속성명과 Type을 지정하고 만약 enum 타입을 지정하고 싶다면 ..

아래와 같이 기존에 존재하는 enum을 찾아서 선택하거나 new 버튼을 클릭해서 새로운 enum을 작성해준다. 

new 버튼을 클릭해서 이름을 명명한 뒤에 enum value를 추가해주면 된다. 

 

How to connect page and data

 

이제 이 오류를 해결하는 과정이다. 페이지와 앞서 만든 도메인 모델을 연결하면 오류가 해결된다.

리스트 뷰를 두번 클릭하면 위와 같이 데이터 소스를 연결할 수 있는 팝업 창이 뜬다. 이 오류는 리스트에 띄울 데이터가 지정되지 않았기 때문에 발생하는 오류이므로 데이터 소스를 선택해줌으로써 해결할 수 있다.

해당 리스트는 업무 대시보드이고 업무의 추진 현황을 보기 위한 화면이다. Task의 Title 먼저 작성해보고자 한다. 위 이미지의 매개변수 부분에서 new를 클릭하여 Task의 Title을 선택해주고 Caption 부분에 아래 파라미터 중 1번 인덱스를 지정해주면 된다.

이후에 동일한 방식으로 완료일자, 현재 업무 진행 상태, 담당부서 이름을 지정해주면 보다 자세한 대시보드가 형성된다. 

위 이미지는 사용자가 해야할 업무를 새로 지정할 때 담당 부서를 선택할 수 있도록 존재하는 부서명 리스트를 보여주는 페이지이다. 이때 새로운 부서를 더해주고자 할 때 필요한 add 버튼을 생성하였는데 오류가 발생했다. 이유는 add를 처리하면서 department를 만들어주는 것인데 이 기능에 department라는 개체가 저장될 것이라는 지정이 필요한 것이다. '이 객체를 전달하는 거야'라는 정도로 생각하면 될 것 같다. 따라서 위 팝업 창의 event 부분을 보면 on click 에 객체를 생성하는 행동이 실행되고, 전달되는 객체는 department이며, 이동되는 페이지는 새로운 부서를 등록할 수 있는 페이지가 로드됨을 의미한다. 물론 저 새로운 부서 등록 페이지를 만들었어야 했다. 

따라서 위 버튼을 보면 Department 객체가 연결되어 있는 것을 확인할 수 있다.

아래는 그렇게 작업한 결과물이다. 새로운 네비게이션이 생긴 것을 확인할 수 있고,

부서 관리로 이동하고 add 버튼을 클릭하면 다음과 같이 새로운 부서를 등록할 수 있는 팝업이 활성화된다.

그렇게 새로이 작성해서 확인한 대시보드의 특정 업무는 다음과 같이 표시된다.

반응형