uno dei problemi che spessono possono capirtare con BizTalk e eseguire UnBatching su un messaggio di Envelope, in generale esistono principalmente due modi:
1) Non lo configurate come Envelope :-) e lavorate sul messaggio per eseguire il debatching a mano.
2) Lo configurate come Envelope e se vi occore trattare il messaggio nella sua totalità lo passate a una orchestration che accetta un tipo xmlDocument generico e utilizzate una pipeline di tipo passthrough
Successivamente potete trattare il messaggio all’interno della orchestration utilizzando delle pipeline interne.
In particolare: (chiaramente i nomi delle variabili sono indicativi)
Si crea una pipe con un xml disassembler component vuoto di nome, esempio miapipeline , successivamente una variabile di nome PipelineDeBatch di tipo receivepipeline
In prima battuta deve essere istanziata...
PipelineDeBatch = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline(typeof(mioprogetto. miapipeline),MessaggioIN);
dove MessaggioIN è il messaggio in entrata di tipo xmlDocument.
Successivamente si lavora sul messaggio interessato in questo modo:
PipelineDeBatch .GetCurrent(miomessaggio);
Dove miomessaggio è un object message con associato il tipo schema del messaggio di debatching che desideriamo estrapolare.
In questo modo possiamo lavorare con envelope in modo estremamente dinamico.