8.13. 매핑에 조건 적용
일부 통합에서는 매핑에 조건부 처리를 추가하는 것이 유용합니다. 예를 들어 소스 zip 코드 필드를 대상 zip 코드 필드에 매핑한다고 가정합니다. 소스 zip 코드 필드가 비어 있으면 대상 필드를 99999
로 채울 수 있습니다. 이렇게 하려면 zip 코드 소스 필드를 테스트하여 비어 있는지 확인하는 표현식을 지정하고, 비어 있으면 zip 코드 대상 필드에 99999
를 삽입합니다.
매핑에 조건을 적용하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
데이터 매퍼는 Microsoft excel 표현식과 유사하지만 모든 Microsoft excel 표현식 구문을 지원하지는 않는 표현식을 지원합니다. 조건부 표현식은 개별 필드 또는 컬렉션에 있는 필드를 참조할 수 있습니다.
각 매핑에 대해 0 또는 하나의 조건을 정의할 수 있습니다.
다음 절차에서는 매핑에 조건을 적용하여 시작됩니다.
참고: 매핑에 조건을 추가하면 소스 및 대상 변환 옵션이 비활성화됩니다. 변환은 조건식 내에 배치해야 합니다.
사전 요구 사항
- 데이터 매퍼 단계에서 필드를 매핑하고 있습니다.
- MicrosoftExcel 식에 익숙하거나 매핑에 적용할 조건부 식을 사용합니다.
절차
데이터 유형이 아직 표시되지 않으면 을 클릭하여 표시합니다.
이는 조건을 지정하기 위한 요구 사항은 아니지만 데이터 유형을 확인하는 것이 도움이 됩니다.
조건을 적용할 매핑을 생성하거나 현재 선택한 매핑이 조건을 적용할 매핑인지 확인합니다. 예를 들어 다음 매핑을 고려하십시오.
왼쪽 상단에서 을 클릭하여 조건부 표현식 입력 필드를 표시합니다.
표현식 필드에서 데이터 매퍼는 현재 매핑에서 소스 필드의 이름을 자동으로 표시합니다. 예를 들면 다음과 같습니다.
표현식 입력 필드에서 소스 필드의 순서는 매핑을 만들 때 선택한 순서입니다. 기본 매핑 동작은 데이터 매퍼가 대상 필드에 결과를 삽입하기 위해 이 필드의 필드 값을 연결하므로 중요합니다. 이 예에서는 이 매핑을 생성하기 위해
lastName
이 먼저 선택되고firstName
이 선택됩니다.표현식 입력 필드를 편집하여 데이터 매퍼가 매핑에 적용할 조건부 표현식을 지정합니다. 지원되는 조건부 표현식에 대한 자세한 내용은 다음 절차를 따르십시오.
조건부 매핑에 변환을 포함하려면 조건부 표현식에 변환을 추가해야 합니다.
표현식을 지정하면
@
을 입력하고 필드 이름을 입력하도록 시작할 수 있습니다. 데이터 매퍼는 입력한 것과 일치하는 필드 목록을 표시합니다. 표현식에서 지정할 필드를 선택합니다.식에 필드 이름을 추가하면 데이터 매퍼에서 해당 필드를 매핑에 추가합니다. 예를 들어 다음 조건부 표현식을 고려하십시오.
실행하는 동안 데이터 매퍼에서
lastName
필드가 비어 있다고 판단하면firstName
필드만 대상customerName
필드에 매핑됩니다.lastName
필드에 값이 포함된 경우 데이터 매퍼는 소스orderId
및전화
필드의 값을 연결하고customerName
필드에 결과를 삽입합니다. (이 예제에서는 논리가 작동하는 방식을 보여 주지만lastName
필드에 값이 있을 때 데이터 매퍼가 간단히 매핑을 수행하고 다른 값을 대상에 매핑하지 않도록 하기 때문에 유용한 예는 아닐 수 있습니다.)이 예제에서는 표현식을 입력한 후 데이터 매핑은 다음과 같습니다.
조건부 표현식에서 표현식이 적용되는 매핑에 있는 필드 이름을 제거하면 데이터 매퍼가 매핑에서 해당 필드를 제거합니다. 즉, 매핑의 모든 필드 이름은 조건식에 있어야 합니다.
- 매핑 프리뷰 필드가 아직 표시되지 않은 경우 을 클릭하여 표시합니다.
- 소스 프리뷰 입력 필드에 샘플 데이터를 입력하여 대상 필드 또는 대상 필드가 올바른 값을 가져오도록 합니다.
- 필요한 경우 조건부 표현식을 편집하여 원하는 결과를 얻습니다.
조건부 표현식에서 지원되는 함수
ISEMPTY(source-field-name1 [+ source-field-name2])
ISEMPTY()
함수의 결과는 부울 값입니다. 조건을 적용할 매핑의 소스 필드의 이름인 하나 이상의 인수를 지정합니다. 지정된 source 필드가 비어 있으면ISEMPTY()
함수가 true를 반환합니다.선택적으로 추가 필드가 포함된 +(concatenation) Operator를 추가합니다. 예를 들면 다음과 같습니다.
ISEMPTY(lastName + firstName)
이 표현식은
lastName
및firstName
필드가 모두 비어 있으면 true로 평가됩니다.종종
ISEMPTY()
함수는IF()
함수의 첫 번째 인수입니다.IF(boolean-expression, then, else)
부울-표현
이 true로 평가되면 데이터 매퍼는 다음을 반환합니다.부울-표현
이 false로 평가되면 데이터 매퍼는다른
값을 반환합니다. 세 가지 인수가 모두 필요합니다. 마지막 인수는 null일 수 있습니다. 즉,boolean-expression
이 false로 평가될 때 아무것도 매핑되지 않습니다.예를 들어 대상
customerName
필드에lastName
및firstName
소스 필드를 결합하는 매핑을 고려하십시오. 이 조건부 표현식을 지정할 수 있습니다.IF (ISEMPTY(lastName), firstName, lastName + ',' + firstName )
실행하는 동안 데이터 매퍼는
lastName
필드를 평가합니다.-
lastName
필드가 비어 있으면ISEMPTY(lastName)
가 true를 반환하면 데이터 매퍼는firstName
값만 대상customerName
필드에 삽입합니다. lastName
필드에 값이 포함된 경우ISEMPTY(lastName)
는 false를 반환하고 데이터 매퍼는lastName
값을 매핑한 다음 쉼표를 사용한 다음firstName
값을 대상customerName
필드에 매핑합니다.이제 이 표현식의 세 번째 인수가 null인 경우 동작을 고려하십시오.
IF (ISEMPTY(lastName), firstName, null )
실행하는 동안 데이터 매퍼는
lastName
필드를 평가합니다.-
이전 예에서와 같이
lastName
필드가 비어 있으면ISEMPTY(lastName)
에서 true를 반환하는 경우 데이터 매퍼는firstName
값만 대상customerName
필드에 삽입합니다. -
그러나 세 번째 인수가 null인 경우
lastName
필드에 값이 포함된 경우ISEMPTY(lastName)
에서 false를 반환하면 데이터 매퍼가 대상customerName
필드에 아무것도 매핑하지 않습니다.
-
LT(x,y)
또는 <(x,y)
데이터 매퍼는
x
및y
를 평가하고 더 낮은 값을 반환합니다.x
와y
모두 숫자여야 합니다.TOLOWER(문자열)
데이터 매퍼는 지정된 문자열을 소문자로 변환하고 반환합니다.
Operator | 설명 |
| 숫자 값 또는 연결 문자열 값을 추가합니다. |
| 다른 숫자 값에서 숫자 값을 뺀 값입니다. |
| 숫자 값을 곱합니다. |
| 숫자 값을 나눕니다. |
| 왼쪽 피연산자와 오른쪽 피연산자가 모두 true이면 true를 반환합니다.true if both the left and right operands are true. 각 피연산자는 부울 값을 반환해야 합니다. |
| 왼쪽 피연산자가 true이면 true이거나 오른쪽 피연산자가 true이면 true를 반환합니다.true if the left operand is true, or if the right operand is true. 각 피연산자는 부울 값을 반환해야 합니다. |
| 해당 없음 |
| 왼쪽 숫자 피연산자가 오른쪽 숫자 피연산자보다 큰 경우 true를 반환합니다. |
< | 왼쪽 숫자 피연산자가 오른쪽 숫자 피연산자보다 작은 경우 true를 반환합니다. |
| 왼쪽 피연산자와 오른쪽 피연산자가 동일한 경우 true를 반환합니다. |