본문 바로가기
IT/mendix

고급 XPath를 사용하여 데이터 제약 - 제약 조건 함수

by 가능성1g 2024. 7. 24.
반응형

일반 함수

Mendix는 XPath 쿼리를 작성할 때 사용할 수 있는 일련의 함수를 제공합니다. 이러한 함수는 주로 속성의 특성에 따라 데이터를 필터링하는 데 사용됩니다. 전체 목록은 문서에서 확인할 수 있습니다. 문자열, 숫자, 날짜/시간 값으로 작업할 수 있는 함수가 있습니다.

숫자를 사용할 때는 주로 산술 연산자와 비교 연산자를 사용하여 데이터를 필터링합니다. 문자열을 일치시킬 때는 문자열의 시작, 문자열의 끝 또는 특정 문자 시퀀스를 일치시킬 수 있는 함수를 사용할 수 있습니다. 이러한 함수를 사용할 때는 비교하려는 속성을 함수에 인수로 추가해야 한다는 점에 유의해야 합니다. 이 주제를 가장 잘 설명하는 예제가 있으니 몇 가지를 살펴보겠습니다.

AdventureWorks 애플리케이션을 살펴보면 문자열 함수 contains()를 사용하여 'frame'이라는 단어가 포함된 모든 제품을 찾을 수 있습니다. XPath 쿼리는 다음과 같습니다:

[Production.Product/contains(Name, ‘frame’)]

문자열 함수의 경우 길이가 무제한인 문자열 속성을 검색하지 않도록 주의하세요. 제약 조건 함수는 잘 문서화되어 있으므로 이 학습 경로에는 전체 목록이 포함되어 있지 않습니다. 자세한 내용은 XPath 제약 조건 함수 문서를 참조하세요.

 

모든 세탁기 찾기

문자열 기능에 대한 여러분의 실력을 확인해 보세요! AdventureWorks 직원들은 특정 품목을 쉽게 찾을 수 있는 페이지가 필요하다고 결정했습니다. 현재로서는 제품 라인업에 있는 모든 세탁기를 볼 수 있는 페이지에 관심이 있습니다. 따라서 Production_Overview 페이지에 다른 탭을 추가하여 만들어 보겠습니다.

 

1. Production_Overview 페이지를 열고 탭 컨테이너에 Washers라는 탭을 추가합니다.
2. 다른 탭 중 하나에서 목록 보기를 복사합니다.
3. 새 탭에서 목록 보기를 두 번 클릭하고 데이터 소스 탭으로 전환합니다.
4. 유형을 XPath로 설정합니다.
5. 식 편집기에 다음 XPath를 추가합니다: [contains(Name, 'washer')].

 

작업을 통해 washer라는 단어가 포함된 모든 제품의 멋진 목록을 제공했습니다. 따라서 제품이 black washer든 washer stainless steel 이든 상관없이 이 XPath 쿼리는 제품을 찾을 수 있습니다.

이제 작업을 살펴볼 차례이니 로컬에서 프로젝트를 실행하여 새 탭이 작동하는지 확인해 보세요!

 

모든 자전거 찾기

AdventureWorks 직원들이 직면한 다음 과제는 제품 데이터베이스에 있는 모든 자전거의 개요를 파악하는 것이었습니다. 다행히도 자전거의 경우 'BK'로 시작하는 제품 코드가 있습니다. 따라서 사용 가능한 모든 자전거를 보여주는 또 다른 탭을 만들어 보겠습니다.


1. Production_Overview 페이지를 열고 탭 컨테이너에 Bikes라는 탭을 추가합니다.
2. 다른 탭 중 하나에서 목록 보기를 복사합니다.
3. 새 탭에서 목록 보기를 두 번 클릭하고 데이터 소스 탭으로 전환합니다.
4. 유형을 XPath로 설정합니다.
5. 식 편집기에 다음 XPath를 추가합니다. [starts-with(ProductNumber, 'BK')].

 

그러면 이름이 BK로 시작하는 모든 제품이 포함된 테이블이 생성됩니다. 이 함수는 대소문자를 구분하지 않는다는 점에 유의하세요.


이제 앱에서 로컬로 실행하여 Production_Overview 페이지를 살펴봄으로써 이 함수가 앱에서 어떻게 보이는지 확인해 보겠습니다.

 

분기별 매출

이제 앱에서 판매 통계를 확인할 차례입니다. Sales 모듈에 2011년의 분기별 매출을 볼 수 있는 새 페이지를 추가합니다.

1. Sales 모듈을 열고 Sales라는 폴더를 추가합니다.
2. 이 폴더에 템플릿 목록 기본값과 Sales_Layout 레이아웃을 사용하여 Sales_Overview라는 페이지를 추가합니다.

 

3. 목록 뷰의 데이터 원본을 XPath로 설정하고 엔터티를 Sales.SalesOrderHeader로 설정합니다.


4. OrderDate 속성에 quarter-from-dateTime() 함수를 사용하여 첫 분기의 모든 매출을 선택하는 XPath 표현식을 추가합니다. 콘텐츠를 자동으로 채우려면 예라고 말하는 것을 잊지 마세요.

5. 페이지에 탭 컨테이너를 추가하고 탭을 2개 추가하여 총 4개의 탭이 생기도록 합니다. 탭에 이름을 지정합니다:
* Q1
* Q2
* Q3
* Q4


6. 목록 보기에 레이아웃 그리드를 추가하고 아래와 같이 콘텐츠를 구성합니다.

7. 목록 보기의 복사본을 첫 번째 탭에 추가하고 다른 세 탭 모두에 복사합니다.

 

8. 3개의 탭에서 각 분기의 매출을 표시하도록 XPath 표현식을 조정합니다.

 

9. 완료했으면 로컬에서 애플리케이션을 실행하여 결과를 확인합니다.

이제 AdventureWorks의 또 다른 작업이 완료되었으며 모듈의 마지막 단계에 이르렀습니다. 이제 마무리하며 배운 내용을 살펴볼 시간입니다.

반응형