怎样定时批量发起任务

每月提交工作报告,为符合条件的人员自动发起任务,单独一个人一个流程
已邀请:

LIly_Mao

赞同来自:

用时间触发器控件,定时触发流程,之后放C#插件,自定义发起流程
 
下面是用代码 发起流程,可以参考一下
 
Context.Current.Task.SaveToDB();
Member owner=Member.FromAccount("sampletest5");//子流程的申请人
BPMProcess process=BPMProcess.GetProcess("Sample Distribute");//要创建的子流程
FlowDataSet datasetPost=DataSourceManager.LoadDataSetSchema(process.GlobalTableIdentitys);
FlowDataTable table=datasetPost.Tables["F_SAR_DIS_REQUEST"];//子流程的用到的表
FlowDataTable table1=datasetPost.Tables["F_SAR_DIS_DETAILS"];//子流程的用到的表
Context context=Context.Current;
FlowDataTable tb=context.FormDataSet.Tables["F_SAR_DETAILS"];//当前流程的用到的表
int statcode=0;
string stat="Waiting for Deliver";

for(int a=0;a<tb.Rows.Count;a++)
{
        if(table.Rows.Count>0)
       {
              table.Rows.Clear();
       }
         FlowDataRow row=table.NewRow();
         row["REQUESTNO"]=context.FormDataSet["F_SAR_REQUEST.REQUEST_NO"];
         row["REQUESTOR"]=context.FormDataSet["F_SAR_REQUEST.REQUESTOR"];
         row["REQUESTDATE"]=context.FormDataSet["F_SAR_REQUEST.REQUEST_DATE"];
         row["REGION"]=context.FormDataSet["F_SAR_REQUEST.REGION"];
         row["POSTCODE"]=context.FormDataSet["F_SAR_REQUEST.RECEIVER_POSTCODE"];
         row["HOSPITAL"]=context.FormDataSet["F_SAR_REQUEST.HOSPITAL_NAME"];
         row["DEPARTMENT"]=context.FormDataSet["F_SAR_REQUEST.DEPARTMENT"];
         row["CLIENTPHONE"]=context.FormDataSet["F_SAR_REQUEST.RECEIVER_PHONE"];
         row["ADDRESS"]=context.FormDataSet["F_SAR_REQUEST.RECEIVER_ADDR_DISPLAY"];
         row["RECEIVEDBY"]=context.FormDataSet["F_SAR_REQUEST.RECEIVER_NAME"];
         row["REQUEST_ISID"]=context.FormDataSet["F_SAR_REQUEST.REQUESTOR_ISID"];
         row["PROVINCE"]=context.FormDataSet["F_SAR_REQUEST.PROVINCE"];
         row["WAREHOUSE"]=tb.Rows[a] ["WAREHOUSE"];
         row["PRODUCT"]=tb.Rows[a] ["PRODUCT_NAME"];
         row["REQUESTNUM"]=tb.Rows[a] ["QUANTITY"];
         row["UNIT"]=tb.Rows[a] ["UNIT"];
         row["PRONO"]=tb.Rows[a] ["PRODUCT_CODE"];
         row["SPECIFICATION"]=tb.Rows[a] ["SPECIFICATION"];
         row["REDORGREEN"]=tb.Rows[a] ["REDORGREEN"];
         row["STATUS_CODE"]=statcode;
         row["STATUS"]=stat;

      // throw new BPMException(row["SPECIFICATION"].ToString());

        table.Rows.Add(row);
       

        BPMTask task= process.CreateTask(owner,datasetPost);//发起流程
        //task.Step.Approve();//是否跳过开始节点

}

liumuyizi

赞同来自:

好的,非常感谢

liumuyizi

赞同来自:

在流程设计器里,选择处理人的时候,怎样把定时开始的任务分别发给角色里的每一个人,而不是一个人多人共同处理同一个任务,是每个人都开始新的任务,处理人属性的代码怎么写?
系统默认的是会发起一个任务然后角色里的所有人员处理

要回复问题请先登录注册