繁体   English   中英

向BizTalk业务流程消息分配中的重复元素添加值

[英]Adding a value to a repeating element in my BizTalk Orchestration Message Assignment

我在将值添加到BizTalk Orchestration消息分配组件中的重复元素时遇到麻烦。 这是我所做的。 我使用XSD.exe工具为架构创建了VB.net类。 我还创建了一个VB.net帮助器类,该类继承了我的架构类,并将该类作为变量添加到我的业务流程中。 我正在尝试在分配组件中创建一条新消息。 将值设置为非重复元素时,它正在工作并创建了消息。 但是我不确定如何为重复元素设置值。 当我尝试下面的代码时,将会收到错误“内部异常:对象引用未设置为对象的实例。”。 该行中的错误是“ CredentialsLookupRequestHeader.IDs [0] = CategoryValueType;”。 CategoryValueType是一个复杂类型,可以有多个。

-助手类

<Serializable>
<XmlRoot("CredentialsLookupAdapterType")> _
Public Class CredentialsLookupAdapterType
    Inherits CredentialsLookupRequestV1_3Type

    Public Function ToXmlDocument() As XmlDocument
        Dim serializer As New XmlSerializer(GetType(CredentialsLookupAdapterType), New Type() {GetType(CredentialsLookupRequestV1_3Type)})
        Dim sb As New StringBuilder
        serializer.Serialize(New StringWriter(sb, CultureInfo.InvariantCulture), Me)

        Dim doc As New XmlDocument()
        doc.LoadXml(sb.ToString)
        Return doc
    End Function
End Class

biztalk中的分配组件

//Create new request message
CredentialsLookupRequest = new CredentialsLookupRequest_V1_3.CredentialsLookupAdapterType();

//Create header
CredentialsLookupRequestHeader = new CredentialsLookupRequest_V1_3.OLMHeaderType();

//Header values
CredentialsLookupRequestHeader.RequestCategory = "RETRIEVE";
CredentialsLookupRequestHeader.SubmittingEntityName = "BizTalk";

//Header IDs
CategoryValueType = new CredentialsLookupRequest_V1_3.CategoryValueType();
CategoryValueType.Category = "BizTalk Orchestration ID";
CategoryValueType.Value = "BZ000001";
CredentialsLookupRequestHeader.IDs[0] = CategoryValueType;
CredentialsLookupRequestHeader.MessageCategory = "confidential";

CredentialsLookupRequest.Header = CredentialsLookupRequestHeader;

msgRequest = CredentialsLookupRequest.ToXmlDocument();

您只需使用xpath分配一个值即可。无需使用辅助函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM