zoukankan      html  css  js  c++  java
  • 工作流脚本

    前言

      金蝶协同OA工作流。主要用于流程的发起审批的流程。这其中,有时候会需要在工作流中添加脚本:设置外部变量,然后通过脚本查询表中数据,然后将结果输出。

    接下来呢,提供几个简单的demo例子进行参考。

    取某个(本例是办理部门部长)审批节点的的审批决策项(0(不同意) 1(同意) ):

      spr 就是设定的外部数组变量,通过脚本将需要的数据,赋值到spr中。

    1 StringBuffer tStrSql2 = new StringBuffer();  
    2 tStrSql2.append(" SELECT fhandleroption  FROM T_BAS_MultiApprove where FASSIGNMENTID in ( select fassignid  from T_WFR_Assigndetail  where  factdefname_l2='办理部门部长'and fbizobjid= '"+billID+"' )");
    3 com.kingdee.jdbc.rowset.IRowSet tStrSqlRs2= com.kingdee.eas.util.app.DbUtil.executeQuery(__bosContext,tStrSql2.toString());
    4 ArrayList al2 = new ArrayList(); 
    5 java . util . ArrayList list2 = new java . util . ArrayList ( ) ; 
    6 while ( tStrSqlRs2 . next ( ) ) { list2 . add ( tStrSqlRs2. getString ( "fhandleroption" ) . toString ( ) ) ; } 
    7 spr= new String [ list2 . size ( ) ] ;
    8  for ( int i = 0 ; i < list2 . size ; i ++ ) {spr[ i ] = list2 . get ( i ) . toString ( ) ; }

    取分录组织负责人:

     1 1.定义一个内码型变量id,两个外部类型变量posarray、userarray。
     2 2.在提交节点将单据id输到变量id.
     3 3.提交节点的后置脚本放以下脚本
     4 4.审批节点参与人设置为变量userarray
     5 java . lang . StringBuffer sql1 = new java . lang . StringBuffer ( ) ; 
     6 sql1 . append ( "select distinct  FCostCenterId from T_BC_BizAccountBillentry where FBillID ='"+id+"'") ; 
     7 com.kingdee.jdbc.rowset.IRowSet rst= com.kingdee.eas.util.app.DbUtil.executeQuery(__bosContext,sql1.toString());
     8  java . util . ArrayList list1 = new java . util . ArrayList ( ) ; 
     9 while ( rst . next ( ) ) { list1 . add ( rst . getString ( "FCostCenterId" ) . toString ( ) ) ; } 
    10 posarray = new String [ list1 . size ( ) ] ;
    11  userarray = new String [ list1 . size ( ) ] ;
    12  for ( int i = 0 ; i < list1 . size ; i ++ ) { posarray [ i ] = list1 . get ( i ) . toString ( ) ; 
    13 
    14 java . lang . StringBuffer sql2 = new java . lang . StringBuffer ( ) ; 
    15 sql2 . append ( "select FID from T_PM_USER where Fpersonid in(select Fpersonid from  T_ORG_PositionMember  where fpositionid in ( select FID from T_ORG_Position where FIsRespPosition = '1' and FAdminOrgUnitID = '" + posarray [ i ] + "'))" ) ; 
    16 com.kingdee.jdbc.rowset.IRowSet row= com.kingdee.eas.util.app.DbUtil.executeQuery(__bosContext,sql2.toString());
    17 while ( row . next ( ) ) { FYCDBM_FZR_ID= row . getString ( "FID" ) ; } 
    18 if ( null == FYCDBM_FZR_ID|| "" . equals ( FYCDBM_FZR_ID) )
    19  return null ; 
    20 userarray [ i ] = FYCDBM_FZR_ID ; }
    21 return userarray;

    反写单据:

     1 以反写费用报销单的事由为例子
     2 
     3 1.定义一个内码型变量billid 一个字符串变量fsy fsy在后置脚本随便赋值
     4 2.在提交节点输出单据id到变量billid
     5 3.在脚本节点或后置脚本放以下脚本。
     6 
     7 
     8 StringBuffer tStrSql = new StringBuffer();  
     9 tStrSql.append(" update T_BC_BizAccountBill set  fcause ='"+fsy+"'");
    10 tStrSql.append(" where Fid = '"+billid+"' ");
    11 com.kingdee.jdbc.rowset.IRowSet rowSet = com.kingdee.eas.util.app.DbUtil.execute(__bosContext,tStrSql.toString());

    更新日期:

    StringBuffer sb = new StringBuffer();
    sb.append("select r.fname_l2 as name from T_HR_ResignBizBillEntry t left join T_HR_AffairActionReason r on t.faffairactreasonid = r.fid where fpersonid = '" + fpersonid + "'");
    com.kingdee.jdbc.rowset.IRowSet res= com.kingdee.eas.util.app.DbUtil.executeQuery(__bosContext,sb.toString());
    String operation = null;
    while(res.next()){
        operation = res.getString("name");
    }
    if(operation != null && "自辞".equals(operation)){
        sb.setLength(0);
        Date current = new Date();
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date  = sdf.format(current);
        sb.append("UPDATE T_HR_ResignBizBillEntry SET fbizdate = {ts'"+ date +"'} WHERE  fpersonid = '" + fpersonid + "'");
        com.kingdee.jdbc.rowset.IRowSet rowSet = com.kingdee.eas.util.app.DbUtil.execute(__bosContext,sb.toString());
    }

    常用表及表结构

    T_WFR_Assign (工作流任务)

      表结构:

      

     T_BAS_DocumentInfo(流程信息)

      表结构:

      

    T_WFR_AssignDetail(处理过的工作流任务 (审批))

      表结构:

      

    T_BAS_MultiApprove(多级审批表)

      表结构:

      

  • 相关阅读:
    tensorflow源码资源,github
    数据挖掘实战
    Ansible--快速入门
    gRPC C#学习
    Linq之Expression高级篇(常用表达式类型)
    十大经典排序算法(动图演示)
    ASP.NET Web API 管道模型
    docker面试题和解答(一)
    浅谈委托和事件(一)
    面试题三
  • 原文地址:https://www.cnblogs.com/lyc-smile/p/7504367.html
Copyright © 2011-2022 走看看