다음을 통해 공유


오케스트레이션에서 SOAP 헤더 액세스

정의된 SOAP 헤더 및 알 수 없는 SOAP 헤더의 오케스트레이션에 있는 SOAP 헤더 컨텍스트 속성에 액세스할 수 있습니다. 속성 스키마 및 컨텍스트 속성에 대한 자세한 내용은 속성 스키마를 참조하세요.

정의된 SOAP 헤더 컨텍스트 속성

오케스트레이션의 정의된 SOAP 헤더 컨텍스트 속성에는 속성 스키마가 필요합니다. 속성 스키마에는 대상 네임스페이스 http://schemas.microsoft.com/BizTalk/2003/SOAPHeaderProperty Schema Base 속성이 MessageContextPropertyBase로 설정되어 있어야 합니다. 속성 스키마의 각 루트 요소 이름은 정의된 SOAP 헤더의 루트 요소 이름과 일치해야 합니다. 그런 다음 속성 스키마의 네임스페이스 및 속성 이름을 사용하여 컨텍스트 속성의 값에 액세스할 수 있습니다. 속성 스키마의 네임스페이스는 위에 나열된 대상 네임스페이스와 다릅니다. 속성 스키마의 네임스페이스는 모든 문자열일 수 있지만 일반적으로 프로젝트 이름으로 기본 설정됩니다.

다음 예제에서는 속성 스키마 네임스페이스, SOAPHeader 및 속성 이름 OrigDest에 대한 SOAP 헤더 컨텍스트 속성에 액세스하는 방법을 보여줍니다.

stringVar = requestMessageInstance(SOAPHeader.OrigDest);  

참고

정의된 SOAP 헤더는 "in" 또는 "out" 헤더로 취급됩니다. 마법사에서 요청 및 응답 메시지에 대해 동일한 SOAP 헤더를 정의한 경우 들어오는 값이 응답에서 자동으로 반환되지 않습니다. 요청 메시지의 SOAP 헤더 컨텍스트 속성을 응답 메시지의 SOAP 헤더 컨텍스트 속성에 명시적으로 복사해야 합니다.

들어오는 메시지의 SOAP 헤더 컨텍스트 속성 복사

들어오는 메시지의 SOAP 헤더 컨텍스트 속성을 응답 메시지의 동일한 SOAP 헤더 컨텍스트 속성에 복사할 수 있습니다.

다음 예에서는 SOAP 헤더 컨텍스트 속성을 복사하는 과정을 보여 줍니다.

ResponseMessageInstance(SOAPHeader.OrigDest) = RequestMessageInstance(SOAPHeader.OrigDest);  

SOAP 응답에 대한 SOAP 헤더를 만들 경우 SOAP 헤더를 올바르게 만들도록 주의해야 합니다. SOAP 어댑터는 SOAP 헤더 컨텍스트 속성의 내용을 확인하지 않습니다. 응답 SOAP 헤더의 값이 올바르지 않으면 SOAP 어댑터가 웹 서비스 소비자에게 응답 메시지를 보낼 수 없습니다.

알 수 없는 SOAP 헤더 컨텍스트 속성

알 수 없는 SOAP 헤더 컨텍스트 속성에는 속성 스키마가 필요 없습니다. 이 전역 컨텍스트 속성 SOAP에 액세스할 수 있습니다 . UnknownHeaders.

다음 예제에서는 알 수 없는 SOAP 헤더 컨텍스트 속성 SOAP에 액세스하는 방법을 보여줍니다 . UnknownHeaders:

stringVar = RequestMessageInstance(SOAP.UnknownHeaders);  

컨텍스트 속성에 포함된 값은 XML 데이터를 포함하는 문자열입니다. 이 데이터에 액세스하는 가장 간단한 방법은 메시지 할당 또는 셰이프에서 BizTalk 식 편집기를 사용하고 XmlDocument 에서 문자열을 로드하고 XPATH 쿼리를 사용하여 특정 필드에 액세스하는 것입니다. BizTalk 식 편집기에서 XML 문서를 만드는 자세한 내용은 XLANG-s 언어를 참조하세요.

컨텍스트 속성은 특정 메시지와 연결됩니다. 메시징 엔진은 요청 메시지의 알려진 SOAP 헤더 값을 응답 메시지에 자동으로 매핑하지 않습니다. 웹 서비스에 대한 응답 메시지를 만들 때 SOAP 헤더 값을 구체적으로 설정해야 합니다. 다음 명령은 SOAP 헤더 컨텍스트 속성을 설정하는 가장 간단한 방법입니다.

ResponseMessageInstance(SOAPHeader.OrigDest) = "<?xml version="1.0" encoding="utf-16"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination xmlns=\"\">Home</Origination><Destination xmlns=\"\">Work</Destination> </OrigDest>"  

XmlDocument를 만들고 XmlDocument의 문자열 값을 컨텍스트 속성에 작성하여 이 작업을 수행할 수도 있습니다.

참고

SOAP인 경우 UnknownHeaders 속성은 null이고 BizTalk는 SOAP 요청에서 받은 알 수 없는 헤더를 SOAP 응답에 자동으로 반환합니다. SOAP인 경우 응답 메시지의 UnknownHeaders 컨텍스트 속성이 null이 아닌 경우 BizTalk는 해당 값을 SOAP 응답에 반환합니다.

참고 항목

게시된 웹 서비스가 포함된 SOAP 헤더