Sometimes when we try to build or deploy BizTalk solution, you may get the following error message:
“Use of Unconstructed Message ‘MessageName’”
I get this error when I try to construct a multi-part message for sending an email with body and attachment.
Cause
There is a common issue when we are developing a BizTalk Server project in Visual Studio. And the reason is that Visual studio is trying to use message which has not yet been initialized, or it will “think”, that based on your flow, maybe situations that it will not be initialized.
Solution
Check if you have a reference to the message before its initialize, for example:
myMessage.Body(Microsoft.XLANGs.BaseTypes.ContentType) = "text/plain"; myMessage.Body = new …;
Correct syntax:
myMessage.Body = new …; myMessage.Body(Microsoft.XLANGs.BaseTypes.ContentType) = "text/plain";
My suggestion is, first initialize both types of the multi-part message, in my case:
myMessage.Body = new Microsoft.XLANGs.CustomFormattersSDK.RawString(“”); myMessage.Attachment = new System.Xml.XmlDocument();
and then I define other properties of the message:
myMessage(SMTP.Subject) = …;
and magic appends!! Problem solved.
Another Solution
I suggest not to use, but, if you’re positive that your response message will always have a value, you could instantiate the message, inside a construct shape, using:
myMessage.Body = null; myMessage.Attachment = null
yes i too encountered this error serveral times..
Yes Sandro . I too faced this issue. Thank you
Nandika
Hi Sandro!
I found this blog post searching for how to et a parameter to null whene consuming a web service that has string a input parameter. I got the hopes up when I read your suggestion about setting “Msg.Parameter1 = null;”, but when I do I get the error message that “The part of message contained a null value at the end of Construct” at runtime. So it does not work for me. Do you know anyway to set the parameter as null and it will be accepted?
Many thanks in advance!
Kind Regards
Martin Bring