在Biztalk應用中呼叫程式集的方法

2021-05-06 23:09:15 字數 1773 閱讀 3767

本文通過乙個簡單例項,介紹biztalk應用中呼叫程式集的方法。

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

本文通過乙個簡單例項,介紹biztalk應用中呼叫程式集的方法。這個例項完成的功能,可以實現,只不過實現的方式用所差別,乙個是呼叫web service,乙個是呼叫.net程式集。

首先,我們建立乙個myfunction的專案,其中只包括乙個的類檔案class1,我們要在biztalk中呼叫該類的checkuserid靜態方法。class1的源程式如下: 

using

system;

namespace

myfunction

public

static

string checkuserid(string struserid)

else

} }

} 為程式集設定強名稱和發布.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

fengfangfang

輸出為fengfangfang

administrator

測試檔案fengff.xml

fengff

輸出為fengff

user

———————————————————————

任何美好的事物只有觸動了人們的心靈才變的美好;

孤獨的時候看看天空裡的雨,其實流淚的不只是你。

———————————————————————

在Biztalk應用中呼叫程式集的方法

本文通過乙個簡單例項,介紹biztalk應用中呼叫程式集的方法。雖然biztalk server提供了眾多的內建功能,然而在一些情況下可能還需要呼叫程式集中的函式。因為在.net程式集中,可以非常方便地呼叫web service 訪問資料庫 另一方面,有些函式是程式集中已經寫好的,為了增加軟體的復用...

在程式中呼叫Start Run

public declare function shrundialog lib shell32 alias 61 byval howner as long,byval unknown1 as long,byval unknown2 as long,byval sztitle as string,by...

在程式中呼叫Winrar

winrar e e rarfile.rar e extract rar file winrar a e mydir e add rar file system.disnogic.process 可以用來啟動乙個新的程序,而且在啟動新程序的時候可以代引數.for exp order a newnam...