DBA Data[Home] [Help]

APPS.AME_LI_JOB_LEVEL_HANDLER dependencies on AME_UTIL

Line 4: approverCategories ame_util.charList;

1: package body ame_li_job_level_handler as
2: /* $Header: ameeliha.pkb 120.6 2011/05/17 11:38:58 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: ameeliha.pkb 120.6 2011/05/17 11:38:58 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 65: 3. The source value is an ame-util.fieldDelimiter-delimited list of the IDs of

61: C. The approver is the top dog.
62: 2. An approver has final authority if the approver satisfies all the rules.
63: (The handler procedure proper takes care of adding subsequent approvers at
64: the same job level, if the relevant mandatory attribute so requires.)
65: 3. The source value is an ame-util.fieldDelimiter-delimited list of the IDs of
66: the rules that require an approver. This procedure builds up the source
67: value according to the following logic:
68: A. If a rule has not yet been satisfied, the rule requires the input
69: approver.

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 .. parameterNumbers.count 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 .. parameterNumbers.count 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 .. parameterNumbers.count loop
81: /* Determine whether the approver satisfies the current rule. */
82: if(personIdIn = topDogPersonId) then
83: tempRuleSatisfied := true;

Line 107: hasFinalAuthorityYN = ame_util.booleanTrue) then

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

Line 108: hasFinalAuthorityYN := ame_util.booleanFalse;

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

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

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

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

115: end if;
116: else
117: tempRuleRequiresApprover := true;
118: if(tempRuleSatisfied) then
119: ruleSatisfiedYN(i) := ame_util.booleanTrue;
120: end if;
121: end if;
122: if(tempRuleRequiresApprover) then
123: /* Update source. */

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

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

Line 127: if(category = ame_util.fyiApproverCategory and

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

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

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

Line 129: category := ame_util.approvalApproverCategory;

125: sourceInOut => source);
126: /* Update category as needed. */
127: if(category = ame_util.fyiApproverCategory and
128: approverCategories(i) = ame_util.approvalApproverCategory) then
129: category := ame_util.approvalApproverCategory;
130: end if;
131: end if;
132: end loop;
133: categoryOut := category;

Line 139: origSystemIn => ame_util.perOrigSystem,

135: sourceOut := source;
136: exception
137: when noSupervisorException then
138: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
139: origSystemIn => ame_util.perOrigSystem,
140: origSystemIdIn => personIdIn );
141: errorCode := -20207;
142: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
143: messageNameIn => 'AME_400297_HAN_LACK_SPVR',

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

138: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
139: origSystemIn => ame_util.perOrigSystem,
140: origSystemIdIn => personIdIn );
141: errorCode := -20207;
142: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
143: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
144: tokenNameOneIn => 'FIRST_NAME',
145: tokenValueOneIn => personDisplayName,
146: tokenNameTwoIn => 'LAST_NAME',

Line 150: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

146: tokenNameTwoIn => 'LAST_NAME',
147: tokenValueTwoIn => null ,
148: tokenNameThreeIn => 'OTHER_NAME',
149: tokenValueThreeIn => null );
150: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
151: routineNameIn => 'getCatSourceAndAuthority',
152: exceptionNumberIn => errorCode,
153: exceptionStringIn => errorMessage);
154: raise_application_error(errorCode,

Line 160: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

156: when others then
157: categoryOut := null;
158: hasFinalAuthorityYNOut := null;
159: sourceOut := null;
160: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
161: routineNameIn => 'getCatSourceAndAuthority',
162: exceptionNumberIn => sqlcode,
163: exceptionStringIn => sqlerrm);
164: raise;

Line 167: chainOrderMode ame_util.stringType;

163: exceptionStringIn => sqlerrm);
164: raise;
165: end getCatSourceAndAuthority;
166: procedure handler as
167: chainOrderMode ame_util.stringType;
168: COAInsertee ame_util.approverRecord2;
169: errorCode integer;
170: errorMessage ame_util.longestStringType;
171: finalAuthorityApproverCategory ame_util.charType;

Line 168: COAInsertee ame_util.approverRecord2;

164: raise;
165: end getCatSourceAndAuthority;
166: procedure handler as
167: chainOrderMode ame_util.stringType;
168: COAInsertee ame_util.approverRecord2;
169: errorCode integer;
170: errorMessage ame_util.longestStringType;
171: finalAuthorityApproverCategory ame_util.charType;
172: finalAuthorityFound boolean;

Line 170: errorMessage ame_util.longestStringType;

166: procedure handler as
167: chainOrderMode ame_util.stringType;
168: COAInsertee ame_util.approverRecord2;
169: errorCode integer;
170: errorMessage ame_util.longestStringType;
171: finalAuthorityApproverCategory ame_util.charType;
172: finalAuthorityFound boolean;
173: finalAuthoritySource ame_util.longStringType;
174: includeAllJobLevelApprovers boolean;

Line 171: finalAuthorityApproverCategory ame_util.charType;

167: chainOrderMode ame_util.stringType;
168: COAInsertee ame_util.approverRecord2;
169: errorCode integer;
170: errorMessage ame_util.longestStringType;
171: finalAuthorityApproverCategory ame_util.charType;
172: finalAuthorityFound boolean;
173: finalAuthoritySource ame_util.longStringType;
174: includeAllJobLevelApprovers boolean;
175: itemClassId integer;

Line 173: finalAuthoritySource ame_util.longStringType;

169: errorCode integer;
170: errorMessage ame_util.longestStringType;
171: finalAuthorityApproverCategory ame_util.charType;
172: finalAuthorityFound boolean;
173: finalAuthoritySource ame_util.longStringType;
174: includeAllJobLevelApprovers boolean;
175: itemClassId integer;
176: itemIds ame_util.stringList;
177: lineItemStartingPointPersonId integer;

Line 176: itemIds ame_util.stringList;

172: finalAuthorityFound boolean;
173: finalAuthoritySource ame_util.longStringType;
174: includeAllJobLevelApprovers boolean;
175: itemClassId integer;
176: itemIds ame_util.stringList;
177: lineItemStartingPointPersonId integer;
178: noSupervisorException exception;
179: nullFirstIdException exception;
180: firstStartingPointId integer;

Line 181: personDisplayName ame_util.longStringType;

177: lineItemStartingPointPersonId integer;
178: noSupervisorException exception;
179: nullFirstIdException exception;
180: firstStartingPointId integer;
181: personDisplayName ame_util.longStringType;
182: secondStartingPointId integer;
183: tempApprover ame_util.approverRecord2;
184: tempHasFinalAuthorityYN ame_util.charType;
185: tempJobLevel integer;

Line 183: tempApprover ame_util.approverRecord2;

179: nullFirstIdException exception;
180: firstStartingPointId integer;
181: personDisplayName ame_util.longStringType;
182: secondStartingPointId integer;
183: tempApprover ame_util.approverRecord2;
184: tempHasFinalAuthorityYN ame_util.charType;
185: tempJobLevel integer;
186: tempMemberOrderNumber integer;
187: tempOldJobLevel integer;

Line 184: tempHasFinalAuthorityYN ame_util.charType;

180: firstStartingPointId integer;
181: personDisplayName ame_util.longStringType;
182: secondStartingPointId integer;
183: tempApprover ame_util.approverRecord2;
184: tempHasFinalAuthorityYN ame_util.charType;
185: tempJobLevel integer;
186: tempMemberOrderNumber integer;
187: tempOldJobLevel integer;
188: tempSupervisorId integer;

Line 191: votingRegimeType ame_util.stringType;

187: tempOldJobLevel integer;
188: tempSupervisorId integer;
189: tempSupervisorJobLevel integer;
190: tempNextSupervisorId integer;
191: votingRegimeType ame_util.stringType;
192: firstAuthInsExists boolean := false;
193: coaInsAuthForward boolean := false;
194: l_error_code number;
195: begin

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

194: l_error_code number;
195: begin
196: errorCode := -20236;
197: includeAllJobLevelApprovers :=
198: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
199: ame_util.booleanAttributeTrue;
200: /* Populate some of the package variables. */
201: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
202: /* Set the fields in tempApprover that are constant for the entire handler cycle. */

Line 199: ame_util.booleanAttributeTrue;

195: begin
196: errorCode := -20236;
197: includeAllJobLevelApprovers :=
198: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
199: ame_util.booleanAttributeTrue;
200: /* Populate some of the package variables. */
201: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
202: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
203: tempApprover.orig_system := ame_util.perOrigSystem;

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

197: includeAllJobLevelApprovers :=
198: ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.includeAllApproversAttribute) =
199: ame_util.booleanAttributeTrue;
200: /* Populate some of the package variables. */
201: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
202: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
203: tempApprover.orig_system := ame_util.perOrigSystem;
204: tempApprover.authority := ame_util.authorityApprover;
205: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;

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

199: ame_util.booleanAttributeTrue;
200: /* Populate some of the package variables. */
201: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
202: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
203: tempApprover.orig_system := ame_util.perOrigSystem;
204: tempApprover.authority := ame_util.authorityApprover;
205: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
206: tempApprover.item_class := ame_engine.getHandlerItemClassName;
207: tempApprover.item_class_order_number := ame_engine.getHandlerItemClassOrderNumber;

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

200: /* Populate some of the package variables. */
201: topDogPersonId := to_number(ame_engine.getHeaderAttValue2(attributeNameIn => ame_util.topSupPersonIdAttribute));
202: /* Set the fields in tempApprover that are constant for the entire handler cycle. */
203: tempApprover.orig_system := ame_util.perOrigSystem;
204: tempApprover.authority := ame_util.authorityApprover;
205: tempApprover.action_type_id := ame_engine.getHandlerActionTypeId;
206: tempApprover.item_class := ame_engine.getHandlerItemClassName;
207: tempApprover.item_class_order_number := ame_engine.getHandlerItemClassOrderNumber;
208: tempApprover.item_order_number := ame_engine.getHandlerItemOrderNumber;

Line 224: itemClassId := ame_engine.getItemClassId(itemClassNameIn => ame_util.lineItemItemClassName);

220: approverCategoriesOut => approverCategories,
221: parametersOut => parameters);
222: parametersCount := parameters.count;
223: /* get the Item class Id for Line Item Item class */
224: itemClassId := ame_engine.getItemClassId(itemClassNameIn => ame_util.lineItemItemClassName);
225: /* call ame_engine.getItemClassItemIds() to get the item Id list */
226: ame_engine.getItemClassItemIds(itemClassIdIn => itemClassId,
227: itemIdsOut => itemIds);
228: for chainCounter in 1..itemIds.count loop

Line 251: attributeNameIn => ame_util.lineItemStartingPointAttribute,

247: if COAInsertee.name is null then
248: /* call ame_engine.getItemAttValue2() inside the loop to get the line
249: item starting point person id */
250: lineItemStartingPointPersonId := to_number(ame_engine.getItemAttValue2(
251: attributeNameIn => ame_util.lineItemStartingPointAttribute,
252: itemIdIn => itemIds(chainCounter)));
253: if(lineItemStartingPointPersonId is null ) then
254: raise nullFirstIdException;
255: end if;

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

253: if(lineItemStartingPointPersonId is null ) then
254: raise nullFirstIdException;
255: end if;
256: tempApprover.orig_system_id := lineItemStartingPointPersonId;
257: tempApprover.api_insertion := ame_util.oamGenerated;
258: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
259: origSystemIn => ame_util.perOrigSystem,
260: origSystemIdIn => tempApprover.orig_system_id,
261: nameOut => tempApprover.name,

Line 259: origSystemIn => ame_util.perOrigSystem,

255: end if;
256: tempApprover.orig_system_id := lineItemStartingPointPersonId;
257: tempApprover.api_insertion := ame_util.oamGenerated;
258: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
259: origSystemIn => ame_util.perOrigSystem,
260: origSystemIdIn => tempApprover.orig_system_id,
261: nameOut => tempApprover.name,
262: displayNameOut => tempApprover.display_name);
263: else

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

265: tempApprover.orig_system := COAInsertee.orig_system;
266: tempApprover.orig_system_id := COAInsertee.orig_system_id;
267: tempApprover.display_name := COAInsertee.display_name;
268: tempApprover.source := COAInsertee.source;
269: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
270: firstAuthInsExists := true;
271: end if;
272: /* Get the threshholdJobLevel to convert parameters to absolute values */
273: ame_absolute_job_level_handler.getJobLevelAndSupervisor(

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

276: supervisorIdOut => tempSupervisorId);
277: tempJobLevel := threshholdJobLevel;
278: parseAndSortRules;
279: for i in 1 .. parameterNumbers.count loop
280: ruleSatisfiedYN(i) := ame_util.booleanFalse;
281: end loop;
282: if (chainOrderMode = ame_util.serialChainsMode) then
283: tempApprover.group_or_chain_order_number := chainCounter;
284: else /* chain Order Mode is parallel */

Line 282: if (chainOrderMode = ame_util.serialChainsMode) then

278: parseAndSortRules;
279: for i in 1 .. parameterNumbers.count loop
280: ruleSatisfiedYN(i) := ame_util.booleanFalse;
281: end loop;
282: if (chainOrderMode = ame_util.serialChainsMode) then
283: tempApprover.group_or_chain_order_number := chainCounter;
284: else /* chain Order Mode is parallel */
285: tempApprover.group_or_chain_order_number := 1;
286: end if;

Line 301: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

297: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
298: supervisorJobLevelOut => tempSupervisorJobLevel,
299: nextSupervisorIdOut => tempNextSupervisorId);
300: if(not finalAuthorityFound and
301: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
302: finalAuthorityFound := true;
303: finalAuthorityApproverCategory := tempApprover.approver_category;
304: finalAuthoritySource := tempApprover.source;
305: end if;

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

307: finalAuthoritySource is not null ) then
308: tempApprover.approver_category := finalAuthorityApproverCategory;
309: tempApprover.source := finalAuthoritySource;
310: end if;
311: tempApprover.api_insertion := ame_util.oamGenerated;
312: tempApprover.occurrence := ame_engine.getHandlerOccurrence(
313: nameIn=>tempApprover.name,
314: itemClassIn => tempApprover.item_class,
315: itemIdIn => tempApprover.item_id,

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

315: itemIdIn => tempApprover.item_id,
316: actionTypeIdIn => tempApprover.action_type_id,
317: groupOrChainIdIn => tempApprover.group_or_chain_id);
318: tempMemberOrderNumber := tempMemberOrderNumber + 1;
319: if(votingRegimeType = ame_util.serializedVoting) then
320: tempApprover.member_order_number := tempMemberOrderNumber;
321: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
322: tempApprover.member_order_number := 1;
323: end if;

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

317: groupOrChainIdIn => tempApprover.group_or_chain_id);
318: tempMemberOrderNumber := tempMemberOrderNumber + 1;
319: if(votingRegimeType = ame_util.serializedVoting) then
320: tempApprover.member_order_number := tempMemberOrderNumber;
321: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
322: tempApprover.member_order_number := 1;
323: end if;
324: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
325: /* The engine will set tempApprover.approver_order_number; leave it null here. */

Line 332: COAInsertee := ame_util.emptyApproverRecord2;

328: insertion is found, keep checking till no more COA insertions. The check
329: for final authority will need to be done again. */
330: loop
331: /* Initialize COAInsertee approverRecord2 */
332: COAInsertee := ame_util.emptyApproverRecord2;
333: /* Check if there are any COAInsertions */
334: ame_engine.getHandlerCOAInsertion(nameIn => tempApprover.name,
335: itemClassIn => tempApprover.item_class,
336: itemIdIn => tempApprover.item_id,

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

361: hasFinalAuthorityYNOut => tempHasFinalAuthorityYN,
362: supervisorJobLevelOut => tempSupervisorJobLevel,
363: nextSupervisorIdOut => tempNextSupervisorId);
364: tempApprover.source := COAInsertee.source;
365: tempApprover.approver_category := ame_util.approvalApproverCategory;
366: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
367: tempMemberOrderNumber := tempMemberOrderNumber + 1;
368: if(votingRegimeType = ame_util.serializedVoting) then
369: tempApprover.member_order_number := tempMemberOrderNumber;

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

362: supervisorJobLevelOut => tempSupervisorJobLevel,
363: nextSupervisorIdOut => tempNextSupervisorId);
364: tempApprover.source := COAInsertee.source;
365: tempApprover.approver_category := ame_util.approvalApproverCategory;
366: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
367: tempMemberOrderNumber := tempMemberOrderNumber + 1;
368: if(votingRegimeType = ame_util.serializedVoting) then
369: tempApprover.member_order_number := tempMemberOrderNumber;
370: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */

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

364: tempApprover.source := COAInsertee.source;
365: tempApprover.approver_category := ame_util.approvalApproverCategory;
366: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
367: tempMemberOrderNumber := tempMemberOrderNumber + 1;
368: if(votingRegimeType = ame_util.serializedVoting) then
369: tempApprover.member_order_number := tempMemberOrderNumber;
370: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
371: tempApprover.member_order_number := 1;
372: end if;

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

366: tempApprover.api_insertion := ame_util.apiAuthorityInsertion;
367: tempMemberOrderNumber := tempMemberOrderNumber + 1;
368: if(votingRegimeType = ame_util.serializedVoting) then
369: tempApprover.member_order_number := tempMemberOrderNumber;
370: else /* votingRegimeType in (ame_util.consensusVoting, ame_util.firstApproverVoting) */
371: tempApprover.member_order_number := 1;
372: end if;
373: tempApprover.occurrence := ame_engine.getHandlerOccurrence(nameIn => tempApprover.name,
374: itemClassIn => tempApprover.item_class,

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

375: itemIdIn => tempApprover.item_id,
376: actionTypeIdIn => tempApprover.action_type_id,
377: groupOrChainIdIn => tempApprover.group_or_chain_id);
378: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
379: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
380: ame_util.nullStatus check to see if approver could have final authority */
381: if ((tempApprover.approval_status is null) or
382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,

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

376: actionTypeIdIn => tempApprover.action_type_id,
377: groupOrChainIdIn => tempApprover.group_or_chain_id);
378: tempApprover.approval_status := ame_engine.getHandlerApprovalStatus(approverIn => tempApprover);
379: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
380: ame_util.nullStatus check to see if approver could have final authority */
381: if ((tempApprover.approval_status is null) or
382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,

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

379: /* If approver has a status of ame_util.approve or ame_util.approveAndForwardStatus or
380: ame_util.nullStatus check to see if approver could have final authority */
381: if ((tempApprover.approval_status is null) or
382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,
385: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )

Line 384: ame_util.repeatedStatus, ame_util.suppressedStatus,

380: ame_util.nullStatus check to see if approver could have final authority */
381: if ((tempApprover.approval_status is null) or
382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,
385: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )
388: then

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

381: if ((tempApprover.approval_status is null) or
382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,
385: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )
388: then
389: if(not finalAuthorityFound and

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

382: (tempApprover.approval_status in
383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,
385: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )
388: then
389: if(not finalAuthorityFound and
390: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

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

383: (ame_util.approvedStatus, ame_util.approveAndForwardStatus,
384: ame_util.repeatedStatus, ame_util.suppressedStatus,
385: ame_util.beatByFirstResponderStatus, ame_util.nullStatus)) or
386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )
388: then
389: if(not finalAuthorityFound and
390: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
391: finalAuthorityFound := true;

Line 390: tempHasFinalAuthorityYN = ame_util.booleanTrue) then

386: (tempApprover.approver_category = ame_util.approvalApproverCategory and
387: tempApprover.approval_status = ame_util.notifiedStatus) )
388: then
389: if(not finalAuthorityFound and
390: tempHasFinalAuthorityYN = ame_util.booleanTrue) then
391: finalAuthorityFound := true;
392: end if;
393: end if;
394: ame_engine.addApprover(approverIn => tempApprover);

Line 427: origSystemIn => ame_util.perOrigSystem,

423: tempOldJobLevel <> tempJobLevel) then
424: exit;
425: end if;
426: ame_approver_type_pkg.getWfRolesNameAndDisplayName(
427: origSystemIn => ame_util.perOrigSystem,
428: origSystemIdIn => tempApprover.orig_system_id,
429: nameOut => tempApprover.name,
430: displayNameOut => tempApprover.display_name);
431: if firstAuthInsExists then

Line 443: origSystemIn => ame_util.perOrigSystem,

439: exception
440: when noSupervisorException then
441: if tempApprover.display_name is null then
442: personDisplayName := ame_approver_type_pkg.getApproverDisplayName2(
443: origSystemIn => ame_util.perOrigSystem,
444: origSystemIdIn => tempApprover.orig_system_id );
445: else
446: personDisplayName := tempApprover.display_name;
447: end if;

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

445: else
446: personDisplayName := tempApprover.display_name;
447: end if;
448: errorCode := -20207;
449: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
450: messageNameIn => 'AME_400297_HAN_LACK_SPVR',
451: tokenNameOneIn => 'FIRST_NAME',
452: tokenValueOneIn => personDisplayName,
453: tokenNameTwoIn => 'LAST_NAME',

Line 457: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

453: tokenNameTwoIn => 'LAST_NAME',
454: tokenValueTwoIn => null ,
455: tokenNameThreeIn => 'OTHER_NAME',
456: tokenValueThreeIn => null );
457: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
458: routineNameIn => 'handler',
459: exceptionNumberIn => errorCode,
460: exceptionStringIn => errorMessage);
461: raise_application_error(errorCode,

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

462: errorMessage);
463: when nullFirstIdException then
464: errorCode := -20001;
465: errorMessage :=
466: ame_util.getMessage(applicationShortNameIn => 'PER',
467: messageNameIn => 'AME_400450_LIHA_NO_PER_ID');
468: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
469: routineNameIn => 'handler',
470: exceptionNumberIn => errorCode,

Line 468: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

464: errorCode := -20001;
465: errorMessage :=
466: ame_util.getMessage(applicationShortNameIn => 'PER',
467: messageNameIn => 'AME_400450_LIHA_NO_PER_ID');
468: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
469: routineNameIn => 'handler',
470: exceptionNumberIn => errorCode,
471: exceptionStringIn => errorMessage);
472: raise_application_error(errorCode,

Line 475: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

471: exceptionStringIn => errorMessage);
472: raise_application_error(errorCode,
473: errorMessage);
474: when others then
475: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
476: routineNameIn => 'handler',
477: exceptionNumberIn => sqlcode,
478: exceptionStringIn => sqlerrm);
479: l_error_code := sqlcode;

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

477: exceptionNumberIn => sqlcode,
478: exceptionStringIn => sqlerrm);
479: l_error_code := sqlcode;
480: if l_error_code = -20213 then
481: errorMessage := ame_util.getMessage(applicationShortNameIn =>'PER',
482: messageNameIn => 'AME_400834_INV_HANDLR_APR',
483: tokenNameOneIn => 'ACTION_TYPE_NAME',
484: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
485: tokenNameTwoIn => 'ORIG_SYSTEM',

Line 486: tokenValueTwoIn => ame_util.perOrigSystem,

482: messageNameIn => 'AME_400834_INV_HANDLR_APR',
483: tokenNameOneIn => 'ACTION_TYPE_NAME',
484: tokenValueOneIn => ame_engine.getActionTypeName(tempApprover.action_type_id),
485: tokenNameTwoIn => 'ORIG_SYSTEM',
486: tokenValueTwoIn => ame_util.perOrigSystem,
487: tokenNameThreeIn => 'ORIG_SYSEM_ID',
488: tokenValueThreeIn => tempApprover.orig_system_id);
489: raise_application_error(errorCode,errorMessage);
490: end if;

Line 496: errorMessage ame_util.longestStringType;

492: end handler;
493: procedure parseAndSortRules as
494: badParameterException exception;
495: errorCode integer;
496: errorMessage ame_util.longestStringType;
497: tempCategory ame_util.charType;
498: tempIndex integer;
499: tempLength integer;
500: tempNumber integer;

Line 497: tempCategory ame_util.charType;

493: procedure parseAndSortRules as
494: badParameterException exception;
495: errorCode integer;
496: errorMessage ame_util.longestStringType;
497: tempCategory ame_util.charType;
498: tempIndex integer;
499: tempLength integer;
500: tempNumber integer;
501: tempRuleId integer;

Line 502: tempSign ame_util.charType;

498: tempIndex integer;
499: tempLength integer;
500: tempNumber integer;
501: tempRuleId integer;
502: tempSign ame_util.charType;
503: upperLimit integer;
504: i integer;
505: j integer;
506: begin

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

542: end loop;
543: exception
544: when badParameterException then
545: errorCode := -20001;
546: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
547: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
548: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
549: routineNameIn => 'parseAndSortRules',
550: exceptionNumberIn => errorCode,

Line 548: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

544: when badParameterException then
545: errorCode := -20001;
546: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
547: messageNameIn => 'AME_400234_HAN_ACT_PAR_SIGN');
548: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
549: routineNameIn => 'parseAndSortRules',
550: exceptionNumberIn => errorCode,
551: exceptionStringIn => errorMessage);
552: raise_application_error(errorCode,

Line 555: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',

551: exceptionStringIn => errorMessage);
552: raise_application_error(errorCode,
553: errorMessage);
554: when others then
555: ame_util.runtimeException(packageNameIn => 'ame_li_job_level_handler',
556: routineNameIn => 'parseAndSortRules',
557: exceptionNumberIn => sqlcode,
558: exceptionStringIn => sqlerrm);
559: raise;