Scrren Events
On Initialize
- 이벤트 핸들러가 초기화되는 시점에서 실행됩니다. 일반적으로 이벤트 핸들러에서 초기화 작업이 수행됩니다. 예를 들어 화면이 로드되었을 때 초기데이터를 가져오거나 초기 변수 값을 설정하는 등의 작업이 이 단계에서 수행됩니다.
On Ready
- 화면이 초기화되고 요소들이 렌더링된 후 실행됩니다. 이벤트 핸들러에서는 화면 요소들에 대한 조작이나 초기화를 수행 할 수 있습니다. 예를 들어, 버튼이나 입력란과 같은 요소들의 상태를 설정하거나 초기 포커스를 설정하는 등의 작업이 이 단계에서 수행됩니다.
On Render
- 화면 요소들이 렌더링된 후 실행됩니다. 이벤트 핸들러에서는 화면의 레이아웃이나 스타일과 관련된 작업을 수행할 수 있습니다. 예를 들어 동적으로 생성된 요소들의 위치나 스타일을 조정하는 등의 작업이 이 단계에서 수행됩니다.
- 렌더링 이벤트는 여러 번 트리거되는 유일한 이벤트입니다(화면의 변경사항이 있을 때마다 트리거) . AfterFetch는 Aggregate당 한번 발생합니다.
On AfterFetch
- 화면에서 데이터를 가져온 후에 실행됩니다. 이벤트 핸들러에서는 데이터의 처리나 표시를 위한 작업을 수행할 수 있습니다. 예를 들어, 데이터를 가공하거나 화면에 데이터를 바인딩하는 등의 작업이 이 단계에서 수행됩니다. 이 단계는 주로 데이터베이스 조회 후에 실행되는 경우에 사용됩니다.
On Destroy
- 화면이 파기될 때 실행됩니다. 이벤트 핸들러에서는 화면이 파기되기 전에 필요한 정리 작업을 수행할 수 있습니다. 예를 들어, 리소스의 해제나 메모리 정의 등의 작업이 이 단계에서 수행됩니다.
사용자가 화면 사이를 이동할 때 어떤 일이 발생할까?
가정 : 사용자가 화면내부의 일부요소를 클릭하여 다른 화면으로 이동하는 상황
- 백그라운드에서 대상 Screen의 Initialize 이벤트가 트리거됩니다. 정의된 Aggreagte 및 데이터 작업도트리거됩니다.
- 대상 화면 DOM이 로드되기 시작합니다. 준비가되면 Ready이벤트를 트리거합니다.
- 그런 다음 Render 이벤트를 트리거하는 대상 화면 렌더링이 이어집니다. 이때 화면전환이 시작됩니다. 이 시점에서만 최종 사용자는 새로운 화면을 볼 수 있습니다. 지금까지의 작업은 모두 뒤에서 이루어졌습니다. 전환이 완료되면 이전 화면의 On Destroy이벤트가 트리거됩니다.
- 그런 다음 각 Aggregate가 응답을 반환하면 이전 시나리오와 마찬가지로 집계의 After Fetch이벤트와 새 데이터가 포함된 Screen의 Render 이벤트가 트리거됩니다.
Fetching Data On Demand
- 기본적으로 화면에 일부 정의된 집계가 있는 경우 화면이 계속 빌드되는 동안 비동기 및 병렬로 트리거됩니다.
- 화면이 준비되면 렌더링을 시작합니다.
- 화면 렌더링이 완료되면 사용자는 화면의 일부인 일부 위젯을 보게 됩니다.
- 다음으로 첫 번째 Aggreagter가 완료되고 화면이 다시 렌더링됩니다.
- Aggregate는 일반적으로 화면에서 최종사용자에게 표시될 데이터를 가져오는데 사용됩니다.
- 화면 UI를 빌드하는데 사용되는 위젯은 개발자가 표시할 데이터를 정의할 수 있도록 Aggreagte의 출력 데이터에 액세스할 수 있습니다.
- Aggreagte는 기본적으로 비동기 및 병렬로 실행됩니다. 그리고 Screen Aggreagte에는 At Start와 Only On Demand의 2가지 옵션이 있는 Fetch 속성이 존재합니다.
- At Start : 데이터를 가져오는 동안 화면이 계속 로드 및 렌더링되고 준비가 되면 데이터를 표시하기위해 다시 렌더링하기 때문에 애플리케이션 효율성을 향상시킵니다. (그러나 직원리스트에서 직원을 클릭하면 세부정보가 오른쪽에 표시되는 상황에서 오른쪽에 표시되는 세부데이터에 대한 옵션으로 At start를 굳이 사용할 필요가 없음)
- Only On Demand : 화면을 초기화해도 더 이상 Aggreagte가 트리거 되지 않고 명시적으로 트리거해아합니다. 예를 들면 Screen Action흐름에서 데이터 새로 고침 요소를 사용할 수 있습니다. 이 경우 데이터 새로고침 노드가 실행될 때만 집계가 실행됩니다. 데이터를 가져올 때마다 화면이 다시 렌더링되어 새 데이터를 표시하고 On After Fetch이벤트는 계속 적용됩니다.
- 두 속성의 차이점은 실행되는 시점입니다. 그 외에 동작은 동일합니다.
참고자료
'로우코드(Lowcode) > outsystems' 카테고리의 다른 글
outsystems - SQL Queries (0) | 2023.05.19 |
---|---|
outsystems - Client Variables and Site Properties (0) | 2023.05.19 |
outsystems - block exercise(연습) (1) | 2023.05.13 |
outsystems - How To Trigger Block Events (0) | 2023.05.13 |
Outsystems - How To Handle Block Events (0) | 2023.05.13 |