簡體   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