为了账号安全,请及时绑定邮箱和手机立即绑定

使用biztalk映射中的C#脚本中的ParseExact将字符串不识别为DateTime

使用biztalk映射中的C#脚本中的ParseExact将字符串不识别为DateTime

C#
慕妹3146593 2021-03-29 13:33:30
地图的先前工作版本:在此版本中,输入数据的类型为xs:date地图的目标版本:在此版本中,我在平面文件中将数据类型更改为xs:string。我还添加了以下在新地图中突出显示的C#脚本:public static System.DateTime MyConcat(string param1){       string[] formats = { "yyyy\\/MM\\/dd", "dd-MM-yyyy","yyyy-MM-dd", "dd\\/MM\\/yyyy" };    return System.DateTime.ParseExact(param1, formats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); }我将字符串'2018-03-15'传递给数据输入。我得到的错误:ABC.MW.BackEnds.CENTRAL.DocsInformacaoFinanceira.Balancete.Mappers.MapBalancete。错误:转换失败。---> System.Reflection.TargetInvocationException:调用的目标引发了异常。---> System.Xml.Xsl.XslTransformException:调用扩展功能'DateFormat'时发生错误。有关错误的完整说明,请参见InnerException。---> System.FormatException:无法将字符串识别为有效的DateTime。在System.DateTimeParse.ParseExact(String s,String format,DateTimeFormatInfo dtfi,DateTimeStyles样式)从错误中我推断出问题是从字符串到日期时间的隐式转换。但是我不知道它可能在哪里发生。我找到了错误的根源。这是上一个工作函数中的脚本调用的方法。我认为xs:date和我的脚本返回的不是同一回事。给出错误的函数代码: public string DateFormat(string value, string FormatoOrigem, string FormatoDestino)        {            DateTime myDate;            if (string.IsNullOrEmpty(value))                return ""; //myDate = DateTime.MinValue;            else                myDate = System.DateTime.ParseExact(value,                                                FormatoOrigem,                                                System.Globalization.CultureInfo.InvariantCulture);            return myDate.ToString(FormatoDestino, System.Globalization.CultureInfo.InvariantCulture);        }调用该函数的脚本输入:
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我们必须专门针对BizTalk运行时解决此问题。这DateFormat()是此错误的根源,因此您需要从那里开始。

另外,请记住,有些时候DateTime是正确的,而返回String的时间是正确的。因此,许多人需要在某处更改返回类型。


查看完整回答
反对 回复 2021-04-17
?
万千封印

TA贡献1891条经验 获得超3个赞

DateFormat函数参数是日期值和2种日期格式。脚本functoid进行的调用首先传递格式,最后传递值。当对方法ParseExact的调用使用格式而不是值时,这将导致函数DateFormat中的错误。


查看完整回答
反对 回复 2021-04-17
  • 2 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信