示例#1
0
        public string StartProcess(string definitionId, Dictionary <string, object> inputData)
        {
            string ret = null;

            RunProcessTransaction(this.DefaultPersistenceMode, ps =>
            {
                var pd      = this.GetProcessDef(definitionId);
                var pscript = this.GetProcessScriptRuntime(definitionId);

                string instanceId  = Guid.NewGuid().ToString("N");
                ProcessInstance pi = new ProcessInstance
                {
                    InstanceId          = instanceId,
                    ProcessDefinitionId = definitionId,
                    ProcessInstanceId   = instanceId,
                    TaskId = pd.Body.Id
                };
                pi.Activate(ps, pd, pscript);
                ps.PersisterSession.SaveNew(pi);
                pi.Enable(inputData);
                pi.Deactivate();
                ps.PersisterSession.Update(pi);
                ret = pi.InstanceId;
            });
            return(ret);
        }
示例#2
0
        public string StartProcess(string definitionId, Dictionary <string, object> inputData)
        {
            string ret = null;

            RunProcessTransaction(this.DefaultPersistenceMode, ps =>
            {
                var pd      = this.GetProcessDef(definitionId);
                var pscript = this.GetProcessScriptRuntime(definitionId);

                var instanceId = Guid.NewGuid().ToString("N");
                var pi         = new ProcessInstance
                {
                    InstanceId          = instanceId,
                    ProcessDefinitionId = definitionId,
                    ProcessInstanceId   = instanceId,
                    TaskId = pd.Body.Id
                };
                pi.Activate(ps, pd, pscript);
                ps.TaskPersister.SaveNew(pi);
                log.Info(
                    $"\n --- Created process {pi.ProcessDefinitionId} instance {pi.InstanceId}. Data: {Jsonizer.ToJsonString(inputData)}");
                pi.Enable(inputData);
                pi.Deactivate();
                ps.TaskPersister.Update(pi);
                ret = pi.InstanceId;
            });
            return(ret);
        }