Orchestration中一个消息的内容可以转化成字符串string类型吗?
XmlDocument xmlDoc = bizTalkMessage;
string xmlContent = xmlDoc.OutXml;
Orchestration中向xml类型消息中增加一个节点简便的方法是?
XmlDocument xmlDoc = bizTalkMessage;
XmlNode xmlNode = xmlDoc.SelectSingleNode("xpath");
xmlNode.AppChild(newNode);
bizTalkMessage = xmlNode;
More Complex way
1. Using XlangMessage
2. xpath(bizTalkMessage,"xpath") = xmlElement/xmlNode;
that's all
William.Ding
MSN : dingj...@hotmail.com
--------------------------------------------------
From: "hollisyb" <holl...@gmail.com>
Sent: Sunday, April 27, 2008 9:39 PM
To: "BizTalk In China" <biztalk-...@googlegroups.com>
Cc: <ben.h...@byd.com>
Subject: [BizTalk in China] 请教各位专家一个问题
> Orchestration中一个消息的内容可以转化成字符串string类型吗?
> Orchestration中向xml类型消息中增加一个节点简便的方法是?
> >
>
在Orchestration里面调用DLL是可以的,如果你想在Expression里面调用也是没问题的.直接把你写的.Net Component(DLL)引用到BizTalk项目里面后,在Exression里面就能直接调用
了。
你把XSL的转换逻辑写在DLL里面,把消息当XmlDocument类型的参数传到你的转换逻辑里面就可以了。也有复杂一点的办法(在这里先不提).
调用外面的DLL里面的方法要注意两点。
1.DLL里面如果类的方法不是静态方法的话,你就需要创建类实例,那么你的类创建对象如果不在原子事务的Scope里面实现的话类就需要有<serializable>特性。
2.反之,如果把转换的方法写成静态方法的话就不需要,或者把类实例的创建和操作放在原子事务的Scope里面。
消息的实体(body)如果是html也是没问题的。如果你要把xml通过xsl转换成html那相当于创建了一个新的消息,那么这个动作应该需要在Message Assignment里面实现,最终来说的话你是新创建了一个消息
(消息的构造必须在Construct Message里面)。
William.Ding
--------------------------------------------------
From: <Ben.H...@byd.com>
Sent: Monday, April 28, 2008 9:25 AM
To: "Ding" <dingj...@hotmail.com>; "BizTalk In China"
<biztalk-...@googlegroups.com>
Subject: Re: [BizTalk in China] 请教各位专家一个问题
> Ding,太感谢了!我终于解决了问题。
>
>
> 不好意思,我还遇到一个困难:
> 我想在Orchestration中把一个Xml消息加上一个Xsl样式文件转换成html内容的消息,然后将消息作为邮件正文通过动态端口发送。我的问题是:这个转换可以用Orchestration中的表达式完成吗,该怎么做?如果调用.dll转换,消息应该转换为什么类型的参数,如果不写成一个html文件,返回的值应该是什么类型。
>
> 谢谢。
> _____________________________________________________________________________________________________________
>
> Ben
> Software Section
> Computer Centre
> BYD COMPANY LIMITED
> Address:No.3001, Hengping Road, Pingshan, Longgang, Shenzhen, Guangdong
> Province, 518118, P.R.China
> Tel:+86-755-89888888 ext.64911 Fax:+86-755-84202222
>> Powered by BYD Security Gateway.
>>
>>
>
> Powered by BYD Security Gateway.
>
>
流程里面的消息筛选条件一般是通过消息类型来作为筛选条件(因为流程对数据的处理是针对某中类型消息,该类型由schema来定义).
另外我不是太确定你这句话的意思-> "包含四个部分的RosettaNet消息",能否把你的需求再具体一点.
William.Ding
MSN: dingj...@hotmail.com
--------------------------------------------------
From: <Ben.H...@byd.com>
Sent: Monday, April 28, 2008 11:08 AM
To: "Ding" <dingj...@hotmail.com>; "BizTalk In China"
<biztalk-...@googlegroups.com>
Subject: Re: [BizTalk in China] 请教各位专家一个问题
> William.Ding,
>
> 谢谢,我领会了你的意识,我要尝试一下。
>
>
> 忽然又想到一个问题:
> 接收端口用直接绑定,我不知道使用什么筛选条件从MessageBox订阅到包含四个部分的RosettaNet消息。(前提是Partner向我发了一条RosettaNet消息)
>
> 谢谢专家。
>
>
>
> _____________________________________________________________________________________________________________
> Ben
> Software Section
> Computer Centre
> BYD COMPANY LIMITED
> Address:No.3001, Hengping Road, Pingshan, Longgang, Shenzhen, Guangdong
> Province, 518118, P.R.China
> Tel:+86-755-89888888 ext.64911 Fax:+86-755-84202222
>
>
> ----- Original Message -----
> From: "Ding" <dingj...@hotmail.com>
> To: <Ben.H...@byd.com>; "BizTalk In China"
> <biztalk-...@googlegroups.com>
> Sent: Monday, April 28, 2008 9:52 AM
> Subject: Re: [BizTalk in China] 请教各位专家一个问题
>
>
Multipart的消息,实际上也是一个单个的消息,只是说这个消息有多个Part.一个消息的多个Part在流程里面是可以被访问处理的.
这种情况下,我还是推荐你使用消息类型的方式作为过滤条件.当然还有很多办法作为过滤条件(消息的上下问存在很多属性),但是按照我个人的观点来看,每个流程
是对应到具体的消息结构进行处理的,按消息类型过滤比较方便.
William.Ding
MSN:dingj...@hotmail.com
--------------------------------------------------
From: <Ben.H...@byd.com>
Sent: Monday, April 28, 2008 12:06 PM
To: "Ding" <dingj...@hotmail.com>; "BizTalk In China"
<biztalk-...@googlegroups.com>
Subject: Re: [BizTalk in China] 请教各位专家一个问题
> Hi William,
>
> 进入MessageBox的RosettaNet消息是分为ServiceHeader、Preamble、DeliveryHeader、PIPServiceContent四个部分的。ServiceHeader是Body,也确实有一个Schema。
> 我是想要把这个Multipart的消息全部订阅进Orchestration进行处理。
>
> 吃午饭时间到了,打扰了,呵呵。