我在biztalk地图中使用下面的脚本functoid将字符串转换为dateTime
public DateTime? ConvertOpenDate(string openDate)
{
DateTime oDate;
if (!DateTime.TryParseExact(openDate, "yyyy-MM-DD HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out oDate))
{
return null;
}
else
{
return oDate;
}
}
但这是错误的说法
扩展函数不能返回空值。
如何处理这个问题。我将日期时间插入到MS SQL DB
答案 0 :(得分:5)
这是已知的行为:Known issues in BizTalk Server 2013,其分辨率为“返回String.Empty或其他替代值以表示空方案”。
不支持返回null
症状
从functoid返回null值时,映射失败,并且您收到以下一般错误消息...在Visual Studio中测试相同的地图时,它会提供更具描述性的错误消息:
调用的目标抛出了异常。扩展函数不能返回空值。注意XslCompiledTransform类不支持从转换中调用的函数返回空值。
分辨率
返回String.Empty或其他一些替代值来表示空方案。如果需要,可以使用全局变量使空值在多个函数中可用。