2011-02-07 56 views
0

这可能是一个非常基本的问题,但希望有人能够回答它。BizTalk 2010:访问地图上下文

我正在使用自定义接收管道接收消息(HL7)。在我的自定义管道内,我正在将属性提升到上下文中。我已经建立了一个需要访问这些属性的地图。但是,我想在发送端访问这些属性。它需要在发送端的原因是因为我将我的地图附加到发送端口,所以我认为该消息已经到达了MessageBox并且将被映射到发送端。希望这是有道理的...

我知道我可以使用一些第三方工具,但我希望有一个简单的functoid,或者我可以在脚本functoid中输入一些代码来访问上下文为了我。

有人能够指出我在这个方向正确的方向吗?

+0

我结束了使用,以业务流程来访问上下文属性,然后使用变换形状到业务流程中执行的映射。 – vcuankit 2011-08-02 20:55:40

回答

1

有,确实a C# functoid,允许访问上下文属性,但它似乎只适用于接收端口或内部协调的地图。

1

您可以使用上下文访问器Functiod做到这一点...结合它的管道组件与你的,它应该工作...要小心它应该在同一个线程内处理...

http://contextaccessor.codeplex.com/

0

我有类似的情况来访问上下文属性来获得我的地图中的文件名属性。我没有使用任何外部functoids做了下面的步骤。希望这可以帮助别人

步骤:

  1. 创建一个新的模式说 “FileSchema” filenode的(根节点) -FileName(的FieldElement)

  2. 点击模式,并在性能目标命名空间 - 清除命名空间。

  3. 使FileName属性有所区别。 Rt.Click FileName并显示促销并将FileName添加到可分辨属性选项卡。

  4. 在您的目标架构中,添加字段FileName。对我来说我把它添加到SQL模式,因为我需要为每一行的文件名在数据库

  5. 在您的业务流程,利用消息分配形状和类型下面的

//创建一个System.XML类型的变量varFileXML。为XMLDocument

//我创建同一类的文件架构和加载一个xml是对XML变量,然后将其赋值给类型的消息FileSchema

varFileXML = new System.Xml.XmlDocument(); 
varFileXML.LoadXml("<FileNode><FileName>FileName_0</FileName></FileNode>"); 
Msg_FileSchema = varFileXML; 

//获取文件名可变串类型的

varFileName = Msg_FlatFileSchema(FILE.ReceivedFileName); 
varFileName = System.IO.Path.GetFileName(varFileName); 

//从消息访问的文件名属性和变量分配给该

Msg_File.FileName = varFileName; 
  • 现在,我们得到的文件名中的信息,您可以使用在映射到目标模式

  • 我使用的变换形状,以创建源的新在线地图为你的目标架构和fileschema在一起,目的地为目标schema.I映射从fileschema文件名以我的目标模式中的文件名财产

  • 这是众多方法来获得上下文属性之一。希望它可以帮助

    感谢&问候

    Silam