85: tempStatic varchar2(2);
86: querystring ame_util.longestStringType;
87: dynamicQuery ame_util.longestStringType;
88: dynamicCursor integer;
89: tempAttributeValues1 dbms_sql.varchar2_table;
90: rowsFound integer;
91: cursor getAttributeDetails(applnIdIn in number) is
92: select is_static
93: ,query_string
110: return;
111: else
112: dynamicQuery := ame_util.removeReturns(stringIn => querystring,
113: replaceWithSpaces => true);
114: dynamicCursor := dbms_sql.open_cursor;
115: dbms_sql.parse(dynamicCursor,
116: dynamicQuery,
117: dbms_sql.native);
118: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
111: else
112: dynamicQuery := ame_util.removeReturns(stringIn => querystring,
113: replaceWithSpaces => true);
114: dynamicCursor := dbms_sql.open_cursor;
115: dbms_sql.parse(dynamicCursor,
116: dynamicQuery,
117: dbms_sql.native);
118: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
119: dbms_sql.bind_variable(dynamicCursor,
113: replaceWithSpaces => true);
114: dynamicCursor := dbms_sql.open_cursor;
115: dbms_sql.parse(dynamicCursor,
116: dynamicQuery,
117: dbms_sql.native);
118: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
119: dbms_sql.bind_variable(dynamicCursor,
120: ame_util.transactionIdPlaceholder,
121: transactionIdIn,
115: dbms_sql.parse(dynamicCursor,
116: dynamicQuery,
117: dbms_sql.native);
118: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
119: dbms_sql.bind_variable(dynamicCursor,
120: ame_util.transactionIdPlaceholder,
121: transactionIdIn,
122: 50);
123: end if;
120: ame_util.transactionIdPlaceholder,
121: transactionIdIn,
122: 50);
123: end if;
124: dbms_sql.define_array(dynamicCursor,
125: 1,
126: tempAttributeValues1,
127: 100,
128: 1);
125: 1,
126: tempAttributeValues1,
127: 100,
128: 1);
129: rowsFound := dbms_sql.execute(dynamicCursor);
130: loop
131: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
132: dbms_sql.column_value(dynamicCursor,
133: 1,
127: 100,
128: 1);
129: rowsFound := dbms_sql.execute(dynamicCursor);
130: loop
131: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
132: dbms_sql.column_value(dynamicCursor,
133: 1,
134: tempAttributeValues1);
135: exit when rowsFound < 100;
128: 1);
129: rowsFound := dbms_sql.execute(dynamicCursor);
130: loop
131: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
132: dbms_sql.column_value(dynamicCursor,
133: 1,
134: tempAttributeValues1);
135: exit when rowsFound < 100;
136: end loop;
133: 1,
134: tempAttributeValues1);
135: exit when rowsFound < 100;
136: end loop;
137: dbms_sql.close_cursor(dynamicCursor);
138: if tempAttributeValues1.count > 1 then
139: ame_util.runtimeException(packageNameIn => 'ame_approver_deviation_pkg',
140: routineNameIn => 'getTransactionDecription',
141: exceptionNumberIn => -20001,
152: routineNameIn => 'getTransactionDecription',
153: exceptionNumberIn => sqlcode,
154: exceptionStringIn => sqlerrm);
155: descriptionOut := null;
156: dbms_sql.close_cursor(dynamicCursor);
157: end getTransactionDecription;
158: /*This method insert the approverlist into the table. This method will be called only
159: when approvalprocessis completed. This method does the following
160: 1. mark the transaction as deviated if not already done and mark the transaction as