IDoc 구문 분석기의 메시지 모델 빌드

WebSphere Message Broker의 기능을 사용하여 SAP IDoc 데이터를 변환하려면 WebSphere Message Broker에서 IDoc의 세그먼트 데이터를 모델화해야 합니다.

SAP 응용프로그램에서 송신 및 수신되는 메시지를 IDoc 구문 분석기가 처리하며, 이 구문 분석기에서는 메시지 모델이 데이터를 올바르게 해석해야 합니다. 이 주제에서는 메시지 모델을 빌드하는 방법을 설명합니다. 사전빌드된 메시지 모델 버전의 예는 SupportPac IA0F에 있습니다.

IDoc 확보

Message Brokers Toolkit이 사용할 필수 IDoc 데이터의 들여오기 파일을 작성하려면 다음 프로시저를 사용하십시오.
  1. SAP 시스템에 로그온하십시오.
  2. C 헤더 파일로 IDoc 데이터를 추출하는 제공 트랜잭션인 we60을 실행하십시오.
    1. ObjectName의 경우 관련된 IDoc 유형을 선택하십시오(예: MATMAS02).
    2. 레코드 유형의 버전을 선택하십시오. 버전 4 IDoc는 유형 3입니다.
    3. 문서 메뉴에서 C-헤더를 선택하십시오.
    4. 프롬프트되면, 트랜잭션의 출력에 대한 파일 이름을 입력하십시오. IDoc의 C 표현은 이 파일에 저장됩니다.
  3. SupportPac IA0F에서 제공되는 perl 스크립트 hdrfiddle.pl을 사용하여, 작성한 출력 파일 형식이 Message Brokers Toolkit으로 들여올 올바른 형식인지 확인하십시오.

IDoc 모델화

다음 프로시저를 사용하여 메시지 모델을 작성하십시오.

  1. 새 메시지 세트 프로젝트 마법사를 사용하여 사용자 IDoc(예: matmas02)의 메시지 세트를 작성하고 사용자 정의 Wire 형식(CWF) 물리적 형식을 작성하십시오.
  2. 메시지 세트 편집기를 사용하여 메시지 세트 런타임 구문 분석기 등록 정보를 IDOC로 변경하십시오.
  3. 새 메시지 정의 파일 마법사나 mqsicreatemsgdefs 명령을 사용하여 IDoc의 C 표현을 새 메시지 세트로 들여오십시오. 마법사나 명령을 사용 중일 경우 다음 설정을 지정하십시오.
    • IDoc에 표시되는 세그먼트에 대한 메시지를 작성하십시오.
    • 문자열 인코딩 옵션을 사용하여 문자 배열을 고정 길이 문자열로 들여오십시오.
    • 문자열의 패딩 문자 옵션을 사용하여 공백(" ")을 사용할 패딩 문자로 만드십시오.
    C에서 들여오기에는 새 메시지 정의 파일 마법사 사용에 관한 정보가 있습니다.
  4. 메시지가 나타내는 세그먼트의 이름이 되도록 대문자로 각 메시지 이름을 바꾸십시오. 예를 들면, E2MARAMM이라고 하는 세그먼트의 경우 메시지 이름은 E2MARAMM이어야 합니다.

메시지 세트는 브로커 아카이브 파일에 추가하고 브로커 실행 그룹에 전개해야 합니다. IDOC 구문 분석기는 MRM 구문 분석기를 사용하여 사용자가 정의한 IDoc 세그먼트를 구문 분석하기 때문입니다.

메시지 플로우를 작성하여 IDoc를 처리할 때 런타임 구문 분석기 등록 정보, 메시지 세트 이름 및 사용자 정의 Wire 형식 이름이 사용됩니다. 이들은 MQInput 노드의 메시지 도메인, 메시지 세트메시지 형식 각각의 등록 정보 값으로 표시됩니다. IDOC 구문 분석기는 메시지의 이름을 제공하기 위해 SAP 정의 IDoc DD 필드 segnam 컨텐츠를 사용하므로 MQInput 노드에서 메시지 유형 등록 정보를 제공하지 마십시오.

ESQL을 사용하여 IDoc 필드에 액세스

ESQL 편집기 컨텐츠 지원을 사용하여 IDoc의 SAP 정의 필드를 채울 수 있습니다. 일부 시스템에서는 편집 메뉴에서 컨텐츠 지원을 호출하십시오. 또는 Ctrl+Space가 다른 기능에 지정되지 않은 경우 Ctrl+Space를 눌러 컨텐츠 지원을 호출하십시오.

ESQL 문에서 sdatatag 태그를 가져올 경우 다음 태그는 MRM입니다. 이 태그는 수동으로 입력한 후에 필드 이름을 조작해야 합니다. 여기에서 메시지 세그먼트 내에 메시지 세그먼트 이름 대신 필드 이름을 지정하십시오.

예를 들면, 다음 코드는 IDoc의 세그먼트 이름을 설정합니다.

SET OutputRoot.IDOC.DD[I].segnam  = 'E2MAKTM001';
다음 예는 E2MAKTM001 세그먼트 내에서 msgfn 필드를 설정합니다.
SET OutputRoot.IDOC.DD[I].sdatatag.MRM.msgfn = '006';     
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac20030_