다음을 통해 공유


오케스트레이션에서 SOAP 헤더 사용

오케스트레이션은 속성 스키마를 사용하여 SOAP 헤더 컨텍스트 속성을 정의합니다. BizTalk 편집기를 사용하여 SOAP 헤더 컨텍스트 속성을 설정합니다.

속성 스키마를 사용하여 SOAP 헤더 컨텍스트 속성 정의

오케스트레이션에 정의된 SOAP 헤더 컨텍스트 속성을 사용하려면 속성 스키마가 필요합니다. 속성 스키마에는 의 http://schemas.microsoft.com/BizTalk/2003/SOAPHeader대상 네임스페이스와 Property Schema Base 속성이 MessageContextPropertyBase로 설정되어 있어야 합니다. 속성 스키마의 각 루트 요소 이름이 정의된 SOAP 헤더의 루트 요소 이름과 일치해야 합니다. 그런 다음 속성 스키마의 네임스페이스와 속성 이름을 사용하여 컨텍스트 속성의 값을 설정할 수 있습니다.

참고

속성 스키마의 네임스페이스는 대상 스키마(http://schemas.microsoft.com/BizTalk/2003/SOAPHeader)의 네임스페이스와 다릅니다. 네임스페이스는 임의의 문자열일 수 있지만 기본적으로 프로젝트의 이름으로 설정됩니다.

다음 코드에서는 속성 스키마 네임스페이스가 OrigDest의 속성 이름을 가진 SOAPHeader인 SOAP 헤더 컨텍스트 속성을 할당하는 방법을 보여 있습니다.

requestMessageInstance(SOAPHeader.OrigDest) = stringVar;  

속성 스키마 및 컨텍스트 속성에 대한 자세한 내용은 속성 스키마를 참조하세요.

BizTalk 편집기를 사용하여 SOAP 헤더 컨텍스트 속성 설정

오케스트레이션의 경우 SOAP 헤더 컨텍스트 속성은 XML 데이터를 포함하는 문자열로 설정됩니다. 메시지 할당또는 식 셰이프에서 BizTalk 식 편집기를 사용하여 이러한 문자열을 설정합니다.

다음 예제는 컨텍스트 속성을 설정하는 문자열을 보여 줍니다.

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

BizTalk 편집기를 사용하여 SOAP 헤더 루트 요소 인스턴스 만들기

SOAP 헤더를 올바른 문자열로 설정하는 것이 어려울 수 있습니다. BizTalk 프로젝트에 웹 참조를 추가하는 경우 복잡한 모든 웹 메시지 파트가 Reference.xsd에 루트 요소로 추가됩니다. Reference.xsd에는 정의된 각 SOAP 헤더에 대한 루트 요소도 포함됩니다. 올바른 문자열로 SOAP 헤더를 설정하려면 BizTalk Editor를 사용하여 Reference.xsd에 대한 SOAP 헤더 루트 요소의 instance 만들어야 합니다. 생성된 instance 데이터를 직접 사용하거나 instance 데이터를 사용하여 실제 데이터를 포함할 수 있습니다.

BizTalk 편집기를 사용하여 instance 데이터를 생성하는 방법에 대한 자세한 내용은 인스턴스 메시지를 생성하는 방법을 참조하세요.

XmlDocument를 만들어 컨텍스트 속성 설정

XmlDocument를 만들고 XmlDocument의 문자열 값을 context 속성에 기록하여 컨텍스트 속성을 설정할 수 있습니다. XMLDocument 형식의 변수를 선언하고 XML 데이터를 할당합니다.

다음 예제에서는 XMLDocument 형식의 변수를 선언하고 XML 데이터를 할당하는 설정을 보여줍니다.

xmlDoc.LoadXml("<?xml version=\"1.0\"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination>Home</Origination><Destination>Work</Destination></OrigDest>");  

다음 예제는 컨텍스트 속성을 설정하는 방법을 보여 줍니다.

RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;  

BizTalk 식 편집기 사용에 대한 자세한 내용은 식에 대한 요구 사항 및 제한 사항을 참조하세요. .NET 클래스를 호출하는 방법에 대한 자세한 내용은 사용자 코드에서 메시지 생성을 참조하세요.

SOAP 요청에 대한 SOAP 헤더 만들기

SOAP 요청에 대한 SOAP 헤더를 만드는 경우 SOAP 헤더를 올바르게 만들었는지 확인해야 합니다. SOAP 어댑터는 SOAP 헤더 컨텍스트 속성의 내용을 확인하지 않습니다.

참고

SOAP 헤더가 잘못된 경우 BizTalk에서 SOAP 요청을 웹 서비스로 보낼 수 없습니다.

BizTalk에서 웹 서비스로 반환하는 SOAP 응답에도 SOAP 헤더가 포함될 수 있습니다. 정의된 SOAP 헤더인 경우에만 이러한 SOAP 헤더에 액세스할 수 있습니다.

참고

사용된 웹 서비스는 정의된 SOAP 헤더만 지원합니다.

정의된 SOAP 헤더에 대한 자세한 내용은 SOAP 헤더 사용을 참조하세요. 응답 SOAP 헤더는 요청 SOAP 헤더와 동일한 구문을 사용하여 컨텍스트 속성으로 설정됩니다.

다음 코드는 응답 SOAP 헤더에 액세스하는 방법을 보여 줍니다.

stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);  

컨텍스트 속성에 포함된 값은 XML 데이터를 포함하는 문자열입니다. 메시지 할당또는 식 셰이프에서 BizTalk 식 편집기를 사용하여 이러한 문자열을 설정합니다. XmlDocument에서 문자열을 로드하고 XPath 쿼리를 사용하여 특정 필드에 액세스합니다.

BizTalk 식 편집기에서 XML 문서를 만드는 방법에 대한 자세한 내용은 XLANG-s 언어를 참조하세요.

참고 항목

XLANG/s 언어
사용된 웹 서비스가 포함된 SOAP 헤더