您现在的位置是:首页 >

主程序怎样调用子程序 调用.net程序集中的方法

火烧 2023-03-25 20:41:35 1039
调用. et程序集中的方法   虽然Biztalk Server提供了众多的内置功能 然而在一些情况下可能还需要调用程序集中的函数 因为在 Net程序集中 可以非常方便地调用We Service 访问

调用.net程序集中的方法  

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

  本文通过一个简单实例 介绍Biztalk应用中调用程序集的方法 这个实例完成的功能 在调用Web Services一文中实现过 只不过实现的方式用所差别 一个是调用Web Service 一个是调程序集

  首先 我们创建一个MyFunction的项目 其中只包括一个的类文件class 我们要在Biztalk中调用该类的CheckUserId静态方法 class 的源程序如下  

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

主程序怎样调用子程序 调用.net程序集中的方法

  <ns :UserInfo xmlns:ns = >  <UserId>fengfangfang</UserId>  <RoleName></RoleName></ns :UserInfo>

  输出为

  <ns :UserInfo xmlns:ns = >  <UserId>fengfangfang</UserId>  <RoleName>Administrator</RoleName></ns :UserInfo>

  测试文件fengff xml

  <ns :UserInfo xmlns:ns = >  <UserId>fengff</UserId>  <RoleName></RoleName></ns :UserInfo>

  输出为

  <ns :UserInfo xmlns:ns = >  <UserId>fengff</UserId>  <RoleName>User</RoleName></ns :UserInfo>

  参考文章

lishixinzhi/Article/program/ASP/201311/21716  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码