系统集成——业务引擎 2.0
一、目录结构
1、 inc/SI:系统集成根目录,将来所有与系统集成有关的核心类文件都会放在此目录
下(包括业务引擎,OA 与 OA 间的集成,OA 与异构系统的集成等)。
2、 inc/SIHook.class.php:业务引擎核心文件。
3、 inc/hook:业务引擎类文件目录。
4、 inc/flow_engine2.0/workrun/dao/WorkRunHook.class.php:业务引擎入口文件。
二、业务引擎核心文件说明
1、 Public function setFeild(){……}
功能:设置业务模块字段。
说明:返回的模块字段必须包含业务唯一标识。
返回值:array(
array(
'name' => 英文字段,
'desc' => 中文字段
)
……
)
2、 Public function outData($PKeyData){……}
功能:业务模块提供业务数据的出口函数,由业务引擎负责调用,根据业务模块与
3、 Public function inData($PKeyData){……}
说明:此函数不需要返回值;禁止使用 exit;或 die;,以避免影响流程的后续程序正
4、 Public function setPKey(){……}
5、 Public function setModule(){……}
功能:设置业务的模块名称。
说明:此函数必须在子类中重载,否则业务引擎无法使用。
6、 Public function getRunData($PKeyData){……}
功能:获取流程返回业务的值。返回值的格式按照业务引擎中"数据转入映射"展
示。
说明:此函数需要业务自行调用。
返回值:array(
业务英文字段 => 对应字段的值
)
7、 Protected function checkPassFlow(){……}
功能:获取流程在结束后,业务引擎设置的条件是否通过。
说明:此函数需要业务自定调用。如果没有设置业务引擎条件则恒为 false。
返回值:true——通过业务引擎设置的条件,false——没有通过业务引擎设置的
条件。
8、 Public static function getWorkViewUrl($module, $PKeyData, $config()){……}
功能:获取流程查看的 URL 地址。
参数:$module——业务模块名称
$PKeyData——业务唯一标识所对应的值
$config——其他配置项:
Array(
'is_mobile' => 1, //获取移动端 URL 地址
//'is_mobile' => 0, //获取 PC 端 URL 地址
)
9、 Protected function doAction($actionType, $PKeyData){……}
功能:业务在出现异常时可选对业务引擎进行回调,让业务引擎执行规定的程
序。
参数:$actionType——回调动作
支持的回调动作:
send_sms:向申请人发送一条事务提醒,提醒内容为"业务引擎执行失败,
请检查业务引擎数据映射关系设置是否正确或数据是否有效后,可尝试再次发起
该申请。",并可以查看相应流程的信息。
$PKeyData——业务唯一标识所对应的值
说明:此函数需要业务自行调用;回调动作暂时只支持 send_sms。
返回值:array(
'status' => 'ok', //回调成功
//'status' => 'error', //回调失败
'msg' => '' //回调失败信息
)
10、
Protected function getAllowAction(){……}
功能:获取允许的业务在出现异常时对业务引擎进行回调的动作。
说明:此函数需要业务自行调用。
返回值:array(
Array(
'action' => '允许的回调动作',
'desc' => '此回调动作用途或如何使用的说明'
)
……
)
11、
Public function createUserInfo($PKeyData){……}
功能:设置工作创建人信息。
参数:$PKeyData——业务唯一标识所对应的值
说明:此函数需要业务自行调用。如果业务需要不使用当前登录用户创建工作,
则需要将创建工作人的信息进行返回。反之不需要调用。
返回值: array(
'LOGIN_UID' => $LOGIN_UID, //创建工作人的 UID
'LOGIN_USER_ID' => $LOGIN_USER_ID, //创建工作人的 USER_ID
'LOGIN_USER_NAME' => $LOGIN_USER_NAME, //创建人的 USER_NAME
'LOGIN_DEPT_ID' => $LOGIN_DEPT_ID, //创建人的部门 ID
'LOGIN_DEPT_ID_OTHER' => $LOGIN_DEPT_ID_OTHER, //创建人的辅助
部门 ID
'LOGIN_USER_PRIV' => $LOGIN_USER_PRIV, //创建人的角色 ID
'LOGIN_USER_PRIV_OTHER' => $LOGIN_USER_PRIV_OTHER //创建人的
辅助角色 ID
);
12、
dao unhookWorkRunHook::runHook($module, $config = array()){……}
功能:业务引擎入口函数,业务调用此函数开始进行新建流程操作。
参数:$module——业务模块名称
$config——其他配置项
Array(
'is_mobile' => 1, //进行移动端新建流程操作
//'is_mobile' => 0, //进行 PC 端新建流程操作
'业务模块唯一标识' => '业务模块唯一标识所对应的值' //此项必须设
置,否则业务引擎无法使用
)
说明:此函数需要业务自行调用,在调用前需要引用入口文件。
返回值:如果 PC 端新建流程成功则无返回值,直接跳转到工作办理中。
如果 PC 端新建流程失败或移动端新建流程,则返回值如下
array(
'status' => 'ok', //新建成功
//'status' => 'error', //新建失败
'msg' => '', //新建失败信息
'pc_url' => '', //新建成功后 PC 端工作办理 URL
'pda_url' => '', //新建成功后移动端工作办理 URL
'call_back' => '' //无意义参数