• QuickFlow中控制DataField and TaskField(更简单的控制列表项和任务字段值)


    QF中控制DataField and TaskField

    1)概述

    DataFields和TaskFields是QF中的两个概念:
    DataFields实际上就是工作流关联的列表项。
    TaskFields表示一个任务的数据,DataFields和TaskField都都支持用索引(DataFields["name"])来操作字段值。
    QF的UI代码API中首先支持这两个对象,如,在Executing事件中,可以通过以下代码操作DataFields和TaskFields:

    WorkflowContext.Current.DataFields["Title"] = "some title"; //set list item title in code
    string comment s = WorkflowContext.Current.TaskFields["Body"];//get task comments

     2)FlowchartWorkflow.DataFields

    最新Release中,在工作流(WF)API中也支持类似的接口:
    首先,FlowchartWorkflow工作流根活动上增加了DataFields属性,在活动的BeforeRule或AfterRule中可以直接通过DataFields
    来获取或设置列表项字段值,如:

    BeforeRule:
    this.DataFields["Title"] = "some Request title";
    string title = ""+this.DataFiels["Title"];

    注意:在WF中设置DataFields之后,默认只有当活动结束后才会执行更新。如:如果在多任务活动的TaskCompleted事件中修改了DataFields,则只有当最后一个任务完成,同时整个活动完成时才会真正对ListItem执行更新。

    如果要立刻更新ListItem,则可以调用this.DataFields.Update()方法。

     3)Task.TaskFields

    其次,在Task活动上,增加了TaskFields属性,通过这个属性,在任务创建前,可以控制任务字段属性,在任务创建后,可以获取任务字段值:

    task1.BeforeRule
    this.task1.TaskFields["Body"] = "input your comment here.";

    task1.AfterRule:
    this.DataFields["AllComments"] = ""+this.DataFields["AllComments"]+";" + this.task1.TaskFields["Body"]; //把任务字段的值同步到列表项

    TaskFields的另一个功能是使用自定义任务内容类型时:

    QF支持在根站点下创建一个内容类型,继承与QuickFlowTaskContentType,添加扩展字段,然后编辑任务活动的TaskForm属性,设置任务关联到这个
    内容类型,这时可以用规则控制任务扩展字段的值:


    task1.AfterRule:
    this.task1.TaskFields["RequestDate"] = this.DataFields["RequestDate"]; //设置任务上直接显示申请信息
     

    4)多任务活动的TaskFields

    多任务活动(MultiTask,RuleDriven)在Build110714版本后也支持TaskFields。

    多任务活动的TaskFields需要注意: 

    1-给TaskFields赋值时,会影响到所有的任务,并且所有任务的属性只能一样

    2-通过TaskFields取值时,只能获取到最后一个有效任务的字段。
     

    5)注意

    所有字段名都必须用内部名(internalName)
    用QF的Rule之前最好了解下WF规则引擎:http://msdn.microsoft.com/zh-cn/library/aa480193.aspx

    此功能Build110714后版本支持

    多任务活动在Build110724版本后支持TaskFields

    this.DataFields.Update()方法在Build120325版本后支持

  • 相关阅读:
    MySQL 日志管理
    nginx 日志分割
    Canvas 动态小球重叠效果
    Canvas制作动态进度加载水球
    js 多张爆炸效果轮播图
    js 多张图片加载 环形进度条
    INSTALL_FAILED_CONFLICTING_PROVIDER
    安卓 文件管理器 各种应用 源码
    android 静音
    android studio 查看大纲
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/2105957.html
Copyright © 2020-2023  润新知