DBA Data[Home] [Help]

APPS.AME_ABSOLUTE_JOB_LEVEL_HANDLER dependencies on AME_UTIL

Line 4: approverCategories ame_util.charList;

1: package body ame_absolute_job_level_handler as
2: /* $Header: ameeajha.pkb 120.7 2011/05/17 11:42:13 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: ameeajha.pkb 120.7 2011/05/17 11:42:13 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: topDogFound boolean;

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: topDogFound boolean;
12: topDogPersonId 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: topDogFound boolean;
12: topDogPersonId integer;
13: /* forward declarations */

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: topDogFound boolean;
12: topDogPersonId integer;
13: /* forward declarations */
14: /*

Line 37: errorMessage ame_util.longestStringType;

33: procedure getJobLevelAndSupervisor(personIdIn in integer,
34: jobLevelOut out nocopy integer,
35: supervisorIdOut out nocopy integer) as
36: errorCode integer;
37: errorMessage ame_util.longestStringType;
38: jobLevelException exception;
39: personDisplayName ame_util.longStringType;
40: begin
41: select

Line 39: personDisplayName ame_util.longStringType;

35: supervisorIdOut out nocopy integer) as
36: errorCode integer;
37: errorMessage ame_util.longestStringType;
38: jobLevelException exception;
39: personDisplayName ame_util.longStringType;
40: begin
41: select
42: nvl(per_jobs.approval_authority, 0),
43: per_all_assignments_f.supervisor_id

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

65: exception
66: when jobLevelException then
67: errorCode := -20251;
68: errorMessage :=
69: ame_util.getMessage(applicationShortNameIn => 'PER',
70: messageNameIn => 'AME_400448_AJHA_JOB_NOT_ASSD');
71: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
72: routineNameIn => 'getJobLevelAndSupervisor',
73: exceptionNumberIn => errorCode,

Line 71: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

67: errorCode := -20251;
68: errorMessage :=
69: ame_util.getMessage(applicationShortNameIn => 'PER',
70: messageNameIn => 'AME_400448_AJHA_JOB_NOT_ASSD');
71: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
72: routineNameIn => 'getJobLevelAndSupervisor',
73: exceptionNumberIn => errorCode,
74: exceptionStringIn => errorMessage);
75: raise_application_error(errorCode,

Line 79: origSystemIn => ame_util.perOrigSystem,

75: raise_application_error(errorCode,
76: errorMessage);
77: when no_data_found then
78: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
79: origSystemIn => ame_util.perOrigSystem,
80: origSystemIdIn => personIdIn );
81: errorCode := -20204;
82: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
83: messageNameIn => 'AME_400297_HAN_LACK_SPVR',

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

78: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
79: origSystemIn => ame_util.perOrigSystem,
80: origSystemIdIn => personIdIn );
81: errorCode := -20204;
82: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
83: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
84: tokenNameOneIn => 'FIRST_NAME',
85: tokenValueOneIn => personDisplayName,
86: tokenNameTwoIn => 'LAST_NAME',

Line 90: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

86: tokenNameTwoIn => 'LAST_NAME',
87: tokenValueTwoIn => null ,
88: tokenNameThreeIn => 'OTHER_NAME',
89: tokenValueThreeIn => null );
90: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
91: routineNameIn => 'getJobLevelAndSupervisor',
92: exceptionNumberIn => errorCode,
93: exceptionStringIn => errorMessage);
94: raise_application_error(errorCode,

Line 97: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

93: exceptionStringIn => errorMessage);
94: raise_application_error(errorCode,
95: errorMessage);
96: when others then
97: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
98: routineNameIn => 'getJobLevelAndSupervisor',
99: exceptionNumberIn => sqlcode,
100: exceptionStringIn => sqlerrm);
101: raise;

Line 111: category ame_util.charType;

107: sourceOut out nocopy varchar2,
108: hasFinalAuthorityYNOut out nocopy varchar2,
109: supervisorJobLevelOut out nocopy integer,
110: nextSupervisorIdOut out nocopy integer) as
111: category ame_util.charType;
112: errorCode integer;
113: errorMessage ame_util.longestStringType;
114: hasFinalAuthorityYN ame_util.charType;
115: noSupervisorException exception;

Line 113: errorMessage ame_util.longestStringType;

109: supervisorJobLevelOut out nocopy integer,
110: nextSupervisorIdOut out nocopy integer) as
111: category ame_util.charType;
112: errorCode integer;
113: errorMessage ame_util.longestStringType;
114: hasFinalAuthorityYN ame_util.charType;
115: noSupervisorException exception;
116: personDisplayName ame_util.longStringType;
117: source ame_util.longStringType;

Line 114: hasFinalAuthorityYN ame_util.charType;

110: nextSupervisorIdOut out nocopy integer) as
111: category ame_util.charType;
112: errorCode integer;
113: errorMessage ame_util.longestStringType;
114: hasFinalAuthorityYN ame_util.charType;
115: noSupervisorException exception;
116: personDisplayName ame_util.longStringType;
117: source ame_util.longStringType;
118: supervisorJobLevel integer;

Line 116: personDisplayName ame_util.longStringType;

112: errorCode integer;
113: errorMessage ame_util.longestStringType;
114: hasFinalAuthorityYN ame_util.charType;
115: noSupervisorException exception;
116: personDisplayName ame_util.longStringType;
117: source ame_util.longStringType;
118: supervisorJobLevel integer;
119: tempRuleRequiresApprover boolean;
120: tempRuleSatisfied boolean;

Line 117: source ame_util.longStringType;

113: errorMessage ame_util.longestStringType;
114: hasFinalAuthorityYN ame_util.charType;
115: noSupervisorException exception;
116: personDisplayName ame_util.longStringType;
117: source ame_util.longStringType;
118: supervisorJobLevel integer;
119: tempRuleRequiresApprover boolean;
120: tempRuleSatisfied boolean;
121: begin

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

139: B. Otherwise, the rule requires the input approver only if the approver
140: does <> satisfy the rule. (This would happen in the perverse case
141: that an approver satisfies a rule, but their supervisor has a lower
142: job level that does not satisfy the rule.)
143: 4. An approver's category is ame_util.approvalApproverCategory if any of the
144: rule usages requiring the approver is of that category; otherwise the
145: approver's category is ame_util.fyiApproverCategory.
146: */
147: category := ame_util.fyiApproverCategory;

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

141: that an approver satisfies a rule, but their supervisor has a lower
142: job level that does not satisfy the rule.)
143: 4. An approver's category is ame_util.approvalApproverCategory if any of the
144: rule usages requiring the approver is of that category; otherwise the
145: approver's category is ame_util.fyiApproverCategory.
146: */
147: category := ame_util.fyiApproverCategory;
148: hasFinalAuthorityYN := ame_util.booleanTrue;
149: for i in 1 .. parametersCount loop

Line 147: category := ame_util.fyiApproverCategory;

143: 4. An approver's category is ame_util.approvalApproverCategory if any of the
144: rule usages requiring the approver is of that category; otherwise the
145: approver's category is ame_util.fyiApproverCategory.
146: */
147: category := ame_util.fyiApproverCategory;
148: hasFinalAuthorityYN := ame_util.booleanTrue;
149: for i in 1 .. parametersCount loop
150: if ruleSatisfiedYN(i) = ame_util.booleanFalse then
151: /* Determine whether the approver satisfies the current rule. */

Line 148: hasFinalAuthorityYN := ame_util.booleanTrue;

144: rule usages requiring the approver is of that category; otherwise the
145: approver's category is ame_util.fyiApproverCategory.
146: */
147: category := ame_util.fyiApproverCategory;
148: hasFinalAuthorityYN := ame_util.booleanTrue;
149: for i in 1 .. parametersCount loop
150: if ruleSatisfiedYN(i) = ame_util.booleanFalse then
151: /* Determine whether the approver satisfies the current rule. */
152: if(personIdIn = topDogPersonId) then

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

146: */
147: category := ame_util.fyiApproverCategory;
148: hasFinalAuthorityYN := ame_util.booleanTrue;
149: for i in 1 .. parametersCount loop
150: if ruleSatisfiedYN(i) = ame_util.booleanFalse then
151: /* Determine whether the approver satisfies the current rule. */
152: if(personIdIn = topDogPersonId) then
153: tempRuleSatisfied := true;
154: topDogFound := true;

Line 181: hasFinalAuthorityYN = ame_util.booleanTrue) then

177: end if;
178: end if;
179: /* Update hasFinalAuthorityYN as needed. */
180: if(not tempRuleSatisfied and
181: hasFinalAuthorityYN = ame_util.booleanTrue) then
182: hasFinalAuthorityYN := ame_util.booleanFalse;
183: end if;
184: /* Determine whether the current rule requires the approver. */
185: tempRuleRequiresApprover := false;

Line 182: hasFinalAuthorityYN := ame_util.booleanFalse;

178: end if;
179: /* Update hasFinalAuthorityYN as needed. */
180: if(not tempRuleSatisfied and
181: hasFinalAuthorityYN = ame_util.booleanTrue) then
182: hasFinalAuthorityYN := ame_util.booleanFalse;
183: end if;
184: /* Determine whether the current rule requires the approver. */
185: tempRuleRequiresApprover := false;
186: if(ruleSatisfiedYN(i) = ame_util.booleanTrue) then

Line 186: if(ruleSatisfiedYN(i) = ame_util.booleanTrue) then

182: hasFinalAuthorityYN := ame_util.booleanFalse;
183: end if;
184: /* Determine whether the current rule requires the approver. */
185: tempRuleRequiresApprover := false;
186: if(ruleSatisfiedYN(i) = ame_util.booleanTrue) then
187: if(not tempRuleSatisfied) then
188: tempRuleRequiresApprover := true;
189: end if;
190: else

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

189: end if;
190: else
191: tempRuleRequiresApprover := true;
192: if(tempRuleSatisfied) then
193: ruleSatisfiedYN(i) := ame_util.booleanTrue;
194: end if;
195: end if;
196: if(tempRuleRequiresApprover)
197: then

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

195: end if;
196: if(tempRuleRequiresApprover)
197: then
198: /* Update source. */
199: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
200: sourceInOut => source);
201: /* Update category as needed. */
202: if(category = ame_util.fyiApproverCategory and
203: approverCategories(i) = ame_util.approvalApproverCategory) then

Line 202: if(category = ame_util.fyiApproverCategory and

198: /* Update source. */
199: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
200: sourceInOut => source);
201: /* Update category as needed. */
202: if(category = ame_util.fyiApproverCategory and
203: approverCategories(i) = ame_util.approvalApproverCategory) then
204: category := ame_util.approvalApproverCategory;
205: end if;
206: end if;

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

199: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
200: sourceInOut => source);
201: /* Update category as needed. */
202: if(category = ame_util.fyiApproverCategory and
203: approverCategories(i) = ame_util.approvalApproverCategory) then
204: category := ame_util.approvalApproverCategory;
205: end if;
206: end if;
207: end if;

Line 204: category := ame_util.approvalApproverCategory;

200: sourceInOut => source);
201: /* Update category as needed. */
202: if(category = ame_util.fyiApproverCategory and
203: approverCategories(i) = ame_util.approvalApproverCategory) then
204: category := ame_util.approvalApproverCategory;
205: end if;
206: end if;
207: end if;
208: end loop;

Line 215: origSystemIn => ame_util.perOrigSystem,

211: sourceOut := source;
212: exception
213: when noSupervisorException then
214: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
215: origSystemIn => ame_util.perOrigSystem,
216: origSystemIdIn => personIdIn );
217: errorCode := -20204;
218: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
219: messageNameIn => 'AME_400297_HAN_LACK_SPVR',

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

214: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
215: origSystemIn => ame_util.perOrigSystem,
216: origSystemIdIn => personIdIn );
217: errorCode := -20204;
218: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
219: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
220: tokenNameOneIn => 'FIRST_NAME',
221: tokenValueOneIn => personDisplayName,
222: tokenNameTwoIn => 'LAST_NAME',

Line 226: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

222: tokenNameTwoIn => 'LAST_NAME',
223: tokenValueTwoIn => null ,
224: tokenNameThreeIn => 'OTHER_NAME',
225: tokenValueThreeIn => null );
226: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
227: routineNameIn => 'getCatSourceAndAuthority',
228: exceptionNumberIn => errorCode,
229: exceptionStringIn => errorMessage);
230: raise_application_error(errorCode,

Line 236: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

232: when others then
233: categoryOut := null;
234: hasFinalAuthorityYNOut := null;
235: sourceOut := null;
236: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
237: routineNameIn => 'getCatSourceAndAuthority',
238: exceptionNumberIn => sqlcode,
239: exceptionStringIn => sqlerrm);
240: raise;

Line 243: COAInsertee ame_util.approverRecord2;

239: exceptionStringIn => sqlerrm);
240: raise;
241: end getCatSourceAndAuthority;
242: procedure handler as
243: COAInsertee ame_util.approverRecord2;
244: errorCode integer;
245: errorMessage ame_util.longestStringType;
246: finalAuthorityApproverCategory ame_util.charType;
247: finalAuthorityFound boolean;

Line 245: errorMessage ame_util.longestStringType;

241: end getCatSourceAndAuthority;
242: procedure handler as
243: COAInsertee ame_util.approverRecord2;
244: errorCode integer;
245: errorMessage ame_util.longestStringType;
246: finalAuthorityApproverCategory ame_util.charType;
247: finalAuthorityFound boolean;
248: finalAuthoritySource ame_util.longStringType;
249: firstApproverSource ame_util.longStringType;

Line 246: finalAuthorityApproverCategory ame_util.charType;

242: procedure handler as
243: COAInsertee ame_util.approverRecord2;
244: errorCode integer;
245: errorMessage ame_util.longestStringType;
246: finalAuthorityApproverCategory ame_util.charType;
247: finalAuthorityFound boolean;
248: finalAuthoritySource ame_util.longStringType;
249: firstApproverSource ame_util.longStringType;
250: includeAllJobLevelApprovers boolean;

Line 248: finalAuthoritySource ame_util.longStringType;

244: errorCode integer;
245: errorMessage ame_util.longestStringType;
246: finalAuthorityApproverCategory ame_util.charType;
247: finalAuthorityFound boolean;
248: finalAuthoritySource ame_util.longStringType;
249: firstApproverSource ame_util.longStringType;
250: includeAllJobLevelApprovers boolean;
251: noSupervisorException exception;
252: nullFirstIdException exception;

Line 249: firstApproverSource ame_util.longStringType;

245: errorMessage ame_util.longestStringType;
246: finalAuthorityApproverCategory ame_util.charType;
247: finalAuthorityFound boolean;
248: finalAuthoritySource ame_util.longStringType;
249: firstApproverSource ame_util.longStringType;
250: includeAllJobLevelApprovers boolean;
251: noSupervisorException exception;
252: nullFirstIdException exception;
253: personDisplayName ame_util.longStringType;

Line 253: personDisplayName ame_util.longStringType;

249: firstApproverSource ame_util.longStringType;
250: includeAllJobLevelApprovers boolean;
251: noSupervisorException exception;
252: nullFirstIdException exception;
253: personDisplayName ame_util.longStringType;
254: requestorId integer;
255: startingPointId integer;
256: tempApprover ame_util.approverRecord2;
257: tempHasFinalAuthorityYN ame_util.charType;

Line 256: tempApprover ame_util.approverRecord2;

252: nullFirstIdException exception;
253: personDisplayName ame_util.longStringType;
254: requestorId integer;
255: startingPointId integer;
256: tempApprover ame_util.approverRecord2;
257: tempHasFinalAuthorityYN ame_util.charType;
258: tempJobLevel integer;
259: tempMemberOrderNumber integer;
260: tempOldJobLevel integer;

Line 257: tempHasFinalAuthorityYN ame_util.charType;

253: personDisplayName ame_util.longStringType;
254: requestorId integer;
255: startingPointId integer;
256: tempApprover ame_util.approverRecord2;
257: tempHasFinalAuthorityYN ame_util.charType;
258: tempJobLevel integer;
259: tempMemberOrderNumber integer;
260: tempOldJobLevel integer;
261: tempSupervisorId integer;

Line 265: votingRegimeType ame_util.stringType;

261: tempSupervisorId integer;
262: tempSupervisorJobLevel integer;
263: tempNextSupervisorId integer;
264: topDogRequestorException exception;
265: votingRegimeType ame_util.stringType;
266: firstAuthInsExists boolean := false;
267: coaInsAuthForward boolean := false;
268: l_error_code number;
269: begin

Line 275: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =

271: finalAuthorityApproverCategory := null;
272: errorCode := -20230;
273: finalAuthoritySource := null;
274: includeAllJobLevelApprovers :=
275: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
276: ame_util.booleanAttributeTrue;
277: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
278: /*
279: The engine only calls a handler if a rule requiring it exists, so we can assume that

Line 276: ame_util.booleanAttributeTrue;

272: errorCode := -20230;
273: finalAuthoritySource := null;
274: includeAllJobLevelApprovers :=
275: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
276: ame_util.booleanAttributeTrue;
277: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
278: /*
279: The engine only calls a handler if a rule requiring it exists, so we can assume that
280: the package variables that ame_engine.getHandlerRules initializes are nonempty.

Line 277: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));

273: finalAuthoritySource := null;
274: includeAllJobLevelApprovers :=
275: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
276: ame_util.booleanAttributeTrue;
277: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
278: /*
279: The engine only calls a handler if a rule requiring it exists, so we can assume that
280: the package variables that ame_engine.getHandlerRules initializes are nonempty.
281: Fetch the rules and sort them in increasing parameter order. (Duplicate parameters

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

286: parametersOut => parameters);
287: parametersCount := parameters.count;
288: parseAndSortRules;
289: for i in 1 .. ruleIds.count loop
290: ruleSatisfiedYN(i) := ame_util.booleanFalse;
291: end loop;
292: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
293: tempApprover.orig_system := ame_util.perOrigSystem;
294: tempApprover.authority := ame_util.authorityApprover;

Line 293: tempApprover.orig_system := ame_util.perOrigSystem;

289: for i in 1 .. ruleIds.count loop
290: ruleSatisfiedYN(i) := ame_util.booleanFalse;
291: end loop;
292: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
293: tempApprover.orig_system := ame_util.perOrigSystem;
294: tempApprover.authority := ame_util.authorityApprover;
295: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
296: tempApprover.item_class := ame_engine.getHandlerItemClassName;
297: tempApprover.item_id := ame_engine.getHandlerItemId;

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

290: ruleSatisfiedYN(i) := ame_util.booleanFalse;
291: end loop;
292: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
293: tempApprover.orig_system := ame_util.perOrigSystem;
294: tempApprover.authority := ame_util.authorityApprover;
295: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
296: tempApprover.item_class := ame_engine.getHandlerItemClassName;
297: tempApprover.item_id := ame_engine.getHandlerItemId;
298: tempApprover.item_class_order_number := ame_engine.getHandlerItemClassOrderNumber;

Line 318: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));

314: sourceOut => COAInsertee.source);
315: if(COAInsertee.name is null) then
316: /* Check to see if job_level_non_default_starting_point_person_id is defined */
317: startingPointId :=
318: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));
319: if startingPointId is null then
320: requestorId :=
321: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionRequestorAttribute));
322: if(requestorId is null) then

Line 321: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionRequestorAttribute));

317: startingPointId :=
318: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));
319: if startingPointId is null then
320: requestorId :=
321: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionRequestorAttribute));
322: if(requestorId is null) then
323: raise nullFirstIdException;
324: end if;
325: tempApprover.orig_system_id := requestorId;

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

328: jobLevelOut => tempJobLevel,
329: supervisorIdOut => tempSupervisorId);
330: /* Check if requestor can self approve. If so, insert the approver as the only approver, with a status
331: of approved, and return.*/
332: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
333: = ame_util.booleanAttributeTrue)
334: then
335: getCatSourceAndAuthority(personIdIn => requestorId,
336: jobLevelIn => tempJobLevel,

Line 333: = ame_util.booleanAttributeTrue)

329: supervisorIdOut => tempSupervisorId);
330: /* Check if requestor can self approve. If so, insert the approver as the only approver, with a status
331: of approved, and return.*/
332: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
333: = ame_util.booleanAttributeTrue)
334: then
335: getCatSourceAndAuthority(personIdIn => requestorId,
336: jobLevelIn => tempJobLevel,
337: supervisorIdIn => tempSupervisorId,

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

339: sourceOut => tempApprover.source,
340: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
341: supervisorJobLevelOut => tempSupervisorJobLevel,
342: nextSupervisorIdOut => tempNextSupervisorId);
343: if(tempHasFinalAuthorityYN = ame_util.booleanTrue) then
344: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,
345: itemClassIn => tempApprover.item_class,
346: itemIdIn => tempApprover.item_id,
347: actionTypeIdIn => tempApprover.action_type_id,

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

346: itemIdIn => tempApprover.item_id,
347: actionTypeIdIn => tempApprover.action_type_id,
348: groupOrChainIdIn => tempApprover.group_or_chain_id);
349: tempApprover.member_order_number := 1;
350: tempApprover.api_insertion := ame_util.oamGenerated;
351: tempApprover.approval_status := ame_util.approvedStatus;
352: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
353: origSystemIdIn => tempApprover.orig_system_id,
354: nameOut => tempApprover.name,

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

347: actionTypeIdIn => tempApprover.action_type_id,
348: groupOrChainIdIn => tempApprover.group_or_chain_id);
349: tempApprover.member_order_number := 1;
350: tempApprover.api_insertion := ame_util.oamGenerated;
351: tempApprover.approval_status := ame_util.approvedStatus;
352: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
353: origSystemIdIn => tempApprover.orig_system_id,
354: nameOut => tempApprover.name,
355: displayNameOut => tempApprover.display_name);

Line 352: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,

348: groupOrChainIdIn => tempApprover.group_or_chain_id);
349: tempApprover.member_order_number := 1;
350: tempApprover.api_insertion := ame_util.oamGenerated;
351: tempApprover.approval_status := ame_util.approvedStatus;
352: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
353: origSystemIdIn => tempApprover.orig_system_id,
354: nameOut => tempApprover.name,
355: displayNameOut => tempApprover.display_name);
356: ame_engine.addApprover(approverIn => tempApprover);

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

370: end if;
371: else
372: tempApprover.orig_system_id := startingPointId;
373: end if;
374: tempApprover.api_insertion := ame_util.oamGenerated;
375: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
376: origSystemIdIn => tempApprover.orig_system_id,
377: nameOut => tempApprover.name,
378: displayNameOut => tempApprover.display_name);

Line 375: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,

371: else
372: tempApprover.orig_system_id := startingPointId;
373: end if;
374: tempApprover.api_insertion := ame_util.oamGenerated;
375: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
376: origSystemIdIn => tempApprover.orig_system_id,
377: nameOut => tempApprover.name,
378: displayNameOut => tempApprover.display_name);
379: else /* COA firstAuthority insertion found */

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

382: tempApprover.orig_system := COAInsertee.orig_system;
383: tempApprover.orig_system_id := COAInsertee.orig_system_id;
384: tempApprover.display_name := COAInsertee.display_name;
385: firstApproverSource := COAInsertee.source;
386: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
387: firstAuthInsExists := true;
388: end if;
389: getJobLevelAndSupervisor(personIdIn => tempApprover.orig_system_id,
390: jobLevelOut => tempJobLevel,

Line 411: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

407: tempApprover.source := firstApproverSource;
408: firstApproverSource := null;
409: end if;
410: if(not finalAuthorityFound and
411: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
412: finalAuthorityFound := true;
413: finalAuthorityApproverCategory := tempApprover.approver_category;
414: finalAuthoritySource := tempApprover.source;
415: end if;

Line 421: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,

417: finalAuthoritySource is not null ) then
418: tempApprover.approver_category := finalAuthorityApproverCategory;
419: tempApprover.source := finalAuthoritySource;
420: end if;
421: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
422: origSystemIdIn => tempApprover.orig_system_id,
423: nameOut => tempApprover.name,
424: displayNameOut => tempApprover.display_name);
425: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,

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

427: itemIdIn => tempApprover.item_id,
428: actionTypeIdIn => tempApprover.action_type_id,
429: groupOrChainIdIn => tempApprover.group_or_chain_id);
430: tempMemberOrderNumber := tempMemberOrderNumber + 1;
431: if(votingRegimeType = ame_util.serializedVoting) then
432: tempApprover.member_order_number := tempMemberOrderNumber;
433: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
434: tempApprover.member_order_number := 1;
435: end if;

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

429: groupOrChainIdIn => tempApprover.group_or_chain_id);
430: tempMemberOrderNumber := tempMemberOrderNumber + 1;
431: if(votingRegimeType = ame_util.serializedVoting) then
432: tempApprover.member_order_number := tempMemberOrderNumber;
433: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
434: tempApprover.member_order_number := 1;
435: end if;
436: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
437: /* The engine will set tempApprover.approver_order_number; leave it null here. */

Line 445: COAInsertee := ame_util.emptyApproverRecord2;

441: done again.
442: */
443: loop
444: /* Initialize COAInsertee approverRecord2 */
445: COAInsertee := ame_util.emptyApproverRecord2;
446: /* Check if there are any COAInsertions */
447: ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
448: itemClassIn => tempApprover.item_class,
449: itemIdIn => tempApprover.item_id,

Line 478: tempApprover.approver_category := ame_util.approvalApproverCategory;

474: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
475: supervisorJobLevelOut => tempSupervisorJobLevel,
476: nextSupervisorIdOut => tempNextSupervisorId);
477: tempApprover.source := COAInsertee.source;
478: tempApprover.approver_category := ame_util.approvalApproverCategory;
479: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
480: tempMemberOrderNumber := tempMemberOrderNumber + 1;
481: if(votingRegimeType = ame_util.serializedVoting) then
482: tempApprover.member_order_number := tempMemberOrderNumber;

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

475: supervisorJobLevelOut => tempSupervisorJobLevel,
476: nextSupervisorIdOut => tempNextSupervisorId);
477: tempApprover.source := COAInsertee.source;
478: tempApprover.approver_category := ame_util.approvalApproverCategory;
479: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
480: tempMemberOrderNumber := tempMemberOrderNumber + 1;
481: if(votingRegimeType = ame_util.serializedVoting) then
482: tempApprover.member_order_number := tempMemberOrderNumber;
483: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

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

477: tempApprover.source := COAInsertee.source;
478: tempApprover.approver_category := ame_util.approvalApproverCategory;
479: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
480: tempMemberOrderNumber := tempMemberOrderNumber + 1;
481: if(votingRegimeType = ame_util.serializedVoting) then
482: tempApprover.member_order_number := tempMemberOrderNumber;
483: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
484: tempApprover.member_order_number := 1;
485: end if;

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

479: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
480: tempMemberOrderNumber := tempMemberOrderNumber + 1;
481: if(votingRegimeType = ame_util.serializedVoting) then
482: tempApprover.member_order_number := tempMemberOrderNumber;
483: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
484: tempApprover.member_order_number := 1;
485: end if;
486: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,
487: itemClassIn => tempApprover.item_class,

Line 492: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or

488: itemIdIn => tempApprover.item_id,
489: actionTypeIdIn => tempApprover.action_type_id,
490: groupOrChainIdIn => tempApprover.group_or_chain_id);
491: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
492: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
493: ame_util.nullStatus check to see if approver could have final authority */
494: if ((tempApprover.approval_status is null) or
495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,

Line 493: ame_util.nullStatus check to see if approver could have final authority */

489: actionTypeIdIn => tempApprover.action_type_id,
490: groupOrChainIdIn => tempApprover.group_or_chain_id);
491: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
492: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
493: ame_util.nullStatus check to see if approver could have final authority */
494: if ((tempApprover.approval_status is null) or
495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,

Line 496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,

492: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
493: ame_util.nullStatus check to see if approver could have final authority */
494: if ((tempApprover.approval_status is null) or
495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,
498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )

Line 497: ame_util.repeatedStatus, ame_util.suppressedStatus,

493: ame_util.nullStatus check to see if approver could have final authority */
494: if ((tempApprover.approval_status is null) or
495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,
498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )
501: then

Line 498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or

494: if ((tempApprover.approval_status is null) or
495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,
498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )
501: then
502: if(not finalAuthorityFound and

Line 499: (tempApprover.approver_category = ame_util.approvalApproverCategory and

495: (tempApprover.approval_status in
496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,
498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )
501: then
502: if(not finalAuthorityFound and
503: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

Line 500: tempApprover.approval_status = ame_util.notifiedStatus) )

496: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
497: ame_util.repeatedStatus, ame_util.suppressedStatus,
498: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )
501: then
502: if(not finalAuthorityFound and
503: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
504: finalAuthorityFound := true;

Line 503: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

499: (tempApprover.approver_category = ame_util.approvalApproverCategory and
500: tempApprover.approval_status = ame_util.notifiedStatus) )
501: then
502: if(not finalAuthorityFound and
503: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
504: finalAuthorityFound := true;
505: end if;
506: end if;
507: ame_engine.addApprover(approverIn => tempApprover);

Line 551: origSystemIn => ame_util.perOrigSystem,

547: exception
548: when noSupervisorException then
549: if tempApprover.display_name is null then
550: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
551: origSystemIn => ame_util.perOrigSystem,
552: origSystemIdIn => tempApprover.orig_system_id );
553: else
554: personDisplayName := tempApprover.display_name;
555: end if;

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

553: else
554: personDisplayName := tempApprover.display_name;
555: end if;
556: errorCode := -20204;
557: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
558: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
559: tokenNameOneIn => 'FIRST_NAME',
560: tokenValueOneIn => personDisplayName,
561: tokenNameTwoIn => 'LAST_NAME',

Line 565: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

561: tokenNameTwoIn => 'LAST_NAME',
562: tokenValueTwoIn => null ,
563: tokenNameThreeIn => 'OTHER_NAME',
564: tokenValueThreeIn => null );
565: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
566: routineNameIn => 'handler',
567: exceptionNumberIn => errorCode,
568: exceptionStringIn => errorMessage);
569: raise_application_error(errorCode,

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

570: errorMessage);
571: when nullFirstIdException then
572: errorCode := -20007;
573: errorMessage :=
574: ame_util.getMessage(applicationShortNameIn => 'PER',
575: messageNameIn => 'AME_400233_HAN_NO_TRANS_PER_ID');
576: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
577: routineNameIn => 'handler',
578: exceptionNumberIn => errorCode,

Line 576: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

572: errorCode := -20007;
573: errorMessage :=
574: ame_util.getMessage(applicationShortNameIn => 'PER',
575: messageNameIn => 'AME_400233_HAN_NO_TRANS_PER_ID');
576: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
577: routineNameIn => 'handler',
578: exceptionNumberIn => errorCode,
579: exceptionStringIn => errorMessage);
580: raise_application_error(errorCode,

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

580: raise_application_error(errorCode,
581: errorMessage);
582: when topDogRequestorException then
583: errorCode := -20111;
584: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
585: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
586: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
587: routineNameIn => 'handler',
588: exceptionNumberIn => errorCode,

Line 586: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

582: when topDogRequestorException then
583: errorCode := -20111;
584: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
585: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
586: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
587: routineNameIn => 'handler',
588: exceptionNumberIn => errorCode,
589: exceptionStringIn => errorMessage);
590: raise_application_error(errorCode,

Line 593: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

589: exceptionStringIn => errorMessage);
590: raise_application_error(errorCode,
591: errorMessage);
592: when others then
593: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
594: routineNameIn => 'handler',
595: exceptionNumberIn => sqlcode,
596: exceptionStringIn => sqlerrm);
597: l_error_code := sqlcode;

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

595: exceptionNumberIn => sqlcode,
596: exceptionStringIn => sqlerrm);
597: l_error_code := sqlcode;
598: if l_error_code = -20213 then
599: errorMessage := ame_util.getMessage(applicationShortNameIn =>'PER',
600: messageNameIn => 'AME_400834_INV_HANDLR_APR',
601: tokenNameOneIn => 'ACTION_TYPE_NAME',
602: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
603: tokenNameTwoIn => 'ORIG_SYSTEM',

Line 604: tokenValueTwoIn => ame_util.perOrigSystem,

600: messageNameIn => 'AME_400834_INV_HANDLR_APR',
601: tokenNameOneIn => 'ACTION_TYPE_NAME',
602: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
603: tokenNameTwoIn => 'ORIG_SYSTEM',
604: tokenValueTwoIn => ame_util.perOrigSystem,
605: tokenNameThreeIn => 'ORIG_SYSEM_ID',
606: tokenValueThreeIn => tempApprover.orig_system_id);
607: raise_application_error(errorCode,errorMessage);
608: end if;

Line 614: errorMessage ame_util.longestStringType;

610: end handler;
611: procedure parseAndSortRules as
612: badParameterException exception;
613: errorCode integer;
614: errorMessage ame_util.longestStringType;
615: tempCategory ame_util.charType;
616: tempLength integer;
617: tempNumber integer;
618: tempRuleId integer;

Line 615: tempCategory ame_util.charType;

611: procedure parseAndSortRules as
612: badParameterException exception;
613: errorCode integer;
614: errorMessage ame_util.longestStringType;
615: tempCategory ame_util.charType;
616: tempLength integer;
617: tempNumber integer;
618: tempRuleId integer;
619: tempSign ame_util.charType;

Line 619: tempSign ame_util.charType;

615: tempCategory ame_util.charType;
616: tempLength integer;
617: tempNumber integer;
618: tempRuleId integer;
619: tempSign ame_util.charType;
620: upperLimit integer;
621: begin
622: /* Parse. */
623: for i in 1 .. parametersCount loop

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

653: end loop;
654: exception
655: when badParameterException then
656: errorCode := -20001;
657: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
658: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
659: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
660: routineNameIn => 'parseAndSortRules',
661: exceptionNumberIn => errorCode,

Line 659: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

655: when badParameterException then
656: errorCode := -20001;
657: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
658: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
659: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
660: routineNameIn => 'parseAndSortRules',
661: exceptionNumberIn => errorCode,
662: exceptionStringIn => errorMessage);
663: raise_application_error(errorCode,

Line 666: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',

662: exceptionStringIn => errorMessage);
663: raise_application_error(errorCode,
664: errorMessage);
665: when others then
666: ame_util.runtimeException(packageNameIn => 'ame_absolute_job_level_handler',
667: routineNameIn => 'parseAndSortRules',
668: exceptionNumberIn => sqlcode,
669: exceptionStringIn => sqlerrm);
670: raise;