Condividi tramite


Uso di intestazioni SOAP nelle orchestrazioni

Per definire le proprietà di contesto delle intestazioni SOAP, le orchestrazioni utilizzano gli schemi proprietà. Le proprietà di contesto delle intestazioni SOAP possono essere impostate nell'Editor BizTalk.

Definizione di proprietà di contesto delle intestazioni SOAP con schemi proprietà

Per utilizzare le proprietà di contesto delle intestazioni SOAP definite nelle orchestrazioni, è necessario uno schema proprietà Lo schema delle proprietà deve avere lo spazio dei nomi di destinazione di http://schemas.microsoft.com/BizTalk/2003/SOAPHeadere la proprietà Property Schema Base impostata su MessageContextPropertyBase. Ogni nome di elemento radice nello schema proprietà deve corrispondere al nome di elemento radice nell'intestazione SOAP definita. Sarà quindi possibile impostare i valori delle proprietà di contesto utilizzando lo spazio dei nomi dello schema proprietà e il nome della proprietà.

Nota

Lo spazio dei nomi dello schema delle proprietà è diverso dallo spazio dei nomi dello schema di destinazione (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader). Può essere una stringa qualsiasi, tuttavia in genere corrisponde al nome del progetto.

Il codice seguente mostra l'assegnazione di una proprietà del contesto di intestazione SOAP in cui lo spazio dei nomi dello schema delle proprietà è SOAPHeader con un nome di proprietà OrigDest:

requestMessageInstance(SOAPHeader.OrigDest) = stringVar;  

Per altre informazioni sugli schemi delle proprietà e sulle proprietà di contesto, vedere Schemi delle proprietà.

Utilizzo dell'Editor BizTalk per impostare le proprietà di contesto delle intestazioni SOAP

Per le orchestrazioni, le proprietà di contesto delle intestazioni SOAP vengono impostate su stringhe contenenti dati XML. Queste stringhe vengono impostate usando l'editor di espressioni BizTalk in una forma di assegnazione o espressione del messaggio.

Nell'esempio seguente è illustrata la stringa che imposta la proprietà di contesto:

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

Utilizzo dell'Editor BizTalk per creare un'istanza di un elemento radice di intestazione SOAP

L'impostazione dell'intestazione SOAP sulla stringa corretta può essere un'operazione complessa. Quando si aggiunge un riferimento Web a un progetto BizTalk, tutte le parti messaggi Web complesse vengono aggiunte al file Reference.xsd come elementi radice. Reference.xsd contiene anche gli elementi radice di ogni intestazione SOAP definita. Per assicurarsi di impostare l'intestazione SOAP con la stringa corretta, è necessario usare l'editor BizTalk per creare un'istanza dell'elemento radice dell'intestazione SOAP per Reference.xsd. È possibile usare i dati dell'istanza generati direttamente o i dati dell'istanza per contenere i dati reali.

Per altre informazioni sull'uso dell'editor BizTalk per generare dati di istanza, vedere Come generare messaggi di istanza.

Creazione di un XmlDocument per impostare le proprietà di contesto

È possibile impostare le proprietà del contesto creando xmlDocument e scrivendo il valore stringa di XmlDocument nella proprietà di contesto. Si dichiara una variabile di tipo XMLDocument e si assegnano i dati XML.

Nell'esempio seguente viene illustrata l'impostazione di una variabile di tipo XMLDocument e l'assegnazione dei dati XML:

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

Nell'esempio seguente è illustrata l'impostazione della proprietà di contesto:

RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;  

Per altre informazioni sull'uso dell'editor di espressioni BizTalk, vedere Requisiti e limitazioni per le espressioni. Per altre informazioni sulla chiamata di classi .NET, vedere Creazione di messaggi nel codice utente.

Creazione di intestazioni SOAP per una richiesta SOAP

Quando si creano intestazioni SOAP per una richiesta SOAP, è necessario assicurarsi di aver creato correttamente le intestazioni SOAP, in quanto l'adapter SOAP non verifica il contenuto delle proprietà di contesto delle intestazioni SOAP.

Nota

Se l'intestazione SOAP non è corretta, BizTalk non sarà in grado di inviare la richiesta SOAP al servizio Web.

La risposta SOAP restituita da BizTalk al servizio Web può contenere anche le intestazioni SOAP, che sono accessibili soltanto se sono intestazioni SOAP definite.

Nota

I servizi Web utilizzati supportano solo le intestazioni SOAP definite.

Per altre informazioni sulle intestazioni SOAP definite, vedere Uso di intestazioni SOAP. Le intestazioni SOAP della risposta vengono impostate su proprietà di contesto utilizzando la stessa sintassi delle intestazioni SOAP della richiesta.

Nel codice seguente viene illustrato come accedere alle intestazioni SOAP della risposta:

stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);  

I valori contenuti nelle proprietà di contesto sono stringhe contenenti dati XML. Queste stringhe vengono impostate usando l'editor di espressioni BizTalk in una forma di assegnazione o espressione del messaggio. Si carica la stringa in un xmlDocument e si usano query XPath per accedere a campi specifici.

Per altre informazioni sulla creazione di documenti XML nell'editor di espressioni BizTalk, vedere Linguaggio XLANG-s.

Vedere anche

Linguaggio XLANG-s
Intestazioni SOAP con servizi Web utilizzati