40: END R_COUNT;
41:
42:
43: PROCEDURE validate_ext_attribs(
44: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
45: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
46: p_validation_mode IN VARCHAR2 ,
47: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
48: x_return_status OUT NOCOPY VARCHAR2 ,
41:
42:
43: PROCEDURE validate_ext_attribs(
44: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
45: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
46: p_validation_mode IN VARCHAR2 ,
47: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
48: x_return_status OUT NOCOPY VARCHAR2 ,
49: x_msg_count OUT NOCOPY NUMBER ,
50: x_msg_data OUT NOCOPY VARCHAR2
51: );
52:
53: PROCEDURE validate_attribute_level (
54: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
55: p_validation_mode IN VARCHAR2 ,
56: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
57: x_return_status OUT NOCOPY VARCHAR2 ,
58: x_msg_count OUT NOCOPY NUMBER ,
60: );
61:
62:
63: PROCEDURE validate_attribute_code (
64: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
65: p_validation_mode IN VARCHAR2 ,
66: p_attribute_code IN VARCHAR2 ,
67: x_return_status OUT NOCOPY VARCHAR2 ,
68: x_msg_count OUT NOCOPY NUMBER ,
70: );
71:
72:
73: PROCEDURE validate_attribute_category (
74: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
75: p_validation_mode IN VARCHAR2 ,
76: p_attribute_category IN VARCHAR2 ,
77: x_return_status OUT NOCOPY VARCHAR2 ,
78: x_msg_count OUT NOCOPY NUMBER ,
80: );
81:
82:
83: PROCEDURE validate_attribute_name (
84: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
85: p_validation_mode IN VARCHAR2 ,
86: p_attribute_name IN VARCHAR2 ,
87: x_return_status OUT NOCOPY VARCHAR2 ,
88: x_msg_count OUT NOCOPY NUMBER ,
91:
92:
93: PROCEDURE Create_extended_attrib(
94: p_api_version IN NUMBER,
95: p_commit IN VARCHAR2 := fnd_api.g_false,
96: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
97: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
98: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
99: x_attribute_id OUT NOCOPY NUMBER,
92:
93: PROCEDURE Create_extended_attrib(
94: p_api_version IN NUMBER,
95: p_commit IN VARCHAR2 := fnd_api.g_false,
96: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
97: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
98: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
99: x_attribute_id OUT NOCOPY NUMBER,
100: x_return_status OUT NOCOPY VARCHAR2,
93: PROCEDURE Create_extended_attrib(
94: p_api_version IN NUMBER,
95: p_commit IN VARCHAR2 := fnd_api.g_false,
96: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
97: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
98: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
99: x_attribute_id OUT NOCOPY NUMBER,
100: x_return_status OUT NOCOPY VARCHAR2,
101: x_msg_count OUT NOCOPY NUMBER,
112:
113: BEGIN
114: SAVEPOINT Create_extended_attrib_grp;
115:
116: IF NOT fnd_api.compatible_api_call ( l_api_version,
117: p_api_version,
118: l_api_name,
119: g_pkg_name)
120: THEN
117: p_api_version,
118: l_api_name,
119: g_pkg_name)
120: THEN
121: RAISE fnd_api.g_exc_unexpected_error;
122: END IF;
123:
124:
125: IF fnd_api.to_boolean( p_init_msg_list )
121: RAISE fnd_api.g_exc_unexpected_error;
122: END IF;
123:
124:
125: IF fnd_api.to_boolean( p_init_msg_list )
126: THEN
127: fnd_msg_pub.initialize;
128: END IF;
129:
126: THEN
127: fnd_msg_pub.initialize;
128: END IF;
129:
130: x_return_status := fnd_api.g_ret_sts_success;
131:
132: l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
133: IF (l_debug_level > 0) THEN
134: csi_gen_utility_pvt.put_line( 'Create_extended_attrib');
142: p_Validation_level
143: );
144: --csi_gen_utility_pvt.dump_ext_attrib_rec(p_ext_attrib_rec);
145: END IF;
146: IF x_return_status<>fnd_api.g_ret_sts_success THEN
147: RAISE fnd_api.g_exc_error;
148: END IF;
149:
150: IF ( (p_ext_attrib_rec.attribute_level IS NULL
143: );
144: --csi_gen_utility_pvt.dump_ext_attrib_rec(p_ext_attrib_rec);
145: END IF;
146: IF x_return_status<>fnd_api.g_ret_sts_success THEN
147: RAISE fnd_api.g_exc_error;
148: END IF;
149:
150: IF ( (p_ext_attrib_rec.attribute_level IS NULL
151: OR p_ext_attrib_rec.attribute_level = fnd_api.g_miss_char )
147: RAISE fnd_api.g_exc_error;
148: END IF;
149:
150: IF ( (p_ext_attrib_rec.attribute_level IS NULL
151: OR p_ext_attrib_rec.attribute_level = fnd_api.g_miss_char )
152: OR (p_ext_attrib_rec.attribute_code IS NULL
153: OR p_ext_attrib_rec.attribute_code = fnd_api.g_miss_char) )
154: THEN
155: l_validation_flag:='Y';
149:
150: IF ( (p_ext_attrib_rec.attribute_level IS NULL
151: OR p_ext_attrib_rec.attribute_level = fnd_api.g_miss_char )
152: OR (p_ext_attrib_rec.attribute_code IS NULL
153: OR p_ext_attrib_rec.attribute_code = fnd_api.g_miss_char) )
154: THEN
155: l_validation_flag:='Y';
156: ELSE
157: IF (p_ext_attrib_rec.master_organization_id IS NULL
154: THEN
155: l_validation_flag:='Y';
156: ELSE
157: IF (p_ext_attrib_rec.master_organization_id IS NULL
158: OR p_ext_attrib_rec.master_organization_id = fnd_api.g_miss_num)
159: THEN
160: l_master_org_id := NULL;
161: ELSE
162: l_master_org_id := p_ext_attrib_rec.master_organization_id;
162: l_master_org_id := p_ext_attrib_rec.master_organization_id;
163: END IF;
164:
165: IF (p_ext_attrib_rec.inventory_item_id IS NULL
166: OR p_ext_attrib_rec.inventory_item_id = fnd_api.g_miss_num)
167: THEN
168: l_inv_item_id := NULL;
169: ELSE
170: l_inv_item_id := p_ext_attrib_rec.inventory_item_id;
170: l_inv_item_id := p_ext_attrib_rec.inventory_item_id;
171: END IF;
172:
173: IF (p_ext_attrib_rec.item_category_id IS NULL
174: OR p_ext_attrib_rec.item_category_id = fnd_api.g_miss_num)
175: THEN
176: l_item_category_id := NULL;
177: ELSE
178: l_item_category_id := p_ext_attrib_rec.item_category_id;
178: l_item_category_id := p_ext_attrib_rec.item_category_id;
179: END IF;
180:
181: IF (p_ext_attrib_rec.instance_id IS NULL
182: OR p_ext_attrib_rec.instance_id=fnd_api.g_miss_num)
183: THEN
184: l_instance_id := NULL;
185: ELSE
186: l_instance_id := p_ext_attrib_rec.instance_id;
218: END IF;
219:
220: IF l_validation_flag = 'Y' THEN
221: validate_ext_attribs(
222: p_init_msg_list => fnd_api.g_false,
223: p_validation_level => p_validation_level,
224: p_validation_mode => 'CREATE',
225: p_ext_attrib_rec => p_ext_attrib_rec,
226: x_return_status => x_return_status,
226: x_return_status => x_return_status,
227: x_msg_count => x_msg_count,
228: x_msg_data => x_msg_data);
229:
230: IF x_return_status<>fnd_api.g_ret_sts_success THEN
231: RAISE fnd_api.g_exc_error;
232: END IF;
233:
234:
227: x_msg_count => x_msg_count,
228: x_msg_data => x_msg_data);
229:
230: IF x_return_status<>fnd_api.g_ret_sts_success THEN
231: RAISE fnd_api.g_exc_error;
232: END IF;
233:
234:
235: IF x_return_status = fnd_api.g_ret_sts_success THEN
231: RAISE fnd_api.g_exc_error;
232: END IF;
233:
234:
235: IF x_return_status = fnd_api.g_ret_sts_success THEN
236: -- invoke table handler(csi_systems_b_pkg.insert_row)
237:
238: csi_i_ext_attrib_pkg.insert_row(
239: px_attribute_id => x_attribute_id ,
274:
275:
276: END IF;
277:
278: IF x_return_status <> fnd_api.g_ret_sts_success THEN
279: RAISE fnd_api.g_exc_error;
280: END IF;
281: END IF; --End of End If for l_validation_flag = 'Y'
282: IF fnd_api.to_boolean( p_commit )
275:
276: END IF;
277:
278: IF x_return_status <> fnd_api.g_ret_sts_success THEN
279: RAISE fnd_api.g_exc_error;
280: END IF;
281: END IF; --End of End If for l_validation_flag = 'Y'
282: IF fnd_api.to_boolean( p_commit )
283: THEN
278: IF x_return_status <> fnd_api.g_ret_sts_success THEN
279: RAISE fnd_api.g_exc_error;
280: END IF;
281: END IF; --End of End If for l_validation_flag = 'Y'
282: IF fnd_api.to_boolean( p_commit )
283: THEN
284: COMMIT WORK;
285: END IF;
286:
289: p_data => x_msg_data
290: );
291:
292: EXCEPTION
293: WHEN fnd_api.g_exc_error THEN
294: ROLLBACK TO Create_extended_attrib_grp;
295: x_return_status := fnd_api.g_ret_sts_error ;
296: fnd_msg_pub.count_and_get
297: (p_count => x_msg_count ,
291:
292: EXCEPTION
293: WHEN fnd_api.g_exc_error THEN
294: ROLLBACK TO Create_extended_attrib_grp;
295: x_return_status := fnd_api.g_ret_sts_error ;
296: fnd_msg_pub.count_and_get
297: (p_count => x_msg_count ,
298: p_data => x_msg_data
299: );
297: (p_count => x_msg_count ,
298: p_data => x_msg_data
299: );
300:
301: WHEN fnd_api.g_exc_unexpected_error THEN
302: ROLLBACK TO Create_extended_attrib_grp;
303: x_return_status := fnd_api.g_ret_sts_unexp_error ;
304: fnd_msg_pub.count_and_get
305: (p_count => x_msg_count ,
299: );
300:
301: WHEN fnd_api.g_exc_unexpected_error THEN
302: ROLLBACK TO Create_extended_attrib_grp;
303: x_return_status := fnd_api.g_ret_sts_unexp_error ;
304: fnd_msg_pub.count_and_get
305: (p_count => x_msg_count ,
306: p_data => x_msg_data
307: );
307: );
308:
309: WHEN OTHERS THEN
310: ROLLBACK TO Create_extended_attrib_grp;
311: x_return_status := fnd_api.g_ret_sts_unexp_error ;
312: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
313: fnd_msg_pub.add_exc_msg(g_pkg_name ,l_api_name);
314: END IF;
315: fnd_msg_pub.count_and_get
365: -- and item_category_id should be passed as null else raise an error.
366: -- --------------------------------------------------------------------------------------------------
367:
368: PROCEDURE validate_attribute_level (
369: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
370: p_validation_mode IN VARCHAR2 ,
371: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
372: x_return_status OUT NOCOPY VARCHAR2 ,
373: x_msg_count OUT NOCOPY NUMBER ,
377: l_dummy VARCHAR2(1);
378: l_lookup_code VARCHAR2(30):=NULL;
379: l_ext_lookup_type VARCHAR2(30):= 'CSI_IEA_LEVEL_CODE';
380: BEGIN
381: IF fnd_api.to_boolean( p_init_msg_list )
382: THEN
383: fnd_msg_pub.initialize;
384: END IF;
385: x_return_status := fnd_api.g_ret_sts_success;
381: IF fnd_api.to_boolean( p_init_msg_list )
382: THEN
383: fnd_msg_pub.initialize;
384: END IF;
385: x_return_status := fnd_api.g_ret_sts_success;
386:
387: IF p_validation_mode='CREATE' THEN
388: IF ( (p_ext_attrib_rec.attribute_level IS NOT NULL) AND (p_ext_attrib_rec.attribute_level<>fnd_api.g_miss_char) )
389: THEN
384: END IF;
385: x_return_status := fnd_api.g_ret_sts_success;
386:
387: IF p_validation_mode='CREATE' THEN
388: IF ( (p_ext_attrib_rec.attribute_level IS NOT NULL) AND (p_ext_attrib_rec.attribute_level<>fnd_api.g_miss_char) )
389: THEN
390: BEGIN
391: SELECT 'x'
392: INTO l_dummy
395: AND lookup_code = p_ext_attrib_rec.attribute_level;
396: IF p_ext_attrib_rec.attribute_level = 'GLOBAL'
397: THEN
398: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
399: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
400: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
401: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
402: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
403: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
397: THEN
398: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
399: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
400: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
401: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
402: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
403: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
404: OR (p_ext_attrib_rec.instance_id IS NOT NULL
405: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
399: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
400: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
401: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
402: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
403: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
404: OR (p_ext_attrib_rec.instance_id IS NOT NULL
405: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
406: )
407: THEN
401: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
402: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
403: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
404: OR (p_ext_attrib_rec.instance_id IS NOT NULL
405: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
406: )
407: THEN
408: fnd_message.set_name('CSI', 'CSI_PASS_NULL_PARAMS');
409: fnd_msg_pub.add;
406: )
407: THEN
408: fnd_message.set_name('CSI', 'CSI_PASS_NULL_PARAMS');
409: fnd_msg_pub.add;
410: x_return_status := fnd_api.g_ret_sts_error;
411: END IF;
412: END IF; --End if Global
413:
414: IF p_ext_attrib_rec.attribute_level = 'CATEGORY'
413:
414: IF p_ext_attrib_rec.attribute_level = 'CATEGORY'
415: THEN
416: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
417: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
418: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
419: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
420: OR (p_ext_attrib_rec.instance_id IS NOT NULL
421: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
415: THEN
416: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
417: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
418: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
419: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
420: OR (p_ext_attrib_rec.instance_id IS NOT NULL
421: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
422: )
423: THEN
417: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
418: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
419: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
420: OR (p_ext_attrib_rec.instance_id IS NOT NULL
421: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
422: )
423: THEN
424: fnd_message.set_name('CSI', 'CSI_PASS_CAT_PARAMS');
425: fnd_msg_pub.add;
422: )
423: THEN
424: fnd_message.set_name('CSI', 'CSI_PASS_CAT_PARAMS');
425: fnd_msg_pub.add;
426: x_return_status := fnd_api.g_ret_sts_error;
427: ELSIF ( (p_ext_attrib_rec.item_category_id IS NULL)
428: OR (p_ext_attrib_rec.item_category_id = fnd_api.g_miss_num) )
429: THEN
430: fnd_message.set_name('CSI', 'CSI_MISSING_CAT_PARAMETER');
424: fnd_message.set_name('CSI', 'CSI_PASS_CAT_PARAMS');
425: fnd_msg_pub.add;
426: x_return_status := fnd_api.g_ret_sts_error;
427: ELSIF ( (p_ext_attrib_rec.item_category_id IS NULL)
428: OR (p_ext_attrib_rec.item_category_id = fnd_api.g_miss_num) )
429: THEN
430: fnd_message.set_name('CSI', 'CSI_MISSING_CAT_PARAMETER');
431: fnd_msg_pub.add;
432: x_return_status := fnd_api.g_ret_sts_error;
428: OR (p_ext_attrib_rec.item_category_id = fnd_api.g_miss_num) )
429: THEN
430: fnd_message.set_name('CSI', 'CSI_MISSING_CAT_PARAMETER');
431: fnd_msg_pub.add;
432: x_return_status := fnd_api.g_ret_sts_error;
433: ELSE
434: l_dummy := NULL;
435: BEGIN
436: SELECT 'x'
443: WHEN NO_DATA_FOUND THEN
444: fnd_message.set_name('CSI', 'CSI_INVALID_PARAMETER');
445: fnd_message.set_token('PARAMETER',p_ext_attrib_rec.item_category_id);
446: fnd_msg_pub.add;
447: x_return_status := fnd_api.g_ret_sts_error;
448: END;
449: END IF;
450: END IF; --End If Category
451:
451:
452: IF p_ext_attrib_rec.attribute_level = 'ITEM'
453: THEN
454: IF ( (p_ext_attrib_rec.item_category_id IS NOT NULL
455: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
456: OR (p_ext_attrib_rec.instance_id IS NOT NULL
457: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
458: )
459: THEN
453: THEN
454: IF ( (p_ext_attrib_rec.item_category_id IS NOT NULL
455: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
456: OR (p_ext_attrib_rec.instance_id IS NOT NULL
457: AND p_ext_attrib_rec.instance_id <> fnd_api.g_miss_num)
458: )
459: THEN
460: fnd_message.set_name('CSI', 'CSI_PASS_ITEM_PARAMS');
461: fnd_msg_pub.add;
458: )
459: THEN
460: fnd_message.set_name('CSI', 'CSI_PASS_ITEM_PARAMS');
461: fnd_msg_pub.add;
462: x_return_status := fnd_api.g_ret_sts_error;
463: ELSIF ( (p_ext_attrib_rec.inventory_item_id IS NULL
464: OR p_ext_attrib_rec.inventory_item_id = fnd_api.g_miss_num)
465: OR (p_ext_attrib_rec.master_organization_id IS NULL
466: OR p_ext_attrib_rec.master_organization_id = fnd_api.g_miss_num) )
460: fnd_message.set_name('CSI', 'CSI_PASS_ITEM_PARAMS');
461: fnd_msg_pub.add;
462: x_return_status := fnd_api.g_ret_sts_error;
463: ELSIF ( (p_ext_attrib_rec.inventory_item_id IS NULL
464: OR p_ext_attrib_rec.inventory_item_id = fnd_api.g_miss_num)
465: OR (p_ext_attrib_rec.master_organization_id IS NULL
466: OR p_ext_attrib_rec.master_organization_id = fnd_api.g_miss_num) )
467: THEN
468: fnd_message.set_name('CSI', 'CSI_MISSING_ITEM_PARAMETER');
462: x_return_status := fnd_api.g_ret_sts_error;
463: ELSIF ( (p_ext_attrib_rec.inventory_item_id IS NULL
464: OR p_ext_attrib_rec.inventory_item_id = fnd_api.g_miss_num)
465: OR (p_ext_attrib_rec.master_organization_id IS NULL
466: OR p_ext_attrib_rec.master_organization_id = fnd_api.g_miss_num) )
467: THEN
468: fnd_message.set_name('CSI', 'CSI_MISSING_ITEM_PARAMETER');
469: fnd_msg_pub.add;
470: x_return_status := fnd_api.g_ret_sts_error;
466: OR p_ext_attrib_rec.master_organization_id = fnd_api.g_miss_num) )
467: THEN
468: fnd_message.set_name('CSI', 'CSI_MISSING_ITEM_PARAMETER');
469: fnd_msg_pub.add;
470: x_return_status := fnd_api.g_ret_sts_error;
471: ELSE
472: l_dummy := NULL;
473: BEGIN
474: SELECT 'x'
479: EXCEPTION
480: WHEN NO_DATA_FOUND THEN
481: fnd_message.set_name('CSI', 'CSI_INVALID_ITEM_PARAMETER');
482: fnd_msg_pub.add;
483: x_return_status := fnd_api.g_ret_sts_error;
484: END;
485: END IF;
486: END IF; --End If Item
487:
487:
488: IF p_ext_attrib_rec.attribute_level = 'INSTANCE'
489: THEN
490: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
491: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
492: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
493: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
494: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
495: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
489: THEN
490: IF ( (p_ext_attrib_rec.master_organization_id IS NOT NULL
491: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
492: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
493: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
494: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
495: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
496: )
497: THEN
491: AND p_ext_attrib_rec.master_organization_id <> fnd_api.g_miss_num)
492: OR (p_ext_attrib_rec.inventory_item_id IS NOT NULL
493: AND p_ext_attrib_rec.inventory_item_id <> fnd_api.g_miss_num)
494: OR (p_ext_attrib_rec.item_category_id IS NOT NULL
495: AND p_ext_attrib_rec.item_category_id <> fnd_api.g_miss_num)
496: )
497: THEN
498: fnd_message.set_name('CSI', 'CSI_PASS_INS_PARAMS');
499: fnd_msg_pub.add;
496: )
497: THEN
498: fnd_message.set_name('CSI', 'CSI_PASS_INS_PARAMS');
499: fnd_msg_pub.add;
500: x_return_status := fnd_api.g_ret_sts_error;
501: ELSIF ( (p_ext_attrib_rec.instance_id IS NULL
502: OR p_ext_attrib_rec.instance_id = fnd_api.g_miss_num) )
503: THEN
504: fnd_message.set_name('CSI', 'CSI_MISSING_INS_PARAMETER');
498: fnd_message.set_name('CSI', 'CSI_PASS_INS_PARAMS');
499: fnd_msg_pub.add;
500: x_return_status := fnd_api.g_ret_sts_error;
501: ELSIF ( (p_ext_attrib_rec.instance_id IS NULL
502: OR p_ext_attrib_rec.instance_id = fnd_api.g_miss_num) )
503: THEN
504: fnd_message.set_name('CSI', 'CSI_MISSING_INS_PARAMETER');
505: fnd_msg_pub.add;
506: x_return_status := fnd_api.g_ret_sts_error;
502: OR p_ext_attrib_rec.instance_id = fnd_api.g_miss_num) )
503: THEN
504: fnd_message.set_name('CSI', 'CSI_MISSING_INS_PARAMETER');
505: fnd_msg_pub.add;
506: x_return_status := fnd_api.g_ret_sts_error;
507: ELSE
508: l_dummy := NULL;
509: BEGIN
510: SELECT 'x'
515: WHEN NO_DATA_FOUND THEN
516: fnd_message.set_name('CSI', 'CSI_INVALID_INS_PARAMETER');
517: fnd_message.set_token('PARAMETER',p_ext_attrib_rec.instance_id);
518: fnd_msg_pub.add;
519: x_return_status := fnd_api.g_ret_sts_error;
520: END;
521: END IF;
522: END IF; -- end if instance
523: EXCEPTION
524: WHEN no_data_found THEN
525: fnd_message.set_name('CSI', 'CSI_INVALID_AL_PARAMETER');
526: fnd_message.set_token('PARAMETER',p_ext_attrib_rec.attribute_level);
527: fnd_msg_pub.add;
528: x_return_status := fnd_api.g_ret_sts_error;
529: END;--End for csi_lookups
530: ELSE -- Else if p_ext_attrib_rec.attribute_level IS NULL
531: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
532: fnd_message.set_token('PARAMETER','ATTRIBUTE_LEVEL');
530: ELSE -- Else if p_ext_attrib_rec.attribute_level IS NULL
531: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
532: fnd_message.set_token('PARAMETER','ATTRIBUTE_LEVEL');
533: fnd_msg_pub.add;
534: x_return_status := fnd_api.g_ret_sts_error;
535: END IF;--End if p_ext_attrib_rec.attribute_level IS NOT NULL
536: END IF; --End if p_validation_mode='CREATE'
537:
538: fnd_msg_pub.count_and_get
541: );
542: END;
543:
544: PROCEDURE validate_attribute_code (
545: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
546: p_validation_mode IN VARCHAR2 ,
547: p_attribute_code IN VARCHAR2 ,
548: x_return_status OUT NOCOPY VARCHAR2 ,
549: x_msg_count OUT NOCOPY NUMBER ,
552: IS
553: l_dummy VARCHAR2(1);
554: l_attrib_lookup_type VARCHAR2(30):= 'CSI_EXTEND_ATTRIB_POOL';
555: BEGIN
556: IF fnd_api.to_boolean( p_init_msg_list )
557: THEN
558: fnd_msg_pub.initialize;
559: END IF;
560: x_return_status := fnd_api.g_ret_sts_success;
556: IF fnd_api.to_boolean( p_init_msg_list )
557: THEN
558: fnd_msg_pub.initialize;
559: END IF;
560: x_return_status := fnd_api.g_ret_sts_success;
561:
562: IF p_validation_mode='CREATE' THEN
563: IF ( (p_attribute_code IS NOT NULL) AND (p_attribute_code<>fnd_api.g_miss_char) ) THEN
564: BEGIN
559: END IF;
560: x_return_status := fnd_api.g_ret_sts_success;
561:
562: IF p_validation_mode='CREATE' THEN
563: IF ( (p_attribute_code IS NOT NULL) AND (p_attribute_code<>fnd_api.g_miss_char) ) THEN
564: BEGIN
565: SELECT 'x'
566: INTO l_dummy
567: FROM csi_lookups
571: WHEN NO_DATA_FOUND THEN
572: fnd_message.set_name('CSI', 'CSI_INVALID_PARAMETER');
573: fnd_message.set_token('PARAMETER',p_attribute_code);
574: fnd_msg_pub.add;
575: x_return_status := fnd_api.g_ret_sts_error;
576: END;
577: ELSE
578: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
579: fnd_message.set_token('PARAMETER','ATTRIBUTE_CODE');
577: ELSE
578: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
579: fnd_message.set_token('PARAMETER','ATTRIBUTE_CODE');
580: fnd_msg_pub.add;
581: x_return_status := fnd_api.g_ret_sts_error;
582: END IF;
583: END IF;
584: END;
585:
583: END IF;
584: END;
585:
586: PROCEDURE validate_attribute_category (
587: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
588: p_validation_mode IN VARCHAR2 ,
589: p_attribute_category IN VARCHAR2 ,
590: x_return_status OUT NOCOPY VARCHAR2 ,
591: x_msg_count OUT NOCOPY NUMBER ,
594: IS
595: l_dummy VARCHAR2(1);
596: l_cat_lookup_type VARCHAR2(30) := 'CSI_IEA_CATEGORY';
597: BEGIN
598: IF fnd_api.to_boolean( p_init_msg_list )
599: THEN
600: fnd_msg_pub.initialize;
601: END IF;
602: x_return_status := fnd_api.g_ret_sts_success;
598: IF fnd_api.to_boolean( p_init_msg_list )
599: THEN
600: fnd_msg_pub.initialize;
601: END IF;
602: x_return_status := fnd_api.g_ret_sts_success;
603:
604: IF p_validation_mode='CREATE' THEN
605: IF ( (p_attribute_category IS NOT NULL) AND (p_attribute_category<>fnd_api.g_miss_char) ) THEN
606: BEGIN
601: END IF;
602: x_return_status := fnd_api.g_ret_sts_success;
603:
604: IF p_validation_mode='CREATE' THEN
605: IF ( (p_attribute_category IS NOT NULL) AND (p_attribute_category<>fnd_api.g_miss_char) ) THEN
606: BEGIN
607: SELECT 'x'
608: INTO l_dummy
609: FROM csi_lookups
613: WHEN NO_DATA_FOUND THEN
614: fnd_message.set_name('CSI', 'CSI_INVALID_PARAMETER');
615: fnd_message.set_token('PARAMETER',p_attribute_category);
616: fnd_msg_pub.add;
617: x_return_status := fnd_api.g_ret_sts_error;
618: END;
619: END IF;
620: END IF;
621: END;
620: END IF;
621: END;
622:
623: PROCEDURE validate_attribute_name (
624: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
625: p_validation_mode IN VARCHAR2 ,
626: p_attribute_name IN VARCHAR2 ,
627: x_return_status OUT NOCOPY VARCHAR2 ,
628: x_msg_count OUT NOCOPY NUMBER ,
630: )
631: IS
632: l_dummy VARCHAR2(1);
633: BEGIN
634: IF fnd_api.to_boolean( p_init_msg_list )
635: THEN
636: fnd_msg_pub.initialize;
637: END IF;
638: x_return_status := fnd_api.g_ret_sts_success;
634: IF fnd_api.to_boolean( p_init_msg_list )
635: THEN
636: fnd_msg_pub.initialize;
637: END IF;
638: x_return_status := fnd_api.g_ret_sts_success;
639:
640: IF p_validation_mode='CREATE' THEN
641: IF ( (p_attribute_name IS NULL) OR (p_attribute_name = fnd_api.g_miss_char) ) THEN
642: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
637: END IF;
638: x_return_status := fnd_api.g_ret_sts_success;
639:
640: IF p_validation_mode='CREATE' THEN
641: IF ( (p_attribute_name IS NULL) OR (p_attribute_name = fnd_api.g_miss_char) ) THEN
642: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
643: fnd_message.set_token('PARAMETER','ATTRIBUTE_NAME');
644: fnd_msg_pub.add;
645: x_return_status := fnd_api.g_ret_sts_error;
641: IF ( (p_attribute_name IS NULL) OR (p_attribute_name = fnd_api.g_miss_char) ) THEN
642: fnd_message.set_name('CSI', 'CSI_MISSING_PARAMETER');
643: fnd_message.set_token('PARAMETER','ATTRIBUTE_NAME');
644: fnd_msg_pub.add;
645: x_return_status := fnd_api.g_ret_sts_error;
646: END IF;
647: END IF;
648: END;
649:
648: END;
649:
650:
651: PROCEDURE validate_ext_attribs(
652: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
653: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
654: p_validation_mode IN VARCHAR2 ,
655: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
656: x_return_status OUT NOCOPY VARCHAR2 ,
649:
650:
651: PROCEDURE validate_ext_attribs(
652: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
653: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
654: p_validation_mode IN VARCHAR2 ,
655: p_ext_attrib_rec IN csi_datastructures_pub.ext_attrib_rec,
656: x_return_status OUT NOCOPY VARCHAR2 ,
657: x_msg_count OUT NOCOPY NUMBER ,
663:
664: --dmsg('inside validate_systems');
665:
666: -- initialize api RETURN status to success
667: x_return_status := fnd_api.g_ret_sts_success;
668:
669: IF (p_validation_level >= fnd_api.g_valid_level_full) THEN
670:
671: validate_attribute_level(
665:
666: -- initialize api RETURN status to success
667: x_return_status := fnd_api.g_ret_sts_success;
668:
669: IF (p_validation_level >= fnd_api.g_valid_level_full) THEN
670:
671: validate_attribute_level(
672: p_init_msg_list => fnd_api.g_false,
673: p_validation_mode => p_validation_mode,
668:
669: IF (p_validation_level >= fnd_api.g_valid_level_full) THEN
670:
671: validate_attribute_level(
672: p_init_msg_list => fnd_api.g_false,
673: p_validation_mode => p_validation_mode,
674: p_ext_attrib_rec => p_ext_attrib_rec,
675: x_return_status => x_return_status,
676: x_msg_count => x_msg_count,
674: p_ext_attrib_rec => p_ext_attrib_rec,
675: x_return_status => x_return_status,
676: x_msg_count => x_msg_count,
677: x_msg_data => x_msg_data);
678: IF x_return_status <> fnd_api.g_ret_sts_success THEN
679: RAISE fnd_api.g_exc_error;
680: END IF;
681:
682: validate_attribute_code(
675: x_return_status => x_return_status,
676: x_msg_count => x_msg_count,
677: x_msg_data => x_msg_data);
678: IF x_return_status <> fnd_api.g_ret_sts_success THEN
679: RAISE fnd_api.g_exc_error;
680: END IF;
681:
682: validate_attribute_code(
683: p_init_msg_list => fnd_api.g_false,
679: RAISE fnd_api.g_exc_error;
680: END IF;
681:
682: validate_attribute_code(
683: p_init_msg_list => fnd_api.g_false,
684: p_validation_mode => p_validation_mode,
685: p_attribute_code => p_ext_attrib_rec.attribute_code,
686: x_return_status => x_return_status,
687: x_msg_count => x_msg_count,
685: p_attribute_code => p_ext_attrib_rec.attribute_code,
686: x_return_status => x_return_status,
687: x_msg_count => x_msg_count,
688: x_msg_data => x_msg_data);
689: IF x_return_status <> fnd_api.g_ret_sts_success THEN
690: RAISE fnd_api.g_exc_error;
691: END IF;
692:
693: validate_attribute_category(
686: x_return_status => x_return_status,
687: x_msg_count => x_msg_count,
688: x_msg_data => x_msg_data);
689: IF x_return_status <> fnd_api.g_ret_sts_success THEN
690: RAISE fnd_api.g_exc_error;
691: END IF;
692:
693: validate_attribute_category(
694: p_init_msg_list => fnd_api.g_false,
690: RAISE fnd_api.g_exc_error;
691: END IF;
692:
693: validate_attribute_category(
694: p_init_msg_list => fnd_api.g_false,
695: p_validation_mode => p_validation_mode,
696: p_attribute_category => p_ext_attrib_rec.attribute_category,
697: x_return_status => x_return_status,
698: x_msg_count => x_msg_count,
696: p_attribute_category => p_ext_attrib_rec.attribute_category,
697: x_return_status => x_return_status,
698: x_msg_count => x_msg_count,
699: x_msg_data => x_msg_data);
700: IF x_return_status <> fnd_api.g_ret_sts_success THEN
701: RAISE fnd_api.g_exc_error;
702: END IF;
703:
704: validate_attribute_name(
697: x_return_status => x_return_status,
698: x_msg_count => x_msg_count,
699: x_msg_data => x_msg_data);
700: IF x_return_status <> fnd_api.g_ret_sts_success THEN
701: RAISE fnd_api.g_exc_error;
702: END IF;
703:
704: validate_attribute_name(
705: p_init_msg_list => fnd_api.g_false,
701: RAISE fnd_api.g_exc_error;
702: END IF;
703:
704: validate_attribute_name(
705: p_init_msg_list => fnd_api.g_false,
706: p_validation_mode => p_validation_mode,
707: p_attribute_name => p_ext_attrib_rec.attribute_name,
708: x_return_status => x_return_status,
709: x_msg_count => x_msg_count,
707: p_attribute_name => p_ext_attrib_rec.attribute_name,
708: x_return_status => x_return_status,
709: x_msg_count => x_msg_count,
710: x_msg_data => x_msg_data);
711: IF x_return_status <> fnd_api.g_ret_sts_success THEN
712: RAISE fnd_api.g_exc_error;
713: END IF;
714: END IF;
715:
708: x_return_status => x_return_status,
709: x_msg_count => x_msg_count,
710: x_msg_data => x_msg_data);
711: IF x_return_status <> fnd_api.g_ret_sts_success THEN
712: RAISE fnd_api.g_exc_error;
713: END IF;
714: END IF;
715:
716: END validate_ext_attribs;
739: l_expired_status_id NUMBER;
740: l_exp_instances_count NUMBER;
741: l_parent_found CHAR := 'N';
742:
743: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
744: l_msg_count NUMBER;
745: l_msg_data VARCHAR2(2000);
746:
747: l_error_flag char := 'N';
791: END;
792:
793: IF l_parent_found <> 'Y' THEN
794:
795: l_exp_txn_rec.transaction_id := fnd_api.g_miss_num;
796: l_exp_txn_rec.transaction_type_id := 5;
797: l_exp_txn_rec.transaction_date := sysdate;
798: l_exp_txn_rec.source_transaction_date := sysdate;
799: l_exp_txn_rec.source_header_ref_id := fnd_api.g_miss_num;
795: l_exp_txn_rec.transaction_id := fnd_api.g_miss_num;
796: l_exp_txn_rec.transaction_type_id := 5;
797: l_exp_txn_rec.transaction_date := sysdate;
798: l_exp_txn_rec.source_transaction_date := sysdate;
799: l_exp_txn_rec.source_header_ref_id := fnd_api.g_miss_num;
800: l_exp_txn_rec.source_header_ref := fnd_global.conc_request_id; --'TERMINATE_INSTANCES';
801: l_exp_txn_rec.source_line_ref_id := fnd_api.g_miss_num;
802: l_exp_txn_rec.source_line_ref := fnd_api.g_miss_char;
803:
797: l_exp_txn_rec.transaction_date := sysdate;
798: l_exp_txn_rec.source_transaction_date := sysdate;
799: l_exp_txn_rec.source_header_ref_id := fnd_api.g_miss_num;
800: l_exp_txn_rec.source_header_ref := fnd_global.conc_request_id; --'TERMINATE_INSTANCES';
801: l_exp_txn_rec.source_line_ref_id := fnd_api.g_miss_num;
802: l_exp_txn_rec.source_line_ref := fnd_api.g_miss_char;
803:
804: l_exp_instance_rec.instance_id := exp_inst_rec.instance_id;
805: l_exp_instance_rec.active_end_date := exp_inst_rec.active_end_date;
798: l_exp_txn_rec.source_transaction_date := sysdate;
799: l_exp_txn_rec.source_header_ref_id := fnd_api.g_miss_num;
800: l_exp_txn_rec.source_header_ref := fnd_global.conc_request_id; --'TERMINATE_INSTANCES';
801: l_exp_txn_rec.source_line_ref_id := fnd_api.g_miss_num;
802: l_exp_txn_rec.source_line_ref := fnd_api.g_miss_char;
803:
804: l_exp_instance_rec.instance_id := exp_inst_rec.instance_id;
805: l_exp_instance_rec.active_end_date := exp_inst_rec.active_end_date;
806: l_exp_instance_rec.object_version_number := exp_inst_rec.object_version_number;
809: fnd_file.put_line(fnd_file.log,'Calling csi_item_instance_pub.expire item instance.');
810:
811: csi_item_instance_pub.expire_item_instance(
812: p_api_version => 1.0,
813: p_commit => fnd_api.g_false,
814: p_init_msg_list => fnd_api.g_true,
815: p_validation_level => fnd_api.g_valid_level_full,
816: p_instance_rec => l_exp_instance_rec,
817: p_expire_children => fnd_api.g_true,
810:
811: csi_item_instance_pub.expire_item_instance(
812: p_api_version => 1.0,
813: p_commit => fnd_api.g_false,
814: p_init_msg_list => fnd_api.g_true,
815: p_validation_level => fnd_api.g_valid_level_full,
816: p_instance_rec => l_exp_instance_rec,
817: p_expire_children => fnd_api.g_true,
818: p_txn_rec => l_exp_txn_rec,
811: csi_item_instance_pub.expire_item_instance(
812: p_api_version => 1.0,
813: p_commit => fnd_api.g_false,
814: p_init_msg_list => fnd_api.g_true,
815: p_validation_level => fnd_api.g_valid_level_full,
816: p_instance_rec => l_exp_instance_rec,
817: p_expire_children => fnd_api.g_true,
818: p_txn_rec => l_exp_txn_rec,
819: x_instance_id_lst => l_exp_inst_ids_list,
813: p_commit => fnd_api.g_false,
814: p_init_msg_list => fnd_api.g_true,
815: p_validation_level => fnd_api.g_valid_level_full,
816: p_instance_rec => l_exp_instance_rec,
817: p_expire_children => fnd_api.g_true,
818: p_txn_rec => l_exp_txn_rec,
819: x_instance_id_lst => l_exp_inst_ids_list,
820: x_return_status => l_return_status,
821: x_msg_count => l_msg_count,
820: x_return_status => l_return_status,
821: x_msg_count => l_msg_count,
822: x_msg_data => l_msg_data);
823:
824: IF l_return_status <> fnd_api.g_ret_sts_success THEN
825: l_error_flag := 'Y';
826: l_error_message := csi_t_gen_utility_pvt.dump_error_stack;
827: raise fnd_api.g_exc_error;
828: END IF;
823:
824: IF l_return_status <> fnd_api.g_ret_sts_success THEN
825: l_error_flag := 'Y';
826: l_error_message := csi_t_gen_utility_pvt.dump_error_stack;
827: raise fnd_api.g_exc_error;
828: END IF;
829:
830: fnd_file.put_line(fnd_file.log,'Processed successfully.');
831:
833: fnd_file.put_line(fnd_file.log,'Parent found, so did not qualify.');
834: END IF;
835:
836: EXCEPTION
837: WHEN fnd_api.g_exc_error THEN
838: fnd_file.put_line(fnd_file.log, l_error_message);
839: END;
840:
841: v_commit_counter := v_commit_counter + 1;
861:
862: fnd_file.put_line(fnd_file.log,'End of Terminate Expired Instances.');
863:
864: EXCEPTION
865: WHEN fnd_api.g_exc_error THEN
866: ROLLBACK TO terminate_instances;
867: retcode := 1;
868: errbuf := csi_t_gen_utility_pvt.dump_error_stack;
869: WHEN others THEN