mondegreen

[Mendix Rapid] 객체 이벤트 핸들러(ObjectEventHandler) 본문

Mendix/Academy 및 Docs

[Mendix Rapid] 객체 이벤트 핸들러(ObjectEventHandler)

앙갱 2024. 5. 29. 23:05
반응형

기존의 마이크로플로우는 특정 버튼을 클릭했을 때 작동하도록 구현함으로써 원하는 로직을 수행하도록 했었다. 하지만 사용자의 특정한 행동이 없이 데이터가 변했을 때 이러한 방식은 적용될 수 없다.

이 때 사용하는 것이 객체 이벤트 핸들러이다. 이것은 이벤트가 발생할 때까지 기다렸다가 의도했던 상황 또는 상태가 되었을 때 특정 마이크로플로우를 실행하도록 할 수 있는 것이다. 마치 자바나 코틀린에서 사용했던 옵저버와 유사한 것 같다. 계속 상태를 관찰하다가 변경이 발생하면 이를 감지하고 다른 로직을 수행할 수 있게 하는 것처럼 말이다.

객체에 발생할 수 있는 이벤트는 Create, Commit, Delete, Rollback 이렇게 4가지인데 이 각 이벤트의 전 또는 후에 마이크로플로우를 트리거할 수 있도록 한 것이 이 객체 이벤트 핸들러이다.

위 이미지는 Registration 엔티티에 객체 이벤트 핸들러를 등록하고자 연 화면이다. 해당 객체를 두번 클릭하면 다음과 같이 엔티티를 설정할 수 있는 화면이 나오고 우리가 일반적으로 사용했던 Attribute 탭이 아닌 Event Handlers 탭으로 이동해서 등록 가능하다.

 

위 이미지와 같이 어떠한 이벤트와 전 또는 후에 작동하도록 할 것이며 어떠한 마이크로플로우(사용자 정의 로직)를 트리거 할 것인지 지정할 수 있다. 

우리가 원하는 것은 등록 수가 줄었을 때, 즉 등록 교육생이 삭제된 후에 훈련과정에 보여지는 등록 교육생 총 수를 다시 계산해서 반영하도록 처리하게 만들었다.

이렇게 이벤트 핸들러를 등록한 엔티티에는 해당 엔티티 내부에 이벤트 핸들러가 1개 이상 존재한다는 의미로 번개 모양의 아이콘이 등록된다.

참고로 해당 마이크로플로우는 커밋과 화면 닫기 activity를 삭제한 ACT_Registration_Save의 일부 변경 버전이다. 

반응형