The following lines contain the word 'select', 'insert', 'update' or 'delete':
/* Update hasFinalAuthorityYN as needed. */
if(not tempRuleSatisfied and
hasFinalAuthorityYN = ame_util.booleanTrue) then
hasFinalAuthorityYN := ame_util.booleanFalse;
/* Update source. */
ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
sourceInOut => source);
/* Update category as needed. */
if(category = ame_util.fyiApproverCategory and
approverCategories(i) = ame_util.approvalApproverCategory) then
category := ame_util.approvalApproverCategory;
checkForInsertee boolean;
COAInsertee ame_util.approverRecord2;
/* Check for COA 'firstAuthority' insertions */
ame_engine.getHandlerCOAFirstApprover(itemClassIn => tempApprover.item_class,
itemIdIn => tempApprover.item_id,
actionTypeIdIn => tempApprover.action_type_id,
groupOrChainIdIn => tempApprover.group_or_chain_id,
nameOut => COAInsertee.name,
origSystemOut => COAInsertee.orig_system,
origSystemIdOut => COAInsertee.orig_system_id,
displayNameOut => COAInsertee.display_name,
sourceOut => COAInsertee.source);
if COAInsertee.name is null then
/* Fetch some of the required attributes. */
startingPointId :=
to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));
tempApprover.api_insertion := ame_util.oamGenerated;
tempApprover.name := COAInsertee.name;
tempApprover.orig_system := COAInsertee.orig_system;
tempApprover.orig_system_id := COAInsertee.orig_system_id;
tempApprover.display_name := COAInsertee.display_name;
firstApproverSource := COAInsertee.source;
tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
has enough authority to self-approve. If so, insert the approver as the only approver,
with a status of approved, and return. This can not be done earlier as we need the
parsed job levels
*/
if(COAInsertee.name is null and
startingPointId is null )
then
if (ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
= ame_util.booleanAttributeTrue)
then
getCatSourceAndAuthority(personIdIn => requestorId,
jobLevelIn => tempJobLevel,
supervisorIdIn => tempSupervisorId,
categoryOut => tempApprover.approver_category,
sourceOut => tempApprover.source,
hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
supervisorJobLevelOut => tempSupervisorJobLevel,
nextSupervisorIdOut => tempNextSupervisorId);
tempApprover.api_insertion := ame_util.oamGenerated;
checkForInsertee := false;
/* reassign the value of source in case approver was a firstAuthority insertee */
if firstApproverSource is not null then
tempApprover.source := firstApproverSource;
tempApprover.api_insertion := ame_util.oamGenerated;
The approver is the last approver in the chain. He should get inserted into the
approver List */
tempMemberOrderNumber := tempMemberOrderNumber + 1;
checkForInsertee := true;
The approver was the last approver in the chain. He should get inserted
into the approver List */
tempMemberOrderNumber := tempMemberOrderNumber + 1;
checkForInsertee := true;
the approver is the manager, if yes insert the approver in the chain */
if not managerFound then
managerFound := true;
checkForInsertee := true;
checkForInsertee := true;
/* Check to see if an insertion was done to the approver list. If yes, check for any
COA insertions. NOTE: The same check will have to be done as the last step in
the handler again */
if checkForInsertee then
/* check to see if there is a COA insertion after this approver. If a COA
insertion is found, keep checking till no more COA insertions. The check for
final authority will need to be done again. */
checkForInsertee := false;
/* Initialize COAInsertee approverRecord2 */
COAInsertee := ame_util.emptyApproverRecord2;
/* Check if there are any COAInsertions */
ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
itemClassIn => tempApprover.item_class,
itemIdIn => tempApprover.item_id,
actionTypeIdIn => tempApprover.action_type_id,
groupOrChainIdIn => tempApprover.group_or_chain_id,
occurrenceIn => tempApprover.occurrence,
approvalStatusIn => tempApprover.approval_status,
nameOut => COAInsertee.name,
origSystemOut => COAInsertee.orig_system,
origSystemIdOut => COAInsertee.orig_system_id,
displayNameOut => COAInsertee.display_name,
sourceOut => COAInsertee.source);
if COAInsertee.name is null then
exit;
tempApprover.name := COAInsertee.name;
tempApprover.orig_system := COAInsertee.orig_system;
tempApprover.orig_system_id := COAInsertee.orig_system_id;
tempApprover.display_name := COAInsertee.display_name;
tempApprover.source := COAInsertee.source;
tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
/* Check to make sure that final approver was inserted. */
if checkForInsertee then
/* check to see if there is a COA insertion after this approver. If a COA
insertion is found, keep checking till no more COA insertions. The check for
final authority will need to be done again. */
checkForInsertee := false;
/* Initialize COAInsertee approverRecord2 */
COAInsertee := ame_util.emptyApproverRecord2;
/* Check if there are any COAInsertions */
ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
itemClassIn => tempApprover.item_class,
itemIdIn => tempApprover.item_id,
actionTypeIdIn => tempApprover.action_type_id,
groupOrChainIdIn => tempApprover.group_or_chain_id,
occurrenceIn => tempApprover.occurrence,
approvalStatusIn => tempApprover.approval_status,
nameOut => COAInsertee.name,
origSystemOut => COAInsertee.orig_system,
origSystemIdOut => COAInsertee.orig_system_id,
displayNameOut => COAInsertee.display_name,
sourceOut => COAInsertee.source);
if COAInsertee.name is null then
exit;
tempApprover.name := COAInsertee.name;
tempApprover.orig_system := COAInsertee.orig_system;
tempApprover.orig_system_id := COAInsertee.orig_system_id;
tempApprover.display_name := COAInsertee.display_name;
tempApprover.source := COAInsertee.source;
tempApprover.api_insertion := ame_util.apiAuthorityInsertion;