在Biztalk應用中調用程式集的方法

來源:互聯網
上載者:User
本文通過一個簡單一實例,介紹Biztalk應用中調用程式集的方法。

 

雖然Biztalk Server提供了眾多的內建功能,然而在一些情況下可能還需要調用程式集中的函數。因為在.Net程式集中,可以非常方便地調用Web Service、訪問資料庫;另一方面,有些函數是程式集中已經寫好的,為了增加軟體的複用,便於軟體版本的管理,使用現有的程式集也在情理之中。

本文通過一個簡單一實例,介紹Biztalk應用中調用程式集的方法。這個執行個體完成的功能,可以實現,只不過實現的方式用所差別,一個是調用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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.