BizTalk Map Documenter for 2010

Posted: August 31, 2011  |  Categories: BizTalk Uncategorized

I recently had to document a map quickly and decided to try the BizTalk Map Documenter v2.1

The first error I got was “Extension function parameters or return values which have CLR type ‘ConcatString’ are not supported.”. Looking at the comments on the download site I discovered that you have to modify  the parseLinkPath() and getHtmlSpaces() javascript functions within the XSLT to concatenate an empty string to the return value so that the runtime knew to cast it as a string.

After fixing this I got some output but it did not contain content for Constant functoids or links into functoids. John Glisson has been there before and after making the changes that he recommended I got some output for functoids.

I still was not satisfied because the functoid names where missing from the output. I think that the reason why this is happening is because the attribute Functoid_Name is not created in the map files created by BizTalk 2010. I changed the XSLT to look at the Functoid-FID instead and then choose a hard coded value to display. i.e.

<span class=”functoidName”>
            <!–<xsl:value-of select=”$functoidNode/@Functoid-Name” />–>
      <!–Added by Mahindra 2011/08/31–>
      <xsl:choose>
        <xsl:when test=”$functoidNode/@Functoid-FID = 107″>String Concatenate</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 125″>Date and Time</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 127″>ASCII to Character</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 260″>Scripting</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 315″>Equal</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 321″>Logical And</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 375″>Value Mapping</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 424″>Looping</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 474″>Iteration</xsl:when>
        <xsl:when test=”$functoidNode/@Functoid-FID = 705″>Logical Not</xsl:when>
        <xsl:otherwise>
          <xsl:value-of select=”$functoidNode/@Functoid-FID” />
        </xsl:otherwise>
      </xsl:choose>
     
    </span>

I only added the functoids that i needed to document.

Now i was satisfied. This sure beats documenting the maps by hand.

turbo360

Back to Top