2014-11-14 114 views
0

我无法确定如何检索收到消息的时间戳。根据收到的消息的时间,我必须将电子邮件发送到两个不同的发送端口。我明白我该如何动态地发送消息,但不知道,我如何根据它到达的时间来决定。检索收到消息的时间戳

任何人都可以帮助我。非常感谢。

+0

您使用了哪种适配器?根据适配器的不同,当收到文件/ msg时可能会设置其他属性。 – 2014-11-14 14:46:09

+0

在接收端使用文件适配器 – xyz 2014-11-14 14:50:21

回答

1

由于您使用的是文件适配器,因此您可以读出http://schemas.microsoft.com/BizTalk/2003/file-properties NameSpace的FileCreationTime属性。当该文件是由适配器监视的文件位置中的创建的时,该属性保存日期时间。

当你要当它是在BizTalk收到消息的日期时间,你应该使用http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties命名空间的AdapterReceiveCompleteTime

enter image description here

+0

如何比较AdapterReceiveCompleteTime和时间7.00 am。它应该在发送端口还是通过编排 – xyz 2014-11-14 15:18:53

+0

您可以在Pipeline或Orchestration中读取此属性。你应该能够像这样使用它:msg_MyMessage(MessageTracking.AdapterReceiveCompleteTime) – 2014-11-14 15:33:29

+0

在规则下的决策形式下,我使用了这个RM(MessageTracking.AdapterReceiveCompleteTime)== 07:00:00;我收到错误。 – xyz 2014-11-14 15:43:09

1

有几种选择:

使用文件适配器,你有FileCreationTime属性,通过文件适配器设置。这不是接收的时间戳,但可能足以满足您的理由。

enter image description here

如果你需要,当你收到的文件有确切的时间戳,你需要创建一个自定义管道组件,要么:

  • 包括它的消息在某处
  • 或者使用DateTime.Now在消息的上下文中写入/提升属性。

然后,您可以在基于映射或内容的路由中使用它。

我认为这些是您的选择。

+0

Pieter Vandenheede如何比较FileCreationTime与时间7.00 am。它应该在发送端口还是通过编排 – xyz 2014-11-14 15:13:29