이번 포스팅에서는 Block 내에서 Event를 트리거한 다음 부모에서 처리하는 방법을 보여드리겠습니다 .
먼저 이 앱에는 다음과 같이 구성되어있습니다.
먼저 블록을 보겠습니다. 블록에는 현재 선택된 요일을 나타내는 CurrentWeekDay라는 입력매개변수가 존재합니다. 그리고 블록 내부에 있는 다섯개의 버튼 중 하나를 클릭할 때마다 SelectWeekDay 작업이 실행됩니다.
클라이언트 작업 내에서 현재 요일(CurrentWeekDay)을 할당으로 선택한요일(NewWeekDay)로 변경하기만 하면 됩니다.
위의 앱을 브라우저를 통해 실행시켜보면 아래의 텍스트에서 볼 수 있듯이 정보는 업데이트 되지 않습니다.
블록 안에 선택한 요일이 변경될때마다 트리거될 이벤트를 추가해 보겠습니다. 이벤트는 입력 매개변수를 가질 수 있으며 이는 데이터가 부모에게 전달되는 방식입니다.
이제 이벤트가 정의되었으므로 블록 내에서 이벤트를 트리거해보겠습니다.
이벤트를 Client Action의로 드래그하면 트리거 이벤트 요소가 생성됩니다. 이 이벤트에는 필수 입력이 있으므로 선택한 요일이 될 값을 설정해야합니다.
하지만 아직 오류가 남아있습니다. 우리가 만든 이벤트가 부모에 의해 처리되지 않았기 때문입니다. 오류를 클릭해보겠습니다.
이벤트를 처리하려면 이벤트가 트리거될때 실행할 핸들러를 정의해야합니다.
새로운 Client Action을 생성하겠습니다. 생성된 핸들러에는 이벤트가 트리거될 때 블록에서 보낸 값을 보유하는 입력매개변수가 자동으로 생성됩니다. 그리고 이 액션 안에는 이벤트가 블록에 의해 트리거될 때 원하는 동작을 지원하도록 로직을 정의할 수 있습니다.
이 경우 입력의 값(Week Day)를 화면의 선택된요일로컬변수(SelectedWeekDay)에 저장하기만 하면 됩니다.
이렇게 하면 이벤트가 트리거될 때 전송된 값이 화면에 저장됩니다. 따라서 화면의 텍스트가 새로 선택한 요일로 업데이트 됩니다.
결과화면
- 이전과 마찬가지로 버튼을 클릭하면 선택한 날짜(New WeekDay)가 업데이트 되고 블록안의 로직에서 CurrentWeekDay가 NewWeekDay로업데이트 됩니다. 그리고 OnSelect라는 이벤트 트리거가 실행되어 트리거안의 입력매개변수(WeekDay)도 NewWeekDay로 업데이트 됩니다. 마지막으로 메인화면의 액션에서 로컬변수(SelectedWeekDay)가 입력매개변수인(WeekDay)로 업데이트 됩니다.
위의 정리를 순서대로 요약하자면
정리
- 버튼 클릭하면 버튼실행시액션(블록안의액션)의 매개변수인 New WeekDay가 업데이트
- 버튼실행시액션안에 로직에서 블록매개변수인(CurrentWeekDay)가 NewWeekDay로 업데이트
- 그리고 OnSelect라는 이벤트 트리거 실행되면서 트리거 안의 입력매개변수인(WeekDay)도 NewWeekDay로 업데이트 여기서 트리거안의 WeekDay변수가 메인화면으로 전달되는 변수!
- 마지막으로 메인화면의 액션에서 로컬변수(SelectedWeekDay)가 액션의 입력매개변수인(WeekDay)로 업데이트
'로우코드(Lowcode) > outsystems' 카테고리의 다른 글
outsystems - Reactive Programming Model (0) | 2023.05.18 |
---|---|
outsystems - block exercise(연습) (1) | 2023.05.13 |
Outsystems - How To Handle Block Events (0) | 2023.05.13 |
Outsystems - On Parameters Changed (0) | 2023.05.13 |
outsystems - Block Events (0) | 2023.05.12 |