1: PACKAGE BODY qa_chars_api AS
2: /* $Header: qltcharb.plb 120.4 2005/06/24 02:29:21 srhariha noship $ */
3:
4: --
5: -- Type definition. These are tables used to create internal
9:
10: -- Bug 3769260. shkalyan 30 July 2004.
11: -- Added this record type for storing relevant QA elements.
12: -- This is needed as we need to select only specific columns
13: -- of QAelements instead of selecting * from QA_CHARS
14:
15: TYPE qa_char_rec IS RECORD
16: (
17: char_id qa_chars.char_id%TYPE,
13: -- of QAelements instead of selecting * from QA_CHARS
14:
15: TYPE qa_char_rec IS RECORD
16: (
17: char_id qa_chars.char_id%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
14:
15: TYPE qa_char_rec IS RECORD
16: (
17: char_id qa_chars.char_id%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
15: TYPE qa_char_rec IS RECORD
16: (
17: char_id qa_chars.char_id%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
16: (
17: char_id qa_chars.char_id%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
17: char_id qa_chars.char_id%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
18: name qa_chars.name%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
19: prompt qa_chars.prompt%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
20: data_entry_hint qa_chars.data_entry_hint%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
21: datatype qa_chars.datatype%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
22: display_length qa_chars.display_length%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
23: decimal_precision qa_chars.decimal_precision%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
24: default_value qa_chars.default_value%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
25: mandatory_flag qa_chars.mandatory_flag%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
26: uom_code qa_chars.uom_code%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
27: target_value qa_chars.target_value%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
28: upper_spec_limit qa_chars.upper_spec_limit%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
29: lower_spec_limit qa_chars.lower_spec_limit%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
30: upper_reasonable_limit qa_chars.upper_reasonable_limit%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
31: lower_reasonable_limit qa_chars.lower_reasonable_limit%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
32: upper_user_defined_limit qa_chars.upper_user_defined_limit%TYPE,
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
33: lower_user_defined_limit qa_chars.lower_user_defined_limit%TYPE,
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
34: hardcoded_column qa_chars.hardcoded_column%TYPE,
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
42:
35: developer_name qa_chars.developer_name%TYPE,
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
42:
43: TYPE qa_chars_table IS TABLE OF qa_char_rec INDEX BY BINARY_INTEGER;
36: sql_validation_string qa_chars.sql_validation_string%TYPE,
37: enabled_flag qa_chars.enabled_flag%TYPE,
38: values_exist_flag qa_chars.values_exist_flag%TYPE,
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
42:
43: TYPE qa_chars_table IS TABLE OF qa_char_rec INDEX BY BINARY_INTEGER;
44: --TYPE qa_chars_table IS TABLE OF qa_chars%ROWTYPE INDEX BY BINARY_INTEGER;
39: fk_lookup_type qa_chars.fk_lookup_type%TYPE,
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
42:
43: TYPE qa_chars_table IS TABLE OF qa_char_rec INDEX BY BINARY_INTEGER;
44: --TYPE qa_chars_table IS TABLE OF qa_chars%ROWTYPE INDEX BY BINARY_INTEGER;
45:
46: x_qa_chars_array qa_chars_table;
47:
40: fk_meaning qa_chars.fk_meaning%TYPE
41: );
42:
43: TYPE qa_chars_table IS TABLE OF qa_char_rec INDEX BY BINARY_INTEGER;
44: --TYPE qa_chars_table IS TABLE OF qa_chars%ROWTYPE INDEX BY BINARY_INTEGER;
45:
46: x_qa_chars_array qa_chars_table;
47:
48: --
42:
43: TYPE qa_chars_table IS TABLE OF qa_char_rec INDEX BY BINARY_INTEGER;
44: --TYPE qa_chars_table IS TABLE OF qa_chars%ROWTYPE INDEX BY BINARY_INTEGER;
45:
46: x_qa_chars_array qa_chars_table;
47:
48: --
49: -- All the fetch_... procedures are auxiliary caching functions
50: -- called only by inquiry APIs that return the object's attributes.
49: -- All the fetch_... procedures are auxiliary caching functions
50: -- called only by inquiry APIs that return the object's attributes.
51: --
52:
53: FUNCTION exists_qa_chars(element_id IN NUMBER) RETURN BOOLEAN IS
54:
55: BEGIN
56:
57: RETURN x_qa_chars_array.EXISTS(element_id);
53: FUNCTION exists_qa_chars(element_id IN NUMBER) RETURN BOOLEAN IS
54:
55: BEGIN
56:
57: RETURN x_qa_chars_array.EXISTS(element_id);
58:
59: END exists_qa_chars;
60:
61:
55: BEGIN
56:
57: RETURN x_qa_chars_array.EXISTS(element_id);
58:
59: END exists_qa_chars;
60:
61:
62: PROCEDURE fetch_qa_chars (element_id IN NUMBER) IS
63:
58:
59: END exists_qa_chars;
60:
61:
62: PROCEDURE fetch_qa_chars (element_id IN NUMBER) IS
63:
64: -- Bug 3769260. shkalyan 30 July 2004.
65: -- Modified cursor to select only specific columns
66: -- of QA elements instead of selecting * from QA_CHARS
62: PROCEDURE fetch_qa_chars (element_id IN NUMBER) IS
63:
64: -- Bug 3769260. shkalyan 30 July 2004.
65: -- Modified cursor to select only specific columns
66: -- of QA elements instead of selecting * from QA_CHARS
67:
68: CURSOR C1 (e_id NUMBER) IS
69: SELECT char_id,
70: name,
89: enabled_flag,
90: values_exist_flag,
91: fk_lookup_type,
92: fk_meaning
93: FROM qa_chars
94: WHERE char_id = e_id;
95:
96: BEGIN
97:
94: WHERE char_id = e_id;
95:
96: BEGIN
97:
98: IF NOT exists_qa_chars(element_id) THEN
99: OPEN C1(element_id);
100: FETCH C1 INTO x_qa_chars_array(element_id);
101: CLOSE C1;
102: END IF;
96: BEGIN
97:
98: IF NOT exists_qa_chars(element_id) THEN
99: OPEN C1(element_id);
100: FETCH C1 INTO x_qa_chars_array(element_id);
101: CLOSE C1;
102: END IF;
103:
104: END fetch_qa_chars;
100: FETCH C1 INTO x_qa_chars_array(element_id);
101: CLOSE C1;
102: END IF;
103:
104: END fetch_qa_chars;
105:
106:
107: -- Bug 3769260. shkalyan 30 July 2004.
108: -- Added this procedure to fetch all the elements of a plan
106:
107: -- Bug 3769260. shkalyan 30 July 2004.
108: -- Added this procedure to fetch all the elements of a plan
109: -- The reason for introducing this procedure is to reduce the number of
110: -- hits on the QA_CHARS.
111: -- Callers will use this procedure to pre-fetch all the Plan elements
112: -- to the cache if all the elements of a plan would be accessed.
113:
114: PROCEDURE fetch_plan_chars (plan_id IN NUMBER) IS
139: QC.enabled_flag,
140: QC.values_exist_flag,
141: QC.fk_lookup_type,
142: QC.fk_meaning
143: FROM qa_chars QC,
144: qa_plan_chars QPC
145: WHERE QC.char_id = QPC.char_id
146: AND QPC.plan_id = p_id
147: AND QPC.enabled_flag = 1;
152: LOOP
153: FETCH C1 INTO l_char_rec;
154: EXIT WHEN C1%NOTFOUND;
155:
156: IF NOT exists_qa_chars(l_char_rec.char_id) THEN
157: x_qa_chars_array(l_char_rec.char_id) := l_char_rec;
158: END IF;
159: END LOOP;
160: CLOSE C1;
153: FETCH C1 INTO l_char_rec;
154: EXIT WHEN C1%NOTFOUND;
155:
156: IF NOT exists_qa_chars(l_char_rec.char_id) THEN
157: x_qa_chars_array(l_char_rec.char_id) := l_char_rec;
158: END IF;
159: END LOOP;
160: CLOSE C1;
161:
165: RETURN VARCHAR2 IS
166:
167: BEGIN
168:
169: fetch_qa_chars(element_id);
170: IF NOT exists_qa_chars(element_id) THEN
171: RETURN NULL;
172: END IF;
173: RETURN x_qa_chars_array(element_id).hardcoded_column;
166:
167: BEGIN
168:
169: fetch_qa_chars(element_id);
170: IF NOT exists_qa_chars(element_id) THEN
171: RETURN NULL;
172: END IF;
173: RETURN x_qa_chars_array(element_id).hardcoded_column;
174:
169: fetch_qa_chars(element_id);
170: IF NOT exists_qa_chars(element_id) THEN
171: RETURN NULL;
172: END IF;
173: RETURN x_qa_chars_array(element_id).hardcoded_column;
174:
175: END hardcoded_column;
176:
177:
179: RETURN VARCHAR2 IS
180:
181: BEGIN
182:
183: fetch_qa_chars(element_id);
184: IF NOT exists_qa_chars(element_id) THEN
185: RETURN NULL;
186: END IF;
187: RETURN x_qa_chars_array(element_id).fk_meaning;
180:
181: BEGIN
182:
183: fetch_qa_chars(element_id);
184: IF NOT exists_qa_chars(element_id) THEN
185: RETURN NULL;
186: END IF;
187: RETURN x_qa_chars_array(element_id).fk_meaning;
188:
183: fetch_qa_chars(element_id);
184: IF NOT exists_qa_chars(element_id) THEN
185: RETURN NULL;
186: END IF;
187: RETURN x_qa_chars_array(element_id).fk_meaning;
188:
189: END fk_meaning;
190:
191:
193: RETURN NUMBER IS
194:
195: BEGIN
196:
197: fetch_qa_chars(element_id);
198: IF NOT exists_qa_chars(element_id) THEN
199: RETURN NULL;
200: END IF;
201: RETURN x_qa_chars_array(element_id).fk_lookup_type;
194:
195: BEGIN
196:
197: fetch_qa_chars(element_id);
198: IF NOT exists_qa_chars(element_id) THEN
199: RETURN NULL;
200: END IF;
201: RETURN x_qa_chars_array(element_id).fk_lookup_type;
202:
197: fetch_qa_chars(element_id);
198: IF NOT exists_qa_chars(element_id) THEN
199: RETURN NULL;
200: END IF;
201: RETURN x_qa_chars_array(element_id).fk_lookup_type;
202:
203: END fk_lookup_type;
204:
205:
207: RETURN VARCHAR2 IS
208:
209: BEGIN
210:
211: fetch_qa_chars(element_id);
212: IF NOT exists_qa_chars(element_id) THEN
213: RETURN NULL;
214: END IF;
215: RETURN x_qa_chars_array(element_id).sql_validation_string;
208:
209: BEGIN
210:
211: fetch_qa_chars(element_id);
212: IF NOT exists_qa_chars(element_id) THEN
213: RETURN NULL;
214: END IF;
215: RETURN x_qa_chars_array(element_id).sql_validation_string;
216:
211: fetch_qa_chars(element_id);
212: IF NOT exists_qa_chars(element_id) THEN
213: RETURN NULL;
214: END IF;
215: RETURN x_qa_chars_array(element_id).sql_validation_string;
216:
217: END sql_validation_string;
218:
219:
221: RETURN NUMBER IS
222:
223: BEGIN
224:
225: fetch_qa_chars(element_id);
226: IF NOT exists_qa_chars(element_id) THEN
227: RETURN NULL;
228: END IF;
229: RETURN x_qa_chars_array(element_id).datatype;
222:
223: BEGIN
224:
225: fetch_qa_chars(element_id);
226: IF NOT exists_qa_chars(element_id) THEN
227: RETURN NULL;
228: END IF;
229: RETURN x_qa_chars_array(element_id).datatype;
230:
225: fetch_qa_chars(element_id);
226: IF NOT exists_qa_chars(element_id) THEN
227: RETURN NULL;
228: END IF;
229: RETURN x_qa_chars_array(element_id).datatype;
230:
231: END datatype;
232:
233:
235: RETURN NUMBER IS
236:
237: BEGIN
238:
239: fetch_qa_chars(element_id);
240: IF NOT exists_qa_chars(element_id) THEN
241: RETURN NULL;
242: END IF;
243: RETURN x_qa_chars_array(element_id).display_length;
236:
237: BEGIN
238:
239: fetch_qa_chars(element_id);
240: IF NOT exists_qa_chars(element_id) THEN
241: RETURN NULL;
242: END IF;
243: RETURN x_qa_chars_array(element_id).display_length;
244:
239: fetch_qa_chars(element_id);
240: IF NOT exists_qa_chars(element_id) THEN
241: RETURN NULL;
242: END IF;
243: RETURN x_qa_chars_array(element_id).display_length;
244:
245: END display_length;
246:
247:
249: RETURN NUMBER IS
250:
251: BEGIN
252:
253: fetch_qa_chars(element_id);
254: IF NOT exists_qa_chars(element_id) THEN
255: RETURN NULL;
256: END IF;
257: RETURN x_qa_chars_array(element_id).decimal_precision;
250:
251: BEGIN
252:
253: fetch_qa_chars(element_id);
254: IF NOT exists_qa_chars(element_id) THEN
255: RETURN NULL;
256: END IF;
257: RETURN x_qa_chars_array(element_id).decimal_precision;
258:
253: fetch_qa_chars(element_id);
254: IF NOT exists_qa_chars(element_id) THEN
255: RETURN NULL;
256: END IF;
257: RETURN x_qa_chars_array(element_id).decimal_precision;
258:
259: END decimal_precision;
260:
261:
263: RETURN NUMBER IS
264:
265: BEGIN
266:
267: fetch_qa_chars(element_id);
268: IF NOT exists_qa_chars(element_id) THEN
269: RETURN NULL;
270: END IF;
271: RETURN x_qa_chars_array(element_id).default_value;
264:
265: BEGIN
266:
267: fetch_qa_chars(element_id);
268: IF NOT exists_qa_chars(element_id) THEN
269: RETURN NULL;
270: END IF;
271: RETURN x_qa_chars_array(element_id).default_value;
272:
267: fetch_qa_chars(element_id);
268: IF NOT exists_qa_chars(element_id) THEN
269: RETURN NULL;
270: END IF;
271: RETURN x_qa_chars_array(element_id).default_value;
272:
273: END default_value;
274:
275:
277: RETURN VARCHAR2 IS
278:
279: BEGIN
280:
281: fetch_qa_chars(element_id);
282: IF NOT exists_qa_chars(element_id) THEN
283: RETURN NULL;
284: END IF;
285: RETURN x_qa_chars_array(element_id).lower_reasonable_limit;
278:
279: BEGIN
280:
281: fetch_qa_chars(element_id);
282: IF NOT exists_qa_chars(element_id) THEN
283: RETURN NULL;
284: END IF;
285: RETURN x_qa_chars_array(element_id).lower_reasonable_limit;
286:
281: fetch_qa_chars(element_id);
282: IF NOT exists_qa_chars(element_id) THEN
283: RETURN NULL;
284: END IF;
285: RETURN x_qa_chars_array(element_id).lower_reasonable_limit;
286:
287: END lower_reasonable_limit;
288:
289:
291: RETURN VARCHAR2 IS
292:
293: BEGIN
294:
295: fetch_qa_chars(element_id);
296: IF NOT exists_qa_chars(element_id) THEN
297: RETURN NULL;
298: END IF;
299: RETURN x_qa_chars_array(element_id).upper_reasonable_limit;
292:
293: BEGIN
294:
295: fetch_qa_chars(element_id);
296: IF NOT exists_qa_chars(element_id) THEN
297: RETURN NULL;
298: END IF;
299: RETURN x_qa_chars_array(element_id).upper_reasonable_limit;
300:
295: fetch_qa_chars(element_id);
296: IF NOT exists_qa_chars(element_id) THEN
297: RETURN NULL;
298: END IF;
299: RETURN x_qa_chars_array(element_id).upper_reasonable_limit;
300:
301: END upper_reasonable_limit;
302:
303:
305: RETURN VARCHAR2 IS
306:
307: BEGIN
308:
309: fetch_qa_chars(element_id);
310: IF NOT exists_qa_chars(element_id) THEN
311: RETURN NULL;
312: END IF;
313: RETURN x_qa_chars_array(element_id).prompt;
306:
307: BEGIN
308:
309: fetch_qa_chars(element_id);
310: IF NOT exists_qa_chars(element_id) THEN
311: RETURN NULL;
312: END IF;
313: RETURN x_qa_chars_array(element_id).prompt;
314:
309: fetch_qa_chars(element_id);
310: IF NOT exists_qa_chars(element_id) THEN
311: RETURN NULL;
312: END IF;
313: RETURN x_qa_chars_array(element_id).prompt;
314:
315: END prompt;
316:
317:
320: RETURN VARCHAR2 IS
321:
322: BEGIN
323:
324: fetch_qa_chars(element_id);
325: IF NOT exists_qa_chars(element_id) THEN
326: RETURN NULL;
327: END IF;
328: RETURN x_qa_chars_array(element_id).data_entry_hint;
321:
322: BEGIN
323:
324: fetch_qa_chars(element_id);
325: IF NOT exists_qa_chars(element_id) THEN
326: RETURN NULL;
327: END IF;
328: RETURN x_qa_chars_array(element_id).data_entry_hint;
329:
324: fetch_qa_chars(element_id);
325: IF NOT exists_qa_chars(element_id) THEN
326: RETURN NULL;
327: END IF;
328: RETURN x_qa_chars_array(element_id).data_entry_hint;
329:
330: END data_entry_hint;
331:
332:
334: RETURN NUMBER IS
335:
336: BEGIN
337:
338: fetch_qa_chars(element_id);
339: IF NOT exists_qa_chars(element_id) THEN
340: RETURN NULL;
341: END IF;
342: RETURN x_qa_chars_array(element_id).mandatory_flag;
335:
336: BEGIN
337:
338: fetch_qa_chars(element_id);
339: IF NOT exists_qa_chars(element_id) THEN
340: RETURN NULL;
341: END IF;
342: RETURN x_qa_chars_array(element_id).mandatory_flag;
343:
338: fetch_qa_chars(element_id);
339: IF NOT exists_qa_chars(element_id) THEN
340: RETURN NULL;
341: END IF;
342: RETURN x_qa_chars_array(element_id).mandatory_flag;
343:
344: END mandatory_flag;
345:
346:
482: RETURN NUMBER IS
483:
484: CURSOR c IS
485: SELECT char_id
486: FROm qa_chars
487: WHERE name = p_element_name
488: AND enabled_flag = 1;
489:
490: l_element_id NUMBER;
585: RETURN VARCHAR2 IS
586:
587: BEGIN
588:
589: fetch_qa_chars(element_id);
590: IF NOT exists_qa_chars(element_id) THEN
591: RETURN NULL;
592: END IF;
593: RETURN x_qa_chars_array(element_id).lower_spec_limit;
586:
587: BEGIN
588:
589: fetch_qa_chars(element_id);
590: IF NOT exists_qa_chars(element_id) THEN
591: RETURN NULL;
592: END IF;
593: RETURN x_qa_chars_array(element_id).lower_spec_limit;
594:
589: fetch_qa_chars(element_id);
590: IF NOT exists_qa_chars(element_id) THEN
591: RETURN NULL;
592: END IF;
593: RETURN x_qa_chars_array(element_id).lower_spec_limit;
594:
595: END lower_spec_limit;
596:
597:
599: RETURN VARCHAR2 IS
600:
601: BEGIN
602:
603: fetch_qa_chars(element_id);
604: IF NOT exists_qa_chars(element_id) THEN
605: RETURN NULL;
606: END IF;
607: RETURN x_qa_chars_array(element_id).upper_spec_limit;
600:
601: BEGIN
602:
603: fetch_qa_chars(element_id);
604: IF NOT exists_qa_chars(element_id) THEN
605: RETURN NULL;
606: END IF;
607: RETURN x_qa_chars_array(element_id).upper_spec_limit;
608:
603: fetch_qa_chars(element_id);
604: IF NOT exists_qa_chars(element_id) THEN
605: RETURN NULL;
606: END IF;
607: RETURN x_qa_chars_array(element_id).upper_spec_limit;
608:
609: END upper_spec_limit;
610:
611: FUNCTION target_value(element_id IN NUMBER)
612: RETURN VARCHAR2 IS
613:
614: BEGIN
615:
616: fetch_qa_chars(element_id);
617: IF NOT exists_qa_chars(element_id) THEN
618: RETURN NULL;
619: END IF;
620: RETURN x_qa_chars_array(element_id).target_value;
613:
614: BEGIN
615:
616: fetch_qa_chars(element_id);
617: IF NOT exists_qa_chars(element_id) THEN
618: RETURN NULL;
619: END IF;
620: RETURN x_qa_chars_array(element_id).target_value;
621:
616: fetch_qa_chars(element_id);
617: IF NOT exists_qa_chars(element_id) THEN
618: RETURN NULL;
619: END IF;
620: RETURN x_qa_chars_array(element_id).target_value;
621:
622: END target_value;
623:
624:
629: RETURN VARCHAR2 IS
630:
631: BEGIN
632:
633: fetch_qa_chars(element_id);
634: IF NOT exists_qa_chars(element_id) THEN
635: RETURN NULL;
636: END IF;
637: RETURN x_qa_chars_array(element_id).developer_name;
630:
631: BEGIN
632:
633: fetch_qa_chars(element_id);
634: IF NOT exists_qa_chars(element_id) THEN
635: RETURN NULL;
636: END IF;
637: RETURN x_qa_chars_array(element_id).developer_name;
638:
633: fetch_qa_chars(element_id);
634: IF NOT exists_qa_chars(element_id) THEN
635: RETURN NULL;
636: END IF;
637: RETURN x_qa_chars_array(element_id).developer_name;
638:
639: END developer_name;
640:
641: -- Bug 4453386. R12 base line build.
649: --
650: FUNCTION get_element_name (p_element_id IN NUMBER)
651: RETURN VARCHAR2 IS
652: BEGIN
653: fetch_qa_chars(p_element_id);
654: IF NOT exists_qa_chars(p_element_id) THEN
655: RETURN NULL;
656: END IF;
657: RETURN x_qa_chars_array(p_element_id).name;
650: FUNCTION get_element_name (p_element_id IN NUMBER)
651: RETURN VARCHAR2 IS
652: BEGIN
653: fetch_qa_chars(p_element_id);
654: IF NOT exists_qa_chars(p_element_id) THEN
655: RETURN NULL;
656: END IF;
657: RETURN x_qa_chars_array(p_element_id).name;
658: END get_element_name;
653: fetch_qa_chars(p_element_id);
654: IF NOT exists_qa_chars(p_element_id) THEN
655: RETURN NULL;
656: END IF;
657: RETURN x_qa_chars_array(p_element_id).name;
658: END get_element_name;
659:
660:
661:
658: END get_element_name;
659:
660:
661:
662: END qa_chars_api;