BizTalk Mapper Extensions UtilityPack for BizTalk Server 2013 Updated to v1.7.0.1

Posted: October 23, 2014  |  Categories: BizTalk Maps Visual Studio

Exciting news… Version 1.7.0.1 of BizTalk Mapper Extensions UtilityPack for BizTalk Server 2013 is now available!

Project Description

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful Functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

Here’s the changelog for this release:

  • Fixes bugs in the String Replace Functoid

What’s new in this minor version?

This is a minor release of this project that is intended to fix some of the minor problem reported in the String Replace Functoid.

It was reported that when trying to replace a Carriage Return\Line Feed (“\r\n”) inside an element the functoid didn’t work and the reason why this happen is that the XSLT code will translate the string “\r\n” to “\\r\\n”. This release will fix that problem. It may not work for every “special characters” however if you find some more problems you can report them that we will address them.

Download

You can download Source Code and Application Binaries here:
BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

6 thoughts on “BizTalk Mapper Extensions UtilityPack for BizTalk Server 2013 Updated to v1.7.0.1”

  1. I tried Password Generator Functoid today and its not taking any of the Boolean inputs apart from the integer input pwdLength. Is this a normal behavior (or) would I have the option, for example to choose no UpperCase or LowerCase letters in my password by setting the Boolean values( True or False)?

  2. Question:
    i have tryed the “Remove leading zeros functoid” it dosen´t work. i get this error:

    ——————————————-
    xlang/s engine event log entry: Uncaught exception (see the ‘inner exception’ below) has suspended an instance of service ‘IN.IN_PROCESS(62d47022-5fa7-d3e4-46f5-3ec24fb6b6f7)’.
    The service instance will remain suspended until administratively resumed or terminated.
    If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.
    InstanceId: 61f4b055-66b9-4b0a-953c-0ffc80626378
    Shape name: ConstructMessage_2
    ShapeId: 19a07e88-5a4e-48bd-95c4-3d7172cc51c0
    Exception thrown from: segment 1, progress 9
    Inner exception: Error encountered while executing the transform Maps.COARRID95B_MOVE. Error:Transformation failed..

    Exception type: XTransformationFailureException
    Source: Microsoft.XLANGs.Engine
    Target Site: Void ApplyInMemoryTransform(System.Type, Microsoft.XLANGs.RuntimeTypes.TransformMetaData, System.Object[], System.IO.Stream[])
    The following is a stack trace that identifies the location where the exception occured

    at Microsoft.XLANGs.Core.Service.ApplyInMemoryTransform(Type mapRef, TransformMetaData trfMetaData, Object[] outParams, Stream[] inStreams)
    at Microsoft.XLANGs.Core.Service.ApplyTransform(Type mapRef, Object[] outParams, Object[] inParams)
    at IN.IN_PROCESS.segment1(StopConditions stopOn)
    at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
    Additional error information:

    Exception has been thrown by the target of an invocation.

    Exception type: TargetInvocationException
    Source: mscorlib
    Target Site: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
    The following is a stack trace that identifies the location where the exception occured

    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at Microsoft.XLANGs.BaseTypes.CompiledXsltWrapperTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver resolver)
    at Microsoft.XLANGs.BaseTypes.CompiledXsltWrapperTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, Stream output, XmlResolver resolver)
    at Microsoft.XLANGs.Core.Service.ApplyInMemoryTransform(Type mapRef, TransformMetaData trfMetaData, Object[] outParams, Stream[] inStreams)
    Additional error information:

    Input string was not in a correct format.

    Exception type: FormatException
    Source: mscorlib
    Target Site: Void StringToNumber(System.String, System.Globalization.NumberStyles, NumberBuffer ByRef, System.Globalization.NumberFormatInfo, Boolean)
    The following is a stack trace that identifies the location where the exception occured

    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
    at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
    at System.Xml.Xsl.CompiledQuery.Script1.RemoveZeros(String oldValue)
    at (XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator {urn:schemas-microsoft-com:xslt-debug}current)
    at (XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator {urn:schemas-microsoft-com:xslt-debug}current)
    at Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
    at Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
    at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results)
    at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer)
    at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver documentResolver)

    ——————————————

    The input is on both sides an integer!
    Any advice????
    Thanx.

    1. What is the value that you are passing to the functoid? This functoid execute this simple function

      public Int32 RemoveZeros(string oldValue)
      {
      return Int32.Parse(Regex.Replace(oldValue, “^0+”,””));
      }

      1. Hey Sandro,
        i get the incorrect Value from a custommer in a TMP Segment, the Value is -020. Iwant to get this value -20.

        1. Hi Serpil,
          The functoid doesn’t work with negative numbers, it wasn’t created for this purpose. You may create a new functoid or add a Inline C# with the following function:
          public string RemoveLeadingZerosFromIntegers(string oldValue)
          {
          int number = 0;
          if (Int32.TryParse(oldValue, out number))
          return number.ToString();
          return oldValue;
          }

Leave a Reply

Your email address will not be published. Required fields are marked *

turbo360

Back to Top