DBA Data[Home] [Help]

APPS.AME_POSITION_LEVEL_HANDLER dependencies on AME_UTIL

Line 4: approverCategories ame_util.charList;

1: package body ame_position_level_handler as
2: /* $Header: ameeplha.pkb 120.10 2011/05/17 11:39:54 nchinnam ship $ */
3: /* package variables */
4: approverCategories ame_util.charList;
5: parametersCount integer;
6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;

Line 6: parameterNumbers ame_util.idList;

2: /* $Header: ameeplha.pkb 120.10 2011/05/17 11:39:54 nchinnam ship $ */
3: /* package variables */
4: approverCategories ame_util.charList;
5: parametersCount integer;
6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;
9: ruleIds ame_util.idList;
10: ruleSatisfiedYN ame_util.charList;

Line 7: parameters ame_util.stringList;

3: /* package variables */
4: approverCategories ame_util.charList;
5: parametersCount integer;
6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;
9: ruleIds ame_util.idList;
10: ruleSatisfiedYN ame_util.charList;
11: topDogPositionId integer;

Line 8: parameterSigns ame_util.charList;

4: approverCategories ame_util.charList;
5: parametersCount integer;
6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;
9: ruleIds ame_util.idList;
10: ruleSatisfiedYN ame_util.charList;
11: topDogPositionId integer;
12: currentPositionLevel integer;

Line 9: ruleIds ame_util.idList;

5: parametersCount integer;
6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;
9: ruleIds ame_util.idList;
10: ruleSatisfiedYN ame_util.charList;
11: topDogPositionId integer;
12: currentPositionLevel integer;
13: positionStructureId integer := null;

Line 10: ruleSatisfiedYN ame_util.charList;

6: parameterNumbers ame_util.idList;
7: parameters ame_util.stringList;
8: parameterSigns ame_util.charList;
9: ruleIds ame_util.idList;
10: ruleSatisfiedYN ame_util.charList;
11: topDogPositionId integer;
12: currentPositionLevel integer;
13: positionStructureId integer := null;
14: /* forward declarations */

Line 55: approverDescription ame_util.longStringType;

51: and str.pos_structure_version_id = psv.pos_structure_version_id
52: and psv.position_structure_id = pst.position_structure_id
53: and pst.position_structure_id = posStrIdIn
54: and trunc(sysdate) between psv.date_from and nvl( psv.date_to , sysdate);
55: approverDescription ame_util.longStringType;
56: approverName wf_roles.name%type;
57: errorCode integer;
58: errorMessage ame_util.longestStringType;
59: nextPositionId integer;

Line 58: errorMessage ame_util.longestStringType;

54: and trunc(sysdate) between psv.date_from and nvl( psv.date_to , sysdate);
55: approverDescription ame_util.longStringType;
56: approverName wf_roles.name%type;
57: errorCode integer;
58: errorMessage ame_util.longestStringType;
59: nextPositionId integer;
60: posStrId integer;
61: nullIdException exception;
62: begin

Line 84: origSystemIn => ame_util.posOrigSystem,

80: exception
81: when nullIdException then
82: errorCode := -20110;
83: approverName := ame_approver_type_pkg.getWfRolesName(
84: origSystemIn => ame_util.posOrigSystem,
85: origSystemIdIn => positionIdIn);
86: approverDescription :=
87: ame_approver_type_pkg.getApproverDescription(nameIn => approverName);
88: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',

Line 88: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',

84: origSystemIn => ame_util.posOrigSystem,
85: origSystemIdIn => positionIdIn);
86: approverDescription :=
87: ame_approver_type_pkg.getApproverDescription(nameIn => approverName);
88: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
89: messageNameIn => 'AME_400407_NO_PARENT_POSITION',
90: tokenNameOneIn => 'POSITION',
91: tokenValueOneIn => substrb(approverDescription, 1,70));
92: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

Line 92: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

88: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
89: messageNameIn => 'AME_400407_NO_PARENT_POSITION',
90: tokenNameOneIn => 'POSITION',
91: tokenValueOneIn => substrb(approverDescription, 1,70));
92: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
93: routineNameIn => 'getNextPosition',
94: exceptionNumberIn => errorCode,
95: exceptionStringIn => errorMessage);
96: raise_application_error(errorCode,

Line 100: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

96: raise_application_error(errorCode,
97: errorMessage);
98: return(null);
99: when others then
100: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
101: routineNameIn => 'getNextPosition',
102: exceptionNumberIn => sqlcode,
103: exceptionStringIn => sqlerrm);
104: raise;

Line 111: ame_engine.getHeaderAttValue2(attributeNameIn =>ame_util.nonDefPosStructureAttr);

107: --
108: function getPositionStructureId return integer as
109: begin
110: positionStructureId :=
111: ame_engine.getHeaderAttValue2(attributeNameIn =>ame_util.nonDefPosStructureAttr);
112: return positionStructureId;
113: end getPositionStructureId;
114: /* Procedures */
115: procedure getCatSourceAndAuthority(positionIdIn in integer,

Line 119: category ame_util.charType;

115: procedure getCatSourceAndAuthority(positionIdIn in integer,
116: categoryOut out nocopy varchar2,
117: sourceOut out nocopy varchar2,
118: hasFinalAuthorityYNOut out nocopy varchar2) as
119: category ame_util.charType;
120: hasFinalAuthorityYN ame_util.charType;
121: source ame_util.longStringType;
122: tempRuleRequiresApprover boolean;
123: tempRuleSatisfied boolean;

Line 120: hasFinalAuthorityYN ame_util.charType;

116: categoryOut out nocopy varchar2,
117: sourceOut out nocopy varchar2,
118: hasFinalAuthorityYNOut out nocopy varchar2) as
119: category ame_util.charType;
120: hasFinalAuthorityYN ame_util.charType;
121: source ame_util.longStringType;
122: tempRuleRequiresApprover boolean;
123: tempRuleSatisfied boolean;
124: begin

Line 121: source ame_util.longStringType;

117: sourceOut out nocopy varchar2,
118: hasFinalAuthorityYNOut out nocopy varchar2) as
119: category ame_util.charType;
120: hasFinalAuthorityYN ame_util.charType;
121: source ame_util.longStringType;
122: tempRuleRequiresApprover boolean;
123: tempRuleSatisfied boolean;
124: begin
125: /*

Line 131: 3. The source value is an ame_util.fieldDelimiter-delimited list of the IDs

127: A. The rule's parameter number does not exceed the currentPositionLevel.
128: B. The approver is the top dog and parameter number does exceed
129: the currentPositionLevel
130: 2. An approver has final authority if the approver satisfies all the rules.
131: 3. The source value is an ame_util.fieldDelimiter-delimited list of the IDs
132: of the rules that require an approver. This procedure builds up the
133: source value according to the following logic:
134: A. If a rule has not yet been satisfied, the rule requires the input
135: approver.

Line 136: 4. An approver's category is ame_util.approvalApproverCategory if any of the

132: of the rules that require an approver. This procedure builds up the
133: source value according to the following logic:
134: A. If a rule has not yet been satisfied, the rule requires the input
135: approver.
136: 4. An approver's category is ame_util.approvalApproverCategory if any of the
137: rule usages requiring the approver is of that category; otherwise the
138: approver's category is ame_util.fyiApproverCategory.
139: */
140: if currentPositionLevel is null then

Line 138: approver's category is ame_util.fyiApproverCategory.

134: A. If a rule has not yet been satisfied, the rule requires the input
135: approver.
136: 4. An approver's category is ame_util.approvalApproverCategory if any of the
137: rule usages requiring the approver is of that category; otherwise the
138: approver's category is ame_util.fyiApproverCategory.
139: */
140: if currentPositionLevel is null then
141: currentPositionLevel := 1;
142: else

Line 145: category := ame_util.fyiApproverCategory;

141: currentPositionLevel := 1;
142: else
143: currentPositionLevel := currentPositionLevel + 1;
144: end if;
145: category := ame_util.fyiApproverCategory;
146: hasFinalAuthorityYN := ame_util.booleanTrue;
147: for i in 1 .. parametersCount loop
148: /* if the rule is satisfied already no need to process again. */
149: if(ruleSatisfiedYN(i) = ame_util.booleanFalse) then

Line 146: hasFinalAuthorityYN := ame_util.booleanTrue;

142: else
143: currentPositionLevel := currentPositionLevel + 1;
144: end if;
145: category := ame_util.fyiApproverCategory;
146: hasFinalAuthorityYN := ame_util.booleanTrue;
147: for i in 1 .. parametersCount loop
148: /* if the rule is satisfied already no need to process again. */
149: if(ruleSatisfiedYN(i) = ame_util.booleanFalse) then
150: --

Line 149: if(ruleSatisfiedYN(i) = ame_util.booleanFalse) then

145: category := ame_util.fyiApproverCategory;
146: hasFinalAuthorityYN := ame_util.booleanTrue;
147: for i in 1 .. parametersCount loop
148: /* if the rule is satisfied already no need to process again. */
149: if(ruleSatisfiedYN(i) = ame_util.booleanFalse) then
150: --
151: -- Determine whether the approver satisfies the current rule.
152: --
153: if(positionIdIn = topDogPositionId) then

Line 165: hasFinalAuthorityYN = ame_util.booleanTrue) then

161: --
162: -- Update hasFinalAuthorityYN as needed.
163: --
164: if(not tempRuleSatisfied and
165: hasFinalAuthorityYN = ame_util.booleanTrue) then
166: hasFinalAuthorityYN := ame_util.booleanFalse;
167: end if;
168: --
169: -- Determine whether the current rule requires the approver.

Line 166: hasFinalAuthorityYN := ame_util.booleanFalse;

162: -- Update hasFinalAuthorityYN as needed.
163: --
164: if(not tempRuleSatisfied and
165: hasFinalAuthorityYN = ame_util.booleanTrue) then
166: hasFinalAuthorityYN := ame_util.booleanFalse;
167: end if;
168: --
169: -- Determine whether the current rule requires the approver.
170: --

Line 172: ruleSatisfiedYN(i) := ame_util.booleanTrue;

168: --
169: -- Determine whether the current rule requires the approver.
170: --
171: if(tempRuleSatisfied) then
172: ruleSatisfiedYN(i) := ame_util.booleanTrue;
173: end if;
174: --
175: -- Update source. */
176: --

Line 177: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),

173: end if;
174: --
175: -- Update source. */
176: --
177: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
178: sourceInOut => source);
179: --
180: -- Update category as needed.
181: --

Line 182: if(category = ame_util.fyiApproverCategory and

178: sourceInOut => source);
179: --
180: -- Update category as needed.
181: --
182: if(category = ame_util.fyiApproverCategory and
183: approverCategories(i) = ame_util.approvalApproverCategory) then
184: category := ame_util.approvalApproverCategory;
185: end if;
186: end if;

Line 183: approverCategories(i) = ame_util.approvalApproverCategory) then

179: --
180: -- Update category as needed.
181: --
182: if(category = ame_util.fyiApproverCategory and
183: approverCategories(i) = ame_util.approvalApproverCategory) then
184: category := ame_util.approvalApproverCategory;
185: end if;
186: end if;
187: end loop;

Line 184: category := ame_util.approvalApproverCategory;

180: -- Update category as needed.
181: --
182: if(category = ame_util.fyiApproverCategory and
183: approverCategories(i) = ame_util.approvalApproverCategory) then
184: category := ame_util.approvalApproverCategory;
185: end if;
186: end if;
187: end loop;
188: categoryOut := category;

Line 196: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

192: when others then
193: categoryOut := null;
194: hasFinalAuthorityYNOut := null;
195: sourceOut := null;
196: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
197: routineNameIn => 'getCatSourceAndAuthority',
198: exceptionNumberIn => sqlcode,
199: exceptionStringIn => sqlerrm);
200: raise;

Line 203: COAInsertee ame_util.approverRecord2;

199: exceptionStringIn => sqlerrm);
200: raise;
201: end getCatSourceAndAuthority;
202: procedure handler as
203: COAInsertee ame_util.approverRecord2;
204: errorCode integer;
205: errorMessage ame_util.longestStringType;
206: finalAuthorityFound boolean;
207: firstApproverSource ame_util.longStringType;

Line 205: errorMessage ame_util.longestStringType;

201: end getCatSourceAndAuthority;
202: procedure handler as
203: COAInsertee ame_util.approverRecord2;
204: errorCode integer;
205: errorMessage ame_util.longestStringType;
206: finalAuthorityFound boolean;
207: firstApproverSource ame_util.longStringType;
208: nullFirstIdException exception;
209: requestorId integer;

Line 207: firstApproverSource ame_util.longStringType;

203: COAInsertee ame_util.approverRecord2;
204: errorCode integer;
205: errorMessage ame_util.longestStringType;
206: finalAuthorityFound boolean;
207: firstApproverSource ame_util.longStringType;
208: nullFirstIdException exception;
209: requestorId integer;
210: startingPointId integer;
211: tempApprover ame_util.approverRecord2;

Line 211: tempApprover ame_util.approverRecord2;

207: firstApproverSource ame_util.longStringType;
208: nullFirstIdException exception;
209: requestorId integer;
210: startingPointId integer;
211: tempApprover ame_util.approverRecord2;
212: tempHasFinalAuthorityYN ame_util.charType;
213: tempMemberOrderNumber integer;
214: topDogRequestorException exception;
215: votingRegimeType ame_util.stringType;

Line 212: tempHasFinalAuthorityYN ame_util.charType;

208: nullFirstIdException exception;
209: requestorId integer;
210: startingPointId integer;
211: tempApprover ame_util.approverRecord2;
212: tempHasFinalAuthorityYN ame_util.charType;
213: tempMemberOrderNumber integer;
214: topDogRequestorException exception;
215: votingRegimeType ame_util.stringType;
216: firstAuthInsExists boolean := false;

Line 215: votingRegimeType ame_util.stringType;

211: tempApprover ame_util.approverRecord2;
212: tempHasFinalAuthorityYN ame_util.charType;
213: tempMemberOrderNumber integer;
214: topDogRequestorException exception;
215: votingRegimeType ame_util.stringType;
216: firstAuthInsExists boolean := false;
217: coaInsAuthForward boolean := false;
218: l_error_code number;
219: begin

Line 232: topDogPositionId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topPositionIdAttribute));

228: ame_engine.getHandlerRules2(ruleIdsOut => ruleIds,
229: approverCategoriesOut => approverCategories,
230: parametersOut => parameters);
231: /* Populate some of the package variables. */
232: topDogPositionId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topPositionIdAttribute));
233: parametersCount := parameters.count;
234: parseAndSortRules;
235: for i in 1 .. ruleIds.count loop
236: ruleSatisfiedYN(i) := ame_util.booleanFalse;

Line 236: ruleSatisfiedYN(i) := ame_util.booleanFalse;

232: topDogPositionId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topPositionIdAttribute));
233: parametersCount := parameters.count;
234: parseAndSortRules;
235: for i in 1 .. ruleIds.count loop
236: ruleSatisfiedYN(i) := ame_util.booleanFalse;
237: end loop;
238: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
239: tempApprover.orig_system := ame_util.posOrigSystem;
240: tempApprover.authority := ame_util.authorityApprover;

Line 239: tempApprover.orig_system := ame_util.posOrigSystem;

235: for i in 1 .. ruleIds.count loop
236: ruleSatisfiedYN(i) := ame_util.booleanFalse;
237: end loop;
238: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
239: tempApprover.orig_system := ame_util.posOrigSystem;
240: tempApprover.authority := ame_util.authorityApprover;
241: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
242: tempApprover.item_class := ame_engine.getHandlerItemClassName;
243: tempApprover.item_id := ame_engine.getHandlerItemId;

Line 240: tempApprover.authority := ame_util.authorityApprover;

236: ruleSatisfiedYN(i) := ame_util.booleanFalse;
237: end loop;
238: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
239: tempApprover.orig_system := ame_util.posOrigSystem;
240: tempApprover.authority := ame_util.authorityApprover;
241: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
242: tempApprover.item_class := ame_engine.getHandlerItemClassName;
243: tempApprover.item_id := ame_engine.getHandlerItemId;
244: tempApprover.group_or_chain_id := 1;

Line 268: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.nonDefStartingPointPosAttr));

264: non-default starting point or the requestor's supervisor. */
265: if COAInsertee.name is null then
266: /* Fetch some of the required attributes. */
267: startingPointId :=
268: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.nonDefStartingPointPosAttr));
269: if(startingPointId is null) then
270: requestorId :=
271: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionReqPositionAttr));
272: if (requestorId is null) then

Line 271: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionReqPositionAttr));

267: startingPointId :=
268: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.nonDefStartingPointPosAttr));
269: if(startingPointId is null) then
270: requestorId :=
271: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionReqPositionAttr));
272: if (requestorId is null) then
273: raise nullFirstIdException;
274: end if;
275: if topDogPositionId = requestorId then

Line 279: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)

275: if topDogPositionId = requestorId then
276: tempApprover.orig_system_id := requestorId;
277: /* Check if requestor can self approve. If so, insert the approver as the
278: only approver, with a status of approved, and return.*/
279: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
280: = ame_util.booleanAttributeTrue)
281: then
282: getCatSourceAndAuthority(positionIdIn => requestorId,
283: categoryOut => tempApprover.approver_category,

Line 280: = ame_util.booleanAttributeTrue)

276: tempApprover.orig_system_id := requestorId;
277: /* Check if requestor can self approve. If so, insert the approver as the
278: only approver, with a status of approved, and return.*/
279: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
280: = ame_util.booleanAttributeTrue)
281: then
282: getCatSourceAndAuthority(positionIdIn => requestorId,
283: categoryOut => tempApprover.approver_category,
284: sourceOut => tempApprover.source,

Line 286: tempApprover.api_insertion := ame_util.oamGenerated;

282: getCatSourceAndAuthority(positionIdIn => requestorId,
283: categoryOut => tempApprover.approver_category,
284: sourceOut => tempApprover.source,
285: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN);
286: tempApprover.api_insertion := ame_util.oamGenerated;
287: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
288: origSystemIn => ame_util.posOrigSystem,
289: origSystemIdIn => requestorId,
290: nameOut => tempApprover.name,

Line 288: origSystemIn => ame_util.posOrigSystem,

284: sourceOut => tempApprover.source,
285: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN);
286: tempApprover.api_insertion := ame_util.oamGenerated;
287: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
288: origSystemIn => ame_util.posOrigSystem,
289: origSystemIdIn => requestorId,
290: nameOut => tempApprover.name,
291: displayNameOut => tempApprover.display_name);
292: tempApprover.occurrence := ame_engine.getHandlerOccurrence(

Line 299: tempApprover.approval_status := ame_util.approvedStatus;

295: itemIdIn => tempApprover.item_id,
296: actionTypeIdIn => tempApprover.action_type_id,
297: groupOrChainIdIn => tempApprover.group_or_chain_id);
298: tempApprover.member_order_number := 1;
299: tempApprover.approval_status := ame_util.approvedStatus;
300: ame_engine.addApprover(approverIn => tempApprover);
301: return;
302: else
303: /* The requestor is the top position but he can not auto approve.

Line 316: tempApprover.api_insertion := ame_util.oamGenerated;

312: tempApprover.orig_system_id := getNextPosition(positionIdIn => requestorId);
313: else
314: tempApprover.orig_system_id := startingPointId;
315: end if;
316: tempApprover.api_insertion := ame_util.oamGenerated;
317: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,
318: origSystemIdIn => tempApprover.orig_system_id,
319: nameOut => tempApprover.name,
320: displayNameOut => tempApprover.display_name);

Line 317: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,

313: else
314: tempApprover.orig_system_id := startingPointId;
315: end if;
316: tempApprover.api_insertion := ame_util.oamGenerated;
317: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,
318: origSystemIdIn => tempApprover.orig_system_id,
319: nameOut => tempApprover.name,
320: displayNameOut => tempApprover.display_name);
321: else

Line 328: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;

324: tempApprover.orig_system := COAInsertee.orig_system;
325: tempApprover.orig_system_id := COAInsertee.orig_system_id;
326: tempApprover.display_name := COAInsertee.display_name;
327: firstApproverSource := COAInsertee.source;
328: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
329: end if;
330: /* Build the chain. */
331: currentPositionLevel := 0;
332: tempMemberOrderNumber := 0; /* pre-increment */

Line 350: if(votingRegimeType = ame_util.serializedVoting) then

346: itemIdIn => tempApprover.item_id,
347: actionTypeIdIn => tempApprover.action_type_id,
348: groupOrChainIdIn => tempApprover.group_or_chain_id);
349: tempMemberOrderNumber := tempMemberOrderNumber + 1;
350: if(votingRegimeType = ame_util.serializedVoting) then
351: tempApprover.member_order_number := tempMemberOrderNumber;
352: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
353: tempApprover.member_order_number := 1;
354: end if;

Line 352: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

348: groupOrChainIdIn => tempApprover.group_or_chain_id);
349: tempMemberOrderNumber := tempMemberOrderNumber + 1;
350: if(votingRegimeType = ame_util.serializedVoting) then
351: tempApprover.member_order_number := tempMemberOrderNumber;
352: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
353: tempApprover.member_order_number := 1;
354: end if;
355: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
356: /* The engine will set tempApprover.approver_order_number; leave it null here. */

Line 363: COAInsertee := ame_util.emptyApproverRecord2;

359: insertion is found, keep checking till no more COA insertions. The check
360: for final authority will not be needed (similar to supervisory handler). */
361: loop
362: /* Initialize COAInsertee approverRecord2 */
363: COAInsertee := ame_util.emptyApproverRecord2;
364: /* Check if there are any COAInsertions */
365: ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
366: itemClassIn => tempApprover.item_class,
367: itemIdIn => tempApprover.item_id,

Line 390: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;

386: categoryOut => tempApprover.approver_category,
387: sourceOut => tempApprover.source,
388: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN);
389: tempApprover.source := COAInsertee.source;
390: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
391: tempMemberOrderNumber := tempMemberOrderNumber + 1;
392: if(votingRegimeType = ame_util.serializedVoting) then
393: tempApprover.member_order_number := tempMemberOrderNumber;
394: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

Line 392: if(votingRegimeType = ame_util.serializedVoting) then

388: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN);
389: tempApprover.source := COAInsertee.source;
390: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
391: tempMemberOrderNumber := tempMemberOrderNumber + 1;
392: if(votingRegimeType = ame_util.serializedVoting) then
393: tempApprover.member_order_number := tempMemberOrderNumber;
394: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
395: tempApprover.member_order_number := 1;
396: end if;

Line 394: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

390: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
391: tempMemberOrderNumber := tempMemberOrderNumber + 1;
392: if(votingRegimeType = ame_util.serializedVoting) then
393: tempApprover.member_order_number := tempMemberOrderNumber;
394: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
395: tempApprover.member_order_number := 1;
396: end if;
397: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,
398: itemClassIn => tempApprover.item_class,

Line 408: if(tempHasFinalAuthorityYN = ame_util.booleanTrue ) then

404: ame_engine.addApprover(approverIn => tempApprover);
405: end if;
406: end loop;
407: /* Decide whether to end the chain. */
408: if(tempHasFinalAuthorityYN = ame_util.booleanTrue ) then
409: exit;
410: end if;
411: tempApprover.orig_system_id := getNextPosition(positionIdIn =>tempApprover.orig_system_id );
412: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,

Line 412: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,

408: if(tempHasFinalAuthorityYN = ame_util.booleanTrue ) then
409: exit;
410: end if;
411: tempApprover.orig_system_id := getNextPosition(positionIdIn =>tempApprover.orig_system_id );
412: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.posOrigSystem,
413: origSystemIdIn => tempApprover.orig_system_id,
414: nameOut => tempApprover.name,
415: displayNameOut => tempApprover.display_name);
416: if firstAuthInsExists then

Line 422: tempApprover.api_insertion := ame_util.oamGenerated;

418: end if;
419: if coaInsAuthForward then
420: ame_engine.setDeviationReasonDate(ame_approver_deviation_pkg.forwarHandlerAuthInsReason,null);
421: end if;
422: tempApprover.api_insertion := ame_util.oamGenerated;
423: end loop;
424: exception
425: when nullFirstIdException then
426: errorCode := -20107;

Line 427: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',

423: end loop;
424: exception
425: when nullFirstIdException then
426: errorCode := -20107;
427: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
428: messageNameIn => 'AME_400408_HAN_NO_TRANS_POS_ID');
429: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
430: routineNameIn => 'handler',
431: exceptionNumberIn => errorCode,

Line 429: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

425: when nullFirstIdException then
426: errorCode := -20107;
427: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
428: messageNameIn => 'AME_400408_HAN_NO_TRANS_POS_ID');
429: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
430: routineNameIn => 'handler',
431: exceptionNumberIn => errorCode,
432: exceptionStringIn => errorMessage);
433: raise_application_error(errorCode,

Line 437: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',

433: raise_application_error(errorCode,
434: errorMessage);
435: when topDogRequestorException then
436: errorCode := -20111;
437: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
438: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
439: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
440: routineNameIn => 'handler',
441: exceptionNumberIn => errorCode,

Line 439: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

435: when topDogRequestorException then
436: errorCode := -20111;
437: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
438: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
439: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
440: routineNameIn => 'handler',
441: exceptionNumberIn => errorCode,
442: exceptionStringIn => errorMessage);
443: raise_application_error(errorCode,

Line 446: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

442: exceptionStringIn => errorMessage);
443: raise_application_error(errorCode,
444: errorMessage);
445: when others then
446: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
447: routineNameIn => 'handler',
448: exceptionNumberIn => sqlcode,
449: exceptionStringIn => sqlerrm);
450: l_error_code := sqlcode;

Line 452: errorMessage := ame_util.getMessage(applicationShortNameIn =>'PER',

448: exceptionNumberIn => sqlcode,
449: exceptionStringIn => sqlerrm);
450: l_error_code := sqlcode;
451: if l_error_code = -20213 then
452: errorMessage := ame_util.getMessage(applicationShortNameIn =>'PER',
453: messageNameIn => 'AME_400834_INV_HANDLR_APR',
454: tokenNameOneIn => 'ACTION_TYPE_NAME',
455: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
456: tokenNameTwoIn => 'ORIG_SYSTEM',

Line 457: tokenValueTwoIn => ame_util.posOrigSystem,

453: messageNameIn => 'AME_400834_INV_HANDLR_APR',
454: tokenNameOneIn => 'ACTION_TYPE_NAME',
455: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
456: tokenNameTwoIn => 'ORIG_SYSTEM',
457: tokenValueTwoIn => ame_util.posOrigSystem,
458: tokenNameThreeIn => 'ORIG_SYSEM_ID',
459: tokenValueThreeIn => tempApprover.orig_system_id);
460: raise_application_error(errorCode,errorMessage);
461: end if;

Line 467: errorMessage ame_util.longestStringType;

463: end handler;
464: procedure parseAndSortRules as
465: badParameterException exception;
466: errorCode integer;
467: errorMessage ame_util.longestStringType;
468: signPosition integer;
469: tempCategory ame_util.charType;
470: tempLength integer;
471: tempNumber integer;

Line 469: tempCategory ame_util.charType;

465: badParameterException exception;
466: errorCode integer;
467: errorMessage ame_util.longestStringType;
468: signPosition integer;
469: tempCategory ame_util.charType;
470: tempLength integer;
471: tempNumber integer;
472: tempRuleId integer;
473: tempSign ame_util.charType;

Line 473: tempSign ame_util.charType;

469: tempCategory ame_util.charType;
470: tempLength integer;
471: tempNumber integer;
472: tempRuleId integer;
473: tempSign ame_util.charType;
474: tempParameter ame_util.parameterType;
475: upperLimit integer;
476: begin
477: /* Parse. */

Line 474: tempParameter ame_util.parameterType;

470: tempLength integer;
471: tempNumber integer;
472: tempRuleId integer;
473: tempSign ame_util.charType;
474: tempParameter ame_util.parameterType;
475: upperLimit integer;
476: begin
477: /* Parse. */
478: for i in 1 .. parametersCount loop

Line 526: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',

522: end loop;
523: exception
524: when badParameterException then
525: errorCode := -20001;
526: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
527: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
528: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
529: routineNameIn => 'parseAndSortRules',
530: exceptionNumberIn => errorCode,

Line 528: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

524: when badParameterException then
525: errorCode := -20001;
526: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
527: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
528: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
529: routineNameIn => 'parseAndSortRules',
530: exceptionNumberIn => errorCode,
531: exceptionStringIn => errorMessage);
532: raise_application_error(errorCode,

Line 535: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',

531: exceptionStringIn => errorMessage);
532: raise_application_error(errorCode,
533: errorMessage);
534: when others then
535: ame_util.runtimeException(packageNameIn => 'ame_position_level_handler',
536: routineNameIn => 'parseAndSortRules',
537: exceptionNumberIn => sqlcode,
538: exceptionStringIn => sqlerrm);
539: raise;