Aggregate는 데이터베이스에서 데이터를 가져오는 쉬운 시각적 방법을 제공하지만 때때로 Aggregate가 처리할 수 없는 더 복잡한 쿼리가 필요할 수 있습니다. 따라서 SQL 도구를 사용하여 상당히 복잡한 SQL문을 작성할 수도 있습니다.
SQL Tool
- SQL 도구는 서버 작업 및 화면 데이터 작업과 같은 서버측 흐름에서 사용할 수 있습니다. 입력 및 출력은 미리 정의해야 하며 상단의 시각적 편집기를 사용하여 수행할 수 있습니다.
- 입력 및 출력은 미리 정의해야 하며 상단의 시각적 편집기를 사용하여 수행할 수 있습니다.
- SQL 도구 내부에서 SQL문을 작성할 수 있습니다.
- SQL 도구가 블랙박스와 같다는 것을 아는 것이 중요합니다. 이는 외부 범위에 직접 액세스할 수 없음을 의미합니다. 따라서 외부 범위에서 오는 데이터에 액세스하려면 입력 매개변수와 해당 데이터 유형을 정의해야합니다.
- 입력 매개변수는 @표기법을 사용하여 SQL쿼리에서 직접 사용할 수 있습니다.
- SQL 도구 내부의 엔터티 및 속성으로 작업할 때 엔터티 및 속성의 이름을 추상화해야합니다. 그리고 엔터티 이름은 중괄호로 속성의 이름은 대괄호로 묶어야합니다.
Structures
- Structures는 복합 데이터 유형이라는 점에서 엔티티와 다소 유사합니다. 그러나 이들은 단순히 데이터 유형 정의입니다. 어떠한 값도 가지고 있지 않습니다
- Structures(구조)가 변수가 아니지만 변수의 데이터 유형을 구조로 설정할 수 있습니다.
- 구조는 복합 데이터 유형이므로 여러 속성으로 구성됩니다. 각 속성에는 정수, 텍스트, 엔티티 또는 다른 구조와 같은 데이터 유형이 있습니다.
Output Entities
- 입력 매개변수와 sql 쿼리를 정의하는 것 외에도 출력 엔터티 및 구조를 설정해야합니다. 하나 이상의 출력 Structrue 또는 엔터티를 설정하는 것은 필수입니다. 이러한 출력 엔터티 및 구조는 쿼리 출력, 즉 SELECT 부분에 매핑되어야 합니다.
- 열 집합이 select 절에 있는 쿼리를 수행하는 경우 출력에는 동일한 수의 열이 있어야 하며 데이터 유형도 일치해야 합니다. 그런다음 sql 도구의 출력은 Aggregates와 같습니다.(List와 Count 포함)
- List 자체에는 일반적인 속성이 있고, Current에는 SQL도구에 정의된 출력 엔터티 및 구조가 있습니다.
SQL 쿼리 테스트
- Aggregate와 마찬가지로 sql 도구를 사용하여 쿼리를 테스트 할 수 있습니다.
Aggregate -> SQL Query
먼저 화면에 데이터 작업을 추가하는 것으로 시작하겠습니다. 데이터 작업이 필요한 이유는 sql쿼리가 서버 측 흐름내에서 실행될 수 있기 때문입니다.
이제 Screen Aggregate를 잘라내고 Data Action의 흐름 안에 붙여넣겠습니다.
Service Studio에는 Aggregate를 SQL쿼리로 변환하는 기능이 있습니다.
먼저 흐름의 Aggregate를 더블클릭하여 sql코드를 보기위해 sql 속성을 두번클릭합니다.
화면에서 Convert aggregate to SQL을 클릭하면 변환이 됩니다.
쿼리를 수정하고 SQL에서만 사용할 수 있는 기능이 필요한 경우에만 이 작업을 수행해야합니다.
보시다시피 SQL 쿼리의 출력은 모든 열을 가져오기 때문에 전혀 최적화되지 않았습니다.
이제 데이터 작업의 출력을 설정하기만 하면 됩니다.
마지막으로 SQL의 출력을 데이터 작업의 출력 변수에 할당합니다.
이제 Aggregate대신 데이터 작업의 출력을 사용하도록 사용자 인터페이스를 다시 연결해야 합니다.
orders 스크린의 DueDate의 다음을
SQL 쿼리의 경우 SELECT 절은 자동으로 최적화되지 않습니다.
가능하면 SQL QUERY대신 Aggregate를 사용합니다.
SQL 쿼리는 Aggregate로 정의할 수 없는 사용자 지정 쿼리를 실행하려는 경우에만 사용해야 합니다.
Insert
- Insert도 Select 쿼리가 아니지만 여전히 출력 구조 또는 엔터티를 정의해야 합니다.
- Output Entities / Structures 폴더를 마우스 오른쪽 버튼으로 클릭하고 테스트 전에 데이터를 삽입할 Product Entity를 선택합니다.
- 테스트 입력 탭에서 테스트 값을 설정할 수 있습니다. 각 쿼리 매개변수에 대해 값을 설정합니다.
- 마지막으로 쿼리를 테스트합니다. 이것은 Insert 쿼리이므로 결과가 반환되지 않습니다.
UPDATE
- 아래의 쿼리를 통해 VAT 값을 하나의 값(이전 VAT)에서 새 값(새 VAT)으로 업데이트 할 수 있습니다.
- 필요한 두개의 쿼리 매개변수를 추가해 보겠습니다.
- UPDATE 또한 Output Entities / Structures를 정의해야 합니다. 이전처럼 Product엔터티를 선택하고 테스트하기 전에 테스트 입력탭에서 테스트 값을 설정합니다.
DELETE
- 다음의 쿼리는 품절된 모든 제품을 삭제합니다.
참고 :
'로우코드(Lowcode) > outsystems' 카테고리의 다른 글
outsystems - Client Variables and Site Properties (0) | 2023.05.19 |
---|---|
outsystems - Reactive Programming Model (0) | 2023.05.18 |
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 |