LowCode (Mendix) Advanced/Master Modeling Microflows

Work with ListsLearning Objectives

Caryou 2024. 10. 23. 17:06

학습 목표

이 모듈을 마치면 다음을 수행할 수 있습니다.

  • 검색 활동을 사용하여 목록 만들기
  • 마이크로흐름에서 목록에서 수행할 수 있는 작업을 식별합니다.
  • 루프에서 목록을 사용하는 방법과 이유를 설명합니다.
  • 목록을 효율적으로 활용하세요

목록 집계

목록의 특정 속성이나 값을 사용하고 싶을 때 Aggregate List 작업을 사용할 수 있습니다. 어떤 함수를 수행하고 어떤 값에 대해 수행할지 선택할 수 있습니다. 다음 목록 집계 함수를 사용할 수 있습니다.

  • Sum – 전체 객체 목록에 대해 지정된 속성의 모든 값의 합계를 반환합니다.
  • Average – 객체 목록에서 속성의 모든 값의 평균을 구합니다.
  • Count - 목록에 있는 개체의 총 개수입니다.
  • Min – 객체 목록에서 속성에 존재하는 모든 값의 최소값을 반환합니다.
  • Max – 객체 목록에서 속성에 존재하는 모든 값의 최대값을 반환합니다.

최적화

집계 목록 작업을 검색 작업 바로 뒤에 배치하면 Mendix에서 목록 집계가 자동으로 최적화된다는 것을 아는 것이 중요합니다. 자세한 내용은 Microflow 집계 최적화 방법 참조하세요 .

이전의다음

 

 

목록 작업

목록 작업 마이크로플로우 동작은 다음 작업을 용이하게 해줍니다.

[ 그림 1 ]

메모리의 객체

마이크로플로에서 데이터베이스의 객체를 처리할 때 대부분 XPath를 사용하여 데이터 제약, 필터링, 정렬과 같은 작업을 수행합니다. 그러나 메모리에만 존재하는 객체에는 XPath를 사용할 수 없습니다.

여기서 List Operations가 등장합니다. 이는 메모리에만 존재하고 아직 데이터베이스에는 존재하지 않는 목록을 작업할 때 사용됩니다(예: 비지속성 개체 또는 아직 커밋되지 않은 지속성 개체로 작업할 때). 다음은 이러한 경우의 몇 가지 일반적인 시나리오입니다.

  • 데이터를 송수신하는 마이크로플로우의 통합 및 웹 서비스
  • 그리드 또는 목록 위젯에서 사용되는 데이터 소스 마이크로플로우
  • 차트 위젯에서 볼 수 있는 보고서 데이터 생성
  • 복잡한 XPath 피하기
  • 이전에 검색한 목록에서 데이터 재사용

 

목록 작업 사용

이 과제에서는 앞서 논의한 목록 작업 중 하나를 검색과 함께 적용해 보겠습니다.

Car Supply의 직원은 제품 구매 가격을 볼 때 공급업체의 새로운 구매 가격 세부 정보를 업데이트할 수 있기를 원합니다.

 

ACT_UpdateSupplierPricing 마이크로플로우 확장

공급업체 제품 가격 업데이트를 검색하는 마이크로플로는 모든 제품의 모든 가격을 반환합니다. 그러나 선택한 제품의 가격에만 관심이 있으므로 list operation을 사용하여 업데이트된 가격 정보가 있는 목록에서 제품을 가져와야 합니다.

 

이 과제에 사용할 올바른 목록 작업은 ' Find ' 작업입니다. 이 작업은 선택한 제품과 동일한 이름을 가진 제품을 검색합니다.

[ 그림 2 ]
[ 그림 3 ]

이 제품에 대한 세부 정보가 없을 수 있으므로 결정을 사용하여 이를 포착해야 합니다. 마이크로플로는 다음 요소로 확장해야 합니다.

[ 그림 4 ]

이러한 요소를 추가한 후 마이크로흐름은 다음과 같아야 합니다.

[ 그림 5 ]

사용자는 현재 가격이 새 가격과 다르지 않은 경우를 알아야 합니다. 따라서 두 번째 결정은 관련 메시지와 함께 구현되어야 합니다. 마이크로플로는 다음 요소로 확장되어야 합니다.

[ 그림 6 ]
[ 그림 7 ]

새로운 가격이 발견되었는지 확인하고, 이 새로운 가격이 현재 가격과 다른 경우 SupplierDetails를 업데이트해야 합니다.

[ 그림 8 ]
[ 그림 9 ]

루프

목록을 작업할 때 목록의 각 개별 객체에 특정 논리를 적용하고 싶을 수 있습니다. 그런 경우 루프를 사용하여 객체 목록을 반복할 수 있습니다.

 

리스트 함수 vs. 루프

일반적으로, 리스트 함수(집계/연산)는 리스트 전체에 로직을 적용하고자 할 때 사용됩니다. 루프는 리스트의 각 개별 객체에 로직을 적용하고자 할 때 사용됩니다.

 

그러나 루프를 사용하면 리스트 연산을 사용하는 것과 동일한 기능을 제공하는 상황이 발생할 수 있습니다. 이러한 경우 대신 더 효율적인 리스트 함수를 사용할 수 있는지 평가하는 것이 중요합니다.

 

이 예에서 루프는 객체 목록을 반복하여 목록의 각 객체에 대해 업데이트되는 변수를 사용하여 배송된 주문 라인의 총 가치를 결정하는 데 사용됩니다.

 

Loop를 List Operation으로 바꾸기

5개 이상의 주문 라인/제품을 한꺼번에 주문하는 경우, 고객은 가장 비싼 품목에 대해 20% 할인을 받아야 합니다.

이 전제 조건을 검증하는 마이크로플로는 주문 데이터가 데이터베이스에 커밋되기 전에 주문을 제출할 때 실행됩니다.

[ 그림 10 ]
[ 그림 11 ]
[ 그림 12 ]
[ 그림 13 ]
[ 그림 14 ]

출처 : https://academy.mendix.com/link/paths/6/Master-Modeling-Microflows

'LowCode (Mendix) Advanced > Master Modeling Microflows' 카테고리의 다른 글

Debugger  (0) 2024.10.24
Sub-Microflows  (1) 2024.10.24
Microflow Expressions  (1) 2024.10.23