欢迎光临
我们一直在努力

Biztalk 开发之 调用.net程序集中的方法-.NET教程,.NET Framework

建站超值云服务器,限时71元/月

虽然biztalk server提供了众多的内置功能,然而在一些情况下可能还需要调用程序集中的函数。因为在.net程序集中,可以非常方便地调用web service、访问数据库;另一方面,有些函数是程序集中已经写好的,为了增加软件的复用,便于软件版本的管理,使用现有的程序集也在情理之中。

本文通过一个简单实例,介绍biztalk应用中调用程序集的方法。这个实例完成的功能,在调用web services一文中实现过,只不过实现的方式用所差别,一个是调用web service,一个是调用.net程序集。

首先,我们创建一个myfunction的项目,其中只包括一个的类文件class1,我们要在biztalk中调用该类的checkuserid静态方法。class1的源程序如下: 

using system;
 
namespace myfunction
{
     public class usermanager
     {
         public usermanager()
         {
         }
 
         public static string checkuserid(string struserid)
         {
 
              if (struserid == “fengfangfang”)
 
              {
                   return “administrator”;
              }
              else
              {
                   return “user”;
              }
         }
     }
}

为程序集设置强名称和发布.net程序集到全局程序集缓存可参见将程序集安装到全局程序集缓存(gac)中一文。

然后,创建一个biztalk server工程callfunction,添加一个userinfo.xsd,其结点结构如下:

userinfo
  userid
  rolename

快速升级userid和rolename两个子字段元素,具体步骤可参见调用web services一文。

下面创建一个业务流程mainorch.odx,在业务流程视图中创建两个消息inmsg和outmsg,这两个消息均使用callfunction.userinfo消息类型。在业务流程中创建一个接收操作receiveinmsg、一个发送操作sendoutmsg,在二者之间创建一个消息赋值操作assignoutmsg,同时会产生一个构造消息操作,命名为constructoutmsg,构造的消息为outmsg。设置receiveinmsg激活为true。

为工程callfunction添加.net引用,找到myfunction.dll,添加到引用中。编写assignoutmsg的表达式如下:

outmsg = inmsg;
outmsg(callfunction.propertyschema.rolename)= myfunction.usermanager.checkuserid(inmsg(callfunction.propertyschema.userid));   

创建一个接收端口inport用于连接接收操作、一个发端端口outport用于连接发送操作。两个端口均使用microsoft.biztalk.defaultpipelines.xmltransmit管道,接收地址为c:\in\*.xml,发送地址为c:\out\%sourcefilename%。

编译并布署biztalk server工程callfunction,启动callfunction.mainorch业务流程,进行测试:

测试文件fengfangfang.xml

<ns0:userinfo xmlns:ns0=”http://callfunction.userinfo”>
  <userid>fengfangfang</userid>
  <rolename></rolename>
</ns0:userinfo>

输出为

<ns0:userinfo xmlns:ns0=”http://callfunction.userinfo”>
  <userid>fengfangfang</userid>
  <rolename>administrator</rolename>
</ns0:userinfo>

测试文件fengff.xml

<ns0:userinfo xmlns:ns0=”http://callfunction.userinfo”>
  <userid>fengff</userid>
  <rolename></rolename>
</ns0:userinfo>

输出为

<ns0:userinfo xmlns:ns0=”http://callfunction.userinfo”>
  <userid>fengff</userid>
  <rolename>user</rolename>
</ns0:userinfo>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Biztalk 开发之 调用.net程序集中的方法-.NET教程,.NET Framework
分享到: 更多 (0)