地圖的先前工作版本:在此版本中,輸入數(shù)據(jù)的類型為xs:date地圖的目標(biāo)版本:在此版本中,我在平面文件中將數(shù)據(jù)類型更改為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'傳遞給數(shù)據(jù)輸入。我得到的錯(cuò)誤:ABC.MW.BackEnds.CENTRAL.DocsInformacaoFinanceira.Balancete.Mappers.MapBalancete。錯(cuò)誤:轉(zhuǎn)換失敗。---> System.Reflection.TargetInvocationException:調(diào)用的目標(biāo)引發(fā)了異常。---> System.Xml.Xsl.XslTransformException:調(diào)用擴(kuò)展功能'DateFormat'時(shí)發(fā)生錯(cuò)誤。有關(guān)錯(cuò)誤的完整說(shuō)明,請(qǐng)參見InnerException。---> System.FormatException:無(wú)法將字符串識(shí)別為有效的DateTime。在System.DateTimeParse.ParseExact(String s,String format,DateTimeFormatInfo dtfi,DateTimeStyles樣式)從錯(cuò)誤中我推斷出問(wèn)題是從字符串到日期時(shí)間的隱式轉(zhuǎn)換。但是我不知道它可能在哪里發(fā)生。我找到了錯(cuò)誤的根源。這是上一個(gè)工作函數(shù)中的腳本調(diào)用的方法。我認(rèn)為xs:date和我的腳本返回的不是同一回事。給出錯(cuò)誤的函數(shù)代碼: 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); }調(diào)用該函數(shù)的腳本輸入:
2 回答

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
我們必須專門針對(duì)BizTalk運(yùn)行時(shí)解決此問(wèn)題。這DateFormat()
是此錯(cuò)誤的根源,因此您需要從那里開始。
另外,請(qǐng)記住,有些時(shí)候DateTime是正確的,而返回String的時(shí)間是正確的。因此,許多人需要在某處更改返回類型。

萬(wàn)千封印
TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
DateFormat函數(shù)參數(shù)是日期值和2種日期格式。腳本functoid進(jìn)行的調(diào)用首先傳遞格式,最后傳遞值。當(dāng)對(duì)方法ParseExact的調(diào)用使用格式而不是值時(shí),這將導(dǎo)致函數(shù)DateFormat中的錯(cuò)誤。
- 2 回答
- 0 關(guān)注
- 244 瀏覽
添加回答
舉報(bào)
0/150
提交
取消