我正在biztalkMap中使用下面的脚本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
2条答案
按热度按时间cgvd09ve1#
这是已知行为:Known issues in BizTalk Server 2013,解决方法为“返回字符串.空值或其他替代值以表示空方案.”
不支持返回null
故障现象
当您从functoid返回空值时,Map失败,并收到以下一般错误消息...
当您在Visual Studio中测试相同的Map时,它会提供更具描述性的错误消息:
调用的目标引发了异常错误。扩展函数不能返回空值。
注XslCompiledTransform类不支持从转换中调用的函数返回空值。
解析度
返回字符串。空值或其他替代值表示空方案。如果需要,请使用全局变量使空值在多个函数中可用。
jucafojl2#
解决方案是防止将空值Map为functoid的输入。这可以通过组合LogicalExistence和值Mapfunctoid(用于分隔文件)或IsNil和值Mapfunctoid(用于位置文件,因为空格在这种文件中被视为“存在”)来实现。