|
|

楼主 |
发表于 2012/9/21 11:12:19
|
显示全部楼层
纵横四海 发表于 2012/9/20 17:17 
Oracle AME所涉及的底表包括:
select * from hr_api_transactions;
select * from hr_api_transaction_s ...
谢谢!大神的关注。我的意思是说:在自己克制化的工作流中,通过AME(用于定义审批规则)动态获取审批人。
现在的做法是:
1.在AME定义好审批规则
2.通过程序获取符合AME规则的审批人
3.把审批人赋予到工作流中
对于第2点的具体做法为:
a.获取审批人程序:
DECLARE
P_APPLICATION_ID NUMBER := 200;
P_TRANSACTION_TYPE VARCHAR2(150) := 'APINV';
P_TRANSACTION_ID VARCHAR2(150) := 24000;
P_AME_APPROVERS_LIST AME_APPROVER_RECORD2_TABLE_SS;
P_AME_ORDER_TYPE_LIST AME_INSERTION_RECORD2_TABLE_SS;
P_ALL_APPROVERS_COUNT VARCHAR2(150);
P_WARNING_MSG_NAME VARCHAR2(150);
P_ERROR_MSG_TEXT VARCHAR2(4000);
BEGIN
AME_DYNAMIC_APPROVAL_PKG.GET_AME_APPRS_AND_INS_LIST(P_APPLICATION_ID,
P_TRANSACTION_TYPE,
P_TRANSACTION_ID,
'Active',
'N',
P_AME_APPROVERS_LIST,
P_AME_ORDER_TYPE_LIST,
P_ALL_APPROVERS_COUNT,
P_WARNING_MSG_NAME,
P_ERROR_MSG_TEXT);
FOR I IN 1 .. P_AME_APPROVERS_LIST.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('name = ' || P_AME_APPROVERS_LIST(I).NAME);
DBMS_OUTPUT.PUT_LINE('approver_order_number = ' || P_AME_APPROVERS_LIST(I)
.APPROVER_ORDER_NUMBER);
DBMS_OUTPUT.PUT_LINE('approver_group_name = ' || P_AME_APPROVERS_LIST(I)
.APPROVER_GROUP_NAME);
END LOOP;
END;
b.把审批人存放到克制化表中
c.通过对比客制化的审批历史表获取合适的审批人
不知道这样做是否合适,请大神指教。
|
|