1、做事干净、讲究效率 2、说话干脆、注重感情
首页
社区
联系
管理
biztalk 调用dll类库(参考SDK MethodCallSample)
在biztalk2006 进行设计的时候,经常需要调用.Net 生成的类库
本例实现如下功能:
输入xml:
<
ns0:Root
xmlns:ns0
="http://test112.InputSchema"
>
<
fld1
>
10
</
fld1
>
<
fld2
>
10
</
fld2
>
<
fld3
>
Add
</
fld3
>
</
ns0:Root
>
输出xml:
<?
xml version="1.0" encoding="utf-8"
?>
<
Root
xmlns
="http://test112.OutputSchema"
>
<
Result
xmlns
=""
>
20
</
Result
>
</
Root
>
当fld3="Add"的时候Result=fld1+fld2,当fld3="Sub" 的时候 Result=fld1-fld2
使用的类库定义如下:
using
System;
using
System.Xml;
namespace
MathLibrary_test112
{
/**/
///
<summary>
///
Summary description for Class1.
///
</summary>
///
[Serializable]
public
class
MathHelper
{
public
MathHelper()
{
}
public
int
Add(
int
a,
int
b)
{
return
a
+
b;
}
public
int
Subtract(
int
a,
int
b)
{
return
a
-
b;
}
}
public
class
Helper
{
private
Helper()
{ }
public
static
XmlDocument ConstructDoc(
int
iSum)
{
XmlDocument doc
=
new
System.Xml.XmlDocument();
doc.LoadXml(
"
<Root xmlns=\
"
http:
//
test112.OutputSchema\"><Result xmlns=\"\">" + iSum.ToString() + "</Result></Root>");
//
<ns0:Root xmlns:ns0="
http://test112.OutputSchema
">
return
doc;
}
}
}
其中有3个地方需要注意
(1) [Serializable] 这里是实例化MathHelper,便于biztalk 流程图变量对他的引用
(2)
doc.LoadXml(
"
<Root xmlns=\
"
http:
//
test112.OutputSchema\"><Result xmlns=\"\">" + iSum.ToString() + "</Result></Root>");
注意输出的命名空间
(3)AssemblyInfo.cs文件中增加
[assembly: AssemblyKeyFile(
@"
F:\shhai project\biztalk\Orchestrations\MethodCall\MethodCallSample\MethodCall.snk
"
)]
对密钥的引用
下面这个例子就是对dll类库的调用事例
1 建立Test112 biztalk空项目
2 建立构架文件InputSchema.xsd和OutputSchema.xsd其中格式 如上面xml所示,其中InputSchema.fld1,InputSchema.fld2,InputSchema.fld3要升级为可分辨字段;
InputSchema.fld1,InputSchema.fld2是int类型,InputSchema.fld3 是string类型
OutputSchema.Result也要升级为可分辨字段,类型是int类型
3建立业务流程文件 MethodCallService.odx
4引用已经编译的dll文件 MathLibrary_test112.dll
5业务流程文件格式如下:
数据流图显示如下:
上图显示了消息的流程
建立消息:
mIncoming 消息类型test112.InputSchema
mOutgoing 消息类型test112.OutputSchema
建立变量:
iResult 类型int32 默认是0
iVar1 类型int32 默认是0
iVar2 类型int32 默认是0
iVar3 类型string 默认是"0"
mathVar 类型MathLibrary_test112.MathHelper(类库里面 [Serializable]的类)
各个结点(从上向下)定义如下:
(1)Receive_1接收形状:消息mIncoming
(2)Assign Variables表达式形状:
iVar1
=
mIncoming.fld1;
iVar2
=
mIncoming.fld2;
iVar3
=
mIncoming.fld3;
mathVar
=
new
MathLibrary_test112.MathHelper();
(3)Decide_1判定表达式的3个定义:
Check if the operation is Add判定1:iVar3 == "Add"
Check if the Operation is Subtract判定2:iVar3 == "Sub"
Else:没有代码
(4)Check if the operation is Add判定1里面Call Add Method表达式形状代码
iResult = mathVar.Add(iVar1,iVar2);
(5)Check if the Operation is Subtract判定2里面Call Subtract Method表达式代码
iResult = mathVar.Subtract(iVar1,iVar2);
(6)中止形状Terminate_1里面"ERROR";
(7)Expression_2表达式代码:System.Diagnostics.Debug.WriteLine(iResult);
(8)构造消息形状ConstructMessage_1消息mOutgoing用来构造输出的消息
(9)消息赋值形状MessageAssignment_1编写代码mOutgoing=MathLibrary_test112.Helper.ConstructDoc(iResult);
(10)发送形状Send_1 消息mOutgoing
(11)激活Receive_1形状
(12)然后参考:
http://www.cnblogs.com/jhtchina/archive/2006/11/03/549302.html
或者把dll文件拷贝到
D:\Microsoft BizTalk Server 2006\Developer Tools
或者修改配置文件BTSNTSvc.exe.config,把dll拷贝到指定的目录下面
(13)建立发送,接收端口
(14)编译,发布
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2006-11-30 16:51
jhtchina
阅读(367)
评论(4)
编辑
收藏
发表评论
1163783
回复
引用
查看
#1楼
2006-11-30 17:38
|
chnking
希望能看到更多的文章
回复
引用
查看
#2楼
2006-12-01 12:44
|
chnking
不过我觉得这个转换功能在mapping里应该可以做到
回复
引用
查看
#3楼
[
楼主
]
2006-12-01 12:57
|
jhtchina
这里的例子主要是dll的调用,当然用映射也可以实现这个功能
回复
引用
查看
#4楼
[
楼主
]
2008-04-21 13:41
|
jhtchina
变量是orche内部用的,消息是从orche进来的,或者要发送出orche的
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
·
这是不是你期待的 iPad 3?
·
瑞士公司对苹果提起新专利权诉讼
·
微软看重平板市场:ARM版Win8与x86版同步推
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
MSN:jhtchina@163.com E-mail:jhtchina@163.com
昵称:
jhtchina
园龄:
7年2个月
粉丝:
7
关注:
1
搜索
文章分类
(244)
3G 手机开发(windows Mobile,J2me,Android)(15)
(rss)
Asp.Net(31)
(rss)
Biztalk 2006+Work Flow+windows service(16)
(rss)
C#(42)
(rss)
C++(1)
(rss)
DataBase学习(22)
(rss)
Developer Express Inc.NET.v3 开发控件的学习(3)
(rss)
Enterprise Library Study(1)
(rss)
IBM.Rational(2)
(rss)
Java(2)
(rss)
JavaScript,Html,Css学习(18)
(rss)
Linux(11)
(rss)
Microsoft .NET Pet Shop 4.0(4)
(rss)
Oracle 学习(24)
(rss)
PHP(1)
(rss)
silverlight(1)
(rss)
VB.Net(4)
(rss)
Vs.Net2005(2)
(rss)
Web Service(1)
(rss)
XML学习(10)
(rss)
课程教案(6)
(rss)
其他(2)
(rss)
日本项目(1)
(rss)
设计模式(4)
(rss)
网络工程(网络系统集成)(6)
(rss)
英语文章翻译(14)
(rss)
文章档案
(245)
2011年9月 (3)
2011年8月 (2)
2011年6月 (2)
2011年5月 (2)
2011年4月 (1)
2011年2月 (9)
2010年12月 (5)
2010年11月 (2)
2010年10月 (2)
2010年9月 (1)
2010年6月 (1)
2010年5月 (1)
2010年4月 (1)
2010年3月 (2)
2009年11月 (1)
2009年9月 (4)
2009年8月 (2)
2009年7月 (2)
2009年6月 (2)
2009年5月 (1)
2009年4月 (5)
2009年3月 (4)
2009年2月 (5)
2008年12月 (1)
2008年11月 (6)
2008年9月 (4)
2008年8月 (3)
2008年7月 (9)
2008年6月 (1)
2008年5月 (1)
2008年4月 (3)
2008年3月 (2)
2007年11月 (2)
2007年10月 (4)
2007年9月 (5)
2007年8月 (3)
2007年7月 (5)
2007年6月 (7)
2007年5月 (13)
2007年3月 (6)
2007年2月 (4)
2007年1月 (3)
2006年12月 (8)
2006年11月 (11)
2006年10月 (1)
2006年9月 (3)
2006年8月 (1)
2006年6月 (1)
2006年5月 (1)
2006年4月 (6)
2006年3月 (9)
2006年2月 (5)
2006年1月 (7)
2005年12月 (8)
2005年11月 (14)
2005年10月 (7)
2005年9月 (1)
2005年8月 (2)
2005年7月 (2)
2005年6月 (3)
2005年3月 (4)
2005年1月 (4)
2004年12月 (5)
相册
儿子的照片
苏州大学
好友的博客
DuDu
LiTao's blogs
LiTao's blogs
xuzhong 的blogs
xuzhong 的blogs
陈洪岗
http://oceanchen.cnblogs.com/
范唯削
宗瑞朋
微软开发中心
积分与排名
积分 - 161217
排名 - 567
最新评论
评论排行榜
推荐排行榜
http://count.51yes.com/