1. Countersign approval operation: agree or reject

During countersign processing, you need to agree or reject the current countersign task. When calculating the countersign pass rate , if it reaches the threshold of the pass rate, it will flow to the next active node normally.

C:\Users\lg\AppData\Roaming\Tencent\Users\47743901\QQ\WinTemp\RichOle\OCJHBZ1D@I{L`HI03S%4PA5.png



  1. Assign values to runner's NextActivityPerformers

the recipient Performers is: { " ActivityGUID " , [{ " UserID " : " UserName " }]}. Assuming there are two people in the next step, the above format can be replaced with:


{ " 072af8c3-482a-4b1c-890b-685ce2fcc75d " ,[{ " 01 " : " Zhang San " }, { " 02 " : " Li Si " }]}


Convert the above result into a dictionary Dictionary < string , PerformerList> and assign it to the NextActivityPerformers property of the WfAppRunner object . For example:


PerformerList p1 = new PerformerList {UserID= ” 01 ” ,UserName= ” Zhang San ” };

PerformerList p2 = new PerformerList {UserID= ” 02 ” ,UserName= ” Li Si ” };

Dictionary < string , PerformerList> dict = new Dictionary < string , PerformerList> ();

dict.Add(" 072af8c3-482a-4b1c-890b-685ce2fcc75d " ,p1 );

dict.Add( “ 072af8c3-482a-4b1c-890b-685ce2fcc75d ” ,p2);

WfAppRunner runner = new WfAppRunner ();

runner.NextActivityPerformers = dict ;


  1. Call the engine RunProcessApp ( WfAppRunner runner) method to proceed to the next step

       During serial signing, the engine will generate processing tasks in sequence. Personnel who have not processed the tasks will be in a suspended state. After the previous personnel complete the processing, the status will be changed to processed, and so on.

       When countersigning in parallel, the engine generates processing tasks for multiple people, and the status is unaccepted. All processing personnel can handle it at the same time.