메시지 맵핑 팁 및 제한사항

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

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

  1. 대상을 펼쳐 첫 번째 인스턴스를 새로 작성하려는 요소를 표시하십시오. 이는 구조일 수도 있고 단순 요소일 수도 있습니다.
  2. 요소를 마우스 오른쪽 단추로 누른 후 If를 누르십시오. 조건 행이 아래에 즉시 나타납니다.
  3. 요소를 마우스 오른쪽 단추로 누른 후 Copy를 누르십시오. 조건 행으로 이동하고 붙여넣기를 누르십시오. 이제 요소의 스프레드시트에 두 개의 입력 항목이 있습니다.
  4. 이 입력 항목의 첫 번째 입력 항목을 원하는 값으로 설정하십시오. 이는 첫 번째 인스턴스입니다.
  5. 두 번째 입력 항목을 마우스 오른쪽 단추로 누른 후 For를 누르십시오. for 행이 스프레드시트에 표시됩니다.
  6. 두 번째 입력 항목을 소스에서 맵핑된 값으로 설정하십시오.
  7. for 입력 항목을 루핑 조건으로 설정하십시오.
  8. 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을 테스트하여 제대로 작동하는지 확인하십시오.

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

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

배치 메시지 맵핑

다중 파트 메시지의 구성요소를 일련의 배치 메시지로 나누고 순서 지정하며 정렬하는 메시지 맵핑을 구성할 수 있습니다. 해당 구성요소는 메시지 또는 오브젝트일 수 있으며 다른 형식이 있을 수 있습니다. 그런 경우, 각 구성요소는 변환되고 메시지는 전달되기 전에 리어셈블링됩니다.
  1. 메시지 플로우에서 RouteToLabel 노드를 사용하여 멀티파트 메시지를 입력으로 수신하십시오.

    RouteToLabel 노드는 순서에서 Mapping 노드 다음에 있는 노드이며 플로우가 자동으로 지정한 레이블로 이동하게 합니다. 메시지 어셈블리를 출력하는 모든 맵에 대해 분할 맵에서 단일 RouteToLabel 값을 지정할 수 있씁니다. 또한 조건을 사용하여 소스 메시지의 값에 따라 RouteToLabel 값을 설정할 수도 있습니다.

  2. 메시지 맵핑 편집기를 사용하여 중간 데이터 구조를 정의할 필요없이 단일 노드에서 배치 메시지를 변환하고 전달하는 맵을 빌드하십시오.

멀티파트 메시지에는 반복되는 임베드된 메시지가 포함될 수도 있습니다. 여기서 각 반복 메시지 인스턴스는 별도로 전달됩니다. 임베드된 메시지는 상위 메시지와 동일한 메시지 세트에 속해 있어야 합니다.

맵핑 제한사항

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