반복 노드 필터

런타임 동안 필터링할 XPath 술어를 지정하면 맵핑 활동에서 리턴되는 반복 노드를 제한할 수 있습니다.

이 태스크 정보

활동의 맵핑 분할창에서 술어를 직접 사용하는 필터링은 다음 활동이 필요 없습니다. 루프 및 If..Then 활동이 없어지면 오케스트레이션 성능이 개선됩니다.
예를 들어, BatchOrderProcessingSample 오케스트레이션에서 처리되는 책을 다음 중 하나의 방법을 사용하여 문자 B로 시작하는 책 제목만 리턴하도록 제한할 수 있습니다.
  • 플랫 파일 데이터를 XML로 변환하는 플랫 파일 읽기 활동 이후, 모든 책 제목에 대해 문자 B로 시작하는지 테스트하는 If..Then 활동을 포함하는 While 루프 활동을 추가할 수 있습니다. While 루프 활동이 런타임 시 완료되면, 문자 B로 시작하는 제목을 가진 반복 BookOrder 노드의 세트를 리턴합니다.
  • 플랫 파일 데이터를 XML로 변환하는 플랫 파일 읽기 활동의 출력 맵핑 태스크의 오케스트레이션으로 분할창에서 술어를 직접 지정하여 필터합니다. 이 방법은 런타임 동안 처리를 줄이면서 오케스트레이션 성능을 개선하므로 선호되는 방법입니다. 예를 들어, 런타임 동안 리턴되는 Bookorder 노드를 문자 B로 시작하는 제목으로만 제한하도록 반복 BookOrder 노드에 *:title/starts-with(.,'B') 술어를 지정할 수 있습니다.
이 예제 술어는 다음 표에서 설명됩니다.
술어 문자 설명
*: 이 술어가 소스 노드의 모든 네임스페이스에 적용됨을 지정합니다.
title/ 현재 소스 노드의 title 노드에 대해 이 술어를 적용함을 지정합니다.
starts-with(.,'B') 이 술어는 문자 B로 시작하는 제목 노드를 가진 노드만 리턴함을 지정합니다. starts-with 함수는 기본 제공 XPath 함수입니다.

BookOrder 샘플에 대한 자세한 정보는 시작하기 안내서를 참조하십시오. Studio 설치 중에 기본값을 허용한 경우, C:\Program Files\IBM\WebSphere Cast Iron Studio 3.X\Samples\BookOrder 디렉토리에서 샘플의 참조 구현을 찾을 수 있습니다.

반복 노드에 술어를 지정하려면 다음을 수행하십시오.

프로시저

  1. BatchOrderProcessingSample 오케스트레이션에 있는 플랫 파일 읽기 활동의 다음 출력 맵핑 분할창에 표시된 대로, 활동의 맵핑 분할창에서 반복 소스 노드로 맵핑된 반복 대상 노드에만 필터를 적용할 수 있습니다.
  2. 대상 발생 노드(이 예제에서는 BookOrder/occurrence)를 마우스 오른쪽 단추로 클릭하고 메뉴에서 반복 노드 필터를 선택하십시오. 반복 노드 필터 대화 상자가 열립니다.
  3. XPath 술어를 입력하십시오. 이 예제의 경우, 다음 그림에 표시된 술어를 입력하십시오.
  4. 확인을 클릭하십시오. 술어가 올바른지 여부를 판별하기 위해 평가됩니다.
    • 술어가 올바르지 않으면 오류 메시지가 보고됩니다.
    • 술어가 올바르면, 필터 아이콘(반복 노드 아이콘)이 대상 발생 노드 옆에 표시됩니다.