示例#1
0
        public void Human()
        {
            Taobao.Activities.Hosting.WorkflowInstance.IsEnableDebug = true;

            var app = new WorkflowInstance(new HumanWorkflow(), null);
            app.Extensions.Add<HumanExtension>(new HumanExtension());
            app.Extensions.Add<CustomExtension>(new CustomExtension(new List<CustomSetting>() { new ServerSetting(0, "节点1", "", "", null, null, false) }));
            app.Extensions.Add<DataFieldExtension>(new DataFieldExtension("", 0, null));
            app.Run();

            Thread.Sleep(1000);
        }
示例#2
0
        public void Human()
        {
            Taobao.Activities.Hosting.WorkflowInstance.IsEnableDebug = true;

            var app = new WorkflowInstance(new HumanWorkflow(), null);

            app.Extensions.Add <HumanExtension>(new HumanExtension());
            app.Extensions.Add <CustomExtension>(new CustomExtension(new List <CustomSetting>()
            {
                new ServerSetting(0, "节点1", "", "", null, null, false)
            }));
            app.Extensions.Add <DataFieldExtension>(new DataFieldExtension("", 0, null));
            app.Run();

            Thread.Sleep(1000);
        }
示例#3
0
        protected override void Execute(NativeActivityContext context)
        {
            string WorkflowInstanceId = context.WorkflowInstanceId.ToString();
            // IDictionary<string, object> _payload = new System.Dynamic.ExpandoObject();
            var param = new Dictionary <string, object>();
            var vars  = context.DataContext.GetProperties();

            foreach (dynamic v in vars)
            {
                var value = v.GetValue(context.DataContext);
                if (value != null)
                {
                    //_payload.Add(v.DisplayName, value);
                    try
                    {
                        var test = new { value = value };
                        if (value.GetType() == typeof(System.Data.DataTable))
                        {
                            continue;
                        }
                        if (value.GetType() == typeof(System.Data.DataView))
                        {
                            continue;
                        }
                        if (value.GetType() == typeof(System.Data.DataRowView))
                        {
                            continue;
                        }
                        //
                        var asjson = JObject.FromObject(test);
                        param[v.DisplayName] = value;
                    }
                    catch (Exception)
                    {
                    }
                }
                else
                {
                    param[v.DisplayName] = value;
                }
            }
            try
            {
                var workflow = MainWindow.instance.GetWorkflowById(this.workflow);
                WorkflowInstance instance = null;
                Views.WFDesigner designer = null;
                GenericTools.RunUI(() =>
                {
                    designer = MainWindow.instance.GetDesignerById(this.workflow);
                    if (designer != null)
                    {
                        instance = workflow.CreateInstance(param, null, null, designer.onIdle, designer.onVisualTracking);
                    }
                    else
                    {
                        instance = workflow.CreateInstance(param, null, null, MainWindow.instance.idleOrComplete, null);
                    }
                });
                Log.Information("Run Instance ID " + instance._id);
                context.CreateBookmark(instance._id, new BookmarkCallback(OnBookmarkCallback));
                GenericTools.RunUI(() =>
                {
                    if (designer != null)
                    {
                        designer.Run(MainWindow.instance.VisualTracking, MainWindow.instance.SlowMotion, instance);
                    }
                    else
                    {
                        instance.Run();
                    }
                });
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                throw;
            }
        }
示例#4
0
 public string Execute(string workflowName, string currentState, string activityState)
 {
     return(WorkflowInstance.Run(workflowName, currentState, activityState));
 }