PRB: Blank Error Message Box Appears in BizTalk Server Document Tracking (825993)



The information in this article applies to:

  • Microsoft BizTalk Server 2002
  • Microsoft BizTalk Server 2000

SYMPTOMS

When you start Microsoft BizTalk Server Document Tracking, an error message box appears that is named VBScript: BizTalk Document Tracking Error. This error message box contains no text. It contains a warning icon and an OK button. When you click OK, most of the controls on the BizTalk Document Tracking page are disabled.

CAUSE

A bug that exists in the script that is contained in the Submit.htm file causes this problem. This file is located in the Program Files\Microsoft BizTalk Server\BizTalkTracking folder.

This problem occurs if at least one organization name that appears in the InterchangeBTM database and the InterchangeDTA database is a string that evaluates to a number (for example, "123"). If this type of string is passed to the TreeView controls that the page contains, you receive the blank error message box.

WORKAROUND

To work around this problem, use either of the following methods:
  • Method 1
    Change the organization names that appear in the InterchangeBTM database and in the InterchangeDTA database so that all the organization names start with an alpha character. For example, if an organization name starts with 123, change the name so that it starts with _123.
  • Method 2
    Work around the TreeView control restriction by modifying the PopulateSourceSelection subroutine and the PopulateDestSelection subroutine that are in the Submit.htm file as follows:
    Private Sub PopulateSourceSelection()
        '//Called from:  window_onload
        '//Description:  Populates Source Selection
    Dim rsDef
    Dim rsSrc
    Dim strTempOrg
    Dim strSrcOrg
    Dim strSrcApp
    strTempOrg = ""
    set rsDef = DSC1.RecordsetDefs.AddNew(SP_GET_SELECTION_SRC,4,"SourceSelection")
    set rsSrc = DSC1.Execute("SourceSelection")
    Do While Not rsSrc.EOF 'Check for end of recordset.
    strSrcOrg = CStr(rsSrc.Fields("nvcSrcOrgName"))
    strSrcOrg2 = strSrcOrg
    If IsNumeric(strSrcOrg2) Then 'Check for Numeric Orgs
    'Add an underscore character (_) to work around the TreeView limitations.
    strSrcOrg2 = "_" & strSrcOrg2
    End If
    If strSrcOrg <> strTempOrg Then 'Check for empty or the same org.
    'Add Org to the root node.
    tvSource2.Nodes.Add ,, strSrcOrg2, strSrcOrg
    strTempOrg = strSrcOrg
    End If
    'Add the App as a child node to the Org *****
    strSrcApp = Trim(CStr(rsSrc.Fields("nvcSrcAppName") & ""))
    dim newnode
    set newnode = tvSource2.Nodes.Add (strSrcOrg2, 4, strSrcOrg & SEP_TREEVIEWKEY_ORGAPP & strSrcApp, strSrcApp)
    if strSrcApp = "" then
    newnode.text = L_TreeCtrlEntryForNoApp_Text
    end if
    rsSrc.MoveNext
    Loop
    'You no longer need the recordset. Delete it.
    DSC1.RecordsetDefs("SourceSelection").Delete
    End Sub
    
    Private Sub PopulateDestSelection()
        '//Called from: window_onload
        '//Description: Populates Destination Selection
    Dim rsDef
    Dim rsDest
    Dim strTempOrg
    Dim strDestOrg
    Dim strDestOrg2
    Dim strDestApp
    strTempOrg = ""
    set rsDef = DSC1.RecordsetDefs.AddNew(SP_GET_SELECTION_DEST,4,"DestinationSelection") 
    set rsDest = DSC1.Execute("DestinationSelection")
    Do While Not rsDest.EOF 'Check for end of recordset.
    strDestOrg = CStr(rsDest.Fields("nvcDestOrgName"))
    strDestOrg2 = strDestOrg 
    If IsNumeric(strDestOrg2) Then 'Check for Numeric Orgs
    'Add an underscore character (_) to work around the TreeView limitations.
    strDestOrg2 = "_" & strDestOrg2
    End If
    If strDestOrg <> strTempOrg Then 'Check for empty or the same org.
    tvDestination2.Nodes.Add ,, strDestOrg2, strDestOrg 
    strTempOrg = strDestOrg
    End If
    '********* Add the App as a child node to the Org. *****
    strDestApp = Trim(CStr(rsDest.Fields("nvcDestAppName") & ""))
    dim newnode
    set newnode = tvDestination2.Nodes.Add (strDestOrg2, 4, strDestOrg & SEP_TREEVIEWKEY_ORGAPP & strDestApp, strDestApp)
    if strDestApp = "" then
    newnode.text = L_TreeCtrlEntryForNoApp_Text
    end if
    rsDest.MoveNext
    Loop
    'Delete the recordset 
    DSC1.RecordsetDefs("DestinationSelection").Delete
    End Sub

STATUS

This behavior is by design.

REFERENCES

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

204054 PRB: Error 35603 "Invalid Key" with TreeView or ListView Control


Modification Type:MajorLast Reviewed:10/8/2003
Keywords:kbprb KB825993 kbAudDeveloper