📄 clsstepmanager.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsStepManager"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
Const ERROR_SOURCE = "clsWorkflowManager"
Implements ObjectControl
Private m_objContext As ObjectContext
Private Sub ObjectControl_Activate()
' Get a reference to the object's context here,
' so it can be used by any method that may be
' called during this activation of the object.
Set m_objContext = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
' This object should not be recycled,
' so return false.
ObjectControl_CanBePooled = False
End Function
Private Sub ObjectControl_Deactivate()
' Perform any necessary cleanup here.
Set m_objContext = Nothing
End Sub
Public Function processStep(sProcedureXML As String) As String
Dim xmlDoc As MSXML.DOMDocument
Dim xmlStartNode As MSXML.IXMLDOMNode
Dim xmlNewNode As MSXML.IXMLDOMNode
Dim sType As String
Dim oProcWorker As IProcedureItem
Dim oNextProc As IProcedureItem
processStep = "Error"
Set xmlDoc = New DOMDocument
If xmlDoc.loadXML(sProcedureXML) Then
Set xmlStartNode = xmlDoc.documentElement
sType = xmlStartNode.selectSingleNode("Type").Text
Select Case xmlStartNode.selectSingleNode("Type").Text
Case "Response"
Set oProcWorker = New clsResponseProcedure
Case "Start"
Set oProcWorker = New clsStartProcedure
Case "Stop"
Set oProcWorker = New clsStopProcedure
Case "FYI"
Set oProcWorker = New clsFYIProcedure
End Select
'在这里接受了用户的反应
oProcWorker.Populate xmlDoc
If oProcWorker.IsProcedureComplete Then
oProcWorker.procedureStop
Set oNextProc = oProcWorker.getNextProcedure
'在得到的步骤实例里,
If Not oNextProc Is Nothing Then
oNextProc.procedureStart
End If
xmlDoc.documentElement.selectSingleNode("Message").childNodes.Item(1).Text = "Your response has been processed successfully. Thank you."
Else
xmlDoc.documentElement.selectSingleNode("Message").childNodes.Item(1).Text = "A required procedure was not completed."
End If
Else
Dim strErrText As String
Dim xmlPE As MSXML.IXMLDOMParseError
Set xmlPE = xmlDoc.parseError
With xmlPE
strErrText = "Your XML Document failed to load" & _
"due the following error." & vbCrLf & _
"Error #: " & .errorCode & ": " & xmlPE.reason & _
"Line #: " & .Line & vbCrLf & _
"Line Position: " & .linepos & vbCrLf & _
"Position In File: " & .filepos & vbCrLf & _
"Source Text: " & .srcText & vbCrLf & _
"Document URL: " & .url
End With
End If
Set xmlPE = Nothing
processStep = xmlDoc.xml
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -