DBA Data[Home] [Help]

APPS.AME_RELATIVE_JOB_LEVEL_HANDLER dependencies on AME_UTIL

Line 4: approverCategories ame_util.charList;

1: package body ame_relative_job_level_handler as
2: /* $Header: ameerjha.pkb 120.6 2011/05/18 11:26:55 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: ameerjha.pkb 120.6 2011/05/18 11:26:55 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: threshholdJobLevel 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: threshholdJobLevel integer;
12: topDogFound boolean;

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: threshholdJobLevel integer;
12: topDogFound boolean;
13: topDogPersonId integer;

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

Line 42: category ame_util.charType;

38: sourceOut out nocopy varchar2,
39: hasFinalAuthorityYNOut out nocopy varchar2,
40: supervisorJobLevelOut out nocopy integer,
41: nextSupervisorIdOut out nocopy integer) as
42: category ame_util.charType;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: hasFinalAuthorityYN ame_util.charType;
46: noSupervisorException exception;

Line 44: errorMessage ame_util.longestStringType;

40: supervisorJobLevelOut out nocopy integer,
41: nextSupervisorIdOut out nocopy integer) as
42: category ame_util.charType;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: hasFinalAuthorityYN ame_util.charType;
46: noSupervisorException exception;
47: personDisplayName ame_util.longStringType;
48: source ame_util.longStringType;

Line 45: hasFinalAuthorityYN ame_util.charType;

41: nextSupervisorIdOut out nocopy integer) as
42: category ame_util.charType;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: hasFinalAuthorityYN ame_util.charType;
46: noSupervisorException exception;
47: personDisplayName ame_util.longStringType;
48: source ame_util.longStringType;
49: supervisorJobLevel integer;

Line 47: personDisplayName ame_util.longStringType;

43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: hasFinalAuthorityYN ame_util.charType;
46: noSupervisorException exception;
47: personDisplayName ame_util.longStringType;
48: source ame_util.longStringType;
49: supervisorJobLevel integer;
50: tempRuleRequiresApprover boolean;
51: tempRuleSatisfied boolean;

Line 48: source ame_util.longStringType;

44: errorMessage ame_util.longestStringType;
45: hasFinalAuthorityYN ame_util.charType;
46: noSupervisorException exception;
47: personDisplayName ame_util.longStringType;
48: source ame_util.longStringType;
49: supervisorJobLevel integer;
50: tempRuleRequiresApprover boolean;
51: tempRuleSatisfied boolean;
52: begin

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

70: B. Otherwise, the rule requires the input approver only if the approver
71: does <> satisfy the rule. (This would happen in the perverse case
72: that an approver satisfies a rule, but their supervisor has a lower
73: job level that does not satisfy the rule.)
74: 4. An approver's category is ame_util.approvalApproverCategory if any of the
75: rule usages requiring the approver is of that category; otherwise the
76: approver's category is ame_util.fyiApproverCategory.
77: */
78: category := ame_util.fyiApproverCategory;

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

72: that an approver satisfies a rule, but their supervisor has a lower
73: job level that does not satisfy the rule.)
74: 4. An approver's category is ame_util.approvalApproverCategory if any of the
75: rule usages requiring the approver is of that category; otherwise the
76: approver's category is ame_util.fyiApproverCategory.
77: */
78: category := ame_util.fyiApproverCategory;
79: hasFinalAuthorityYN := ame_util.booleanTrue;
80: for i in 1 .. parametersCount loop

Line 78: category := ame_util.fyiApproverCategory;

74: 4. An approver's category is ame_util.approvalApproverCategory if any of the
75: rule usages requiring the approver is of that category; otherwise the
76: approver's category is ame_util.fyiApproverCategory.
77: */
78: category := ame_util.fyiApproverCategory;
79: hasFinalAuthorityYN := ame_util.booleanTrue;
80: for i in 1 .. parametersCount loop
81: /* Determine whether the approver satisfies the current rule. */
82: if(personIdIn = topDogPersonId) then

Line 79: hasFinalAuthorityYN := ame_util.booleanTrue;

75: rule usages requiring the approver is of that category; otherwise the
76: approver's category is ame_util.fyiApproverCategory.
77: */
78: category := ame_util.fyiApproverCategory;
79: hasFinalAuthorityYN := ame_util.booleanTrue;
80: for i in 1 .. parametersCount loop
81: /* Determine whether the approver satisfies the current rule. */
82: if(personIdIn = topDogPersonId) then
83: topDogFound := true;

Line 111: hasFinalAuthorityYN = ame_util.booleanTrue) then

107: end if;
108: end if;
109: /* Update hasFinalAuthorityYN as needed. */
110: if(not tempRuleSatisfied and
111: hasFinalAuthorityYN = ame_util.booleanTrue) then
112: hasFinalAuthorityYN := ame_util.booleanFalse;
113: end if;
114: /* Determine whether the current rule requires the approver. */
115: tempRuleRequiresApprover := false;

Line 112: hasFinalAuthorityYN := ame_util.booleanFalse;

108: end if;
109: /* Update hasFinalAuthorityYN as needed. */
110: if(not tempRuleSatisfied and
111: hasFinalAuthorityYN = ame_util.booleanTrue) then
112: hasFinalAuthorityYN := ame_util.booleanFalse;
113: end if;
114: /* Determine whether the current rule requires the approver. */
115: tempRuleRequiresApprover := false;
116: if(ruleSatisfiedYN(i) = ame_util.booleanTrue) then

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

112: hasFinalAuthorityYN := ame_util.booleanFalse;
113: end if;
114: /* Determine whether the current rule requires the approver. */
115: tempRuleRequiresApprover := false;
116: if(ruleSatisfiedYN(i) = ame_util.booleanTrue) then
117: if(not tempRuleSatisfied) then
118: tempRuleRequiresApprover := true;
119: end if;
120: else

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

119: end if;
120: else
121: tempRuleRequiresApprover := true;
122: if(tempRuleSatisfied) then
123: ruleSatisfiedYN(i) := ame_util.booleanTrue;
124: end if;
125: end if;
126: if(tempRuleRequiresApprover) then
127: /* Update source. */

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

124: end if;
125: end if;
126: if(tempRuleRequiresApprover) then
127: /* Update source. */
128: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
129: sourceInOut => source);
130: /* Update category as needed. */
131: if(category = ame_util.fyiApproverCategory and
132: approverCategories(i) = ame_util.approvalApproverCategory) then

Line 131: if(category = ame_util.fyiApproverCategory and

127: /* Update source. */
128: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
129: sourceInOut => source);
130: /* Update category as needed. */
131: if(category = ame_util.fyiApproverCategory and
132: approverCategories(i) = ame_util.approvalApproverCategory) then
133: category := ame_util.approvalApproverCategory;
134: end if;
135: end if;

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

128: ame_util.appendRuleIdToSource(ruleIdIn => ruleIds(i),
129: sourceInOut => source);
130: /* Update category as needed. */
131: if(category = ame_util.fyiApproverCategory and
132: approverCategories(i) = ame_util.approvalApproverCategory) then
133: category := ame_util.approvalApproverCategory;
134: end if;
135: end if;
136: end loop;

Line 133: category := ame_util.approvalApproverCategory;

129: sourceInOut => source);
130: /* Update category as needed. */
131: if(category = ame_util.fyiApproverCategory and
132: approverCategories(i) = ame_util.approvalApproverCategory) then
133: category := ame_util.approvalApproverCategory;
134: end if;
135: end if;
136: end loop;
137: categoryOut := category;

Line 143: origSystemIn => ame_util.perOrigSystem,

139: sourceOut := source;
140: exception
141: when noSupervisorException then
142: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
143: origSystemIn => ame_util.perOrigSystem,
144: origSystemIdIn => personIdIn );
145: errorCode := -20209;
146: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
147: messageNameIn => 'AME_400297_HAN_LACK_SPVR',

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

142: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
143: origSystemIn => ame_util.perOrigSystem,
144: origSystemIdIn => personIdIn );
145: errorCode := -20209;
146: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
147: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
148: tokenNameOneIn => 'FIRST_NAME',
149: tokenValueOneIn => personDisplayName,
150: tokenNameTwoIn => 'LAST_NAME',

Line 154: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

150: tokenNameTwoIn => 'LAST_NAME',
151: tokenValueTwoIn => null ,
152: tokenNameThreeIn => 'OTHER_NAME',
153: tokenValueThreeIn => null );
154: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
155: routineNameIn => 'getCatSourceAndAuthority',
156: exceptionNumberIn => errorCode,
157: exceptionStringIn => errorMessage);
158: raise_application_error(errorCode,

Line 164: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

160: when others then
161: categoryOut := null;
162: hasFinalAuthorityYNOut := null;
163: sourceOut := null;
164: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
165: routineNameIn => 'getCatSourceAndAuthority',
166: exceptionNumberIn => sqlcode,
167: exceptionStringIn => sqlerrm);
168: raise;

Line 171: COAInsertee ame_util.approverRecord2;

167: exceptionStringIn => sqlerrm);
168: raise;
169: end getCatSourceAndAuthority;
170: procedure handler as
171: COAInsertee ame_util.approverRecord2;
172: errorCode integer;
173: errorMessage ame_util.longestStringType;
174: finalAuthorityApproverCategory ame_util.charType;
175: finalAuthorityFound boolean;

Line 173: errorMessage ame_util.longestStringType;

169: end getCatSourceAndAuthority;
170: procedure handler as
171: COAInsertee ame_util.approverRecord2;
172: errorCode integer;
173: errorMessage ame_util.longestStringType;
174: finalAuthorityApproverCategory ame_util.charType;
175: finalAuthorityFound boolean;
176: finalAuthoritySource ame_util.longStringType;
177: firstApproverSource ame_util.longStringType;

Line 174: finalAuthorityApproverCategory ame_util.charType;

170: procedure handler as
171: COAInsertee ame_util.approverRecord2;
172: errorCode integer;
173: errorMessage ame_util.longestStringType;
174: finalAuthorityApproverCategory ame_util.charType;
175: finalAuthorityFound boolean;
176: finalAuthoritySource ame_util.longStringType;
177: firstApproverSource ame_util.longStringType;
178: includeAllJobLevelApprovers boolean;

Line 176: finalAuthoritySource ame_util.longStringType;

172: errorCode integer;
173: errorMessage ame_util.longestStringType;
174: finalAuthorityApproverCategory ame_util.charType;
175: finalAuthorityFound boolean;
176: finalAuthoritySource ame_util.longStringType;
177: firstApproverSource ame_util.longStringType;
178: includeAllJobLevelApprovers boolean;
179: personDisplayName ame_util.longStringType;
180: noSupervisorException exception;

Line 177: firstApproverSource ame_util.longStringType;

173: errorMessage ame_util.longestStringType;
174: finalAuthorityApproverCategory ame_util.charType;
175: finalAuthorityFound boolean;
176: finalAuthoritySource ame_util.longStringType;
177: firstApproverSource ame_util.longStringType;
178: includeAllJobLevelApprovers boolean;
179: personDisplayName ame_util.longStringType;
180: noSupervisorException exception;
181: nullFirstIdException exception;

Line 179: personDisplayName ame_util.longStringType;

175: finalAuthorityFound boolean;
176: finalAuthoritySource ame_util.longStringType;
177: firstApproverSource ame_util.longStringType;
178: includeAllJobLevelApprovers boolean;
179: personDisplayName ame_util.longStringType;
180: noSupervisorException exception;
181: nullFirstIdException exception;
182: requestorId integer;
183: startingPointId integer;

Line 184: tempApprover ame_util.approverRecord2;

180: noSupervisorException exception;
181: nullFirstIdException exception;
182: requestorId integer;
183: startingPointId integer;
184: tempApprover ame_util.approverRecord2;
185: tempHasFinalAuthorityYN ame_util.charType;
186: tempJobLevel integer;
187: tempMemberOrderNumber integer;
188: tempOldJobLevel integer;

Line 185: tempHasFinalAuthorityYN ame_util.charType;

181: nullFirstIdException exception;
182: requestorId integer;
183: startingPointId integer;
184: tempApprover ame_util.approverRecord2;
185: tempHasFinalAuthorityYN ame_util.charType;
186: tempJobLevel integer;
187: tempMemberOrderNumber integer;
188: tempOldJobLevel integer;
189: tempSupervisorId integer;

Line 193: votingRegimeType ame_util.stringType;

189: tempSupervisorId integer;
190: tempSupervisorJobLevel integer;
191: tempNextSupervisorId integer;
192: topDogRequestorException exception;
193: votingRegimeType ame_util.stringType;
194: firstAuthInsExists boolean := false;
195: coaInsAuthForward boolean := false;
196: l_error_code number;
197: begin

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

198: finalAuthorityApproverCategory := null;
199: errorCode := -20228;
200: finalAuthoritySource := null;
201: includeAllJobLevelApprovers :=
202: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
203: ame_util.booleanAttributeTrue;
204: /* Populate some of the package variables. */
205: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
206: /*

Line 203: ame_util.booleanAttributeTrue;

199: errorCode := -20228;
200: finalAuthoritySource := null;
201: includeAllJobLevelApprovers :=
202: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
203: ame_util.booleanAttributeTrue;
204: /* Populate some of the package variables. */
205: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
206: /*
207: The engine only calls a handler if a rule requiring it exists, so we can assume that

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

201: includeAllJobLevelApprovers :=
202: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
203: ame_util.booleanAttributeTrue;
204: /* Populate some of the package variables. */
205: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
206: /*
207: The engine only calls a handler if a rule requiring it exists, so we can assume that
208: the package variables that ame_engine.getHandlerRules initializes are nonempty.
209: Fetch the rules and sort them in increasing parameter order. (Duplicate parameters

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

212: ame_engine.getHandlerRules2(ruleIdsOut => ruleIds,
213: approverCategoriesOut => approverCategories,
214: parametersOut => parameters);
215: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
216: tempApprover.orig_system := ame_util.perOrigSystem;
217: tempApprover.authority := ame_util.authorityApprover;
218: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
219: tempApprover.item_class := ame_engine.getHandlerItemClassName;
220: tempApprover.item_id := ame_engine.getHandlerItemId;

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

213: approverCategoriesOut => approverCategories,
214: parametersOut => parameters);
215: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
216: tempApprover.orig_system := ame_util.perOrigSystem;
217: tempApprover.authority := ame_util.authorityApprover;
218: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
219: tempApprover.item_class := ame_engine.getHandlerItemClassName;
220: tempApprover.item_id := ame_engine.getHandlerItemId;
221: tempApprover.item_class_order_number := ame_engine.getHandlerItemClassOrderNumber;

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

237: sourceOut => COAInsertee.source);
238: if COAInsertee.name is null then
239: /* Fetch some of the required attributes. */
240: startingPointId :=
241: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));
242: if(startingPointId is null) then
243: requestorId :=
244: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionRequestorAttribute));
245: if (requestorId is null) then

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

240: startingPointId :=
241: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.jobLevelStartingPointAttribute));
242: if(startingPointId is null) then
243: requestorId :=
244: to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.transactionRequestorAttribute));
245: if (requestorId is null) then
246: raise nullFirstIdException;
247: end if;
248: tempApprover.orig_system_id := requestorId;

Line 252: origSystemIn => ame_util.perOrigSystem,

248: tempApprover.orig_system_id := requestorId;
249: else
250: tempApprover.orig_system_id := startingPointId;
251: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
252: origSystemIn => ame_util.perOrigSystem,
253: origSystemIdIn =>tempApprover.orig_system_id,
254: nameOut => tempApprover.name,
255: displayNameOut => tempApprover.display_name);
256: end if;

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

253: origSystemIdIn =>tempApprover.orig_system_id,
254: nameOut => tempApprover.name,
255: displayNameOut => tempApprover.display_name);
256: end if;
257: tempApprover.api_insertion := ame_util.oamGenerated;
258: else
259: tempApprover.name := COAInsertee.name;
260: tempApprover.orig_system := COAInsertee.orig_system;
261: tempApprover.orig_system_id := COAInsertee.orig_system_id;

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

260: tempApprover.orig_system := COAInsertee.orig_system;
261: tempApprover.orig_system_id := COAInsertee.orig_system_id;
262: tempApprover.display_name := COAInsertee.display_name;
263: firstApproverSource := COAInsertee.source;
264: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
265: firstAuthInsExists := true;
266: end if;
267: /* The threshhold Job level is the job level of this tempApprover */
268: ame_absolute_job_level_handler.getJobLevelAndSupervisor(personIdIn => tempApprover.orig_system_id,

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

271: threshholdJobLevel := tempJobLevel;
272: parametersCount := parameters.count;
273: parseAndSortRules;
274: for i in 1 .. ruleIds.count loop
275: ruleSatisfiedYN(i) := ame_util.booleanFalse;
276: end loop;
277: /* Self Approval is only an option for this handler if requestor is the top dog. So only need to check for it in that case.
278: But in case of no COAInsertion and no startingPointId, the chain must start from requestor's manager. This could
279: not be set above as the threshhold has to be the requestor's approval authority. */

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

281: startingPointId is null )
282: then
283: /* Check to make sure requestor is not the topDogPersonId, if yes check for autoapproval */
284: if (requestorId = topDogPersonId ) then
285: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
286: = ame_util.booleanAttributeTrue) then
287: /* insert the requestor into the chain set the requestor's status to approved
288: end the chain with the requestor */
289: tempApprover.orig_system_id := requestorId;

Line 286: = ame_util.booleanAttributeTrue) then

282: then
283: /* Check to make sure requestor is not the topDogPersonId, if yes check for autoapproval */
284: if (requestorId = topDogPersonId ) then
285: if(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.allowAutoApprovalAttribute)
286: = ame_util.booleanAttributeTrue) then
287: /* insert the requestor into the chain set the requestor's status to approved
288: end the chain with the requestor */
289: tempApprover.orig_system_id := requestorId;
290: getCatSourceAndAuthority(personIdIn => tempApprover.orig_system_id,

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

301: itemIdIn => tempApprover.item_id,
302: actionTypeIdIn => tempApprover.action_type_id,
303: groupOrChainIdIn => tempApprover.group_or_chain_id);
304: tempApprover.member_order_number := 1;
305: tempApprover.api_insertion := ame_util.oamGenerated;
306: tempApprover.approval_status := ame_util.approvedStatus;
307: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
308: origSystemIdIn => tempApprover.orig_system_id,
309: nameOut => tempApprover.name,

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

302: actionTypeIdIn => tempApprover.action_type_id,
303: groupOrChainIdIn => tempApprover.group_or_chain_id);
304: tempApprover.member_order_number := 1;
305: tempApprover.api_insertion := ame_util.oamGenerated;
306: tempApprover.approval_status := ame_util.approvedStatus;
307: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
308: origSystemIdIn => tempApprover.orig_system_id,
309: nameOut => tempApprover.name,
310: displayNameOut => tempApprover.display_name);

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

303: groupOrChainIdIn => tempApprover.group_or_chain_id);
304: tempApprover.member_order_number := 1;
305: tempApprover.api_insertion := ame_util.oamGenerated;
306: tempApprover.approval_status := ame_util.approvedStatus;
307: ame_approver_type_pkg.getWfRolesNameAndDisplayName(origSystemIn => ame_util.perOrigSystem,
308: origSystemIdIn => tempApprover.orig_system_id,
309: nameOut => tempApprover.name,
310: displayNameOut => tempApprover.display_name);
311: ame_engine.addApprover(approverIn => tempApprover);

Line 325: origSystemIn => ame_util.perOrigSystem,

321: ame_absolute_job_level_handler.getJobLevelAndSupervisor(personIdIn => tempApprover.orig_system_id,
322: jobLevelOut => tempJobLevel,
323: supervisorIdOut => tempSupervisorId);
324: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
325: origSystemIn => ame_util.perOrigSystem,
326: origSystemIdIn =>tempApprover.orig_system_id,
327: nameOut => tempApprover.name,
328: displayNameOut => tempApprover.display_name);
329: end if;

Line 349: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

345: tempApprover.source := firstApproverSource;
346: firstApproverSource := null;
347: end if;
348: if(not finalAuthorityFound and
349: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
350: finalAuthorityFound := true;
351: finalAuthorityApproverCategory := tempApprover.approver_category;
352: finalAuthoritySource := tempApprover.source;
353: end if;

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

355: finalAuthoritySource is not null ) then
356: tempApprover.approver_category := finalAuthorityApproverCategory;
357: tempApprover.source := finalAuthoritySource;
358: end if;
359: tempApprover.api_insertion := ame_util.oamGenerated;
360: tempApprover.occurrence := 1;
361: tempMemberOrderNumber := tempMemberOrderNumber + 1;
362: if(votingRegimeType = ame_util.serializedVoting) then
363: tempApprover.member_order_number := tempMemberOrderNumber;

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

358: end if;
359: tempApprover.api_insertion := ame_util.oamGenerated;
360: tempApprover.occurrence := 1;
361: tempMemberOrderNumber := tempMemberOrderNumber + 1;
362: if(votingRegimeType = ame_util.serializedVoting) then
363: tempApprover.member_order_number := tempMemberOrderNumber;
364: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
365: tempApprover.member_order_number := 1;
366: end if;

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

360: tempApprover.occurrence := 1;
361: tempMemberOrderNumber := tempMemberOrderNumber + 1;
362: if(votingRegimeType = ame_util.serializedVoting) then
363: tempApprover.member_order_number := tempMemberOrderNumber;
364: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
365: tempApprover.member_order_number := 1;
366: end if;
367: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
368: /* The engine will set tempApprover.approver_order_number; leave it null here. */

Line 376: COAInsertee := ame_util.emptyApproverRecord2;

372: done again.
373: */
374: loop
375: /* Initialize COAInsertee approverRecord2 */
376: COAInsertee := ame_util.emptyApproverRecord2;
377: /* Check if there are any COAInsertions */
378: ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
379: itemClassIn => tempApprover.item_class,
380: itemIdIn => tempApprover.item_id,

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

407: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
408: supervisorJobLevelOut => tempSupervisorJobLevel,
409: nextSupervisorIdOut => tempNextSupervisorId);
410: tempApprover.source := COAInsertee.source;
411: tempApprover.approver_category := ame_util.approvalApproverCategory;
412: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
413: tempMemberOrderNumber := tempMemberOrderNumber + 1;
414: if(votingRegimeType = ame_util.serializedVoting) then
415: tempApprover.member_order_number := tempMemberOrderNumber;

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

408: supervisorJobLevelOut => tempSupervisorJobLevel,
409: nextSupervisorIdOut => tempNextSupervisorId);
410: tempApprover.source := COAInsertee.source;
411: tempApprover.approver_category := ame_util.approvalApproverCategory;
412: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
413: tempMemberOrderNumber := tempMemberOrderNumber + 1;
414: if(votingRegimeType = ame_util.serializedVoting) then
415: tempApprover.member_order_number := tempMemberOrderNumber;
416: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

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

410: tempApprover.source := COAInsertee.source;
411: tempApprover.approver_category := ame_util.approvalApproverCategory;
412: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
413: tempMemberOrderNumber := tempMemberOrderNumber + 1;
414: if(votingRegimeType = ame_util.serializedVoting) then
415: tempApprover.member_order_number := tempMemberOrderNumber;
416: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
417: tempApprover.member_order_number := 1;
418: end if;

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

412: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
413: tempMemberOrderNumber := tempMemberOrderNumber + 1;
414: if(votingRegimeType = ame_util.serializedVoting) then
415: tempApprover.member_order_number := tempMemberOrderNumber;
416: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
417: tempApprover.member_order_number := 1;
418: end if;
419: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,
420: itemClassIn => tempApprover.item_class,

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

421: itemIdIn => tempApprover.item_id,
422: actionTypeIdIn => tempApprover.action_type_id,
423: groupOrChainIdIn => tempApprover.group_or_chain_id);
424: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
425: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
426: ame_util.nullStatus check to see if approver could have final authority */
427: if ((tempApprover.approval_status is null) or
428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,

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

422: actionTypeIdIn => tempApprover.action_type_id,
423: groupOrChainIdIn => tempApprover.group_or_chain_id);
424: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
425: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
426: ame_util.nullStatus check to see if approver could have final authority */
427: if ((tempApprover.approval_status is null) or
428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,

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

425: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
426: ame_util.nullStatus check to see if approver could have final authority */
427: if ((tempApprover.approval_status is null) or
428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,
431: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )

Line 430: ame_util.repeatedStatus, ame_util.suppressedStatus,

426: ame_util.nullStatus check to see if approver could have final authority */
427: if ((tempApprover.approval_status is null) or
428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,
431: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )
434: then

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

427: if ((tempApprover.approval_status is null) or
428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,
431: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )
434: then
435: if(not finalAuthorityFound and

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

428: (tempApprover.approval_status in
429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,
431: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )
434: then
435: if(not finalAuthorityFound and
436: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

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

429: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
430: ame_util.repeatedStatus, ame_util.suppressedStatus,
431: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )
434: then
435: if(not finalAuthorityFound and
436: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
437: finalAuthorityFound := true;

Line 436: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

432: (tempApprover.approver_category = ame_util.approvalApproverCategory and
433: tempApprover.approval_status = ame_util.notifiedStatus) )
434: then
435: if(not finalAuthorityFound and
436: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
437: finalAuthorityFound := true;
438: end if;
439: end if;
440: ame_engine.addApprover(approverIn => tempApprover);

Line 473: origSystemIn => ame_util.perOrigSystem,

469: tempOldJobLevel <> tempJobLevel) then
470: exit;
471: end if;
472: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
473: origSystemIn => ame_util.perOrigSystem,
474: origSystemIdIn =>tempApprover.orig_system_id,
475: nameOut => tempApprover.name,
476: displayNameOut => tempApprover.display_name);
477: if firstAuthInsExists then

Line 488: origSystemIn => ame_util.perOrigSystem,

484: exception
485: when noSupervisorException then
486: if tempApprover.display_name is null then
487: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
488: origSystemIn => ame_util.perOrigSystem,
489: origSystemIdIn => tempApprover.orig_system_id );
490: else
491: personDisplayName := tempApprover.display_name;
492: end if;

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

490: else
491: personDisplayName := tempApprover.display_name;
492: end if;
493: errorCode := -20209;
494: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
495: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
496: tokenNameOneIn => 'FIRST_NAME',
497: tokenValueOneIn => personDisplayName,
498: tokenNameTwoIn => 'LAST_NAME',

Line 502: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

498: tokenNameTwoIn => 'LAST_NAME',
499: tokenValueTwoIn => null ,
500: tokenNameThreeIn => 'OTHER_NAME',
501: tokenValueThreeIn => null );
502: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
503: routineNameIn => 'handler',
504: exceptionNumberIn => errorCode,
505: exceptionStringIn => errorMessage);
506: raise_application_error(errorCode,

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

507: errorMessage);
508: when nullFirstIdException then
509: errorCode := -20106;
510: errorMessage :=
511: ame_util.getMessage(applicationShortNameIn => 'PER',
512: messageNameIn => 'AME_400233_HAN_NO_TRANS_PER_ID');
513: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
514: routineNameIn => 'handler',
515: exceptionNumberIn => errorCode,

Line 513: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

509: errorCode := -20106;
510: errorMessage :=
511: ame_util.getMessage(applicationShortNameIn => 'PER',
512: messageNameIn => 'AME_400233_HAN_NO_TRANS_PER_ID');
513: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
514: routineNameIn => 'handler',
515: exceptionNumberIn => errorCode,
516: exceptionStringIn => errorMessage);
517: raise_application_error(errorCode,

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

517: raise_application_error(errorCode,
518: errorMessage);
519: when topDogRequestorException then
520: errorCode := -20111;
521: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
522: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
523: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
524: routineNameIn => 'handler',
525: exceptionNumberIn => errorCode,

Line 523: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

519: when topDogRequestorException then
520: errorCode := -20111;
521: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
522: messageNameIn => 'AME_400421_REQ_CANNOT_APPROVE');
523: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
524: routineNameIn => 'handler',
525: exceptionNumberIn => errorCode,
526: exceptionStringIn => errorMessage);
527: raise_application_error(errorCode,

Line 530: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

526: exceptionStringIn => errorMessage);
527: raise_application_error(errorCode,
528: errorMessage);
529: when others then
530: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
531: routineNameIn => 'handler',
532: exceptionNumberIn => sqlcode,
533: exceptionStringIn => sqlerrm);
534: l_error_code := sqlcode;

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

532: exceptionNumberIn => sqlcode,
533: exceptionStringIn => sqlerrm);
534: l_error_code := sqlcode;
535: if l_error_code = -20213 then
536: errorMessage := ame_util.getMessage(applicationShortNameIn =>'PER',
537: messageNameIn => 'AME_400834_INV_HANDLR_APR',
538: tokenNameOneIn => 'ACTION_TYPE_NAME',
539: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
540: tokenNameTwoIn => 'ORIG_SYSTEM',

Line 541: tokenValueTwoIn => ame_util.perOrigSystem,

537: messageNameIn => 'AME_400834_INV_HANDLR_APR',
538: tokenNameOneIn => 'ACTION_TYPE_NAME',
539: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
540: tokenNameTwoIn => 'ORIG_SYSTEM',
541: tokenValueTwoIn => ame_util.perOrigSystem,
542: tokenNameThreeIn => 'ORIG_SYSEM_ID',
543: tokenValueThreeIn => tempApprover.orig_system_id);
544: raise_application_error(errorCode,errorMessage);
545: end if;

Line 551: errorMessage ame_util.longestStringType;

547: end handler;
548: procedure parseAndSortRules as
549: badParameterException exception;
550: errorCode integer;
551: errorMessage ame_util.longestStringType;
552: tempCategory ame_util.charType;
553: tempLength integer;
554: tempNumber integer;
555: tempRuleId integer;

Line 552: tempCategory ame_util.charType;

548: procedure parseAndSortRules as
549: badParameterException exception;
550: errorCode integer;
551: errorMessage ame_util.longestStringType;
552: tempCategory ame_util.charType;
553: tempLength integer;
554: tempNumber integer;
555: tempRuleId integer;
556: tempSign ame_util.charType;

Line 556: tempSign ame_util.charType;

552: tempCategory ame_util.charType;
553: tempLength integer;
554: tempNumber integer;
555: tempRuleId integer;
556: tempSign ame_util.charType;
557: upperLimit integer;
558: begin
559: /* Parse. */
560: for i in 1 .. parametersCount loop

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

590: end loop;
591: exception
592: when badParameterException then
593: errorCode := -20001;
594: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
595: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
596: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
597: routineNameIn => 'parseAndSortRules',
598: exceptionNumberIn => errorCode,

Line 596: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

592: when badParameterException then
593: errorCode := -20001;
594: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
595: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
596: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
597: routineNameIn => 'parseAndSortRules',
598: exceptionNumberIn => errorCode,
599: exceptionStringIn => errorMessage);
600: raise_application_error(errorCode,

Line 603: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',

599: exceptionStringIn => errorMessage);
600: raise_application_error(errorCode,
601: errorMessage);
602: when others then
603: ame_util.runtimeException(packageNameIn => 'ame_relative_job_level_handler',
604: routineNameIn => 'parseAndSortRules',
605: exceptionNumberIn => sqlcode,
606: exceptionStringIn => sqlerrm);
607: raise;