The following lines contain the word 'select', 'insert', 'update' or 'delete':
procedure clearInsertion(applicationIdIn in number,
transactionTypeIn in varchar2,
transactionIdIn in varchar2,
approverIn in ame_util.approverRecord2) as
ameAppId integer;
cursor getAnchorInsertions (parameterIn varchar2) is
(select name
from ame_temp_insertions
where application_id = ame_engine.getAmeApplicationId
and transaction_id = transactionIdIn
and parameter = parameterIn);
cmpParameter ame_temp_insertions.parameter%type;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
approvers(i).api_insertion = ame_util.apiInsertion then
anchorName := approvers(i).name;
open getAnchorInsertions(cmpParameter);
fetch getAnchorInsertions bulk collect into nameList;
close getAnchorInsertions;
close getAnchorInsertions;
ame_engine.updateInsertions(indexIn => i);
delete from ame_temp_insertions
where
application_id = ameAppId and
transaction_id = transactionIdIn and
name = approverIn.name and
item_class = approverIn.item_class and
item_id = approverIn.item_id ;
routineNameIn => 'clearInsertion',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'clearInsertion',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'clearInsertion',
exceptionNumberIn => sqlcode,
exceptionStringIn => sqlerrm);
end clearInsertion;
procedure clearInsertions(applicationIdIn in integer,
transactionTypeIn in varchar2,
transactionIdIn in varchar2) as
ameAppId integer;
delete from ame_temp_insertions
where
application_id = ameAppId and
transaction_id = transactionIdIn ;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
routineNameIn => 'clearInsertions',
exceptionNumberIn => sqlcode,
exceptionStringIn => sqlerrm);
end clearInsertions;
delete from ame_temp_deletions
where
application_id = ameAppId and
transaction_id = transactionIdIn and
name = approverIn.name and
item_class = approverIn.item_class and
item_id = approverIn.item_id and
action_type_id = approverIn.action_type_id and
group_or_chain_id = approverIn.group_or_chain_id ;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
delete from ame_temp_deletions
where
application_id = ameAppId and
transaction_id = transactionIdIn ;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
select approval_group_id, name
from ame_approval_groups
where end_date is null
order by name;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => processProductionRules,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => true,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => processProductionRules,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => true,
prepareRuleDescsIn => true,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => processProductionRules,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => true,
prepareRuleDescsIn => true,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn);
select approval_group_id
into groupIdOut
from ame_approval_groups
where name = groupNameIn
and end_date is null;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => false,
fetchOldApproversIn => false,
fetchInsertionsIn => false,
fetchDeletionsIn => false,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => true,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => false,
updateOldApproverListIn => false,
processPrioritiesIn => false,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
getAvailableInsertions limits its output to insertions available for the order type orderTypeIn,
if this is null; otherwise getAvailableInsertions outputs insertions available for all order types.
Chain-of-authority insertees (those having authority = ame_util.authorityApprover and
api_insertion = ame_util.apiAuthorityInsertion) must have the approver_category value
ame_util.approvalApproverCategory. Ad-hoc insertees may be of either approver category.
*/
procedure getAvailableInsertions(applicationIdIn in number,
transactionTypeIn in varchar2,
transactionIdIn in varchar2,
positionIn in number,
orderTypeIn in varchar2 default null,
availableInsertionsOut out nocopy ame_util.insertionsTable2) as
begin
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => false,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
ame_engine.getInsertions
(positionIn => positionIn
,coaInsertionsYNIn => ame_util.booleanTrue
,orderTypeIn => orderTypeIn
,availableInsertionsOut => availableInsertionsOut
);
,routineNameIn => 'getAvailableInsertions'
,exceptionNumberIn => sqlcode
,exceptionStringIn => sqlerrm
);
end getAvailableInsertions;
select
ame_attributes.name,
ame_attributes.attribute_type,
ame_attributes.description,
ame_conditions.parameter_one,
ame_conditions.parameter_two,
ame_conditions.include_lower_limit,
ame_conditions.include_upper_limit,
ame_conditions.parameter_three
into
attributeNameOut,
attributeTypeOut,
attributeDescriptionOut,
lowerLimitOut,
upperLimitOut,
includeLowerLimitOut,
includeUpperLimitOut,
currencyCodeOut
from
ame_attributes,
ame_conditions
where
ame_attributes.attribute_id = ame_conditions.attribute_id and
ame_conditions.condition_id = conditionIdIn and
sysdate between
ame_attributes.start_date and
nvl(ame_attributes.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_conditions.start_date and
nvl(ame_conditions.end_date - ame_util.oneSecond, sysdate);
select
parameter,
upper(parameter_name),
query_string,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
from ame_approval_group_members
where
approval_group_id = groupIdIn
order by order_number;
memberDisplayNamesOut.delete;
memberDisplayNamesOut.delete;
memberDisplayNamesOut.delete;
memberDisplayNamesOut.delete;
select
parameter,
upper(parameter_name),
query_string,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
from ame_approval_group_members
where
approval_group_id = groupIdIn
order by order_number;
memberDisplayNamesOut.delete;
select
parameter,
upper(parameter_name),
query_string,
order_number,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
from ame_approval_group_members
where
approval_group_id = groupIdIn
order by order_number;
memberDisplayNamesOut.delete;
select
orig_system,
orig_system_id,
parameter,
upper(parameter_name),
query_string,
order_number,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
decode(parameter_name,
ame_util.approverOamGroupId, null,
ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
from ame_approval_group_members
where
approval_group_id = groupIdIn
order by order_number;
memberDisplayNamesOut.delete;
select
name,
item_class,
item_id,
approver_category,
api_insertion,
authority,
approval_status,
action_type_id,
group_or_chain_id,
occurrence
from ame_temp_old_approver_lists
where
application_id = applicationIdIn and
transaction_id = transactionIdIn
order by order_number;
oldApproversOut(tempIndex).api_insertion := tempOldApprover.api_insertion;
oldApproversOut.delete;
select
ame_action_types.name,
ame_action_types.description,
ame_actions.description
from
ame_action_usages,
ame_action_types,
ame_actions
where
ame_action_usages.rule_id = ruleIdIn and
ame_actions.action_id = ame_action_usages.action_id and
ame_action_types.action_type_id = ame_actions.action_type_id and
sysdate between
ame_action_usages.start_date and
nvl(ame_action_usages.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_action_types.start_date and
nvl(ame_action_types.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_actions.start_date and
nvl(ame_actions.end_date - ame_util.oneSecond, sysdate);
select condition_id
from ame_condition_usages
where
ame_condition_usages.rule_id = ruleIdIn and
sysdate between
start_date and
nvl(end_date - ame_util.oneSecond, sysdate);
select
ame_rules.rule_type,
ame_rules.description
from
ame_rules
where
ame_rules.rule_id = ruleIdIn and
sysdate between
ame_rules.start_date and
nvl(ame_rules.end_date - ame_util.oneSecond, sysdate) ;
conditionIdsOut.delete;
select
ame_action_types.name,
ame_action_types.description,
ame_actions.description
from
ame_action_usages,
ame_action_types,
ame_actions
where
ame_action_usages.rule_id = ruleIdIn and
ame_actions.action_id = ame_action_usages.action_id and
ame_action_types.action_type_id = ame_actions.action_type_id and
sysdate between
ame_action_usages.start_date and
nvl(ame_action_usages.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_action_types.start_date and
nvl(ame_action_types.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_actions.start_date and
nvl(ame_actions.end_date - ame_util.oneSecond, sysdate);
select ame_condition_pkg.getDescription(ame_condition_usages.condition_id)
from ame_condition_usages
where
ame_condition_usages.rule_id = ruleIdIn and
sysdate between
ame_condition_usages.start_date and
nvl(ame_condition_usages.end_date - ame_util.oneSecond, sysdate);
select
ame_rules.rule_type,
ame_rules.description
from
ame_rules
where
ame_rules.rule_id = ruleIdIn and
sysdate between
ame_rules.start_date and
nvl(ame_rules.end_date - ame_util.oneSecond, sysdate) ;
conditionDescriptionsOut.delete;
select
ame_action_types.name,
ame_action_types.description,
ame_actions.description
from
ame_action_usages,
ame_action_types,
ame_actions
where
ame_action_usages.rule_id = ruleIdIn and
ame_actions.action_id = ame_action_usages.action_id and
ame_action_types.action_type_id = ame_actions.action_type_id and
sysdate between
ame_action_usages.start_date and
nvl(ame_action_usages.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_action_types.start_date and
nvl(ame_action_types.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_actions.start_date and
nvl(ame_actions.end_date - ame_util.oneSecond, sysdate);
select
ame_conditions.condition_id,
ame_condition_pkg.getDescription(ame_conditions.condition_id),
decode(ame_attributes.attribute_type,
ame_util.stringAttributeType, ame_util.booleanTrue,
/* default */ ame_util.booleanFalse)
from
ame_conditions,
ame_condition_usages,
ame_attributes
where
ame_condition_usages.rule_id = ruleIdIn and
ame_conditions.condition_id = ame_condition_usages.condition_id and
ame_attributes.attribute_id = ame_conditions.attribute_id and
sysdate between
ame_condition_usages.start_date and
nvl(ame_condition_usages.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_conditions.start_date and
nvl(ame_conditions.end_date - ame_util.oneSecond, sysdate) and
sysdate between
ame_attributes.start_date and
nvl(ame_attributes.end_date - ame_util.oneSecond, sysdate);
select
ame_rules.rule_type,
ame_rules.description
from
ame_rules
where
ame_rules.rule_id = ruleIdIn and
sysdate between
ame_rules.start_date and
nvl(ame_rules.end_date - ame_util.oneSecond, sysdate) ;
conditionDescriptionsOut.delete;
conditionIdsOut.delete;
conditionHasLOVsOut.delete;
procedure insertApprover( applicationIdIn in number,
transactionTypeIn in varchar2,
transactionIdIn in varchar2,
approverIn in ame_util.approverRecord2,
positionIn in number,
insertionIn in ame_util.insertionRecord2) as
ameApplicationId integer;
availableInsertions ame_util.insertionsTable2;
badInsertionTypeException exception;
insertionOrder integer;
insertionTypeNotFound boolean;
if insertionIn.item_class is null or
insertionIn.parameter is null then
raise incompatibleApproverException;
/* Make sure that the approverIn and insertionsIn relate to the same chain */
if (approverIn.item_class <> insertionIn.item_class ) or
(approverIn.item_id <> insertionIn.item_id) or
(approverIn.action_type_id <> insertionIn.action_type_id) or
(approverIn.group_or_chain_id <> insertionIn.group_or_chain_id) or
(approverIn.api_insertion <> insertionIn.api_insertion) or
(approverIn.authority <> insertionIn.authority) then
raise incompatibleApproverException;
if(insertionIn.order_type = ame_util.firstAuthority) then
ame_api2.setFirstAuthorityApprover(applicationIdIn => applicationIdIn,
transactionTypeIn => transactionTypeIn,
transactionIdIn => transactionIdIn,
approverIn => approverIn,
clearChainStatusYNIn => ame_util.booleanFalse);
/* Make sure approverIn.api_insertion is of the right type. */
if(approverIn.api_insertion = ame_util.oamGenerated) then
raise badInsertionTypeException;
Check that only allowed insertion-order and approver-type values are passed, by calling
getAvailableInsertions and comparing values.
*/
getAvailableInsertions(applicationIdIn => applicationIdIn,
transactionTypeIn => transactionTypeIn,
transactionIdIn => transactionIdIn,
positionIn => positionIn,
orderTypeIn => insertionIn.order_type,
availableInsertionsOut => availableInsertions);
tempCount := availableInsertions.count;
insertionTypeNotFound := true;
/* Check if insertionIn is a valid insertion in availableInsertions */
for i in 1 .. tempCount loop
if(availableInsertions(i).order_type = insertionIn.order_type and
availableInsertions(i).parameter = insertionIn.parameter and
availableInsertions(i).api_insertion = insertionIn.api_insertion and
availableInsertions(i).authority = insertionIn.authority) then
insertionTypeNotFound := false;
if(insertionTypeNotFound) then
raise badInsertionTypeException;
/* Perform the insertion. */
insertionOrder := ame_engine.getNextInsertionOrder;
insert into ame_temp_insertions(
transaction_id,
application_id,
insertion_order,
order_type,
parameter,
description,
name,
item_class,
item_id,
approver_category,
api_insertion,
authority,
effective_date,
reason) values(
transactionIdIn,
ameApplicationId,
insertionOrder,
insertionIn.order_type,
insertionIn.parameter,
insertionIn.description,
approverIn.name,
approverIn.item_class,
approverIn.item_id,
approverIn.approver_category,
insertionIn.api_insertion,
insertionIn.authority,
sysdate,
ame_approver_deviation_pkg.insertReason
);
/* Cycle the engine to account for changes in the insertions table. */
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
routineNameIn => 'insertApprover',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
when badInsertionTypeException then
ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
transactionIdIn => transactionIdIn,
transactionTypeIdIn => transactionTypeIn);
routineNameIn => 'insertApprover',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'insertApprover',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'insertApprover',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'insertApprover',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'insertApprover',
exceptionNumberIn => sqlcode,
exceptionStringIn => sqlerrm);
end insertApprover;
tempOrderType ame_temp_insertions.order_type%type;
tempParameter ame_temp_insertions.parameter%type;
cursor getAnchorInsertions (parameterIn varchar2) is
(select name
from ame_temp_insertions
where application_id = ame_engine.getAmeApplicationId
and transaction_id = transactionIdIn
and parameter = parameterIn);
cmpParameter ame_temp_insertions.parameter%type;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => false,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );
if approvers(approverIndex).api_insertion = ame_util.apiInsertion then
anchorName := approvers(i).name;
open getAnchorInsertions(cmpParameter);
fetch getAnchorInsertions bulk collect into nameList;
close getAnchorInsertions;
close getAnchorInsertions;
if(approvers(approverIndex).api_insertion = ame_util.oamGenerated or
sourceDescription = ame_util.ruleGeneratedSource or
sourceDescription = ame_util.surrogateSource) then
allowDeletingOamApprovers :=
ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowDeletingOamApprovers);
insert into ame_temp_deletions(
transaction_id,
application_id,
name,
item_class,
item_id,
approver_category,
action_type_id,
group_or_chain_id,
occurrence,
effective_date,
reason) values(
transactionIdIn,
ameApplicationId,
approvers(approverIndex).name,
approvers(approverIndex).item_class,
approvers(approverIndex).item_id,
approvers(approverIndex).approver_category,
approvers(approverIndex).action_type_id,
approvers(approverIndex).group_or_chain_id,
approvers(approverIndex).occurrence,
sysdate,
ame_approver_deviation_pkg.suppressReason
);
ame_engine.updateInsertions(indexIn => i);
delete from ame_temp_insertions
where
application_id = ameApplicationId and
transaction_id = transactionIdIn and
name = approvers(approverIndex).name and
item_class = approvers(approverIndex).item_class and
item_id = approvers(approverIndex).item_id ;
ame_engine.updateTransactionState(isTestTransactionIn => false,
isLocalTransactionIn => false,
fetchConfigVarsIn => true,
fetchOldApproversIn => true,
fetchInsertionsIn => true,
fetchDeletionsIn => true,
fetchAttributeValuesIn => true,
fetchInactiveAttValuesIn => false,
processProductionActionsIn => false,
processProductionRulesIn => false,
updateCurrentApproverListIn => true,
updateOldApproverListIn => true,
processPrioritiesIn => true,
prepareItemDataIn => false,
prepareRuleIdsIn => false,
prepareRuleDescsIn => false,
transactionIdIn => transactionIdIn,
ameApplicationIdIn => null,
fndApplicationIdIn => applicationIdIn,
transactionTypeIdIn => transactionTypeIn );