1. 程式人生 > >Dynamics 365-關於BPF的進一步探究

Dynamics 365-關於BPF的進一步探究

art 對象 以及 back con 結構 當我 contex xaml

  關於BPF是什麽,以及如何在CRM中配置BPF,可以參閱熊宸大神的博客Dynamics 365 Business Process Flow -- 讓你不再懼怕復雜的業務流程!

  1. CRM中發生了什麽

  在你成功構造了一個BPF之後,只有執行Activate操作才會真正生效,而在Activate的過程中,CRM系統會自動地在環境中新建一個此BPF相關的Entity。

技術分享圖片

技術分享圖片

  而Entity的logical name就是你新建BPF的時候填寫的Name

技術分享圖片

  上面的coco test是BPF關聯的Entity,每一條coco test記錄都會有一個ByronDemo BPF記錄生成

技術分享圖片

  

  2. 獲取關於BPF的詳細信息

  寫關於BPF相關的定制,或多或少都要涉及到stage的操作,那麽首先需要知道的,就是這個BPF有哪些Stage,Id又是多少。

  BPF其實是一條Process記錄,那麽跟獲取其它Entity的記錄的類似,直接Retrieve

1   Entity processRecord = crmProxy.Retrieve("workflow", 
2                     new Guid("1310e211-ee01-4a93-92cd-ccd87689c82a"), 
3                     new ColumnSet(true
));

  返回的Entity對象,可以從兩個字段獲取Stage信息以及Step信息,一個是xaml,一個是clientdata。

技術分享圖片

  一個是xml結構對象,一個是json結構對象。這裏把json對象展開來看看,我例子中是兩個stage,但是系統會默認多一個,也就是說,第一個stage並非我業務相關的。

  技術分享圖片

  那麽這個stageId有什麽用呢?CRM提供的API,如果涉及到具體的stage操作,參數就需要這個Id。比如下面這個API:

formContext.data.process.setActiveStage(stageId, callbackFunction);

  當我們需要前臺定制更新某條記錄的BPF Stage的時候,要註意BPF的更新是個異步方法,在API的CallBackup方法裏,不要忘記加上refresh操作。

  

Dynamics 365-關於BPF的進一步探究