关于BPF是什么,以及如何在CRM中配置BPF,能够参阅熊宸大神的博客Dynamics 365 Business Process Flow -- 让你再也不害怕复杂的业务流程!json
在你成功构造了一个BPF以后,只有执行Activate操做才会真正生效,而在Activate的过程当中,CRM系统会自动地在环境中新建一个此BPF相关的Entity。异步
而Entity的logical name就是你新建BPF的时候填写的Nameui
上面的coco test是BPF关联的Entity,每一条coco test记录都会有一个ByronDemo BPF记录生成spa
写关于BPF相关的定制,或多或少都要涉及到stage的操做,那么首先须要知道的,就是这个BPF有哪些Stage,Id又是多少。.net
BPF实际上是一条Process记录,那么跟获取其它Entity的记录的相似,直接Retrievecode
1 Entity processRecord = crmProxy.Retrieve("workflow", 2 new Guid("1310e211-ee01-4a93-92cd-ccd87689c82a"), 3 new ColumnSet(true));
返回的Entity对象,能够从两个字段获取Stage信息以及Step信息,一个是xaml,一个是clientdata。orm
一个是xml结构对象,一个是json结构对象。这里把json对象展开来看看,我例子中是两个stage,可是系统会默认多一个,也就是说,第一个stage并不是我业务相关的。xml
那么这个stageId有什么用呢?CRM提供的API,若是涉及到具体的stage操做,参数就须要这个Id。好比下面这个API:对象
formContext.data.process.setActiveStage(stageId, callbackFunction);
当咱们须要前台定制更新某条记录的BPF Stage的时候,要注意BPF的更新是个异步方法,在API的CallBackup方法里,不要忘记加上refresh操做。blog