標籤:
在CRM 2013 中有一個新功能就商務程序,它可以引導使用者在既定好的商務規則下動作表單,實現業務之前的銜接。並且讓銜接可以視化,能清楚定位到當前的流程在那個節點。我們在配置視圖的時候可以將流程階段放到視圖列中來篩選資料。
但是這個商務程序有不允許在工作流程中自訂,如使CRM的工作流程無法改變記錄流程階段的名稱。此時可能要去編程來實現自動化,編程可以選擇外掛程式或者直接修改資料庫。為了更好理解流程我們看看在資料庫中的結構
BusinessProcessFlowInstanceBase,代表流程的執行個體,它在SDK中介紹是一個實體最多可以跨5個實體也是因為表結構中定義了最多可以有五個實體ID。每個實體記錄只能對就一個流程執行個體是通過EntityID 來實現 的。
每個流程的定義則是通過下面的表定義的,ProcessStageBase定義流程的基本結構,階段類別,階段名稱。通過下面的階段查詢
SELECT process_processstage.OwningBusinessUnit, process_processstage.OwnerId, process_processstage.Name AS ProcessIdName, process_processstage.OwnerIdType, dbo.ProcessStageBase.PrimaryEntityTypeCode, dbo.ProcessStageBase.ProcessId, dbo.ProcessStageBase.ProcessStageId, dbo.ProcessStageBase.StageCategory, dbo.ProcessStageBase.StageName, dbo.ProcessStageBase.VersionNumberFROM dbo.ProcessStageBase LEFT OUTER JOIN dbo.WorkflowBase AS process_processstage ON dbo.ProcessStageBase.ProcessId = process_processstage.WorkflowId AND process_processstage.OverwriteTime = 0 AND process_processstage.ComponentState = 0
在實體記錄上只要啟用商務程序都會自動建立欄位既定 ProcessID,StageID 就是為了和BusinessProcessFlowInstanceBase 中的ProcessStageId、ProcessId
知道上面的資料結構後我們就可以靈活的來改變實體的階段名稱了,只要修改對應的StageID 的值就可以了。
BusinessProcessFlowInstanceBase
CRM 2013 中商務程序的