맵핑 힌트 팁 및 제한사항

다음 힌트와 팁은 맵핑 노드를 이미 메시지 플로우 내에 작성했고 메시지 맵핑 편집기를 열고 소스 메시지와 대상 메시지를 모두 선택한 것으로 가정합니다.

반복되지 않는 소스 필드와 같은 반복되지 않는 대상 필드 설정

  1. 메시지 맵핑 편집기 소스 분할창에서 소스 필드를 끌어서 대상 필드에 놓으십시오.

반복 소스 필드와 같은 반복 대상 필드 설정(For)

  1. 메시지 맵핑 편집기 소스 분할창에서 반복 소스 필드를 끌어서 대상 반복 필드에 놓으십시오.
  2. 스프레드시트에서 반복 대상 필드를 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 For를 선택하십시오. For 입력 항목이 스프레드시트에 표시됩니다.
  3. For 입력 항목을 누르고 소스 반복 필드를 끌어서 스프레드시트 바로 위의 편집 분할창에 놓으십시오.

필드 이동 조건 설정(If)

  1. 메시지 맵핑 편집기 소스 분할창에서 소스를 끌어서 대상에 놓으십시오.
  2. 스프레드시트에서 대상 필드를 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 If를 선택하십시오. If 입력 항목이 스프레드시트에 표시됩니다.
  3. If 입력 항목을 펼치십시오. fn:true() 조건이 디폴트 값으로 표시됩니다.
  4. fn:true() 조건을 누르십시오. 조건이 스프레드시트 바로 위의 편집 분할창에 표시됩니다.
  5. fn:true() 값을 삭제하십시오.
  6. 소스 필드를 끌어서 스프레드시트 바로 위의 편집 분할창에 놓으십시오.
  7. 소스 필드를 편집하여 필수 조건을 추가하십시오. 예를 들어 $source/Parent/SaleList/Invoice/Initial = 'K'는 ESQL 조작 IF InputRoot.Parent.SaleList.Invoice.Initial = 'K' THEN과 같습니다.

같지 않음 조건 설정

조건을 같음 이외의 조건과 일치시킬 경우
같지 않음 !=
>
크거나 같음 >=
작음 <
작거나 같음 <=

예: $source/Parent/SaleList/Invoice/Surname != 'Shop'

필드 이동의 대체 조건 설정(Else)

  1. 메시지 맵핑 편집기에서 필드 이동 조건 설정(If)에 나열되어 있는 단계를 완료하십시오.
  2. 조건 입력 항목을 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 Else를 선택하십시오. Else 입력 항목이 Else 행 아래에 표시됩니다. 이 항목은 원래의 If > 조건에 포함된 것과 같은 대상 필드이어야 합니다.
  3. 대상 필드를 필수 값으로 설정하십시오.

정값으로 대상 필드 설정

대상 필드가 스프레드시트에 표시되는 경우
  1. 메시지 맵핑 편집기 스프레드시트에서 대상 필드가 들어 있는 행을 누르고 스프레드시트의 두 번째 열 또는 스프레드시트 바로 위의 편집 분할창에 값을 입력하십시오(스프레드시트에서 대상 필드를 눌렀으므로 스프레드시트 바로 위의 편집 분할창은 해당 대상 필드에 포커스를 맞춥니다).
  2. 대상 값을 입력할 때 Enter를 누르십시오(문자열 필드는 작은따옴표로 묶어야 함).
대상 필드가 스프레드시트에 표시되지 않는 경우
  1. 메시지 맵핑 편집기 스프레드시트에서 대상의 가장 가까운 상위를 누르고 펼치기를 선택하십시오. 최종 상위는 항상 표시되는 $target입니다. 이 조치를 수행하면 스프레드시트가 해당 상위의 하위로 채워집니다.
  2. 스프레드시트가 설정할 대상 필드로 채워질 때까지 펼치기를 반복하십시오. 스프레드시트에 표시되는 대상 필드에 대해 위의 단계를 수행하십시오.

대상 필드에 ESQL 함수 적용

  1. 메시지 맵핑 편집기 소스 분할창에서 소스를 끌어서 대상에 놓으십시오.
  2. 스프레드시트에서 대상 필드를 누르십시오. 대상 필드 값이 스프레드시트 바로 위의 편집 분할창에 표시됩니다.
  3. 대상 필드 값을 편집하여 필수 ESQL을 추가하십시오(모든 ESQL 명령문의 앞에는 esql 속성이 와야 함).

예: esql:upper($source/Parent/SaleList/Invoice/Surname)

산술 연산자 사용

더하기 +
빼기 _
곱하기 *
나누기 div

예: $source/Parent/SaleList/Invoice/Item/Price div 1.6

소스는 목록이고 대상은 소스로부터의 목록이지만 목록의 맨 위에 새 항목이 있음

  1. 대상을 펼쳐 첫 번째 인스턴스를 새로 작성하려는 요소를 표시하십시오. 이는 구조일 수도 있고 단순 요소일 수도 있습니다.
  2. 이 요소를 마우스 오른쪽 단추로 누르고 If를 선택하십시오. 조건 행이 아래에 즉시 나타납니다.
  3. 요소를 마우스 오른쪽 단추로 누르고 복사를 선택하십시오. 조건 행으로 이동하고 붙여넣기를 선택하십시오. 요소의 스프레드시트에 이제 두 개의 입력 항목이 있어야 합니다.
  4. 이 입력 항목의 첫 번째 입력 항목을 원하는 값으로 설정하십시오. 이는 첫 번째 인스턴스입니다. 두 번째 입력 항목을 마우스 오른쪽 단추로 누르고 For를 선택하십시오. for 행이 스프레드시트에 표시됩니다.
  5. 두 번째 입력 항목을 소스에서 맵핑된 값으로 설정하십시오.
  6. for 입력 항목을 루핑 조건으로 설정하십시오.
  7. for를 누른 후 루프 조건을 나타내는 소스 필드를 스프레드시트 바로 위의 표현식 편집기로 끌어 놓으십시오.

대상 실행 시간 구문 분석기 변경

맵핑을 처음 작성할 때 대상 메시지의 메시지 세트를 지정합니다. 출력 메시지와 연관된 구문 분석기는 메시지 세트와 연관된 런타임 구문 분석기입니다. 예를 들어, 메시지 세트가 처음 작성될 때 디폴트 런타임 구문 분석기는 MRM입니다. 이는 Mapping 노드가 다음 형식으로 ESQL을 생성함을 의미합니다.
SET OutputRoot.MRM.Fielda...
예를 들어, 런타임 구문 분석기를 XML이나 XMLNSC로 변경하면 맵핑 노드가 다음 형식으로 ESQL을 생성합니다.
SET OutputRoot.XMLNSC...
소스(입력) 메시지의 구문 분석기는 MQRFH2 헤더나 입력 노드로 판별됩니다. Mapping 노드는 입력 시 모든 구문 분석기를 핸들링합니다. Mapping 노드는 메시지 세트의 런타임 구문 분석기와 일치하는 구문 분석기를 사용하여 대상(출력) 메시지를 생성합니다.
  1. 메시지 세트 파일 messageset.mset를 여십시오.
  2. 런타임 구문 분석기를 원하는 값으로 변경하고 맵핑 목적으로 이 메시지 세트를 참조하는 메시지 플로우 프로젝트 정리를 저장하십시오.
  3. 구문 분석기를 MRM으로 변경한 경우 메시지 세트를 전개하십시오.
  4. 맵핑이 들어 있는 메시지 플로우를 전개하십시오. 이를 수행하는 경우, Compute 및 기타 노드에서 ESQL을 테스트하여 예상대로 작동하는지 확인해야 합니다.

선택 요소가 무조건 처리되는지 확인

선택 요소를 끌어 놓는 경우, If 행이 맵핑 스프레드시트에서 생성되고 가능한 각 선택에 대해 조건 행이 생성됩니다. 각 조건마다 디폴트로 이와 연관된 fn:false()가 있습니다(이는 이 선택이 처리되지 않음을 의미함). 선택 요소가 무조건 처리되도록 하려면 조건이 fn:true()로 설정되었는지 확인하십시오.

데이터베이스 스키마 이름 대체

ESQL에서 생성된 데이터베이스 스키마 이름을 변경할 수 있습니다. RDB 스키마 대체 마법사의 런타임 스키마 지정 대화 상자에서 이를 수행하십시오. 디폴트는 툴킷으로 들여온 데이터베이스 정의의 스키마 이름입니다. 이 대화 상자를 사용하여 값을 변경하십시오.

맵핑 제한사항

여기에 명시적으로 언급된 경우를 제외하고 ESQL 함수 또는 프로시저를 호출하여 필요한 기능성을 달성할 수 있습니다.
  • 혼합 컨텐츠 필드를 맵핑할 수 없습니다.
  • 맵핑 노드에서 직접 예외가 발생할 수는 없습니다.
  • 자체 정의된 요소를 맵핑 노드에서 조작할 수 없습니다(와일드카드가 임베드된 메시지를 나타낼 때 와일드카드에 대한 지원이 제한됨).
  • 맵핑 노드에서 환경 트리를 조작할 수 없습니다.
  • 사용자 변수를 정의하고 설정할 수 없습니다.
  • CASE 표현식을 에뮬레이트할 수 없으며, if/else를 사용해야 합니다.
  • 복사된 트리 내에서 요소를 수정할 수 있도록 입력에서 출력으로 트리를 복사할 수 없습니다. 예를 들어, Mapping 모드에서 다음 ESQL을 모델화할 수는 없습니다. SET OutputRoot.MQMD = InputRoot.MQMD; SET OutputRoot.MQMD.ReplyToQ = 'NEW.QUEUE'; 하나 이상의 동위 필들르 수정하려는 경우 구조의 각 필드를 개별적으로 설정해야 합니다.
관련 개념
메시지 맵핑 개요
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2005 마지막 갱신 날짜: 11/08/2005
ar25245_