通达OA系统2019版流程中心,外部表单提交数据到指定流程第一步

总体操作过程

1.新建业务数据表
2.新建业务引擎
3.新建业务引擎映射关系类文件
4.绑定外部表单与OA流程的映射关系
5.新建引擎调用文件

具体操作过程

1、根据需要提交到流程的表单,新建表

/*
Navicat MySQL Data Transfer

Source Server         : 本地-通用OA-2017
Source Server Version : 50635
Source Host           : localhost:3336
Source Database       : TD_OA

Target Server Type    : MYSQL
Target Server Version : 50635
File Encoding         : 65001

Date: 2021-11-24 20:43:59
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for test
-- ----------------------------
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `OVERTIME_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增字段',
  `USER_ID` varchar(64) NOT NULL COMMENT '用户名',
  `USER_NAME` varchar(255) DEFAULT NULL COMMENT '加班人姓名',
  `APPROVE_ID` varchar(254) NOT NULL COMMENT '审批人',
  `APPROVE_NAME` varchar(255) DEFAULT NULL COMMENT '审批人姓名',
  `RECORD_TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '登记时间',
  `START_TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '加班开始时间',
  `END_TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '加班结束时间',
  `OVERTIME_HOURS` varchar(254) NOT NULL COMMENT '加班时长',
  `OVERTIME_CONTENT` text NOT NULL COMMENT '加班内容',
  `CONFIRM_TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '确认时间',
  `CONFIRM_VIEW` text NOT NULL COMMENT '确认意见',
  `ALLOW` char(1) NOT NULL COMMENT '审批状态(0—待审批,1—已批准,2—未批准,3—待确认)',
  `STATUS` char(1) NOT NULL COMMENT '确认状态(0—未确认,1—已确认)',
  `REGISTER_IP` varchar(254) NOT NULL COMMENT '登记IP',
  `REASON` text NOT NULL COMMENT '不准原因',
  `HANDLE_TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '请求处理时间',
  `AGENT` varchar(20) NOT NULL COMMENT '创建人',
  `ORDER_NO` int(10) NOT NULL DEFAULT '0' COMMENT '排序号',
  `WHETHER_OFF` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否倒休(1-是,0-否)',
  `EXCHANGE_TIME` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否已经兑换过时长(1-已兑换,0-未兑换)',
  PRIMARY KEY (`OVERTIME_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='加班登记';
SET FOREIGN_KEY_CHECKS=1;

2、系统管理员账号登录OA系统,按照 菜单》流程中心》工作流设置》业务引擎设置 打开页面,点击添加按钮,新建业务引擎

在这里插入图片描述结果如图:在这里插入图片描述

3.1、 找到目录:D:\MYOA\webroot\inc\SI\hook

3.2、在此目录下新建test.class.php,具体内容参照。

<?php
include_once "inc/SI/SIHook.class.php";
class test extends \SI\SIHook
{
    public $PKey;
    public $module;
    public $info = array();
    public function __construct()
    {
    }
    public function setField()
    {//需要在TD_OA库下新建表test,具体字段如下
        $this->info = array(array('name' => 'OVERTIME_ID', 'desc' => _('主键ID'), 'type' => ''), array('name' => 'USER_ID', 'desc' => _('加班人ID'), 'type' => ''), array('name' => 'USER_NAME', 'desc' => _('加班人姓名'), 'type' => 'Text'), array('name' => 'APPROVE_ID', 'desc' => _('审批人ID'), 'type' => ''), array('name' => 'APPROVE_NAME', 'desc' => _('审批人姓名'), 'type' => 'Text'), array('name' => 'OVERTIME_CONTENT', 'desc' => _('加班内容'), 'type' => 'Textarea'), array('name' => 'START_TIME', 'desc' => _('加班开始时间'), 'type' => 'Calendar'), array('name' => 'END_TIME', 'desc' => _('加班结束时间'), 'type' => 'Calendar'), array('name' => 'OVERTIME_HOUR', 'desc' => _('加班时长(小时)'), 'type' => 'Text'), array('name' => 'OVERTIME_MINUTE', 'desc' => _('加班时长(分)'), 'type' => 'Text'), array('name' => 'WHETHER_OFF', 'desc' => _('是否倒休(1-是,0-否)'), 'type' => 'Radio'), array('name' => 'RECORD_TIME', 'desc' => _('登记时间'), 'type' => 'Text'));
        return $this->info;
    }
    public function outData($id)
    {
        $id = intval($id);
        $dataBack = array();
        $sql = 'SELECT * FROM test WHERE OVERTIME_ID = \'' . $id . '\'';
        $cursor = exequery(TD::conn(), $sql);
        if (0 < mysql_affected_rows()) {
            if ($row = mysql_fetch_array($cursor)) {
                $USER_ID = $row['USER_ID'];
                $APPROVE_ID = $row['APPROVE_ID'];
                $OVERTIME_CONTENT = $row['OVERTIME_CONTENT'];
                $START_TIME = $row['START_TIME'];
                $END_TIME = $row['END_TIME'];
                $OVERTIME_HOURS = $row['OVERTIME_HOURS'];
                $WHETHER_OFF = $row['WHETHER_OFF'];
                $RECORD_TIME = $row['RECORD_TIME'];
                $OVERTIME_HOURS_ARRAY = explode(_('小时'), $OVERTIME_HOURS);
                $OVERTIME_MINUTES_ARRAY = explode(_('分'), $OVERTIME_HOURS_ARRAY[1]);
            }
            $USER_NAME = td_trim(GetUserNameById($USER_ID));
            $APPROVE_NAME = td_trim(GetUserNameById($APPROVE_ID));
            $dataBack = array('OVERTIME_ID' => $id, 'USER_ID' => $USER_ID, 'USER_NAME' => $USER_NAME, 'APPROVE_ID' => $APPROVE_ID, 'APPROVE_NAME' => $APPROVE_NAME, 'OVERTIME_CONTENT' => $OVERTIME_CONTENT, 'START_TIME' => $START_TIME, 'END_TIME' => $END_TIME, 'RECORD_TIME' => $RECORD_TIME, 'WHETHER_OFF' => $WHETHER_OFF == 1 ? _('是') : _('否'), 'OVERTIME_HOUR' => $OVERTIME_HOURS_ARRAY[0], 'OVERTIME_MINUTE' => $OVERTIME_MINUTES_ARRAY[0]);
        }
        return $dataBack;
    }
    public function inData($id)
    {
        
    }
    public function setPKey()
    {//表的自增主键的字段名
        $this->PKey = 'OVERTIME_ID';
    }
    public function setModule()
    {//业务引擎模块名,默认与表名一致,
        $this->module = 'test';
    }
}
include_once 'inc/utility_org.php';
include_once 'inc/SI/SIHook.class.php';

注意:类的文件名test,类名test,模块名test,三者默认保持一致。模块名即第2步的模块名。

4、在业务引擎设置页面,找到新建的业务引擎,点击编辑,如图:

在这里插入图片描述

5、新建调用文件,内容如下:

<?php
include_once "inc/session.php"; //加载OA系统的session文件
include_once "inc/conn.php"; //加载OA系统的数据库连接文件
session_start(); //开启session,可以读取当前登录用户session信息
include_once "inc/flow_engine2.0/workrun/dao/WorkRunHook.class.php"; //流程中心 业务引擎的核心文件

//向新建表中添加需要提交的表单的数据
$content=date('Y-m-d H:i:s');
$sql="insert into test (OVERTIME_CONTENT) values('".$content."')";
$res=exequery(TD::conn(),$sql);
//查询到添加的数据
$sql="select * from test order by OVERTIME_ID desc limit 1";
$res=exequery(TD::conn(),$sql);
$data=mysql_fetch_assoc($res);
//读取的主键的值
$id=$data['OVERTIME_ID'];

if($id){
	//调用业务引擎
	$wrk= dao\run\hook\WorkRunHook::runHook(
		"test", //模块名 必须
		$config = array(
			"OVERTIME_ID"=>$id //主键名 必须
		)
	);
}

如果有用,请多多支持,点赞加关注哦!

内容绝对原创,希望对您有帮助。您的打赏,是让我持续更新的牛奶和面包
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
通达OA工作流升级4.6【适用于2019本工作流转流程中心】》是通达OA软件升级的一个本,主要针对2019本的工作流转流程中心进行改进和优化。 首先,在用户界面方面,4.6本进行了界面调整和优化,使用户更加方便使用和操作。界面布局更加清晰,功能按钮更加醒目,提升了用户的操作体验。 其次,4.6本对工作流引擎进行了改进和优化。引擎性能得到了提升,能够更快速、高效地处理工作流转流程的相关操作。同时,引擎的稳定性也得到了加强,减少了因为错误或异常导致的系统崩溃的情况。 另外,在流程设计方面,4.6本提供了更多的流程设计器功能,方便用户进行工作流的创建和定制。用户可以根据自己的需求,灵活地设计流程图,并进行相关的设置和调整。这样可以更好地适应不同类型的工作流程。 此外,4.6本还增加了一些新的功能和特性。比如,增加了一键审批、多条件分支等功能,使得工作流转流程更加灵活和高效。同时,还提供了更多的审批流模板供用户选择和使用,方便用户根据实际需要进行相关设置。 总的来说,通达OA工作流升级4.6本适用于2019本的工作流转流程中心,通过界面调整和优化、工作流引擎改进和优化、流程设计功能增强以及新增功能和特性等方面的改进,提升了用户在工作流转流程中的使用体验和效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值