zoukankan      html  css  js  c++  java
  • QuickFlow如何通过QFD and ExecuteCode获取其他列表数据

    场景:有个配置列表用来配置每步的审批人,配置列表字段如下:

    Title: 工作流名称

    Level1Approver:第一步审批人

    Level2Approver:第二步审批人

    操作步骤:

    请先了解ExecuteCode活动:http://www.cnblogs.com/jianyi0115/archive/2011/04/17/2018872.html

    新建工作流,加两个string类型工作流变量:level1Approverlevel2Approver

    拖一个ExecuteCode活动,拖两个Task活动,task活动的User属性分别绑定到level1Approverlevel2Approver

    画线连接Start->ExecuteCode-Task1->Task2.

    双击ExecuteCode,写脚本如下:

    QueryField titleField = new QueryField("Title");

    SPList cfgList = this.Web.Lists["审批人配置"]; //获取列表

    var cfgItem = ListQuery.From(cfgList).Where(titleField=="名片申请").GetItems()[0]; //获取到配置项

    //获取字段值

    SPFieldUserValue user1Value = cfgItem .Fields.GetField("Level1Approver").GetFieldValue(cfgItem["Level1Approver"].ToString()) as SPFieldUserValue;

    var level1User = user1Value.User.LoginName;

    this.Log("getLevel1Approver:" + level1User); //写调试日志

    this.SetVariable("level1Approver", level1User); //设置变量

    //获取字段值

    SPFieldUserValue user2Value = cfgItem .Fields.GetField("Level2Approver").GetFieldValue(cfgItem["Level2Approver"].ToString()) as SPFieldUserValue;

    var level2User = user2Value.User.LoginName;

    this.Log("getLevel2Approver:" + level2User);

    this.SetVariable("level2Approver", level2User);

    工作流:

    添加变量:

    Code

     备注:

    1) 若有能力在自定义表单中写代码,那么还是尽量把代码写的表单提交前,通过工作流变量传入需要的数据。

    因为工作流内部执行代码出错,将造成整个工作流失败,并且无法挽回。只能重启流程。

  • 相关阅读:
    Shell编程(一)为什么使用Shell编程
    ALSA驱动Debian声卡
    Shell编程(五)find与grep命令简介及正则表达式
    Shell编程(三)控制结构及函数
    初识Linux程序
    Gentoo的哲学
    学习Emacs
    Shell编程(二)Shell基本语法
    第一杯咖啡在Debian 上安装Java环境
    Fvwm 笔记
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/3077140.html
Copyright © 2011-2022 走看看