393: engStSuspendedItems ame_util.stringList;
394: engStSuspendedItemClasses ame_util.stringList;
395: engStVariableNames ame_util.stringList;
396: engStVariableValues ame_util.stringList;
397: engStProductionsTable ame_util2.productionsTable;
398: engStItemAppProcessCompleteYN ame_util.charList;
399: engStInsertionIndexes ame_util.idList;
400: engInsertionOrderList ame_util.idList;
401: /*eng deviation list*/
614: ame_util.transactionIdPlaceholder,
615: engTransactionId,
616: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
617: end if;
618: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
619: dbms_sql.bind_variable(dynamicCursor,
620: ame_util2.itemClassPlaceHolder,
621: itemClassIn,
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
616: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
617: end if;
618: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
619: dbms_sql.bind_variable(dynamicCursor,
620: ame_util2.itemClassPlaceHolder,
621: itemClassIn,
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
623: end if;
624: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
620: ame_util2.itemClassPlaceHolder,
621: itemClassIn,
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
623: end if;
624: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
625: dbms_sql.bind_variable(dynamicCursor,
626: ame_util2.itemIdPlaceHolder,
627: itemIdIn,
628: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
623: end if;
624: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
625: dbms_sql.bind_variable(dynamicCursor,
626: ame_util2.itemIdPlaceHolder,
627: itemIdIn,
628: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
629: end if;
630: dbms_sql.define_array(dynamicCursor,
4101: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4102: replaceWithSpaces => true);
4103: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4104: if ((isStatics(i) = ame_util.booleanFalse) and
4105: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4106: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4107: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4108: engAttributeQueries(tempAttributeId) := queryStrings(i);
4109: end if;
4102: replaceWithSpaces => true);
4103: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4104: if ((isStatics(i) = ame_util.booleanFalse) and
4105: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4106: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4107: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4108: engAttributeQueries(tempAttributeId) := queryStrings(i);
4109: end if;
4110: end if;
4236: ame_util.transactionIdPlaceholder,
4237: engTransactionId,
4238: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4239: end if;
4240: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4241: dbms_sql.bind_variable(dynamicCursor,
4242: ame_util2.itemClassPlaceHolder,
4243: ame_util.headerItemClassName,
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4238: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4239: end if;
4240: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4241: dbms_sql.bind_variable(dynamicCursor,
4242: ame_util2.itemClassPlaceHolder,
4243: ame_util.headerItemClassName,
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4245: end if;
4246: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4242: ame_util2.itemClassPlaceHolder,
4243: ame_util.headerItemClassName,
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4245: end if;
4246: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4247: dbms_sql.bind_variable(dynamicCursor,
4248: ame_util2.itemIdPlaceHolder,
4249: engTransactionId,
4250: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4245: end if;
4246: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4247: dbms_sql.bind_variable(dynamicCursor,
4248: ame_util2.itemIdPlaceHolder,
4249: engTransactionId,
4250: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4251: end if;
4252: dbms_sql.define_array(dynamicCursor,
4561: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4562: replaceWithSpaces => true);
4563: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4564: if ((isStatics(i) = ame_util.booleanFalse) and
4565: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4566: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4567: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4568: engAttributeQueries(tempAttributeId) := queryStrings(i);
4569: end if;
4562: replaceWithSpaces => true);
4563: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4564: if ((isStatics(i) = ame_util.booleanFalse) and
4565: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4566: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4567: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4568: engAttributeQueries(tempAttributeId) := queryStrings(i);
4569: end if;
4570: end if;
4696: ame_util.transactionIdPlaceholder,
4697: engTransactionId,
4698: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4699: end if;
4700: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4701: dbms_sql.bind_variable(dynamicCursor,
4702: ame_util2.itemClassPlaceHolder,
4703: ame_util.headerItemClassName,
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4698: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4699: end if;
4700: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4701: dbms_sql.bind_variable(dynamicCursor,
4702: ame_util2.itemClassPlaceHolder,
4703: ame_util.headerItemClassName,
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4705: end if;
4706: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4702: ame_util2.itemClassPlaceHolder,
4703: ame_util.headerItemClassName,
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4705: end if;
4706: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4707: dbms_sql.bind_variable(dynamicCursor,
4708: ame_util2.itemIdPlaceHolder,
4709: engTransactionId,
4710: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4705: end if;
4706: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4707: dbms_sql.bind_variable(dynamicCursor,
4708: ame_util2.itemIdPlaceHolder,
4709: engTransactionId,
4710: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4711: end if;
4712: dbms_sql.define_array(dynamicCursor,
5389: ,ame_util.rejectStatus
5390: ,ame_util.approvedByRepeatedStatus
5391: ,ame_util.rejectedByRepeatedStatus
5392: ,ame_util.noResponseStatus
5393: ,ame_util2.noResponseByRepeatedStatus
5394: ,ame_util2.reassignStatus
5395: ,ame_util2.forwardByRepeatedStatus)
5396: and name = c_nameIn
5397: and row_timestamp in
5390: ,ame_util.approvedByRepeatedStatus
5391: ,ame_util.rejectedByRepeatedStatus
5392: ,ame_util.noResponseStatus
5393: ,ame_util2.noResponseByRepeatedStatus
5394: ,ame_util2.reassignStatus
5395: ,ame_util2.forwardByRepeatedStatus)
5396: and name = c_nameIn
5397: and row_timestamp in
5398: (select max(row_timestamp)
5391: ,ame_util.rejectedByRepeatedStatus
5392: ,ame_util.noResponseStatus
5393: ,ame_util2.noResponseByRepeatedStatus
5394: ,ame_util2.reassignStatus
5395: ,ame_util2.forwardByRepeatedStatus)
5396: and name = c_nameIn
5397: and row_timestamp in
5398: (select max(row_timestamp)
5399: from ame_trans_approval_history
5531: engTransactionId,
5532: 50);
5533: end if;
5534: if(instrb(queryStrings(i),
5535: ame_util2.itemClassPlaceHolder) > 0) then
5536: dbms_sql.bind_variable(dynamicCursor,
5537: ame_util2.itemClassPlaceHolder,
5538: getItemClassName(itemClassIdIn => engAppRuleItemClassIds(engAppHandlerFirstIndex)),
5539: 50);
5533: end if;
5534: if(instrb(queryStrings(i),
5535: ame_util2.itemClassPlaceHolder) > 0) then
5536: dbms_sql.bind_variable(dynamicCursor,
5537: ame_util2.itemClassPlaceHolder,
5538: getItemClassName(itemClassIdIn => engAppRuleItemClassIds(engAppHandlerFirstIndex)),
5539: 50);
5540: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5541: end if;
5539: 50);
5540: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5541: end if;
5542: if(instrb(queryStrings(i),
5543: ame_util2.itemIdPlaceHolder) > 0) then
5544: dbms_sql.bind_variable(dynamicCursor,
5545: ame_util2.itemIdPlaceHolder,
5546: engAppAppItemIds(engAppHandlerFirstIndex),
5547: 50);
5541: end if;
5542: if(instrb(queryStrings(i),
5543: ame_util2.itemIdPlaceHolder) > 0) then
5544: dbms_sql.bind_variable(dynamicCursor,
5545: ame_util2.itemIdPlaceHolder,
5546: engAppAppItemIds(engAppHandlerFirstIndex),
5547: 50);
5548: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5549: end if;
5789: ,ame_util.suppressedStatus
5790: ,ame_util.noResponseStatus
5791: ,ame_util.forwardStatus
5792: ,ame_util.approveAndForwardStatus
5793: ,ame_util2.reassignStatus
5794: ,ame_util2.noResponseByRepeatedStatus
5795: ,ame_util2.forwardByRepeatedStatus) or
5796: (currentApproverCategory = ame_util.fyiApproverCategory and
5797: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5790: ,ame_util.noResponseStatus
5791: ,ame_util.forwardStatus
5792: ,ame_util.approveAndForwardStatus
5793: ,ame_util2.reassignStatus
5794: ,ame_util2.noResponseByRepeatedStatus
5795: ,ame_util2.forwardByRepeatedStatus) or
5796: (currentApproverCategory = ame_util.fyiApproverCategory and
5797: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5798: ame_util.notifiedByRepeatedStatus))) then
5791: ,ame_util.forwardStatus
5792: ,ame_util.approveAndForwardStatus
5793: ,ame_util2.reassignStatus
5794: ,ame_util2.noResponseByRepeatedStatus
5795: ,ame_util2.forwardByRepeatedStatus) or
5796: (currentApproverCategory = ame_util.fyiApproverCategory and
5797: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5798: ame_util.notifiedByRepeatedStatus))) then
5799: approvalStatusOut := ame_util.completedStatus;
7780: approvalProcessCompleteYNOut := ame_engine.getApprovalProcessCompleteYN;
7781: ameApplicationId := ame_engine.getAmeApplicationId;
7782: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7783: return with an empty nextApproversOut table */
7784: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7785: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7786: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7787: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7788: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7781: ameApplicationId := ame_engine.getAmeApplicationId;
7782: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7783: return with an empty nextApproversOut table */
7784: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7785: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7786: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7787: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7788: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7789: transactionIdIn => transactionIdIn,
7782: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7783: return with an empty nextApproversOut table */
7784: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7785: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7786: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7787: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7788: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7789: transactionIdIn => transactionIdIn,
7790: transactionTypeIdIn => transactionTypeIn);
7783: return with an empty nextApproversOut table */
7784: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7785: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7786: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7787: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7788: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7789: transactionIdIn => transactionIdIn,
7790: transactionTypeIdIn => transactionTypeIn);
7791: return;
9822: calculation of the approval-process-complete values.
9823: */
9824: /* Initialize various values. */
9825: itemRejected := false;
9826: engStApprovalProcessCompleteYN := ame_util2.completeNoApprovers;
9827: for i in 1 .. engItemIds.count loop
9828: engStItemAppProcessCompleteYN(i) := ame_util2.completeNoApprovers;
9829: end loop;
9830: /* Handle the empty-approver-list case first. */
9824: /* Initialize various values. */
9825: itemRejected := false;
9826: engStApprovalProcessCompleteYN := ame_util2.completeNoApprovers;
9827: for i in 1 .. engItemIds.count loop
9828: engStItemAppProcessCompleteYN(i) := ame_util2.completeNoApprovers;
9829: end loop;
9830: /* Handle the empty-approver-list case first. */
9831: if(engStApprovers.count = 0) then
9832: return;
9844: tempItemClass := engStApprovers(1).item_class;
9845: for i in 1 .. itemIds.count loop
9846: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9847: tempItemIndex := i;
9848: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9849: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9850: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9851: end if;
9852: exit;
9845: for i in 1 .. itemIds.count loop
9846: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9847: tempItemIndex := i;
9848: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9849: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9850: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9851: end if;
9852: exit;
9853: end if;
9846: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9847: tempItemIndex := i;
9848: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9849: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9850: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9851: end if;
9852: exit;
9853: end if;
9854: end loop;
9863: tempPseudoBoolean := ame_util.booleanTrue;
9864: for j in (tempItemIndex + 1) .. itemIds.count loop
9865: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9866: tempItemIndex := j;
9867: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9868: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9869: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9870: end if;
9871: exit;
9864: for j in (tempItemIndex + 1) .. itemIds.count loop
9865: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9866: tempItemIndex := j;
9867: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9868: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9869: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9870: end if;
9871: exit;
9872: end if;
9865: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9866: tempItemIndex := j;
9867: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9868: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9869: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9870: end if;
9871: exit;
9872: end if;
9873: end loop;
9873: end loop;
9874: end if;
9875: /* Update the process-complete engSt variables as appropriate. */
9876: -- check for pending/yet to be notified approvers
9877: if(engStItemAppProcessCompleteYN(tempItemIndex) <> ame_util2.completeFullyRejected and
9878: ((engStApprovers(i).approver_category = ame_util.approvalApproverCategory and
9879: (engStApprovers(i).approval_status is null or
9880: engStApprovers(i).approval_status in (ame_util.nullStatus
9881: ,ame_util.notifiedStatus
9883: ,ame_util.notifiedByRepeatedStatus))) or
9884: (engStApprovers(i).approver_category = ame_util.fyiApproverCategory and
9885: (engStApprovers(i).approval_status is null or
9886: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9887: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9884: (engStApprovers(i).approver_category = ame_util.fyiApproverCategory and
9885: (engStApprovers(i).approval_status is null or
9886: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9887: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9892: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9885: (engStApprovers(i).approval_status is null or
9886: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9887: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9892: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9893: end if;
9886: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9887: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9892: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9893: end if;
9894: end if;
9887: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9892: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9893: end if;
9894: end if;
9895: end if;
9888: ,ame_util2.completeFullyApproved) then
9889: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9890: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9891: ,ame_util2.completeFullyApproved) then
9892: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9893: end if;
9894: end if;
9895: end if;
9896: -- check for rejections
9899: itemRejected := true;
9900: if tempItemClass = ame_util.headerItemClassName then
9901: headerItemRejected := true;
9902: end if;
9903: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyRejected;
9904: end if;
9905: end loop;
9906:
9907: if itemRejected then
9914: -- When the stoppingRule is STOP_ALL_ITEMS or a header item got rejected then
9915: -- 1. The transaction as a whole is rejected.
9916: -- 2. Make all pending items approval status rejected.
9917: if stoppingRule = ame_util.stopAllItems or headerItemRejected then
9918: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9919: --+
9920: for x in 1 .. itemIds.count loop
9921: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9922: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9917: if stoppingRule = ame_util.stopAllItems or headerItemRejected then
9918: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9919: --+
9920: for x in 1 .. itemIds.count loop
9921: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9922: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9923: end if;
9924: end loop;
9925: --+
9918: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9919: --+
9920: for x in 1 .. itemIds.count loop
9921: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9922: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9923: end if;
9924: end loop;
9925: --+
9926: end if;
9938: stoppingRule = ame_util.continueAllOtherItems then
9939: if stoppingRule = ame_util.continueOtherSubItems then
9940: for x in 1 .. itemIds.count loop
9941: if itemClasses(x) = ame_util.headerItemClassName and
9942: engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9943: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9944: exit;
9945: end if;
9946: end loop;
9939: if stoppingRule = ame_util.continueOtherSubItems then
9940: for x in 1 .. itemIds.count loop
9941: if itemClasses(x) = ame_util.headerItemClassName and
9942: engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9943: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9944: exit;
9945: end if;
9946: end loop;
9947: end if;
9944: exit;
9945: end if;
9946: end loop;
9947: end if;
9948: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9949: for x in 1 .. itemIds.count loop
9950: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9951: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9952: exit;
9946: end loop;
9947: end if;
9948: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9949: for x in 1 .. itemIds.count loop
9950: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9951: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9952: exit;
9953: end if;
9954: end loop;
9947: end if;
9948: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9949: for x in 1 .. itemIds.count loop
9950: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9951: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9952: exit;
9953: end if;
9954: end loop;
9955: tempCount := 0;
9952: exit;
9953: end if;
9954: end loop;
9955: tempCount := 0;
9956: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9957: for x in 1 .. itemIds.count loop
9958: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9959: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9960: exit;
9954: end loop;
9955: tempCount := 0;
9956: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9957: for x in 1 .. itemIds.count loop
9958: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9959: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9960: exit;
9961: end if;
9962: tempCount := tempCount + 1;
9955: tempCount := 0;
9956: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9957: for x in 1 .. itemIds.count loop
9958: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9959: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9960: exit;
9961: end if;
9962: tempCount := tempCount + 1;
9963: end loop;
9961: end if;
9962: tempCount := tempCount + 1;
9963: end loop;
9964: if tempCount = itemIds.count then
9965: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9966: end if;
9967: end if;
9968: end if;
9969: end if;
9967: end if;
9968: end if;
9969: end if;
9970: if(engSATOFlag = 'Y') then
9971: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9972: end if;
9973: exception
9974: when others then
9975: ame_util.runtimeException(packageNameIn => 'ame_engine',
10635: end processAdHocInsertions;
10636: --+
10637: --
10638: --+
10639: procedure getAllProductions(productionsOut out nocopy ame_util2.productionsTable) is
10640: begin
10641: for i in 1 .. engStProductionsTable.count loop
10642: productionsOut(i).variable_name := engStProductionsTable(i).variable_name;
10643: productionsOut(i).variable_value := engStProductionsTable(i).variable_value;
10646: end loop;
10647: end getAllProductions;
10648: procedure getProductions(itemClassIn in varchar2
10649: ,itemIdIn in varchar2
10650: ,productionsOut out nocopy ame_util2.productionsTable) is
10651: tempIndex integer;
10652: begin
10653: tempIndex := 1;
10654: for i in 1 .. engStProductionsTable.count loop
11126: if engStApprovers(engStRepeatedAppIndexes(j)).approval_status = ame_util.approvedStatus then
11127: engStApprovers(i).approval_status := ame_util.approvedByRepeatedStatus;
11128: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
11129: = ame_util.noResponseStatus then
11130: engStApprovers(i).approval_status := ame_util2.noResponseByRepeatedStatus;
11131: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
11132: = ame_util.notifiedStatus then
11133: engStApprovers(i).approval_status := ame_util.notifiedByRepeatedStatus;
11134: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
11132: = ame_util.notifiedStatus then
11133: engStApprovers(i).approval_status := ame_util.notifiedByRepeatedStatus;
11134: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
11135: = ame_util.forwardStatus then
11136: engStApprovers(i).approval_status := ame_util2.forwardByRepeatedStatus;
11137: end if;
11138: end if;
11139: end if;
11140: end loop;
12525: procedure updateApprovalStatus(applicationIdIn in number,
12526: transactionTypeIn in varchar2,
12527: transactionIdIn in varchar2,
12528: approverIn in ame_util.approverRecord2,
12529: notificationIn in ame_util2.notificationRecord
12530: default ame_util2.emptyNotificationRecord,
12531: forwardeeIn in ame_util.approverRecord2 default
12532: ame_util.emptyApproverRecord2,
12533: updateItemIn in boolean default false) as
12526: transactionTypeIn in varchar2,
12527: transactionIdIn in varchar2,
12528: approverIn in ame_util.approverRecord2,
12529: notificationIn in ame_util2.notificationRecord
12530: default ame_util2.emptyNotificationRecord,
12531: forwardeeIn in ame_util.approverRecord2 default
12532: ame_util.emptyApproverRecord2,
12533: updateItemIn in boolean default false) as
12534: ameApplicationId integer;
12625: if(approverIn.name = currentApprovers(i).name and
12626: (currentApprovers(i).approval_status = ame_util.approvedStatus or
12627: currentApprovers(i).approval_status = ame_util.approveAndForwardStatus or
12628: currentApprovers(i).approval_status = ame_util.forwardStatus or
12629: currentApprovers(i).approval_status = ame_util2.reassignStatus or
12630: currentApprovers(i).approval_status = ame_util.rejectStatus or
12631: currentApprovers(i).approval_status = ame_util.notifiedStatus or
12632: currentApprovers(i).approval_status = ame_util.exceptionStatus or
12633: currentApprovers(i).approval_status = ame_util.noResponseStatus ) and
12699: ame_util.rejectStatus,
12700: ame_util.noResponseStatus,
12701: ame_util.nullStatus,
12702: ame_util.notifiedStatus,
12703: ame_util2.reassignStatus) and
12704: approver.approval_status is not null) or
12705: (approver.approver_category = ame_util.fyiApproverCategory and
12706: approver.approval_status is not null and
12707: approver.approval_status <> ame_util.notifiedStatus)) then
13015: ,ame_util.approvedByRepeatedStatus
13016: ,ame_util.rejectStatus
13017: ,ame_util.rejectedByRepeatedStatus
13018: ,ame_util.forwardStatus
13019: ,ame_util2.forwardByRepeatedStatus
13020: ,ame_util2.reassignStatus
13021: ,ame_util.nullStatus
13022: ,ame_util.noResponseStatus
13023: ,ame_util2.noResponseByRepeatedStatus
13016: ,ame_util.rejectStatus
13017: ,ame_util.rejectedByRepeatedStatus
13018: ,ame_util.forwardStatus
13019: ,ame_util2.forwardByRepeatedStatus
13020: ,ame_util2.reassignStatus
13021: ,ame_util.nullStatus
13022: ,ame_util.noResponseStatus
13023: ,ame_util2.noResponseByRepeatedStatus
13024: ,ame_util.repeatedStatus)
13019: ,ame_util2.forwardByRepeatedStatus
13020: ,ame_util2.reassignStatus
13021: ,ame_util.nullStatus
13022: ,ame_util.noResponseStatus
13023: ,ame_util2.noResponseByRepeatedStatus
13024: ,ame_util.repeatedStatus)
13025: where application_id = ameApplicationId
13026: and transaction_id = transactionIdIn
13027: and name = approver.name
13039: ,ame_util.approvedByRepeatedStatus
13040: ,ame_util.rejectStatus
13041: ,ame_util.rejectedByRepeatedStatus
13042: ,ame_util.forwardStatus
13043: ,ame_util2.forwardByRepeatedStatus
13044: ,ame_util2.reassignStatus
13045: ,ame_util.nullStatus
13046: ,ame_util.noResponseStatus
13047: ,ame_util2.noResponseByRepeatedStatus
13040: ,ame_util.rejectStatus
13041: ,ame_util.rejectedByRepeatedStatus
13042: ,ame_util.forwardStatus
13043: ,ame_util2.forwardByRepeatedStatus
13044: ,ame_util2.reassignStatus
13045: ,ame_util.nullStatus
13046: ,ame_util.noResponseStatus
13047: ,ame_util2.noResponseByRepeatedStatus
13048: ,ame_util.repeatedStatus) into tempStatus from dual;
13043: ,ame_util2.forwardByRepeatedStatus
13044: ,ame_util2.reassignStatus
13045: ,ame_util.nullStatus
13046: ,ame_util.noResponseStatus
13047: ,ame_util2.noResponseByRepeatedStatus
13048: ,ame_util.repeatedStatus) into tempStatus from dual;
13049: setInsertedApprovalStatus(currentApproverIndexIn => repeatedAppIndexes(z)
13050: ,approvalStatusIn => tempStatus);
13051: l_frw_index := repeatedAppIndexes(z);
13251: end if;
13252: --+
13253: --+ process reassignStatus
13254: --+
13255: if(approver.approval_status = ame_util2.reassignStatus) then
13256: ame_util.copyApproverRecord2(approverRecord2In => forwardeeIn,
13257: approverRecord2Out => forwardee);
13258: -- fetch forwardee details
13259: if(forwardee.orig_system is null or