/// <summary> /// IComponent.Execute method is used to initiate the processing of the message in /// this pipeline component. /// </summary> /// <param name="pc">Pipeline context.</param> /// <param name="inmsg">Input message.</param> /// <returns>Original input message.</returns> public Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(IPipelineContext pc, IBaseMessage pInMsg) { // Create a new XML document XmlDocument xmlDocument = new XmlDocument(); // Get the XML data from the message xmlDocument.Load(pInMsg.BodyPart.Data); // Set the filename, starting with the root element, and adding a GUID to make // sure the filename is unique string filename = String.Format("{0}-{1}.xml", xmlDocument.DocumentElement.LocalName, Guid.NewGuid()).ToUpperInvariant(); // To be able to use the filename in the BizTalk file adapter properties, we // promote ReceivedFileName // This gives us the %SourceFileName% parameter we can use as the filename for // the file adapter pInMsg.Context.Promote("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties", navisionFilename); // Go back to the start of the message pInMsg.BodyPart.Data.Position = 0; // Continue processing the message return pInMsg; }
woensdag 9 mei 2012
Place root element in filename
To be able to see what type of message is in a file coming out of BizTalk, I created an encoding pipeline that includes the root element in the name of the file. Here is the execute method that I used.
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten