通用JS方法

/// <reference path="../../../Scripts/jquery-1.4.1.js" />

/// <reference path="../../../Scripts/Global.js" />

/// <reference path="../../../Scripts/WF/WFlowGlobal.js" />

//***************工作流相关**************************

//==工作流工具栏相关==

var flowFilterCon = ""; //如果同一实体有多个流程,此参数用来判断查找对应的流程(对应流程区分标识),

                        //为空或NULL表示不过滤,即只有一个流程

//提交

wm.wf.gridSubmit(flowFilterCon);

//网格批量提交

wm.wf.gridBatchSubmit(flowFilterCon);

//通用反提交:Grid

wm.wf.unSumbit();

//审批明细

wm.wf.gridOpenHistory();

//通用提交:Form

var recordId = "1111-111";

wm.wf.formSubmit(flowFilterCon, recordId);

//通用审批情况查看 Form页面

wm.wf.formOpenHistory();

//设置审核时业务展现URL

var url = "Sys/View/XSLT/Form?Entity=SysUser&UniqueNo=0";

wm.wf.setFormUrl(url);

//==工作流相关操作==

//获取当前步骤审核人

var users = wm.wf.getActivityAuditUser(recordId);

//获取当前步骤名称

var caption = wm.wf.getActivityCaption(recordId);

//获取流程图“提交”步骤所设置的用户列表

var users = wm.wf.getSubmitActUsers(wfObjectId, recordId);

//取提交前选择的用户

var users = wm.wf.getSumbitDynaUsers(xmlRoot, wfObjectId, recordId);

//获取流程图某步骤所设置的用户列表

var users = wm.wf.getOneActivityUsers(xmlRoot, activityId, recordId);

 

//设置下步执行人按钮点击时,打开的是角色选择窗口,默认是打开用户选择窗口

wm.wf.setOpenRoleSelect();

//设置审批时不需要填写审批意见,方法写在页面LOAD事件

wm.wf.setNoOption();

//审核步骤中,显示的业务流程展现不一样,传入不同的UniqueNo

var uniqueNo = "11";

wm.wf.setFormUniqueNo(uniqueNo);

//取得当前页面的mappingId

var mappingId = wm.wf.getActualSysMappingId();

//打开审批记录具体内容页面

var stateId = "";

wm.wf.openHistoryPage(stateId);

//==工作流相关事件== 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

gridSubmit

  • 概述

    • 网格页面通用的工作流提交方法
  • 参数

    • function gridSubmit(FlowFilterCon)

      参数FlowFilterCon:同实体多流程标识内容,非必传

  • 示例

<Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" 
Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" 
Script="wm.wf.gridSubmit()"></Button>
1
2
3

formSubmit

  • 概述

    • 表单编辑页面通用提交方法
  • 参数

    formSubmit(FlowFilterCon,RecordId)

    参数FlowFilterCon:同实体多流程标识内容,非必传

    参数RecordId:一般不传,系统直接默认为当前FORM页面的记录ID,如果是特殊提交,则传对应的记录ID

  • 示例

    <Button Target="Form" Name="cmd提交" Text="提交" ToolTip="提交" 
    Type="Normal" Image="WebToolBar/16_Import.gif" 
    DisplayMode="TextAndImage" Script="wm.wf.formSubmit()"></Button>
    
    1
    2
    3

gridBatchSubmit

  • 概述

    • 网格页面批量提交方法,即可勾选多条记录批量提交
  • 参数

    wm.wf.gridBatchSubmit(FlowFilterCon)

    参数FlowFilterCon:同实体多流程标识内容,非必传

  • 示例

    <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" 
    Type="Normal" Image="WebToolBar/16_Import.gif" 
    DisplayMode="TextAndImage" Script="wm.wf.gridBatchSubmit()"></Button>
    
    1
    2
    3

setFormUniqueNo

  • 概述

    • 设置审批过程中不同步骤的审批页面显示不同的业务展现FORM页面
  • 参数

    setFormUniqueNo(FormUniqueNo)

    参数FormUniqueNo:字符型,要加单引号,对应FORM配置UniqueNo

  • 示例

    一般是在流程图中的各步骤JS设置页面中对应的“页面加载事件”调用,如下图:

    setFormUniqueNo

    如:wm.wf.setFormUniqueNo('111')


setFormUrl

  • 概述

    • 设置审批过程中不同步骤的审批页面显示不同的业务展现FORM页面,直接设置URL地址
  • 参数

    setFormUrl(Url)

    参数Url:具体的Url地址

  • 示例

    一般是在流程图中的各步骤JS设置页面中对应的“页面加载事件”调用,如下图:

    setFormUrl

    如:wm.wf.setFormUrl('View/XLST/Form?Entity=SysUser&UniqueNo=0')


setOpenRoleSelect

  • 概述
    • 设置下步执行人按钮点击时,打开的是角色选择窗口,默认是打开用户选择窗口
  • 参数
    • //设置下步执行人按钮点击时,打开的是角色选择窗口,默认是打开用户选择窗口 wm.wf.setOpenRoleSelect(); //设置审批时不需要填写审批意见,方法写在页面LOAD事件
  • 示例
    • //设置下步执行人按钮点击时,打开的是角色选择窗口,默认是打开用户选择窗口 wm.wf.setOpenRoleSelect(); //设置审批时不需要填写审批意见,方法写在页面LOAD事件

setNoOption

  • 概述

    • 设置在审批时不需要填写审批意见,即可进行审批
  • 参数

    wm.wf.setNoOption()

    无参数

  • 示例

    一般是在流程图中的各步骤JS设置页面中对应的“页面加载事件”调用,如下图:

    setNoOption

    如:wm.wf.setNoOption()


gridSimpleSumbit

  • 概述

    • 普通的直接启动工作流的方法,不会弹出任何的提示信息对话框,也没有提交前、提交后事件。

      一般是在特殊情况下使用。如在某些操作过程中调用。

  • 参数

    //TableName:表名,必传
    //RecordId:记录ID,必传
    //FlowFilterCon: 如果同一实体有多个流程,此参数用来判断查找对应的流程(对应流程区分标识),
    //               为空或NULL表示不过滤,即只有一个流程,非必传
    //NewUser:提交到的用户,非必传
    //MemoSQL:备注SQL语句,非必传
    //CurrentUserId:提交人,非必传,当流程是自动启动的话,提交人不一定是当前用户 20100831
    wm.wf.simpleSumbit(TableName,RecordId,FlowFilterCon,NewUser,MemoSQL,CurrentUserId)
    
    1
    2
    3
    4
    5
    6
    7
    8

getSubmitActUsers

  • 概述

    • 获取流程图中“提交”步骤所设置的用户列表信息
  • 参数

    getSubmitActUsers(WFObjectId,recordId)

    参数WFObjectId:流程图对应ID(流程图XML文件名)

  • 示例

    直接调用

    wm.wf.getSubmitActUsers(WFObjectId,recordId)
    
    1

getActivityAuditUser

  • 概述

    • 获取当前步骤审核人
  • 参数

    wm.wf.getActivityAuditUser(RecordId)

  • 示例

    调用:

    wm.wf.getActivityAuditUser(RecordId)
    
    1

getSumbitDynaUsers

  • 概述

    • 取提交前选择的用户
  • 参数

    • //取提交前选择的用户 var users = wm.wf.getSumbitDynaUsers(xmlRoot, wfObjectId, recordId);
  • 示例

    //取提交前选择的用户

    var users = wm.wf.getSumbitDynaUsers(xmlRoot, wfObjectId, recordId);
    
    1

getOneActivityUsers

  • 概述

    • 获取流程图中某步骤所设置的用户列表
  • 参数

    getOneActivityUsers(WFObjectId,ActivityId,RecordId)

    参数WFObjectId:流程图对应ID(流程图XML文件名)

    参数ActivityId:步骤ID

  • 示例

    直接调用

    wm.wf.getOneActivityUsers(WFObjectId,ActivityId,RecordId)
    
    1

CA验证调用

  • 概述

    /*

    ​ 用户签名验证

    ​ showMsg:是否显示错误信息 true/false 默认为true

    ​ 返回值: true/false

    */

    CheckCA(showMsg);

  • 参数

    showMsg:是否显示错误信息 true/false 默认为true

  • 示例

    调用:CA
    //导入js
        if(window.importScript){
            var url=window.Global_ProjectName+"/CA/CA.js";
            window.importScript(url,true);
        }
        //调用 用户签名验证
        var showMsg=true;//是否显示错误提示
        var ok=CheckCA(showMsg);
        if(ok==true){
            //验证成功
        }else{
            //验证失败
        }       
    使用说明:
     1.可以在工作流程审批前事件调用
     2.要在登陆时调用CA认证(对所有用户)
       web.config增加以下配置(根节点内)
    <location path="CA" allowOverride="false">
        <system.web>
          <authorization>
            <allow users="?"/>
          </authorization>
        </system.web>
      </location>
      系统设置里要开启CA签名认证
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

formOpenHistory

  • 概述

    • 通用审批情况查看 Form页面
  • 参数

    formOpenHistory(id)

    参数id:当前记录ID

  • 示例

    直接调用

    wm.wf.formOpenHistory();
    
    1

gridOpenHistory

  • 概述

    • 通用审批情况查看 grid页面
  • 示例

    wm.wf.gridOpenHistory();
    
    1

__OnBeforeWFlowSumbit

  • 概述

    • 网格通用提交前事件
  • 参数

    functon __OnBeforeWFlowSumbit(selRows)

    参数selRows:提交的行对象

  • 示例

    在配置页面上重载,如果该事件返回False,则不再继续执行,即不会提交。

    <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __OnBeforeWFlowSumbit(selRows){ //重载,系统自动会调用执行此函数
    
                     //提交前要处理的代码段
                     //....
                     return true; //返回 true 或 false
                 }
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

:__OnBeforeWFSubmitForm

  • 概述

    • 表单通用提交前事件
  • 示例

    在配置页面上重载,如果该事件返回False,则不再继续执行,即不会提交。

     <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Form" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFSubmitForm()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __OnBeforeWFlowSumbitForm(){ //重载,系统自动会调用执行此函数
    
                     //提交前要处理的代码段
                     //....
    
                     return true; //返回 true 或 false
                 }
    
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

:__OnBeforeWFlowBatchSumbit

  • 概述

    • 网格批量提交前事件
  • 参数

    function __OnBeforeWFlowBatchSumbit(recordId)

    参数recordId:对应批量中的每条记录Id,分别执行的

  • 示例

    在配置页面上重载,如果该事件返回False,则不再继续执行,即不会提交。

    <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFBatchSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __OnBeforeWFlowBatchSumbit(recordId){ //重载,系统自动会调用执行此函数         
    
                     //提交前要处理的代码段
                     //....
    
                     return true; //返回 true 或 false
                 }
    
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

__OnAfterWFlowSumbit

  • 概述

    • 网格表单通用提交后事件
  • 参数

    function __OnAfterWFlowSumbit(RecordId)

    参数ReocrdId:对应的记录ID

  • 示例

    在配置页面上重载

      <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __OnAfterWFlowSumbit(selRows){ //重载,系统自动会调用执行此函数
    
                     //提交后要处理的代码段
                     //....
    
                 }
                 
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

__OnAfterWFlowBatchSumbit

  • 概述

    • 网格通用批量提交后事件
  • 参数

    function __OnAfterWFlowBatchSumbit(cReocrdId)

    参数cRecordId:批量记录中对应的每条记录ID,分别执行的

  • 示例

    在配置页面上重载

      <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFBatchSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __OnAfterWFlowBatchSumbit(cRecordId){ //重载,系统自动会调用执行此函数
    
                     //提交后要处理的代码段
                     //....
    
                 }
    
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

__WFGetSumbitUserList

  • 概述

    • 工作流提交时,自动根据当前记录去指定对应的用户,比如自动指定对应的部门经理,

      就是通过 __WFGetSumbitUserList 这个JS函数来实现

  • 示例

    工作流提交要自动根据当前记录去指定对应的用户,比如自动指定对应的部门经理,此时就无法用选择窗口,

    就要自己写代码来处理,这里是通过 __WFGetSumbitUserList 这个JS函数来实现,该函数需返回要提交

    的用户ID字符串,多个ID则以分号隔开,如“aaaid;bbbid;cccid;dddid”,该函数是写在对应的配置XML文件对应

    UniqueNo里,一般写在 ToolBar节点下的Script里,如下例子:

    <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __WFGetSumbitUserList(){ //重载,返回提交用户ID集合,系统自动会调用执行此函数
    
                     //代码段,如调用Webservice
                     //....
    
                     return "aaaid;bbbid;cccid"; //返回
                 }
    
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
  • 相关链接

    工作流信息设置


__WFGetBatchSumbitUserList

  • 概述

    • 工作流提交时,自动根据当前记录去指定对应的用户,比如自动指定对应的部门经理,

      就是通过这个JS函数来实现

  • 示例

    工作流提交要自动根据当前记录去指定对应的用户,比如自动指定对应的部门经理,此时就无法用选择窗口,

    就要自己写代码来处理,这里就是通过这个JS函数来实现,该函数需返回要提交

    的用户ID字符串,多个ID则以分号隔开,如“aaaid;bbbid;cccid;dddid”,该函数是写在对应的配置XML文件对应

    UniqueNo里,一般写在 ToolBar节点下的Script里,如下例子:

    <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFBatchSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
    
                 function __WFGetBatchSumbitUserList(){ //重载,返回提交用户ID集合,系统自动会调用执行此函数
    
                     //代码段,如调用Webservice
                     //....
    
                     return "aaaid;bbbid;cccid"; //返回
                 }
    
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

getActivityAuditUser

  • 概述

    • 获取工作流审批过程中 当前步骤审核人
  • 参数

    getActivityAuditUser(RecordId)

    参数RecordId:当前记录Id,必传

  • 示例

    用法:
        var result = wm.wf.getActivityAuditUser(RecordId);
    返回值:
        用户Id串;若多个用户则以封号间隔(若审批完成则返回:"流程已结束",若无数据则返回"")。
    
    1
    2
    3
    4

getActivityCaption

  • 概述

    • 获取工作流审批过程中 当前步审批骤名称
  • 参数

    wm.wf.getActivityCaption(RecordId)

    参数RecordId:当前记录Id,必传

  • 示例

    用法:
        var result = wm.wf.getActivityCaption(RecordId);
    返回值:
        当前审批步骤名称;若有多个同时审批步骤则以封号间隔(若审批完成则返回:"流程已结束",若无数据则返回"")。
    
    1
    2
    3
    4

openHistoryPage

  • 概述

    • 打开审批记录具体内容页面
  • 参数

    //打开审批记录具体内容页面 var stateId = ""; wm.wf.openHistoryPage(stateId);

  • 示例

    //打开审批记录具体内容页面
    var stateId = "";
    wm.wf.openHistoryPage(stateId);
    
    1
    2
    3

getActualSysMappingId

  • 概述

    • 打开审批记录具体内容页面
  • 参数

    //打开审批记录具体内容页面 var stateId = ""; wm.wf.openHistoryPage(stateId);

  • 示例

    //打开审批记录具体内容页面
    var stateId = "";
    wm.wf.openHistoryPage(stateId);
    
    1
    2
    3