通达OA的V11版本,根据run_id获取流程表单数据、流程中心

通达OA的V11版本,根据run_id获取流程表单数据

在inc下新建php文件,并将如下代码粘贴进去

/*
日期:2022年7月27日
作者:cy
概要:流程中心的流程,在流转过程中,读取表单里的控件名对应的控件值。
替用原来的gerRunData函数的原因:
OA系统安装后,没有原工作流的数据表,导致原有函数getRunData运行报错。
涉及表:bpm_type,bpm_variable,bpm_variable_sort、业务表(bpm_data_xxx,bpm_data_xxx_child,bpm_data_xxx_list_xxx)
*/

function getRunDataCy($RUN_ID, $ELEMENT_ARRAY = array())
{
    $OUTPUT_ARRAY = array();
	
    if (!$RUN_ID) {
        return NULL;
    }
    $query = 'select FORM_ID,bpm_type.FLOW_ID from bpm_type,bpm_RUN WHERE RUN_ID="' . $RUN_ID . '" AND bpm_RUN.FLOW_ID=bpm_type.FLOW_ID';
    $cursor = exequery(TD::conn(), $query);
    if ($ROW = mysql_fetch_array($cursor)) {
        $FORM_ID = $ROW[0];
        $FLOW_ID = $ROW['FLOW_ID'];
    }
	
    $table_name = 'bpm_data_' . $FLOW_ID;
    $query = ' select * from ' . $table_name . ' where run_id="' . $RUN_ID . '" limit 1';
    $cursor = exequery(TD::conn(), $query);
    if ($ROW = mysql_fetch_assoc($cursor)) {
		foreach ($ROW as $key => $value) {
            if (strtolower(substr($key, 0, 6)) == 'data_m') {
                $STR = strtoupper($key);
                ${$STR} = $value;
            }
        }
    }
	$table_name2=$table_name.'_child';
    $query = ' select * from ' .$table_name2. ' where run_id="' . $RUN_ID . '" limit 1';
    $cursor = exequery(TD::conn(), $query);
    if ($ROW = mysql_fetch_assoc($cursor)) {
		foreach ($ROW as $key => $value) {
            if (strtolower(substr($key, 0, 6)) == 'data_m') {
                $STR = strtoupper($key);
                ${$STR} = $value;
            }
        }
    }
	
	$tmp_arr=array();
	$sql="select ID from bpm_variable_sort where FLOW_ID='".$FLOW_ID."'";
	$res=exequery(TD::conn(), $sql);
	
	while($row=mysql_fetch_assoc($res)){
		$tmp_arr[]=$row['ID'];
	}
	$idstr=implode(',',$tmp_arr);
	
	
    $WORKFLOW_ELEMENT_ARRAY = TD::get_cache('bpm/form/ELEMENT_ARRAY_' . $FORM_ID);
    foreach ($WORKFLOW_ELEMENT_ARRAY as $ENAME => $ELEMENT_ARR) {
        $ETITLE = "";
		if(isset($ELEMENT_ARR['TITLE'])&&!empty($ELEMENT_ARR['TITLE'])){
			
			if(strpos($ELEMENT_ARR['TITLE'], ':')===false){
				$ETITLE = $ELEMENT_ARR['TITLE'];
			}else{//包含英文冒号 :,例如:日期控件:浇筑时间
				$arr_tmp=explode(':',$ELEMENT_ARR['TITLE']);
				$ETITLE = $arr_tmp[1];
			}
		}
		$PARAM_UID=$ELEMENT_ARR['UID'];
		//OA系统 表bpm_variable,数据项UID不是唯一的,nnd瞎几把费工夫白搞这么复杂没意义
		$sql="select UID,NAME from bpm_variable where UID='".$PARAM_UID."' and SORT_ID in(".$idstr.")";
		$res=exequery(TD::conn(), $sql);
		$row_tmp=mysql_fetch_assoc($res);
		$ITEM_ID_STR = strtoupper($row_tmp['NAME']);
		
        $ITEM_DATA = ${$ITEM_ID_STR};
		
		$OUTPUT_ARRAY[$ETITLE] = safeData($ITEM_DATA);
    }
    return $OUTPUT_ARRAY;
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值