이번 포스팅에서는 블록에서 사용할 수 있는 내장 On Parameters Changed 이벤트를 살펴보겠습니다.
On Parameters Changed
- Block에는 On Parameters Changed라는 내장 이벤트가 있습니다. 이 이벤트는 블록에서만 사용하고 플랫폼은 블록 입력 매개변수 중 하나의 값을 변경할 때마다 자동으로 트리거합니다(이렇게하면 블록이 상위에서 오는 변경사항에 반응 가능).
- 블록 자체 내에서 입력 매개변수 값을 변경해도 이 이벤트가 트리거되지 않습니다.
실제 작동 방식
왼쪽에 몇가지 제품이 있는 화면이 있습니다. 이 화면에는 현재 선택한 제품의 ID를 보유하는 로컬변수도 있습니다.(현재 선택된 제품 X)
화면 오른쪽에는 특정 제품의 세부 정보를 표시하는 블록이 존재, 화면의 Selected Product ID 로컬변수는 블록 입력매개변수는 블록 입력매개변수 Product Id로 전달됩니다(현재 목록에서 선택한 제품이 없으므로 정보 표시 x).
제품을 클릭하면 화면 내에서 일부 로직이 실행됩니다. 이 로직은 현재 선택된 제품의 ID를 변경합니다(로컬 변수는 입력 매개변수를 제공하는 변수임을 기억)
제품 ID입력매개변수의 값을 변경하면 On Parameters Changed 이벤트가 트리거됩니다. 이경우의 핸들러는 오른쪽에 표시됨
이 특정 핸들러는 데이터베이스에서 가져온 데이터를 새로 고치고 블록 내부의 위젯을 업데이트합니다.
- 그렇다면 사용자가 화면에서 다른 제품을 선택하면? (헤드셋을 클릭한 상황)
로컬 변수는 다시 한번 업데이트되며, 이는 차례로 블록의 입력 매개변수에 영향을 미칩니다.
블록의 입력매개변수 값을 변경하면 On Parameters Changed 이벤트가 다시 트리거됩니다.
마지막으로 핸들러가 실행되고 이 경우 헤드셋에 대한 제품 정보가 업데이트됩니다.
지금까지의 과정이 On Parameters Changed 이벤트 흐름이 런타임에 작동하는 방식이였습니다.
On Parameters Changed 이벤트 생명주기
블록이 있는 화면이 있습니다.
블록의 입력 중 하나(예: 차트에 사용된 날짜)를 변경하면 매개변수 변경됨 이벤트가 트리거됩니다.
On Parameters Changed 이벤트에 대한 처리기 흐름 내에서 GetExpenses Aggregated에 대한 Refresh Data가 실행됩니다. 그리고 실제로 데이터를 갖기 전에 블록의 Render 이벤트가 실행됩니다.
화면의 Render이벤트가 실행됩니다. 마지막으로 Aggregate의 데이터가 반환되면 Aggregate의 After Fetch이벤트가 트리거 되어 블록이 다시 렌더링되고 수명주기가 완료됩니다.
'로우코드(Lowcode) > outsystems' 카테고리의 다른 글
outsystems - How To Trigger Block Events (0) | 2023.05.13 |
---|---|
Outsystems - How To Handle Block Events (0) | 2023.05.13 |
outsystems - Block Events (0) | 2023.05.12 |
outsystems-Blocks (0) | 2023.05.12 |
outsystems - 인덱스, 참조무결성(Integrity) (0) | 2023.05.10 |