mapping - Biztalk 将日期映射到字符串

标签 mapping biztalk

我正在开发一个 biztalk 项目,并使用 map 来创建新消息。

现在我想将日期字段映射到字符串。

我想我可以通过内联 C# 的函数脚本来做到这一点

公共(public)字符串convertDateTime(日期时间参数) { 返回 System.Xml.XmlConvert.ToString(param,ÿyyyMMdd"); }

但这不起作用,我收到一个错误。我怎样才能在 map 上进行转换?

这是一个 Biztalk 2006 项目。

最佳答案

如果没有您看到的错误的详细信息,很难确定,但我很确定您的映射失败了,因为 BizTalk XSLT 引擎中的所有参数都作为字符串传递1 .

当我尝试运行您作为内联 C# 提供的函数之类的内容时,出现以下错误:

Object of type 'System.String' cannot be converted to type 'System.DateTime'

将内联 C# 替换为如下内容:

public string ConvertDateTime(string param1)
{
    DateTime inputDate = DateTime.Parse(param1);
    return inputDate.ToString("yyyyMMdd");
}

请注意,参数类型现在是字符串,然后您可以将其转换为 DateTime 并执行字符串格式。

正如其他答案所建议的,最好将此辅助方法放入外部类中 - 这样您就可以测试代码以处理边缘情况,并且还可以获得一些重用。

<小时/>

1 BizTalk XSLT 中的所有参数都是字符串这一事实可能是许多问题的根源 - 另一个常见问题是数学计算。如果您从脚本 functoid 返回数值,BizTalk 会帮助将它们转换为字符串以将它们映射到出站架构,但不会对结果值执行一些非常随机的舍入。在 C# 中自行将返回值转换为字符串将消除此风险并为您提供预期的结果。

关于mapping - Biztalk 将日期映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342588/

相关文章:

c# - 根据墨卡托投影的纬度计算 Y 位置

java - 无需编码的数据映射

NHibernate 多对一映射 : If parent is null, 将外键设置为空 Guid 而不是 null

BizTalk 主机实例无法启动

powershell - BizTalk Configuration.exe 远程执行错误

java - 层之间枚举的映射

mapping - 如何使用 JPA2 在实体中映射 EnumSet(或枚举列表)

biztalk - 为什么将 BizTalk 解决方案拆分为多个项目

sql-server-2008 - T-SQL 清除错误

biztalk - 如果 BizTalk 中未到达预期消息,则发送通知