The following lines contain the word 'select', 'insert', 'update' or 'delete':
select str.parent_position_id
from
per_pos_structure_elements str,
per_pos_structure_versions psv,
per_position_structures pst
where
str.subordinate_position_id = positionIdIn
and str.pos_structure_version_id = psv.pos_structure_version_id
and pst.position_structure_id = psv.position_structure_id
and pst.primary_position_flag = 'Y'
and trunc(sysdate) between psv.date_from and nvl( psv.date_to , sysdate);
select str.parent_position_id
from
per_pos_structure_elements str,
per_pos_structure_versions psv,
per_position_structures pst
where
str.subordinate_position_id = positionIdIn
and str.pos_structure_version_id = psv.pos_structure_version_id
and psv.position_structure_id = pst.position_structure_id
and pst.position_structure_id = posStrIdIn
and trunc(sysdate) between psv.date_from and nvl( psv.date_to , sysdate);
COAInsertee ame_util.approverRecord2;
/* Check for COA 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);
/* Start building the chain from the COA Insertee if defined otherwise from the
non-default starting point or the requestor's supervisor. */
if COAInsertee.name is null then
/* Fetch some of the required attributes. */
startingPointId :=
to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.nonDefStartingPointPosAttr));
/* Check if requestor can self approve. If so, insert the approver as the
only approver, with a status of approved, and return.*/
if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
= ame_util.booleanAttributeTrue)
then
getCatSourceAndAuthority(positionIdIn => requestorId,
categoryOut => tempApprover.approver_category,
sourceOut => tempApprover.source,
hasFinalAuthorityYNOut => tempHasFinalAuthorityYN);
tempApprover.api_insertion := ame_util.oamGenerated;
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;
/* 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 not be needed (similar to supervisory handler). */
loop
/* 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;
tempApprover.api_insertion := ame_util.oamGenerated;