1: package body ame_api7 as
2: /* $Header: ameeapi7.pkb 120.0 2005/11/28 07:24:33 srpurani noship $ */
3: /*The following method validates itemClass for the current transaction*/
4: function validateItemClass(itemClassIn varchar2) return boolean as
5: itemClassNames ame_util.stringList;
6: begin
7: ame_engine.getAllItemClasses(itemClassNamesOut => itemClassNames);
8: for i in 1..itemClassNames.count loop
9: if itemClassNames(i) = itemClassIn then
15: /*The following method validates itemId for the itemClass for the current
16: transaction*/
17: function validateItemClassItemId(itemClassIn varchar2
18: ,itemIdIn varchar2) return boolean as
19: itemIds ame_util.stringList;
20: begin
21: ame_engine.getItemClassItemIds
22: (itemClassIdIn => ame_admin_pkg.getItemClassIdByName(itemClassNameIn => itemClassIn),
23: itemIdsOut => itemIds );
36: itemIdIn in varchar2,
37: attributeValue1Out out nocopy varchar2,
38: attributeValue2Out out nocopy varchar2,
39: attributeValue3Out out nocopy varchar2) as
40: itemId ame_util.stringType;
41: itemClass ame_util.stringType;
42: invalidItemIdException exception;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
37: attributeValue1Out out nocopy varchar2,
38: attributeValue2Out out nocopy varchar2,
39: attributeValue3Out out nocopy varchar2) as
40: itemId ame_util.stringType;
41: itemClass ame_util.stringType;
42: invalidItemIdException exception;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: begin
40: itemId ame_util.stringType;
41: itemClass ame_util.stringType;
42: invalidItemIdException exception;
43: errorCode integer;
44: errorMessage ame_util.longestStringType;
45: begin
46: ame_engine.updateTransactionState(isTestTransactionIn => false,
47: isLocalTransactionIn => false,
48: fetchConfigVarsIn => false,
65: transactionTypeIdIn => transactionTypeIn );
66: /* In case no itemClass is passed in , assume it is header and set itemId as
67: transactionIdIn */
68:
69: if itemClassIn is null or itemClassIn = ame_util.headerItemClassName then
70: itemClass := ame_util.headerItemClassName;
71: itemId := transactionIdIn;
72: else
73: itemId := itemIdIn;
66: /* In case no itemClass is passed in , assume it is header and set itemId as
67: transactionIdIn */
68:
69: if itemClassIn is null or itemClassIn = ame_util.headerItemClassName then
70: itemClass := ame_util.headerItemClassName;
71: itemId := transactionIdIn;
72: else
73: itemId := itemIdIn;
74: itemClass := itemClassIn;
86: itemIdIn => itemId ) then
87: raise invalidItemIdException;
88: end if;
89: /*Handle variant attributes */
90: if (attributeNameIn = ame_util.jobLevelStartingPointAttribute or
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
87: raise invalidItemIdException;
88: end if;
89: /*Handle variant attributes */
90: if (attributeNameIn = ame_util.jobLevelStartingPointAttribute or
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
95: attributeNameIn = ame_util.secondStartingPointAttribute ) then
88: end if;
89: /*Handle variant attributes */
90: if (attributeNameIn = ame_util.jobLevelStartingPointAttribute or
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
95: attributeNameIn = ame_util.secondStartingPointAttribute ) then
96: attributeValue1Out := ame_engine.getVariantAttributeValue(attributeIdIn => ame_attribute_pkg.getIdByName(
89: /*Handle variant attributes */
90: if (attributeNameIn = ame_util.jobLevelStartingPointAttribute or
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
95: attributeNameIn = ame_util.secondStartingPointAttribute ) then
96: attributeValue1Out := ame_engine.getVariantAttributeValue(attributeIdIn => ame_attribute_pkg.getIdByName(
97: attributeNameIn => attributeNameIn),
90: if (attributeNameIn = ame_util.jobLevelStartingPointAttribute or
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
95: attributeNameIn = ame_util.secondStartingPointAttribute ) then
96: attributeValue1Out := ame_engine.getVariantAttributeValue(attributeIdIn => ame_attribute_pkg.getIdByName(
97: attributeNameIn => attributeNameIn),
98: itemClassIn => itemClass,
91: attributeNameIn = ame_util.nonDefStartingPointPosAttr or
92: attributeNameIn = ame_util.nonDefPosStructureAttr or
93: attributeNameIn = ame_util.supStartingPointAttribute or
94: attributeNameIn = ame_util.firstStartingPointAttribute or
95: attributeNameIn = ame_util.secondStartingPointAttribute ) then
96: attributeValue1Out := ame_engine.getVariantAttributeValue(attributeIdIn => ame_attribute_pkg.getIdByName(
97: attributeNameIn => attributeNameIn),
98: itemClassIn => itemClass,
99: itemIdIn => itemId
107: end if;
108: exception
109: when invalidItemIdException then
110: errorCode := -20001;
111: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
112: messageNameIn => 'AME_400800_INVALID_ITEM_ID');
113: ame_util.runtimeException(packageNameIn => 'ame_api7',
114: routineNameIn => 'getAttributeValue',
115: exceptionNumberIn => errorCode,
109: when invalidItemIdException then
110: errorCode := -20001;
111: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
112: messageNameIn => 'AME_400800_INVALID_ITEM_ID');
113: ame_util.runtimeException(packageNameIn => 'ame_api7',
114: routineNameIn => 'getAttributeValue',
115: exceptionNumberIn => errorCode,
116: exceptionStringIn => errorMessage);
117: raise_application_error(errorCode,
116: exceptionStringIn => errorMessage);
117: raise_application_error(errorCode,
118: errorMessage);
119: when others then
120: ame_util.runtimeException(packageNameIn => 'ame_api7',
121: routineNameIn => 'getAttributeValue',
122: exceptionNumberIn => sqlcode,
123: exceptionStringIn => sqlerrm);
124: raise;
128: transactionIdIn in varchar2 default null,
129: itemClassIn in varchar2,
130: itemIdIn in varchar2,
131: groupIdIn in number,
132: memberDisplayNamesOut out nocopy ame_util.longStringList)as
133: cursor groupMemberCursor(groupIdIn in integer) is
134: select
135: parameter,
136: upper(parameter_name),
135: parameter,
136: upper(parameter_name),
137: query_string,
138: decode(parameter_name,
139: ame_util.approverOamGroupId, null,
140: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
141: from ame_approval_group_members
142: where
143: approval_group_id = groupIdIn
146: noItemBindException exception;
147: dynamicCursor integer;
148: colonLocation1 integer;
149: colonLocation2 integer;
150: displayNames ame_util.longStringList;
151: errorCode integer;
152: errorMessage ame_util.longestStringType;
153: noTransIdDefinedException exception;
154: orderNumbers ame_util.idList;
148: colonLocation1 integer;
149: colonLocation2 integer;
150: displayNames ame_util.longStringList;
151: errorCode integer;
152: errorMessage ame_util.longestStringType;
153: noTransIdDefinedException exception;
154: orderNumbers ame_util.idList;
155: memberOrigSystem ame_util.stringType;
156: memberOrigSystemId number;
150: displayNames ame_util.longStringList;
151: errorCode integer;
152: errorMessage ame_util.longestStringType;
153: noTransIdDefinedException exception;
154: orderNumbers ame_util.idList;
155: memberOrigSystem ame_util.stringType;
156: memberOrigSystemId number;
157: outputIndex integer;
158: parameters ame_util.longStringList;
151: errorCode integer;
152: errorMessage ame_util.longestStringType;
153: noTransIdDefinedException exception;
154: orderNumbers ame_util.idList;
155: memberOrigSystem ame_util.stringType;
156: memberOrigSystemId number;
157: outputIndex integer;
158: parameters ame_util.longStringList;
159: queryStrings ame_util.longestStringList;
154: orderNumbers ame_util.idList;
155: memberOrigSystem ame_util.stringType;
156: memberOrigSystemId number;
157: outputIndex integer;
158: parameters ame_util.longStringList;
159: queryStrings ame_util.longestStringList;
160: rowsFound integer;
161: tempGroupMembers dbms_sql.Varchar2_Table;
162: upperParameterNames ame_util.stringList;
155: memberOrigSystem ame_util.stringType;
156: memberOrigSystemId number;
157: outputIndex integer;
158: parameters ame_util.longStringList;
159: queryStrings ame_util.longestStringList;
160: rowsFound integer;
161: tempGroupMembers dbms_sql.Varchar2_Table;
162: upperParameterNames ame_util.stringList;
163: tempGroupName ame_util.stringType;
158: parameters ame_util.longStringList;
159: queryStrings ame_util.longestStringList;
160: rowsFound integer;
161: tempGroupMembers dbms_sql.Varchar2_Table;
162: upperParameterNames ame_util.stringList;
163: tempGroupName ame_util.stringType;
164: begin
165: open groupMemberCursor(groupIdIn => groupIdIn);
166: fetch groupMemberCursor bulk collect
159: queryStrings ame_util.longestStringList;
160: rowsFound integer;
161: tempGroupMembers dbms_sql.Varchar2_Table;
162: upperParameterNames ame_util.stringList;
163: tempGroupName ame_util.stringType;
164: begin
165: open groupMemberCursor(groupIdIn => groupIdIn);
166: fetch groupMemberCursor bulk collect
167: into
171: displayNames;
172: close groupMemberCursor;
173: outputIndex := 0; /* pre-increment */
174: for i in 1 .. parameters.count loop
175: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
176: dynamicCursor := dbms_sql.open_cursor;
177: dbms_sql.parse(dynamicCursor,
178: ame_util.removeReturns(stringIn => queryStrings(i),
179: replaceWithSpaces => true),
174: for i in 1 .. parameters.count loop
175: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
176: dynamicCursor := dbms_sql.open_cursor;
177: dbms_sql.parse(dynamicCursor,
178: ame_util.removeReturns(stringIn => queryStrings(i),
179: replaceWithSpaces => true),
180: dbms_sql.native);
181: if(instrb(queryStrings(i),
182: ame_util.transactionIdPlaceholder) > 0) then
178: ame_util.removeReturns(stringIn => queryStrings(i),
179: replaceWithSpaces => true),
180: dbms_sql.native);
181: if(instrb(queryStrings(i),
182: ame_util.transactionIdPlaceholder) > 0) then
183: if transactionIdIn is null then
184: dbms_sql.close_cursor(dynamicCursor);
185: raise noTransIdDefinedException;
186: end if;
184: dbms_sql.close_cursor(dynamicCursor);
185: raise noTransIdDefinedException;
186: end if;
187: dbms_sql.bind_variable(dynamicCursor,
188: ame_util.transactionIdPlaceholder,
189: transactionIdIn,
190: 50);
191: end if;
192: if(instrb(queryStrings(i),
189: transactionIdIn,
190: 50);
191: end if;
192: if(instrb(queryStrings(i),
193: ame_util2.itemClassPlaceHolder) > 0) then
194: if transactionIdIn is null then
195: dbms_sql.close_cursor(dynamicCursor);
196: raise noItemBindException;
197: end if;
195: dbms_sql.close_cursor(dynamicCursor);
196: raise noItemBindException;
197: end if;
198: dbms_sql.bind_variable(dynamicCursor,
199: ame_util2.itemClassPlaceHolder,
200: itemClassIn,
201: 50);
202: end if;
203: if(instrb(queryStrings(i),
200: itemClassIn,
201: 50);
202: end if;
203: if(instrb(queryStrings(i),
204: ame_util2.itemIdPlaceHolder) > 0) then
205: if transactionIdIn is null then
206: dbms_sql.close_cursor(dynamicCursor);
207: raise noItemBindException;
208: end if;
206: dbms_sql.close_cursor(dynamicCursor);
207: raise noItemBindException;
208: end if;
209: dbms_sql.bind_variable(dynamicCursor,
210: ame_util2.itemIdPlaceHolder,
211: itemIdIn,
212: 50);
213: end if;
214: dbms_sql.define_array(dynamicCursor,
240: if(colonLocation2 = 0) then /* first case (old style) */
241: memberOrigSystemId :=
242: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
243: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
244: upper(ame_util.approverPersonId)) then
245: memberOrigSystem := ame_util.perOrigSystem;
246: else
247: memberOrigSystem := ame_util.fndUserOrigSystem;
248: end if;
241: memberOrigSystemId :=
242: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
243: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
244: upper(ame_util.approverPersonId)) then
245: memberOrigSystem := ame_util.perOrigSystem;
246: else
247: memberOrigSystem := ame_util.fndUserOrigSystem;
248: end if;
249: else
243: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
244: upper(ame_util.approverPersonId)) then
245: memberOrigSystem := ame_util.perOrigSystem;
246: else
247: memberOrigSystem := ame_util.fndUserOrigSystem;
248: end if;
249: else
250: memberOrigSystem :=
251: substrb(tempGroupMembers(j), 1, (instrb(tempGroupMembers(j), ':', 1, 1)-1));
269: close groupMemberCursor;
270: end if;
271: memberDisplayNamesOut.delete;
272: errorCode := -20001;
273: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
274: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
275: ame_util.runtimeException(packageNameIn => 'ame_api3',
276: routineNameIn => 'getGroupMembers1',
277: exceptionNumberIn => errorCode,
271: memberDisplayNamesOut.delete;
272: errorCode := -20001;
273: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
274: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
275: ame_util.runtimeException(packageNameIn => 'ame_api3',
276: routineNameIn => 'getGroupMembers1',
277: exceptionNumberIn => errorCode,
278: exceptionStringIn => errorMessage);
279: raise_application_error(errorCode,
285: memberDisplayNamesOut.delete;
286: errorCode := -20001;
287: ame_api5.getApprovalGroupName(groupIdIn => groupIdIn
288: ,groupNameOut => tempGroupName);
289: errorMessage := ame_util.getMessage(
290: applicationShortNameIn => 'PER',
291: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
292: tokenNameOneIn => 'APPROVER_GROUP',
293: tokenValueOneIn => tempGroupName);
290: applicationShortNameIn => 'PER',
291: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
292: tokenNameOneIn => 'APPROVER_GROUP',
293: tokenValueOneIn => tempGroupName);
294: ame_util.runtimeException(packageNameIn => 'ame_api3',
295: routineNameIn => 'getGroupMembers3',
296: exceptionNumberIn => errorCode,
297: exceptionStringIn => errorMessage);
298: raise_application_error(errorCode,
302: close groupMemberCursor;
303: end if;
304: memberDisplayNamesOut.delete;
305: errorCode := -20001;
306: errorMessage := ame_util.getMessage(
307: applicationShortNameIn => 'PER',
308: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
309: tokenNameOneIn => 'APPROVAL_GROUP',
310: tokenValueOneIn => 'TO_BE_MODIFIED');
307: applicationShortNameIn => 'PER',
308: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
309: tokenNameOneIn => 'APPROVAL_GROUP',
310: tokenValueOneIn => 'TO_BE_MODIFIED');
311: ame_util.runtimeException(packageNameIn => 'ame_api3',
312: routineNameIn => 'getGroupMembers1',
313: exceptionNumberIn => errorCode,
314: exceptionStringIn => errorMessage);
315: raise_application_error(errorCode,
318: if(groupMemberCursor%isopen) then
319: close groupMemberCursor;
320: end if;
321: memberDisplayNamesOut.delete;
322: ame_util.runtimeException(packageNameIn => 'ame_api3',
323: routineNameIn => 'getGroupMembers1',
324: exceptionNumberIn => sqlcode,
325: exceptionStringIn => sqlerrm);
326: raise;
330: transactionIdIn in varchar2 default null,
331: itemClassIn in varchar2,
332: itemIdIn in varchar2,
333: groupIdIn in number,
334: memberNamesOut out nocopy ame_util.longStringList,
335: memberDisplayNamesOut out nocopy ame_util.longStringList)as
336: cursor groupMemberCursor(groupIdIn in integer) is
337: select
338: parameter,
331: itemClassIn in varchar2,
332: itemIdIn in varchar2,
333: groupIdIn in number,
334: memberNamesOut out nocopy ame_util.longStringList,
335: memberDisplayNamesOut out nocopy ame_util.longStringList)as
336: cursor groupMemberCursor(groupIdIn in integer) is
337: select
338: parameter,
339: upper(parameter_name),
338: parameter,
339: upper(parameter_name),
340: query_string,
341: decode(parameter_name,
342: ame_util.approverOamGroupId, null,
343: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
344: decode(parameter_name,
345: ame_util.approverOamGroupId, null,
346: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
341: decode(parameter_name,
342: ame_util.approverOamGroupId, null,
343: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
344: decode(parameter_name,
345: ame_util.approverOamGroupId, null,
346: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
347: from ame_approval_group_members
348: where
349: approval_group_id = groupIdIn
352: noItemBindException exception;
353: dynamicCursor integer;
354: colonLocation1 integer;
355: colonLocation2 integer;
356: displayNames ame_util.longStringList;
357: errorCode integer;
358: errorMessage ame_util.longestStringType;
359: approverNames ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
354: colonLocation1 integer;
355: colonLocation2 integer;
356: displayNames ame_util.longStringList;
357: errorCode integer;
358: errorMessage ame_util.longestStringType;
359: approverNames ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
355: colonLocation2 integer;
356: displayNames ame_util.longStringList;
357: errorCode integer;
358: errorMessage ame_util.longestStringType;
359: approverNames ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
363: orderNumbers ame_util.idList;
356: displayNames ame_util.longStringList;
357: errorCode integer;
358: errorMessage ame_util.longestStringType;
359: approverNames ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
363: orderNumbers ame_util.idList;
364: origSystemIds ame_util.idList;
359: approverNames ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
363: orderNumbers ame_util.idList;
364: origSystemIds ame_util.idList;
365: origSystems ame_util.stringList;
366: outputIndex integer;
367: parameters ame_util.longStringList;
360: memberOrigSystem ame_util.stringType;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
363: orderNumbers ame_util.idList;
364: origSystemIds ame_util.idList;
365: origSystems ame_util.stringList;
366: outputIndex integer;
367: parameters ame_util.longStringList;
368: queryStrings ame_util.longestStringList;
361: memberOrigSystemId number;
362: noTransIdDefinedException exception;
363: orderNumbers ame_util.idList;
364: origSystemIds ame_util.idList;
365: origSystems ame_util.stringList;
366: outputIndex integer;
367: parameters ame_util.longStringList;
368: queryStrings ame_util.longestStringList;
369: rowsFound integer;
363: orderNumbers ame_util.idList;
364: origSystemIds ame_util.idList;
365: origSystems ame_util.stringList;
366: outputIndex integer;
367: parameters ame_util.longStringList;
368: queryStrings ame_util.longestStringList;
369: rowsFound integer;
370: tempGroupMembers dbms_sql.Varchar2_Table;
371: upperParameterNames ame_util.stringList;
364: origSystemIds ame_util.idList;
365: origSystems ame_util.stringList;
366: outputIndex integer;
367: parameters ame_util.longStringList;
368: queryStrings ame_util.longestStringList;
369: rowsFound integer;
370: tempGroupMembers dbms_sql.Varchar2_Table;
371: upperParameterNames ame_util.stringList;
372: tempGroupName ame_util.stringType;
367: parameters ame_util.longStringList;
368: queryStrings ame_util.longestStringList;
369: rowsFound integer;
370: tempGroupMembers dbms_sql.Varchar2_Table;
371: upperParameterNames ame_util.stringList;
372: tempGroupName ame_util.stringType;
373: begin
374: open groupMemberCursor(groupIdIn => groupIdIn);
375: fetch groupMemberCursor bulk collect
368: queryStrings ame_util.longestStringList;
369: rowsFound integer;
370: tempGroupMembers dbms_sql.Varchar2_Table;
371: upperParameterNames ame_util.stringList;
372: tempGroupName ame_util.stringType;
373: begin
374: open groupMemberCursor(groupIdIn => groupIdIn);
375: fetch groupMemberCursor bulk collect
376: into
381: displayNames;
382: close groupMemberCursor;
383: outputIndex := 0; /* pre-increment */
384: for i in 1 .. parameters.count loop
385: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
386: dynamicCursor := dbms_sql.open_cursor;
387: dbms_sql.parse(dynamicCursor,
388: ame_util.removeReturns(stringIn => queryStrings(i),
389: replaceWithSpaces => true),
384: for i in 1 .. parameters.count loop
385: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
386: dynamicCursor := dbms_sql.open_cursor;
387: dbms_sql.parse(dynamicCursor,
388: ame_util.removeReturns(stringIn => queryStrings(i),
389: replaceWithSpaces => true),
390: dbms_sql.native);
391: if(instrb(queryStrings(i),
392: ame_util.transactionIdPlaceholder) > 0) then
388: ame_util.removeReturns(stringIn => queryStrings(i),
389: replaceWithSpaces => true),
390: dbms_sql.native);
391: if(instrb(queryStrings(i),
392: ame_util.transactionIdPlaceholder) > 0) then
393: if transactionIdIn is null then
394: dbms_sql.close_cursor(dynamicCursor);
395: raise noTransIdDefinedException;
396: end if;
394: dbms_sql.close_cursor(dynamicCursor);
395: raise noTransIdDefinedException;
396: end if;
397: dbms_sql.bind_variable(dynamicCursor,
398: ame_util.transactionIdPlaceholder,
399: transactionIdIn,
400: 50);
401: end if;
402: if(instrb(queryStrings(i),
399: transactionIdIn,
400: 50);
401: end if;
402: if(instrb(queryStrings(i),
403: ame_util2.itemClassPlaceHolder) > 0) then
404: if transactionIdIn is null then
405: dbms_sql.close_cursor(dynamicCursor);
406: raise noItemBindException;
407: end if;
405: dbms_sql.close_cursor(dynamicCursor);
406: raise noItemBindException;
407: end if;
408: dbms_sql.bind_variable(dynamicCursor,
409: ame_util2.itemClassPlaceHolder,
410: itemClassIn,
411: 50);
412: end if;
413: if(instrb(queryStrings(i),
410: itemClassIn,
411: 50);
412: end if;
413: if(instrb(queryStrings(i),
414: ame_util2.itemIdPlaceHolder) > 0) then
415: if transactionIdIn is null then
416: dbms_sql.close_cursor(dynamicCursor);
417: raise noItemBindException;
418: end if;
416: dbms_sql.close_cursor(dynamicCursor);
417: raise noItemBindException;
418: end if;
419: dbms_sql.bind_variable(dynamicCursor,
420: ame_util2.itemIdPlaceHolder,
421: itemIdIn,
422: 50);
423: end if;
424: dbms_sql.define_array(dynamicCursor,
450: if(colonLocation2 = 0) then /* first case (old style) */
451: memberOrigSystemId :=
452: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
453: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
454: upper(ame_util.approverPersonId)) then
455: memberOrigSystem := ame_util.perOrigSystem;
456: else
457: memberOrigSystem := ame_util.fndUserOrigSystem;
458: end if;
451: memberOrigSystemId :=
452: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
453: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
454: upper(ame_util.approverPersonId)) then
455: memberOrigSystem := ame_util.perOrigSystem;
456: else
457: memberOrigSystem := ame_util.fndUserOrigSystem;
458: end if;
459: else
453: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
454: upper(ame_util.approverPersonId)) then
455: memberOrigSystem := ame_util.perOrigSystem;
456: else
457: memberOrigSystem := ame_util.fndUserOrigSystem;
458: end if;
459: else
460: memberOrigSystem :=
461: substrb(tempGroupMembers(j), 1, (instrb(tempGroupMembers(j), ':', 1, 1)-1));
480: if(groupMemberCursor%isopen) then
481: close groupMemberCursor;
482: end if;
483: errorCode := -20001;
484: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
485: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
486: ame_util.runtimeException(packageNameIn => 'ame_api3',
487: routineNameIn => 'getGroupMembers2',
488: exceptionNumberIn => errorCode,
482: end if;
483: errorCode := -20001;
484: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
485: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
486: ame_util.runtimeException(packageNameIn => 'ame_api3',
487: routineNameIn => 'getGroupMembers2',
488: exceptionNumberIn => errorCode,
489: exceptionStringIn => errorMessage);
490: raise_application_error(errorCode,
493: if(groupMemberCursor%isopen) then
494: close groupMemberCursor;
495: end if;
496: errorCode := -20001;
497: errorMessage := ame_util.getMessage(
498: applicationShortNameIn => 'PER',
499: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
500: tokenNameOneIn => 'APPROVAL_GROUP',
501: tokenValueOneIn => 'TO_BE_MODIFIED');
498: applicationShortNameIn => 'PER',
499: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
500: tokenNameOneIn => 'APPROVAL_GROUP',
501: tokenValueOneIn => 'TO_BE_MODIFIED');
502: ame_util.runtimeException(packageNameIn => 'ame_api3',
503: routineNameIn => 'getGroupMembers2',
504: exceptionNumberIn => errorCode,
505: exceptionStringIn => errorMessage);
506: raise_application_error(errorCode,
510: close groupMemberCursor;
511: end if;
512: memberDisplayNamesOut.delete;
513: errorCode := -20001;
514: errorMessage := ame_util.getMessage(
515: applicationShortNameIn => 'PER',
516: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
517: tokenNameOneIn => 'APPROVER_GROUP',
518: tokenValueOneIn => tempGroupName);
515: applicationShortNameIn => 'PER',
516: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
517: tokenNameOneIn => 'APPROVER_GROUP',
518: tokenValueOneIn => tempGroupName);
519: ame_util.runtimeException(packageNameIn => 'ame_api3',
520: routineNameIn => 'getGroupMembers3',
521: exceptionNumberIn => errorCode,
522: exceptionStringIn => errorMessage);
523: raise_application_error(errorCode,
525: when others then
526: if(groupMemberCursor%isopen) then
527: close groupMemberCursor;
528: end if;
529: ame_util.runtimeException(packageNameIn => 'ame_api3',
530: routineNameIn => 'getGroupMembers2',
531: exceptionNumberIn => sqlcode,
532: exceptionStringIn => sqlerrm);
533: raise;
537: transactionIdIn in varchar2 default null,
538: itemClassIn in varchar2,
539: itemIdIn in varchar2,
540: groupIdIn in number,
541: memberNamesOut out nocopy ame_util.longStringList,
542: memberOrderNumbersOut out nocopy ame_util.idList,
543: memberDisplayNamesOut out nocopy ame_util.longStringList)as
544: cursor groupMemberCursor(groupIdIn in integer) is
545: select
538: itemClassIn in varchar2,
539: itemIdIn in varchar2,
540: groupIdIn in number,
541: memberNamesOut out nocopy ame_util.longStringList,
542: memberOrderNumbersOut out nocopy ame_util.idList,
543: memberDisplayNamesOut out nocopy ame_util.longStringList)as
544: cursor groupMemberCursor(groupIdIn in integer) is
545: select
546: parameter,
539: itemIdIn in varchar2,
540: groupIdIn in number,
541: memberNamesOut out nocopy ame_util.longStringList,
542: memberOrderNumbersOut out nocopy ame_util.idList,
543: memberDisplayNamesOut out nocopy ame_util.longStringList)as
544: cursor groupMemberCursor(groupIdIn in integer) is
545: select
546: parameter,
547: upper(parameter_name),
547: upper(parameter_name),
548: query_string,
549: order_number,
550: decode(parameter_name,
551: ame_util.approverOamGroupId, null,
552: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
553: decode(parameter_name,
554: ame_util.approverOamGroupId, null,
555: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
550: decode(parameter_name,
551: ame_util.approverOamGroupId, null,
552: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
553: decode(parameter_name,
554: ame_util.approverOamGroupId, null,
555: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
556: from ame_approval_group_members
557: where
558: approval_group_id = groupIdIn
561: noItemBindException exception;
562: dynamicCursor integer;
563: colonLocation1 integer;
564: colonLocation2 integer;
565: displayNames ame_util.longStringList;
566: errorCode integer;
567: errorMessage ame_util.longestStringType;
568: approverNames ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
563: colonLocation1 integer;
564: colonLocation2 integer;
565: displayNames ame_util.longStringList;
566: errorCode integer;
567: errorMessage ame_util.longestStringType;
568: approverNames ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
564: colonLocation2 integer;
565: displayNames ame_util.longStringList;
566: errorCode integer;
567: errorMessage ame_util.longestStringType;
568: approverNames ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
572: orderNumbers ame_util.idList;
565: displayNames ame_util.longStringList;
566: errorCode integer;
567: errorMessage ame_util.longestStringType;
568: approverNames ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
572: orderNumbers ame_util.idList;
573: origSystemIds ame_util.idList;
568: approverNames ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
572: orderNumbers ame_util.idList;
573: origSystemIds ame_util.idList;
574: origSystems ame_util.stringList;
575: outputIndex integer;
576: parameters ame_util.longStringList;
569: memberOrigSystem ame_util.stringType;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
572: orderNumbers ame_util.idList;
573: origSystemIds ame_util.idList;
574: origSystems ame_util.stringList;
575: outputIndex integer;
576: parameters ame_util.longStringList;
577: queryStrings ame_util.longestStringList;
570: memberOrigSystemId number;
571: noTransIdDefinedException exception;
572: orderNumbers ame_util.idList;
573: origSystemIds ame_util.idList;
574: origSystems ame_util.stringList;
575: outputIndex integer;
576: parameters ame_util.longStringList;
577: queryStrings ame_util.longestStringList;
578: rowsFound integer;
572: orderNumbers ame_util.idList;
573: origSystemIds ame_util.idList;
574: origSystems ame_util.stringList;
575: outputIndex integer;
576: parameters ame_util.longStringList;
577: queryStrings ame_util.longestStringList;
578: rowsFound integer;
579: tempGroupMembers dbms_sql.Varchar2_Table;
580: tempGroupName ame_util.stringType;
573: origSystemIds ame_util.idList;
574: origSystems ame_util.stringList;
575: outputIndex integer;
576: parameters ame_util.longStringList;
577: queryStrings ame_util.longestStringList;
578: rowsFound integer;
579: tempGroupMembers dbms_sql.Varchar2_Table;
580: tempGroupName ame_util.stringType;
581: upperParameterNames ame_util.stringList;
576: parameters ame_util.longStringList;
577: queryStrings ame_util.longestStringList;
578: rowsFound integer;
579: tempGroupMembers dbms_sql.Varchar2_Table;
580: tempGroupName ame_util.stringType;
581: upperParameterNames ame_util.stringList;
582: begin
583: open groupMemberCursor(groupIdIn => groupIdIn);
584: fetch groupMemberCursor bulk collect
577: queryStrings ame_util.longestStringList;
578: rowsFound integer;
579: tempGroupMembers dbms_sql.Varchar2_Table;
580: tempGroupName ame_util.stringType;
581: upperParameterNames ame_util.stringList;
582: begin
583: open groupMemberCursor(groupIdIn => groupIdIn);
584: fetch groupMemberCursor bulk collect
585: into
591: displayNames;
592: close groupMemberCursor;
593: outputIndex := 0; /* pre-increment */
594: for i in 1 .. parameters.count loop
595: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
596: dynamicCursor := dbms_sql.open_cursor;
597: dbms_sql.parse(dynamicCursor,
598: ame_util.removeReturns(stringIn => queryStrings(i),
599: replaceWithSpaces => true),
594: for i in 1 .. parameters.count loop
595: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
596: dynamicCursor := dbms_sql.open_cursor;
597: dbms_sql.parse(dynamicCursor,
598: ame_util.removeReturns(stringIn => queryStrings(i),
599: replaceWithSpaces => true),
600: dbms_sql.native);
601: if(instrb(queryStrings(i),
602: ame_util.transactionIdPlaceholder) > 0) then
598: ame_util.removeReturns(stringIn => queryStrings(i),
599: replaceWithSpaces => true),
600: dbms_sql.native);
601: if(instrb(queryStrings(i),
602: ame_util.transactionIdPlaceholder) > 0) then
603: if transactionIdIn is null then
604: dbms_sql.close_cursor(dynamicCursor);
605: raise noTransIdDefinedException;
606: end if;
604: dbms_sql.close_cursor(dynamicCursor);
605: raise noTransIdDefinedException;
606: end if;
607: dbms_sql.bind_variable(dynamicCursor,
608: ame_util.transactionIdPlaceholder,
609: transactionIdIn,
610: 50);
611: end if;
612: if(instrb(queryStrings(i),
609: transactionIdIn,
610: 50);
611: end if;
612: if(instrb(queryStrings(i),
613: ame_util2.itemClassPlaceHolder) > 0) then
614: if transactionIdIn is null then
615: dbms_sql.close_cursor(dynamicCursor);
616: raise noItemBindException;
617: end if;
615: dbms_sql.close_cursor(dynamicCursor);
616: raise noItemBindException;
617: end if;
618: dbms_sql.bind_variable(dynamicCursor,
619: ame_util2.itemClassPlaceHolder,
620: itemClassIn,
621: 50);
622: end if;
623: if(instrb(queryStrings(i),
620: itemClassIn,
621: 50);
622: end if;
623: if(instrb(queryStrings(i),
624: ame_util2.itemIdPlaceHolder) > 0) then
625: if transactionIdIn is null then
626: dbms_sql.close_cursor(dynamicCursor);
627: raise noItemBindException;
628: end if;
626: dbms_sql.close_cursor(dynamicCursor);
627: raise noItemBindException;
628: end if;
629: dbms_sql.bind_variable(dynamicCursor,
630: ame_util2.itemIdPlaceHolder,
631: itemIdIn,
632: 50);
633: end if;
634: dbms_sql.define_array(dynamicCursor,
661: if(colonLocation2 = 0) then /* first case (old style) */
662: memberOrigSystemId :=
663: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
664: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
665: upper(ame_util.approverPersonId)) then
666: memberOrigSystem := ame_util.perOrigSystem;
667: else
668: memberOrigSystem := ame_util.fndUserOrigSystem;
669: end if;
662: memberOrigSystemId :=
663: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
664: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
665: upper(ame_util.approverPersonId)) then
666: memberOrigSystem := ame_util.perOrigSystem;
667: else
668: memberOrigSystem := ame_util.fndUserOrigSystem;
669: end if;
670: else
664: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
665: upper(ame_util.approverPersonId)) then
666: memberOrigSystem := ame_util.perOrigSystem;
667: else
668: memberOrigSystem := ame_util.fndUserOrigSystem;
669: end if;
670: else
671: memberOrigSystem :=
672: substrb(tempGroupMembers(j), 1, (instrb(tempGroupMembers(j), ':', 1, 1)-1));
692: if(groupMemberCursor%isopen) then
693: close groupMemberCursor;
694: end if;
695: errorCode := -20001;
696: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
697: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
698: ame_util.runtimeException(packageNameIn => 'ame_api3',
699: routineNameIn => 'getGroupMembers3',
700: exceptionNumberIn => errorCode,
694: end if;
695: errorCode := -20001;
696: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
697: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
698: ame_util.runtimeException(packageNameIn => 'ame_api3',
699: routineNameIn => 'getGroupMembers3',
700: exceptionNumberIn => errorCode,
701: exceptionStringIn => errorMessage);
702: raise_application_error(errorCode,
705: if(groupMemberCursor%isopen) then
706: close groupMemberCursor;
707: end if;
708: errorCode := -20001;
709: errorMessage := ame_util.getMessage(
710: applicationShortNameIn => 'PER',
711: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
712: tokenNameOneIn => 'APPROVAL_GROUP',
713: tokenValueOneIn => 'TO_BE_MODIFIED');
710: applicationShortNameIn => 'PER',
711: messageNameIn => 'AME_400455_GRP_DYN_NULL_TXID',
712: tokenNameOneIn => 'APPROVAL_GROUP',
713: tokenValueOneIn => 'TO_BE_MODIFIED');
714: ame_util.runtimeException(packageNameIn => 'ame_api3',
715: routineNameIn => 'getGroupMembers3',
716: exceptionNumberIn => errorCode,
717: exceptionStringIn => errorMessage);
718: raise_application_error(errorCode,
722: close groupMemberCursor;
723: end if;
724: memberDisplayNamesOut.delete;
725: errorCode := -20001;
726: errorMessage := ame_util.getMessage(
727: applicationShortNameIn => 'PER',
728: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
729: tokenNameOneIn => 'APPROVER_GROUP',
730: tokenValueOneIn => tempGroupName);
727: applicationShortNameIn => 'PER',
728: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
729: tokenNameOneIn => 'APPROVER_GROUP',
730: tokenValueOneIn => tempGroupName);
731: ame_util.runtimeException(packageNameIn => 'ame_api3',
732: routineNameIn => 'getGroupMembers3',
733: exceptionNumberIn => errorCode,
734: exceptionStringIn => errorMessage);
735: raise_application_error(errorCode,
737: when others then
738: if(groupMemberCursor%isopen) then
739: close groupMemberCursor;
740: end if;
741: ame_util.runtimeException(packageNameIn => 'ame_api3',
742: routineNameIn => 'getGroupMembers3',
743: exceptionNumberIn => sqlcode,
744: exceptionStringIn => sqlerrm);
745: raise;
749: transactionIdIn in varchar2 default null,
750: itemClassIn in varchar2,
751: itemIdIn in varchar2,
752: groupIdIn in number,
753: memberNamesOut out nocopy ame_util.longStringList,
754: memberOrderNumbersOut out nocopy ame_util.idList,
755: memberDisplayNamesOut out nocopy ame_util.longStringList,
756: memberOrigSystemIdsOut out nocopy ame_util.idList,
757: memberOrigSystemsOut out nocopy ame_util.stringList)as
750: itemClassIn in varchar2,
751: itemIdIn in varchar2,
752: groupIdIn in number,
753: memberNamesOut out nocopy ame_util.longStringList,
754: memberOrderNumbersOut out nocopy ame_util.idList,
755: memberDisplayNamesOut out nocopy ame_util.longStringList,
756: memberOrigSystemIdsOut out nocopy ame_util.idList,
757: memberOrigSystemsOut out nocopy ame_util.stringList)as
758: cursor groupMemberCursor(groupIdIn in integer) is
751: itemIdIn in varchar2,
752: groupIdIn in number,
753: memberNamesOut out nocopy ame_util.longStringList,
754: memberOrderNumbersOut out nocopy ame_util.idList,
755: memberDisplayNamesOut out nocopy ame_util.longStringList,
756: memberOrigSystemIdsOut out nocopy ame_util.idList,
757: memberOrigSystemsOut out nocopy ame_util.stringList)as
758: cursor groupMemberCursor(groupIdIn in integer) is
759: select
752: groupIdIn in number,
753: memberNamesOut out nocopy ame_util.longStringList,
754: memberOrderNumbersOut out nocopy ame_util.idList,
755: memberDisplayNamesOut out nocopy ame_util.longStringList,
756: memberOrigSystemIdsOut out nocopy ame_util.idList,
757: memberOrigSystemsOut out nocopy ame_util.stringList)as
758: cursor groupMemberCursor(groupIdIn in integer) is
759: select
760: orig_system,
753: memberNamesOut out nocopy ame_util.longStringList,
754: memberOrderNumbersOut out nocopy ame_util.idList,
755: memberDisplayNamesOut out nocopy ame_util.longStringList,
756: memberOrigSystemIdsOut out nocopy ame_util.idList,
757: memberOrigSystemsOut out nocopy ame_util.stringList)as
758: cursor groupMemberCursor(groupIdIn in integer) is
759: select
760: orig_system,
761: orig_system_id,
763: upper(parameter_name),
764: query_string,
765: order_number,
766: decode(parameter_name,
767: ame_util.approverOamGroupId, null,
768: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
769: decode(parameter_name,
770: ame_util.approverOamGroupId, null,
771: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
766: decode(parameter_name,
767: ame_util.approverOamGroupId, null,
768: ame_approver_type_pkg.getWfRolesName(orig_system, orig_system_id)) approver_name,
769: decode(parameter_name,
770: ame_util.approverOamGroupId, null,
771: ame_approver_type_pkg.getApproverDisplayName2(orig_system, orig_system_id)) display_name
772: from ame_approval_group_members
773: where
774: approval_group_id = groupIdIn
776: badDynamicMemberException exception;
777: dynamicCursor integer;
778: colonLocation1 integer;
779: colonLocation2 integer;
780: displayNames ame_util.longStringList;
781: errorCode integer;
782: errorMessage ame_util.longestStringType;
783: approverNames ame_util.longStringList;
784: noTransIdDefinedException exception;
778: colonLocation1 integer;
779: colonLocation2 integer;
780: displayNames ame_util.longStringList;
781: errorCode integer;
782: errorMessage ame_util.longestStringType;
783: approverNames ame_util.longStringList;
784: noTransIdDefinedException exception;
785: noItemBindException exception;
786: orderNumbers ame_util.idList;
779: colonLocation2 integer;
780: displayNames ame_util.longStringList;
781: errorCode integer;
782: errorMessage ame_util.longestStringType;
783: approverNames ame_util.longStringList;
784: noTransIdDefinedException exception;
785: noItemBindException exception;
786: orderNumbers ame_util.idList;
787: origSystemIds ame_util.idList;
782: errorMessage ame_util.longestStringType;
783: approverNames ame_util.longStringList;
784: noTransIdDefinedException exception;
785: noItemBindException exception;
786: orderNumbers ame_util.idList;
787: origSystemIds ame_util.idList;
788: origSystems ame_util.stringList;
789: outputIndex integer;
790: parameters ame_util.longStringList;
783: approverNames ame_util.longStringList;
784: noTransIdDefinedException exception;
785: noItemBindException exception;
786: orderNumbers ame_util.idList;
787: origSystemIds ame_util.idList;
788: origSystems ame_util.stringList;
789: outputIndex integer;
790: parameters ame_util.longStringList;
791: queryStrings ame_util.longestStringList;
784: noTransIdDefinedException exception;
785: noItemBindException exception;
786: orderNumbers ame_util.idList;
787: origSystemIds ame_util.idList;
788: origSystems ame_util.stringList;
789: outputIndex integer;
790: parameters ame_util.longStringList;
791: queryStrings ame_util.longestStringList;
792: rowsFound integer;
786: orderNumbers ame_util.idList;
787: origSystemIds ame_util.idList;
788: origSystems ame_util.stringList;
789: outputIndex integer;
790: parameters ame_util.longStringList;
791: queryStrings ame_util.longestStringList;
792: rowsFound integer;
793: tempGroupMembers dbms_sql.Varchar2_Table;
794: tempGroupName ame_util.stringType;
787: origSystemIds ame_util.idList;
788: origSystems ame_util.stringList;
789: outputIndex integer;
790: parameters ame_util.longStringList;
791: queryStrings ame_util.longestStringList;
792: rowsFound integer;
793: tempGroupMembers dbms_sql.Varchar2_Table;
794: tempGroupName ame_util.stringType;
795: upperParameterNames ame_util.stringList;
790: parameters ame_util.longStringList;
791: queryStrings ame_util.longestStringList;
792: rowsFound integer;
793: tempGroupMembers dbms_sql.Varchar2_Table;
794: tempGroupName ame_util.stringType;
795: upperParameterNames ame_util.stringList;
796: begin
797: open groupMemberCursor(groupIdIn => groupIdIn);
798: fetch groupMemberCursor bulk collect
791: queryStrings ame_util.longestStringList;
792: rowsFound integer;
793: tempGroupMembers dbms_sql.Varchar2_Table;
794: tempGroupName ame_util.stringType;
795: upperParameterNames ame_util.stringList;
796: begin
797: open groupMemberCursor(groupIdIn => groupIdIn);
798: fetch groupMemberCursor bulk collect
799: into
807: displayNames;
808: close groupMemberCursor;
809: outputIndex := 0; /* pre-increment */
810: for i in 1 .. parameters.count loop
811: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
812: dynamicCursor := dbms_sql.open_cursor;
813: dbms_sql.parse(dynamicCursor,
814: ame_util.removeReturns(stringIn => queryStrings(i),
815: replaceWithSpaces => true),
810: for i in 1 .. parameters.count loop
811: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
812: dynamicCursor := dbms_sql.open_cursor;
813: dbms_sql.parse(dynamicCursor,
814: ame_util.removeReturns(stringIn => queryStrings(i),
815: replaceWithSpaces => true),
816: dbms_sql.native);
817: if(instrb(queryStrings(i),
818: ame_util.transactionIdPlaceholder) > 0) then
814: ame_util.removeReturns(stringIn => queryStrings(i),
815: replaceWithSpaces => true),
816: dbms_sql.native);
817: if(instrb(queryStrings(i),
818: ame_util.transactionIdPlaceholder) > 0) then
819: if transactionIdIn is null then
820: dbms_sql.close_cursor(dynamicCursor);
821: raise noTransIdDefinedException;
822: end if;
820: dbms_sql.close_cursor(dynamicCursor);
821: raise noTransIdDefinedException;
822: end if;
823: dbms_sql.bind_variable(dynamicCursor,
824: ame_util.transactionIdPlaceholder,
825: transactionIdIn,
826: 50);
827: end if;
828: if(instrb(queryStrings(i),
825: transactionIdIn,
826: 50);
827: end if;
828: if(instrb(queryStrings(i),
829: ame_util2.itemClassPlaceHolder) > 0) then
830: if transactionIdIn is null then
831: dbms_sql.close_cursor(dynamicCursor);
832: raise noItemBindException;
833: end if;
831: dbms_sql.close_cursor(dynamicCursor);
832: raise noItemBindException;
833: end if;
834: dbms_sql.bind_variable(dynamicCursor,
835: ame_util2.itemClassPlaceHolder,
836: itemClassIn,
837: 50);
838: end if;
839: if(instrb(queryStrings(i),
836: itemClassIn,
837: 50);
838: end if;
839: if(instrb(queryStrings(i),
840: ame_util2.itemIdPlaceHolder) > 0) then
841: if transactionIdIn is null then
842: dbms_sql.close_cursor(dynamicCursor);
843: raise noItemBindException;
844: end if;
842: dbms_sql.close_cursor(dynamicCursor);
843: raise noItemBindException;
844: end if;
845: dbms_sql.bind_variable(dynamicCursor,
846: ame_util2.itemIdPlaceHolder,
847: itemIdIn,
848: 50);
849: end if;
850: dbms_sql.define_array(dynamicCursor,
877: if(colonLocation2 = 0) then /* first case (old style) */
878: memberOrigSystemIdsOut(outputIndex) :=
879: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
880: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
881: upper(ame_util.approverPersonId)) then
882: memberOrigSystemsOut(outputIndex) := ame_util.perOrigSystem;
883: else
884: memberOrigSystemsOut(outputIndex) := ame_util.fndUserOrigSystem;
885: end if;
878: memberOrigSystemIdsOut(outputIndex) :=
879: substrb(tempGroupMembers(j), (instrb(tempGroupMembers(j), ':', 1, 1) + 1));
880: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
881: upper(ame_util.approverPersonId)) then
882: memberOrigSystemsOut(outputIndex) := ame_util.perOrigSystem;
883: else
884: memberOrigSystemsOut(outputIndex) := ame_util.fndUserOrigSystem;
885: end if;
886: else
880: if(substrb(upper(tempGroupMembers(j)), 1, (instrb(tempGroupMembers(j), ':', 1, 1) - 1)) =
881: upper(ame_util.approverPersonId)) then
882: memberOrigSystemsOut(outputIndex) := ame_util.perOrigSystem;
883: else
884: memberOrigSystemsOut(outputIndex) := ame_util.fndUserOrigSystem;
885: end if;
886: else
887: memberOrigSystemsOut(outputIndex) :=
888: substrb(tempGroupMembers(j), 1, (instrb(tempGroupMembers(j), ':', 1, 1)-1));
910: if(groupMemberCursor%isopen) then
911: close groupMemberCursor;
912: end if;
913: errorCode := -20001;
914: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
915: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
916: ame_util.runtimeException(packageNameIn => 'ame_api3',
917: routineNameIn => 'getGroupMembers4',
918: exceptionNumberIn => errorCode,
912: end if;
913: errorCode := -20001;
914: errorMessage := ame_util.getMessage(applicationShortNameIn => 'PER',
915: messageNameIn => 'AME_400454_GRP_DYN_QRY_ERR');
916: ame_util.runtimeException(packageNameIn => 'ame_api3',
917: routineNameIn => 'getGroupMembers4',
918: exceptionNumberIn => errorCode,
919: exceptionStringIn => errorMessage);
920: raise_application_error(errorCode,
923: if(groupMemberCursor%isopen) then
924: close groupMemberCursor;
925: end if;
926: errorCode := -20001;
927: errorMessage := ame_util.getMessage(
928: applicationShortNameIn => 'PER',
929: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
930: tokenNameOneIn => 'APPROVER_GROUP',
931: tokenValueOneIn => tempGroupName);
928: applicationShortNameIn => 'PER',
929: messageNameIn => 'AME_400798_GROUP_ITEM_BIND',
930: tokenNameOneIn => 'APPROVER_GROUP',
931: tokenValueOneIn => tempGroupName);
932: ame_util.runtimeException(packageNameIn => 'ame_api3',
933: routineNameIn => 'getGroupMembers3',
934: exceptionNumberIn => errorCode,
935: exceptionStringIn => errorMessage);
936: raise_application_error(errorCode,
938: when others then
939: if(groupMemberCursor%isopen) then
940: close groupMemberCursor;
941: end if;
942: ame_util.runtimeException(packageNameIn => 'ame_api3',
943: routineNameIn => 'getGroupMembers4',
944: exceptionNumberIn => sqlcode,
945: exceptionStringIn => sqlerrm);
946: raise;