通达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;
}
内容绝对原创,希望对您有帮助。您的打赏,是让我持续更新的牛奶和面包