簡體   English   中英

如何確定CRM 2011中的工作流模式?

[英]How to determine the Workflow Mode in the CRM 2011?

我想確定在Microsoft CRM 2011中如何啟動(后台/異步)或(實時/按需)工作流? 在OOB工作流程條件中還是在自定義工作流程活動中?

基於以下鏈接,我可以看到Microsoft在CRM 2013 SDK中引入了新屬性( IWorkflowContext.WorkflowMode )來公開該屬性。 我想要CRM 2011中的相同信息。

http://msdn.microsoft.com/zh-cn/library/microsoft.xrm.sdk.workflow.iworkflowcontext.workflowmode(v=crm.6).aspx

我認為無法在工作流設計器中區分按需工作流和觸發工作流。

在自定義工作流程活動中,如果工作流程是由觸發器啟動的,則只有Target輸入參數:

var context = activityContext.GetExtension<IWorkflowContext>();
if (context.InputParameters.Contains("Target"))
{
    // Started by a trigger
}
else
{
    // Started on demand
}

除此之外,您還可以通過Target的類型確定哪種觸發器啟動了工作流程。 此信息在context.MessageName中也可用,如果有更新消息,則包含字符串“ Update”。

if (context.MessageName == "Update")
    // this is an update message
var context = activityContext.GetExtension<IWorkflowContext>();
if (context.InputParameters.Contains("Target"))
{
    if (context.InputParameters["Target"].GetType() == typeof(Entity))
    {
        // create and update are Entity
    }
    else if (context.InputParameters["Target"].GetType() == typeof(EntityReference))
    {
        // delete and some other operations are EntityReference
    }       
}
else
{
    // Started on demand
}

可以通過Target包含哪些屬性來確定更新了哪些特定字段。
這可用於確定哪個字段觸發了工作流。
如果創建消息觸發了工作流程,則Target將包含所有字段(用戶輸入的字段)。 要確定工作流是由字段更新觸發的,可以將context.MessageName與檢查Target包含的屬性結合使用。

您尋求的功能在CRM 2011中不存在IWorkflowContext.WorkflowMode所有工作流都是異步運行的,因此不需要IWorkflowContext.WorkflowMode

您不能使CRM 2011同步運行OOTB工作流。 如果要在交易過程中執行代碼(CRM 2013可以使用同步工作流執行的方式),則必須在插件中編寫邏輯代碼。

我認為您可以通過在實體上添加“隱藏”字段並創建幾個填充該字段的“處理程序”工作流,然后觸發“實際”工作流來實現您的目標。

步驟1.在您的實體上創建一個字段以保存一個值,該值指示發起者

步驟2.將“實際”工作流程創建為子流程

步驟3.創建一個按需(僅)工作流:
一種。 在“啟動器”字段中的實體上設置一個值,指示工作流是手動運行的。
b。 調用子工作流程

步驟4.創建一個未選擇按需選擇的工作流:
一種。 在“啟動器”字段中的實體上設置一個值,以指示工作流程已自動化。
b。 調用子工作流程

步驟5.顯示結果
一種。 創建一個顯示該值的“管理員”表單和/或,
b。 將字段隱藏在用戶表單上,並根據需要通過js顯示和/或,
C。 創建一個包含顯示此字段的視圖和/或,
d。 創建包含此字段的報告和/或,
e。 檢查代碼中此字段的值

除非有特定值,否則該字段將不會包含在用戶表單或視圖中。

通過使用自定義字段並通過“處理程序”工作流填充它,您將能夠實現OOB目標。 (也就是說,如果您考慮使用Web GUI創建自定義字段和工作流程“ OOB”。)

通過以編程方式檢查此字段的值,您將實現您的“自定義工作流”目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM