Subscriber: BizTalk.cls
This code sample shows BizTalk subscription:
VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "BizTalk" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option Explicit '********************************************************** '***** ExecuteTutorial '***** '***** Purpose: This component is used to exercise '***** the XLANG schedule portion of tutorial accompanying '***** BizTalk Server (this is the Module 1 Tutorial). '***** The component launches the specified schedule '***** file and passes the data file specified '***** to it using MSMQ. '***** '***** NOTE: the source code in this component is a direct '***** adoption of the code found in the Module 1 '***** Tutorial in the BizTalk Server 2000 documentation. '***** The default location for the original version of this '***** source is found in: C:\Program Files\Microsoft '***** BizTalk Server\Tutorial\Schedule\Solution\ '***** ExecuteTutorial.vbp '***** '***** Inputs: '***** Schedule File - Contains the Moniker used to '***** launch the schedule '***** Data File - Contains the location of the '***** XML document to be passed to '***** the schedule for processing. '***** '***** Outputs: '***** Data File - Data file is passed to MSMQ '***** for later retrieval by the schedule. Private g_MSMTxDisp As MSMQ.MSMQTransactionDispenser Private g_MSMQQueue As MSMQ.MSMQQueue Private g_MSMQInfo As MSMQ.MSMQQueueInfo Private g_CurSkedDir As String Private g_CurDataDir As String Private Sub Class_Initialize() Set g_MSMQInfo = CreateObject("MSMQ.MSMQQueueInfo") Set g_MSMTxDisp = CreateObject("MSMQ.MSMQTransactionDispenser") End Sub Public Sub RunSchedule(ByVal strScheduleFile As String, ByVal strData As String) Dim objfs As New FileSystemObject On Error GoTo cmdRunSked_Click_err 'Connect To MSMQ and Remove Any Existing Messages PurgeMSMQ "DIRECT=OS:.\private$\ReceivePoReq" 'Send Selected message to MSMQ ExecuteMSMQ "DIRECT=OS:.\private$\ReceivePoReq", strData 'Start Schedule which reads message from MSMQ ExecuteSchedule strScheduleFile Exit Sub cmdRunSked_Click_err: MsgBox Err.Description & vbCrLf & "Error: " & Err.Number & " (0x" & Hex(Err.Number) & ")", vbCritical, "Error " & Err.Source Err.Clear End Sub Private Sub PurgeMSMQ(ByVal strQueuePath As String) Dim l_MSMQMsg As MSMQMessage On Error GoTo Err_ConnectMSMQ g_MSMQInfo.FormatName = strQueuePath Set g_MSMQQueue = g_MSMQInfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE) On Error GoTo Err_PurgeMSMQ Do Set l_MSMQMsg = g_MSMQQueue.Receive(, , , 1) Loop While Not l_MSMQMsg Is Nothing Exit Sub Err_ConnectMSMQ: Err.Raise Err.Number, "Connecting To MSMQ", "Could Not Open the MSMQ Queue """ & strQueuePath & """." & vbCrLf & vbCrLf & Err.Description Exit Sub Err_PurgeMSMQ: Err.Raise Err.Number, "Cleaning MSMQ", "Could Not Remove Existing Messages from MSMQ Queue """ & strQueuePath & """." & vbCrLf & vbCrLf & Err.Description Exit Sub End Sub Private Sub ExecuteMSMQ(ByVal strQueuePath As String, DataToQueue As String) Dim QueueMsg As New MSMQMessage Dim strData As String Dim fSend As Boolean Dim txt As TextStream Dim mybyte() As Byte On Error GoTo Err_SendMSMQ g_MSMQInfo.FormatName = strQueuePath Set g_MSMQQueue = g_MSMQInfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE) mybyte = StrConv(DataToQueue, vbFromUnicode) QueueMsg.Body = DataToQueue Dim MSMQTx As Object Set MSMQTx = g_MSMTxDisp.BeginTransaction QueueMsg.Send g_MSMQQueue, MSMQTx MSMQTx.Commit Set QueueMsg = Nothing Set MSMQTx = Nothing Exit Sub Err_SendMSMQ: Err.Raise Err.Number, "Sending Message To MSMQ", "Could Not Send Message To MSMQ Queue """ & strQueuePath & """." & vbCrLf & vbCrLf & Err.Description Exit Sub End Sub Private Sub ExecuteSchedule(ByVal strSchedule) Dim SendPAQ As Object On Error GoTo Err_ExecSched Set SendPAQ = GetObject(strSchedule) If SendPAQ Is Nothing Then Err.Raise vbObjectError + 1, , "Invalid Schedule Handle Returned." End If Set SendPAQ = Nothing Exit Sub Err_ExecSched: Err.Raise Err.Number, "Starting Schedule", "Could Not Launch the XLANG Schedule" & vbCrLf & "Please verify the path to the SKX file and the path to the data are correct. Also make sure the private queues have been created." & vbCrLf & vbCrLf & Err.Description Exit Sub End Sub