29: FROM ahl_unit_config_headers
30: WHERE unit_config_header_id = p_uc_header_id;
31:
32: BEGIN
33: x_return_status := FND_API.G_RET_STS_SUCCESS;
34: x_uc_header_id := p_uc_header_id;
35:
36: IF p_uc_header_id IS NULL AND p_uc_name IS NULL THEN
37: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
37: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
38: FND_MESSAGE.set_token('NAME', 'uc_name');
39: FND_MESSAGE.set_token('VALUE', p_uc_name);
40: FND_MSG_PUB.add;
41: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
42: ELSIF p_uc_header_id IS NULL AND p_uc_name IS NOT NULL THEN
43: OPEN get_uc_header_id;
44: FETCH get_uc_header_id INTO x_uc_header_id;
45: IF get_uc_header_id%NOTFOUND THEN
46: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
47: FND_MESSAGE.set_token('NAME', 'uc_name');
48: FND_MESSAGE.set_token('VALUE', p_uc_name);
49: FND_MSG_PUB.add;
50: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
51: END IF;
52: CLOSE get_uc_header_id;
53: ELSIF p_uc_header_id IS NOT NULL AND p_uc_name IS NULL THEN
54: OPEN check_uc_header_id;
57: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
58: FND_MESSAGE.set_token('NAME', 'uc_header_id');
59: FND_MESSAGE.set_token('VALUE', p_uc_header_id);
60: FND_MSG_PUB.add;
61: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
62: END IF;
63: CLOSE check_uc_header_id;
64: ELSIF p_uc_header_id IS NOT NULL AND p_uc_name IS NOT NULL THEN
65: OPEN get_uc_header_id;
68: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
69: FND_MESSAGE.set_token('NAME', 'uc_name');
70: FND_MESSAGE.set_token('VALUE', p_uc_name);
71: FND_MSG_PUB.add;
72: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
73: END IF;
74: CLOSE get_uc_header_id;
75: END IF;
76: END;
89: FROM csi_item_instances
90: WHERE instance_id = p_instance_id;
91:
92: BEGIN
93: x_return_status := FND_API.G_RET_STS_SUCCESS;
94: x_instance_id := p_instance_id;
95:
96: IF p_instance_id IS NULL AND p_instance_num IS NULL THEN
97: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
97: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
98: FND_MESSAGE.set_token('NAME', 'instance_number');
99: FND_MESSAGE.set_token('VALUE', p_instance_num);
100: FND_MSG_PUB.add;
101: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
102: ELSIF p_instance_id IS NULL AND p_instance_num IS NOT NULL THEN
103: OPEN get_instance_id;
104: FETCH get_instance_id INTO x_instance_id;
105: IF get_instance_id%NOTFOUND THEN
106: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
107: FND_MESSAGE.set_token('NAME', 'instance_number');
108: FND_MESSAGE.set_token('VALUE', p_instance_num);
109: FND_MSG_PUB.add;
110: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
111: END IF;
112: CLOSE get_instance_id;
113: ELSIF p_instance_id IS NOT NULL AND p_instance_num IS NULL THEN
114: OPEN check_instance_id;
117: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
118: FND_MESSAGE.set_token('NAME', 'instance_id');
119: FND_MESSAGE.set_token('VALUE', p_instance_id);
120: FND_MSG_PUB.add;
121: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
122: END IF;
123: CLOSE check_instance_id;
124: ELSIF p_instance_id IS NOT NULL AND p_instance_num IS NOT NULL THEN
125: OPEN get_instance_id;
128: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
129: FND_MESSAGE.set_token('NAME', 'instance_number');
130: FND_MESSAGE.set_token('VALUE', p_instance_num);
131: FND_MSG_PUB.add;
132: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
133: END IF;
134: CLOSE get_instance_id;
135: END IF;
136: END;
140: -- the parent-child relationship in a UC tree structure (in other word, to make
141: -- the child instance as an extra node in the UC).
142: PROCEDURE unassociate_instance(
143: p_api_version IN NUMBER := 1.0,
144: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
145: p_commit IN VARCHAR2 := FND_API.G_FALSE,
146: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
147: x_return_status OUT NOCOPY VARCHAR2,
148: x_msg_count OUT NOCOPY NUMBER,
141: -- the child instance as an extra node in the UC).
142: PROCEDURE unassociate_instance(
143: p_api_version IN NUMBER := 1.0,
144: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
145: p_commit IN VARCHAR2 := FND_API.G_FALSE,
146: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
147: x_return_status OUT NOCOPY VARCHAR2,
148: x_msg_count OUT NOCOPY NUMBER,
149: x_msg_data OUT NOCOPY VARCHAR2,
142: PROCEDURE unassociate_instance(
143: p_api_version IN NUMBER := 1.0,
144: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
145: p_commit IN VARCHAR2 := FND_API.G_FALSE,
146: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
147: x_return_status OUT NOCOPY VARCHAR2,
148: x_msg_count OUT NOCOPY NUMBER,
149: x_msg_data OUT NOCOPY VARCHAR2,
150: p_uc_header_id IN NUMBER := NULL,
163: l_msg_data VARCHAR2(2000);
164:
165: BEGIN
166: --Initialize API return status to success
167: x_return_status := FND_API.G_RET_STS_SUCCESS;
168:
169: --Standard Start of API savepoint
170: SAVEPOINT unassociate_instance;
171:
169: --Standard Start of API savepoint
170: SAVEPOINT unassociate_instance;
171:
172: --Standard call to check for call compatibility.
173: IF NOT FND_API.compatible_api_call(
174: l_api_version,
175: p_api_version,
176: l_api_name,
177: G_PKG_NAME)
175: p_api_version,
176: l_api_name,
177: G_PKG_NAME)
178: THEN
179: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180: END IF;
181:
182: --Initialize message list if p_init_msg_list is set to TRUE.
183: IF FND_API.to_boolean(p_init_msg_list) THEN
179: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180: END IF;
181:
182: --Initialize message list if p_init_msg_list is set to TRUE.
183: IF FND_API.to_boolean(p_init_msg_list) THEN
184: FND_MSG_PUB.initialize;
185: END IF;
186:
187: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
196: validate_uc_header(p_uc_header_id,
197: p_uc_name,
198: l_uc_header_id,
199: l_return_status);
200: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
202: END IF;
203:
204: --Validate the pair of p_instance_num and p_instance_id
197: p_uc_name,
198: l_uc_header_id,
199: l_return_status);
200: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
201: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
202: END IF;
203:
204: --Validate the pair of p_instance_num and p_instance_id
205: validate_csi_instance(p_instance_id,
205: validate_csi_instance(p_instance_id,
206: p_instance_num,
207: l_instance_id,
208: l_return_status);
209: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
210: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
211: END IF;
212:
213: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
206: p_instance_num,
207: l_instance_id,
208: l_return_status);
209: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
210: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
211: END IF;
212:
213: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
214: --as the subject_id. This public API doesn't contain the validation to check whether
220: FND_MESSAGE.set_token('NAME', 'instance_id');
221: FND_MESSAGE.set_token('VALUE', l_instance_id);
222: FND_MSG_PUB.add;
223: CLOSE get_csi_ii_ovn;
224: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
225: END IF;
226: CLOSE get_csi_ii_ovn;
227:
228: --Calling the corresponding private API
227:
228: --Calling the corresponding private API
229: ahl_uc_instance_pvt.unassociate_instance_pos(
230: p_api_version => 1.0,
231: p_init_msg_list => FND_API.G_FALSE,
232: p_commit => FND_API.G_FALSE,
233: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
234: x_return_status => l_return_status,
235: x_msg_count => l_msg_count,
228: --Calling the corresponding private API
229: ahl_uc_instance_pvt.unassociate_instance_pos(
230: p_api_version => 1.0,
231: p_init_msg_list => FND_API.G_FALSE,
232: p_commit => FND_API.G_FALSE,
233: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
234: x_return_status => l_return_status,
235: x_msg_count => l_msg_count,
236: x_msg_data => l_msg_data,
229: ahl_uc_instance_pvt.unassociate_instance_pos(
230: p_api_version => 1.0,
231: p_init_msg_list => FND_API.G_FALSE,
232: p_commit => FND_API.G_FALSE,
233: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
234: x_return_status => l_return_status,
235: x_msg_count => l_msg_count,
236: x_msg_data => l_msg_data,
237: p_uc_header_id => l_uc_header_id,
239: p_csi_ii_ovn => l_csi_ii_ovn,
240: p_prod_user_flag => p_prod_user_flag);
241:
242: --Check the return status after calling private APIs
243: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
244: RAISE FND_API.G_EXC_ERROR;
245: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
246: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
247: END IF;
240: p_prod_user_flag => p_prod_user_flag);
241:
242: --Check the return status after calling private APIs
243: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
244: RAISE FND_API.G_EXC_ERROR;
245: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
246: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
247: END IF;
248:
241:
242: --Check the return status after calling private APIs
243: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
244: RAISE FND_API.G_EXC_ERROR;
245: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
246: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
247: END IF;
248:
249: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
242: --Check the return status after calling private APIs
243: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
244: RAISE FND_API.G_EXC_ERROR;
245: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
246: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
247: END IF;
248:
249: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
250: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
253:
254: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
255: l_msg_count := FND_MSG_PUB.count_msg;
256: IF l_msg_count > 0 THEN
257: RAISE FND_API.G_EXC_ERROR;
258: END IF;
259: -- Perform the Commit (if requested)
260: IF FND_API.to_boolean( p_commit ) THEN
261: COMMIT;
256: IF l_msg_count > 0 THEN
257: RAISE FND_API.G_EXC_ERROR;
258: END IF;
259: -- Perform the Commit (if requested)
260: IF FND_API.to_boolean( p_commit ) THEN
261: COMMIT;
262: END IF;
263: -- Count and Get messages (optional)
264: FND_MSG_PUB.count_and_get(
261: COMMIT;
262: END IF;
263: -- Count and Get messages (optional)
264: FND_MSG_PUB.count_and_get(
265: p_encoded => FND_API.G_FALSE,
266: p_count => x_msg_count,
267: p_data => x_msg_data);
268:
269: EXCEPTION
266: p_count => x_msg_count,
267: p_data => x_msg_data);
268:
269: EXCEPTION
270: WHEN FND_API.G_EXC_ERROR THEN
271: ROLLBACK TO unassociate_instance;
272: x_return_status := FND_API.G_RET_STS_ERROR ;
273: FND_MSG_PUB.count_and_get(
274: p_encoded => FND_API.G_FALSE,
268:
269: EXCEPTION
270: WHEN FND_API.G_EXC_ERROR THEN
271: ROLLBACK TO unassociate_instance;
272: x_return_status := FND_API.G_RET_STS_ERROR ;
273: FND_MSG_PUB.count_and_get(
274: p_encoded => FND_API.G_FALSE,
275: p_count => x_msg_count,
276: p_data => x_msg_data);
270: WHEN FND_API.G_EXC_ERROR THEN
271: ROLLBACK TO unassociate_instance;
272: x_return_status := FND_API.G_RET_STS_ERROR ;
273: FND_MSG_PUB.count_and_get(
274: p_encoded => FND_API.G_FALSE,
275: p_count => x_msg_count,
276: p_data => x_msg_data);
277: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278: ROLLBACK TO unassociate_instance;
273: FND_MSG_PUB.count_and_get(
274: p_encoded => FND_API.G_FALSE,
275: p_count => x_msg_count,
276: p_data => x_msg_data);
277: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278: ROLLBACK TO unassociate_instance;
279: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
280: FND_MSG_PUB.count_and_get(
281: p_encoded => FND_API.G_FALSE,
275: p_count => x_msg_count,
276: p_data => x_msg_data);
277: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278: ROLLBACK TO unassociate_instance;
279: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
280: FND_MSG_PUB.count_and_get(
281: p_encoded => FND_API.G_FALSE,
282: p_count => x_msg_count,
283: p_data => x_msg_data);
277: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278: ROLLBACK TO unassociate_instance;
279: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
280: FND_MSG_PUB.count_and_get(
281: p_encoded => FND_API.G_FALSE,
282: p_count => x_msg_count,
283: p_data => x_msg_data);
284: WHEN OTHERS THEN
285: ROLLBACK TO unassociate_instance;
282: p_count => x_msg_count,
283: p_data => x_msg_data);
284: WHEN OTHERS THEN
285: ROLLBACK TO unassociate_instance;
286: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
287: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
288: THEN
289: FND_MSG_PUB.add_exc_msg(
290: p_pkg_name => G_PKG_NAME,
291: p_procedure_name => l_api_name,
292: p_error_text => SUBSTRB(SQLERRM,1,240));
293: END IF;
294: FND_MSG_PUB.count_and_get(
295: p_encoded => FND_API.G_FALSE,
296: p_count => x_msg_count,
297: p_data => x_msg_data);
298: END unassociate_instance;
299:
302: -- sub-unit) from a UC node. After uninstallation, this instance is available to be
303: -- reinstalled in another appropriate position.
304: PROCEDURE remove_instance (
305: p_api_version IN NUMBER := 1.0,
306: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
307: p_commit IN VARCHAR2 := FND_API.G_FALSE,
308: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
309: x_return_status OUT NOCOPY VARCHAR2,
310: x_msg_count OUT NOCOPY NUMBER,
303: -- reinstalled in another appropriate position.
304: PROCEDURE remove_instance (
305: p_api_version IN NUMBER := 1.0,
306: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
307: p_commit IN VARCHAR2 := FND_API.G_FALSE,
308: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
309: x_return_status OUT NOCOPY VARCHAR2,
310: x_msg_count OUT NOCOPY NUMBER,
311: x_msg_data OUT NOCOPY VARCHAR2,
304: PROCEDURE remove_instance (
305: p_api_version IN NUMBER := 1.0,
306: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
307: p_commit IN VARCHAR2 := FND_API.G_FALSE,
308: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
309: x_return_status OUT NOCOPY VARCHAR2,
310: x_msg_count OUT NOCOPY NUMBER,
311: x_msg_data OUT NOCOPY VARCHAR2,
312: p_uc_header_id IN NUMBER := NULL,
325: l_msg_data VARCHAR2(2000);
326:
327: BEGIN
328: --Initialize API return status to success
329: x_return_status := FND_API.G_RET_STS_SUCCESS;
330:
331: --Standard Start of API savepoint
332: SAVEPOINT remove_instance;
333:
331: --Standard Start of API savepoint
332: SAVEPOINT remove_instance;
333:
334: --Standard call to check for call compatibility.
335: IF NOT FND_API.compatible_api_call(
336: l_api_version,
337: p_api_version,
338: l_api_name,
339: G_PKG_NAME)
337: p_api_version,
338: l_api_name,
339: G_PKG_NAME)
340: THEN
341: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
342: END IF;
343:
344: --Initialize message list if p_init_msg_list is set to TRUE.
345: IF FND_API.to_boolean(p_init_msg_list) THEN
341: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
342: END IF;
343:
344: --Initialize message list if p_init_msg_list is set to TRUE.
345: IF FND_API.to_boolean(p_init_msg_list) THEN
346: FND_MSG_PUB.initialize;
347: END IF;
348:
349: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
358: validate_uc_header(p_uc_header_id,
359: p_uc_name,
360: l_uc_header_id,
361: l_return_status);
362: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
363: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
364: END IF;
365:
366: --Validate the pair of p_instance_num and p_instance_id
359: p_uc_name,
360: l_uc_header_id,
361: l_return_status);
362: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
363: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
364: END IF;
365:
366: --Validate the pair of p_instance_num and p_instance_id
367: validate_csi_instance(p_instance_id,
367: validate_csi_instance(p_instance_id,
368: p_instance_num,
369: l_instance_id,
370: l_return_status);
371: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
372: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
373: END IF;
374:
375: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
368: p_instance_num,
369: l_instance_id,
370: l_return_status);
371: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
372: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
373: END IF;
374:
375: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
376: --as the subject_id. This public API doesn't contain the validation to check whether
382: FND_MESSAGE.set_token('NAME', 'instance_id');
383: FND_MESSAGE.set_token('VALUE', l_instance_id);
384: FND_MSG_PUB.add;
385: CLOSE get_csi_ii_ovn;
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
388: CLOSE get_csi_ii_ovn;
389:
390: --Calling the corresponding private API
389:
390: --Calling the corresponding private API
391: ahl_uc_instance_pvt.remove_instance(
392: p_api_version => 1.0,
393: p_init_msg_list => FND_API.G_FALSE,
394: p_commit => FND_API.G_FALSE,
395: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
396: x_return_status => l_return_status,
397: x_msg_count => l_msg_count,
390: --Calling the corresponding private API
391: ahl_uc_instance_pvt.remove_instance(
392: p_api_version => 1.0,
393: p_init_msg_list => FND_API.G_FALSE,
394: p_commit => FND_API.G_FALSE,
395: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
396: x_return_status => l_return_status,
397: x_msg_count => l_msg_count,
398: x_msg_data => l_msg_data,
391: ahl_uc_instance_pvt.remove_instance(
392: p_api_version => 1.0,
393: p_init_msg_list => FND_API.G_FALSE,
394: p_commit => FND_API.G_FALSE,
395: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
396: x_return_status => l_return_status,
397: x_msg_count => l_msg_count,
398: x_msg_data => l_msg_data,
399: p_uc_header_id => l_uc_header_id,
401: p_csi_ii_ovn => l_csi_ii_ovn,
402: p_prod_user_flag => p_prod_user_flag);
403:
404: --Check the return status after calling private APIs
405: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
406: RAISE FND_API.G_EXC_ERROR;
407: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
408: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409: END IF;
402: p_prod_user_flag => p_prod_user_flag);
403:
404: --Check the return status after calling private APIs
405: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
406: RAISE FND_API.G_EXC_ERROR;
407: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
408: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409: END IF;
410:
403:
404: --Check the return status after calling private APIs
405: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
406: RAISE FND_API.G_EXC_ERROR;
407: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
408: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409: END IF;
410:
411: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
404: --Check the return status after calling private APIs
405: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
406: RAISE FND_API.G_EXC_ERROR;
407: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
408: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409: END IF;
410:
411: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
412: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
415:
416: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
417: l_msg_count := FND_MSG_PUB.count_msg;
418: IF l_msg_count > 0 THEN
419: RAISE FND_API.G_EXC_ERROR;
420: END IF;
421: -- Perform the Commit (if requested)
422: IF FND_API.to_boolean( p_commit ) THEN
423: COMMIT;
418: IF l_msg_count > 0 THEN
419: RAISE FND_API.G_EXC_ERROR;
420: END IF;
421: -- Perform the Commit (if requested)
422: IF FND_API.to_boolean( p_commit ) THEN
423: COMMIT;
424: END IF;
425: -- Count and Get messages (optional)
426: FND_MSG_PUB.count_and_get(
423: COMMIT;
424: END IF;
425: -- Count and Get messages (optional)
426: FND_MSG_PUB.count_and_get(
427: p_encoded => FND_API.G_FALSE,
428: p_count => x_msg_count,
429: p_data => x_msg_data);
430:
431: EXCEPTION
428: p_count => x_msg_count,
429: p_data => x_msg_data);
430:
431: EXCEPTION
432: WHEN FND_API.G_EXC_ERROR THEN
433: ROLLBACK TO remove_instance;
434: x_return_status := FND_API.G_RET_STS_ERROR ;
435: FND_MSG_PUB.count_and_get(
436: p_encoded => FND_API.G_FALSE,
430:
431: EXCEPTION
432: WHEN FND_API.G_EXC_ERROR THEN
433: ROLLBACK TO remove_instance;
434: x_return_status := FND_API.G_RET_STS_ERROR ;
435: FND_MSG_PUB.count_and_get(
436: p_encoded => FND_API.G_FALSE,
437: p_count => x_msg_count,
438: p_data => x_msg_data);
432: WHEN FND_API.G_EXC_ERROR THEN
433: ROLLBACK TO remove_instance;
434: x_return_status := FND_API.G_RET_STS_ERROR ;
435: FND_MSG_PUB.count_and_get(
436: p_encoded => FND_API.G_FALSE,
437: p_count => x_msg_count,
438: p_data => x_msg_data);
439: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440: ROLLBACK TO remove_instance;
435: FND_MSG_PUB.count_and_get(
436: p_encoded => FND_API.G_FALSE,
437: p_count => x_msg_count,
438: p_data => x_msg_data);
439: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440: ROLLBACK TO remove_instance;
441: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
442: FND_MSG_PUB.count_and_get(
443: p_encoded => FND_API.G_FALSE,
437: p_count => x_msg_count,
438: p_data => x_msg_data);
439: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440: ROLLBACK TO remove_instance;
441: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
442: FND_MSG_PUB.count_and_get(
443: p_encoded => FND_API.G_FALSE,
444: p_count => x_msg_count,
445: p_data => x_msg_data);
439: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440: ROLLBACK TO remove_instance;
441: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
442: FND_MSG_PUB.count_and_get(
443: p_encoded => FND_API.G_FALSE,
444: p_count => x_msg_count,
445: p_data => x_msg_data);
446: WHEN OTHERS THEN
447: ROLLBACK TO remove_instance;
444: p_count => x_msg_count,
445: p_data => x_msg_data);
446: WHEN OTHERS THEN
447: ROLLBACK TO remove_instance;
448: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
449: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
450: THEN
451: FND_MSG_PUB.add_exc_msg(
452: p_pkg_name => G_PKG_NAME,
453: p_procedure_name => l_api_name,
454: p_error_text => SUBSTRB(SQLERRM,1,240));
455: END IF;
456: FND_MSG_PUB.count_and_get(
457: p_encoded => FND_API.G_FALSE,
458: p_count => x_msg_count,
459: p_data => x_msg_data);
460: END remove_instance;
461:
463: -- This API is used to update an instance's (top node or non top node) attributes
464: -- (serial Number, serial_number_tag, lot_number, revision, mfg_date and etc.)
465: PROCEDURE update_instance(
466: p_api_version IN NUMBER := 1.0,
467: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
468: p_commit IN VARCHAR2 := FND_API.G_FALSE,
469: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
470: x_return_status OUT NOCOPY VARCHAR2,
471: x_msg_count OUT NOCOPY NUMBER,
464: -- (serial Number, serial_number_tag, lot_number, revision, mfg_date and etc.)
465: PROCEDURE update_instance(
466: p_api_version IN NUMBER := 1.0,
467: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
468: p_commit IN VARCHAR2 := FND_API.G_FALSE,
469: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
470: x_return_status OUT NOCOPY VARCHAR2,
471: x_msg_count OUT NOCOPY NUMBER,
472: x_msg_data OUT NOCOPY VARCHAR2,
465: PROCEDURE update_instance(
466: p_api_version IN NUMBER := 1.0,
467: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
468: p_commit IN VARCHAR2 := FND_API.G_FALSE,
469: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
470: x_return_status OUT NOCOPY VARCHAR2,
471: x_msg_count OUT NOCOPY NUMBER,
472: x_msg_data OUT NOCOPY VARCHAR2,
473: p_uc_header_id IN NUMBER := NULL,
485: l_msg_data VARCHAR2(2000);
486:
487: BEGIN
488: --Initialize API return status to success
489: x_return_status := FND_API.G_RET_STS_SUCCESS;
490:
491: --Standard Start of API savepoint
492: SAVEPOINT update_instance;
493:
491: --Standard Start of API savepoint
492: SAVEPOINT update_instance;
493:
494: --Standard call to check for call compatibility.
495: IF NOT FND_API.compatible_api_call(
496: l_api_version,
497: p_api_version,
498: l_api_name,
499: G_PKG_NAME)
497: p_api_version,
498: l_api_name,
499: G_PKG_NAME)
500: THEN
501: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
502: END IF;
503:
504: --Initialize message list if p_init_msg_list is set to TRUE.
505: IF FND_API.to_boolean(p_init_msg_list) THEN
501: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
502: END IF;
503:
504: --Initialize message list if p_init_msg_list is set to TRUE.
505: IF FND_API.to_boolean(p_init_msg_list) THEN
506: FND_MSG_PUB.initialize;
507: END IF;
508:
509: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
518: validate_uc_header(p_uc_header_id,
519: p_uc_name,
520: l_uc_header_id,
521: l_return_status);
522: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
523: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
524: END IF;
525:
526: --Calling the corresponding private API
519: p_uc_name,
520: l_uc_header_id,
521: l_return_status);
522: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
523: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
524: END IF;
525:
526: --Calling the corresponding private API
527: ahl_uc_instance_pvt.update_instance_attr(
525:
526: --Calling the corresponding private API
527: ahl_uc_instance_pvt.update_instance_attr(
528: p_api_version => 1.0,
529: p_init_msg_list => FND_API.G_FALSE,
530: p_commit => FND_API.G_FALSE,
531: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
532: x_return_status => l_return_status,
533: x_msg_count => l_msg_count,
526: --Calling the corresponding private API
527: ahl_uc_instance_pvt.update_instance_attr(
528: p_api_version => 1.0,
529: p_init_msg_list => FND_API.G_FALSE,
530: p_commit => FND_API.G_FALSE,
531: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
532: x_return_status => l_return_status,
533: x_msg_count => l_msg_count,
534: x_msg_data => l_msg_data,
527: ahl_uc_instance_pvt.update_instance_attr(
528: p_api_version => 1.0,
529: p_init_msg_list => FND_API.G_FALSE,
530: p_commit => FND_API.G_FALSE,
531: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
532: x_return_status => l_return_status,
533: x_msg_count => l_msg_count,
534: x_msg_data => l_msg_data,
535: p_uc_header_id => l_uc_header_id,
536: p_uc_instance_rec => p_uc_instance_rec,
537: p_prod_user_flag => p_prod_user_flag);
538:
539: --Check the return status after calling private APIs
540: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
541: RAISE FND_API.G_EXC_ERROR;
542: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
543: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544: END IF;
537: p_prod_user_flag => p_prod_user_flag);
538:
539: --Check the return status after calling private APIs
540: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
541: RAISE FND_API.G_EXC_ERROR;
542: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
543: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544: END IF;
545:
538:
539: --Check the return status after calling private APIs
540: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
541: RAISE FND_API.G_EXC_ERROR;
542: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
543: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544: END IF;
545:
546: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
539: --Check the return status after calling private APIs
540: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
541: RAISE FND_API.G_EXC_ERROR;
542: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
543: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544: END IF;
545:
546: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
547: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
550:
551: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
552: l_msg_count := FND_MSG_PUB.count_msg;
553: IF l_msg_count > 0 THEN
554: RAISE FND_API.G_EXC_ERROR;
555: END IF;
556: -- Perform the Commit (if requested)
557: IF FND_API.to_boolean( p_commit ) THEN
558: COMMIT;
553: IF l_msg_count > 0 THEN
554: RAISE FND_API.G_EXC_ERROR;
555: END IF;
556: -- Perform the Commit (if requested)
557: IF FND_API.to_boolean( p_commit ) THEN
558: COMMIT;
559: END IF;
560: -- Count and Get messages (optional)
561: FND_MSG_PUB.count_and_get(
558: COMMIT;
559: END IF;
560: -- Count and Get messages (optional)
561: FND_MSG_PUB.count_and_get(
562: p_encoded => FND_API.G_FALSE,
563: p_count => x_msg_count,
564: p_data => x_msg_data);
565:
566: EXCEPTION
563: p_count => x_msg_count,
564: p_data => x_msg_data);
565:
566: EXCEPTION
567: WHEN FND_API.G_EXC_ERROR THEN
568: ROLLBACK TO update_instance;
569: x_return_status := FND_API.G_RET_STS_ERROR ;
570: FND_MSG_PUB.count_and_get(
571: p_encoded => FND_API.G_FALSE,
565:
566: EXCEPTION
567: WHEN FND_API.G_EXC_ERROR THEN
568: ROLLBACK TO update_instance;
569: x_return_status := FND_API.G_RET_STS_ERROR ;
570: FND_MSG_PUB.count_and_get(
571: p_encoded => FND_API.G_FALSE,
572: p_count => x_msg_count,
573: p_data => x_msg_data);
567: WHEN FND_API.G_EXC_ERROR THEN
568: ROLLBACK TO update_instance;
569: x_return_status := FND_API.G_RET_STS_ERROR ;
570: FND_MSG_PUB.count_and_get(
571: p_encoded => FND_API.G_FALSE,
572: p_count => x_msg_count,
573: p_data => x_msg_data);
574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
575: ROLLBACK TO update_instance;
570: FND_MSG_PUB.count_and_get(
571: p_encoded => FND_API.G_FALSE,
572: p_count => x_msg_count,
573: p_data => x_msg_data);
574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
575: ROLLBACK TO update_instance;
576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
577: FND_MSG_PUB.count_and_get(
578: p_encoded => FND_API.G_FALSE,
572: p_count => x_msg_count,
573: p_data => x_msg_data);
574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
575: ROLLBACK TO update_instance;
576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
577: FND_MSG_PUB.count_and_get(
578: p_encoded => FND_API.G_FALSE,
579: p_count => x_msg_count,
580: p_data => x_msg_data);
574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
575: ROLLBACK TO update_instance;
576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
577: FND_MSG_PUB.count_and_get(
578: p_encoded => FND_API.G_FALSE,
579: p_count => x_msg_count,
580: p_data => x_msg_data);
581: WHEN OTHERS THEN
582: ROLLBACK TO update_instance;
579: p_count => x_msg_count,
580: p_data => x_msg_data);
581: WHEN OTHERS THEN
582: ROLLBACK TO update_instance;
583: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
584: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
585: THEN
586: FND_MSG_PUB.add_exc_msg(
587: p_pkg_name => G_PKG_NAME,
588: p_procedure_name => l_api_name,
589: p_error_text => SUBSTRB(SQLERRM,1,240));
590: END IF;
591: FND_MSG_PUB.count_and_get(
592: p_encoded => FND_API.G_FALSE,
593: p_count => x_msg_count,
594: p_data => x_msg_data);
595: END update_instance;
596:
599: -- to a UC node. And if the UC node happens to be the root node of a sub-unit, then
600: -- it also create the corresponding sub UC header record as well.
601: PROCEDURE create_install_instance(
602: p_api_version IN NUMBER := 1.0,
603: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
604: p_commit IN VARCHAR2 := FND_API.G_FALSE,
605: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
606: x_return_status OUT NOCOPY VARCHAR2,
607: x_msg_count OUT NOCOPY NUMBER,
600: -- it also create the corresponding sub UC header record as well.
601: PROCEDURE create_install_instance(
602: p_api_version IN NUMBER := 1.0,
603: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
604: p_commit IN VARCHAR2 := FND_API.G_FALSE,
605: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
606: x_return_status OUT NOCOPY VARCHAR2,
607: x_msg_count OUT NOCOPY NUMBER,
608: x_msg_data OUT NOCOPY VARCHAR2,
601: PROCEDURE create_install_instance(
602: p_api_version IN NUMBER := 1.0,
603: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
604: p_commit IN VARCHAR2 := FND_API.G_FALSE,
605: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
606: x_return_status OUT NOCOPY VARCHAR2,
607: x_msg_count OUT NOCOPY NUMBER,
608: x_msg_data OUT NOCOPY VARCHAR2,
609: p_uc_header_id IN NUMBER := NULL,
625: l_msg_data VARCHAR2(2000);
626:
627: BEGIN
628: --Initialize API return status to success
629: x_return_status := FND_API.G_RET_STS_SUCCESS;
630:
631: --Standard Start of API savepoint
632: SAVEPOINT create_install_instance;
633:
631: --Standard Start of API savepoint
632: SAVEPOINT create_install_instance;
633:
634: --Standard call to check for call compatibility.
635: IF NOT FND_API.compatible_api_call(
636: l_api_version,
637: p_api_version,
638: l_api_name,
639: G_PKG_NAME)
637: p_api_version,
638: l_api_name,
639: G_PKG_NAME)
640: THEN
641: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
642: END IF;
643:
644: --Initialize message list if p_init_msg_list is set to TRUE.
645: IF FND_API.to_boolean(p_init_msg_list) THEN
641: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
642: END IF;
643:
644: --Initialize message list if p_init_msg_list is set to TRUE.
645: IF FND_API.to_boolean(p_init_msg_list) THEN
646: FND_MSG_PUB.initialize;
647: END IF;
648:
649: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
658: validate_uc_header(p_uc_header_id,
659: p_uc_name,
660: l_uc_header_id,
661: l_return_status);
662: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
663: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
664: END IF;
665:
666: --Validate the pair of p_instance_num and p_instance_id
659: p_uc_name,
660: l_uc_header_id,
661: l_return_status);
662: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
663: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
664: END IF;
665:
666: --Validate the pair of p_instance_num and p_instance_id
667: validate_csi_instance(p_parent_instance_id,
667: validate_csi_instance(p_parent_instance_id,
668: p_parent_instance_num,
669: l_instance_id,
670: l_return_status);
671: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
673: END IF;
674:
675: --Calling the corresponding private API
668: p_parent_instance_num,
669: l_instance_id,
670: l_return_status);
671: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
673: END IF;
674:
675: --Calling the corresponding private API
676: ahl_uc_instance_pvt.install_new_instance(
674:
675: --Calling the corresponding private API
676: ahl_uc_instance_pvt.install_new_instance(
677: p_api_version => 1.0,
678: p_init_msg_list => FND_API.G_FALSE,
679: p_commit => FND_API.G_FALSE,
680: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
681: x_return_status => l_return_status,
682: x_msg_count => l_msg_count,
675: --Calling the corresponding private API
676: ahl_uc_instance_pvt.install_new_instance(
677: p_api_version => 1.0,
678: p_init_msg_list => FND_API.G_FALSE,
679: p_commit => FND_API.G_FALSE,
680: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
681: x_return_status => l_return_status,
682: x_msg_count => l_msg_count,
683: x_msg_data => l_msg_data,
676: ahl_uc_instance_pvt.install_new_instance(
677: p_api_version => 1.0,
678: p_init_msg_list => FND_API.G_FALSE,
679: p_commit => FND_API.G_FALSE,
680: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
681: x_return_status => l_return_status,
682: x_msg_count => l_msg_count,
683: x_msg_data => l_msg_data,
684: p_uc_header_id => l_uc_header_id,
688: p_x_sub_uc_rec => p_x_sub_uc_rec,
689: x_warning_msg_tbl => x_warning_msg_tbl);
690:
691: --Check the return status after calling private APIs
692: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
693: RAISE FND_API.G_EXC_ERROR;
694: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
695: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
696: END IF;
689: x_warning_msg_tbl => x_warning_msg_tbl);
690:
691: --Check the return status after calling private APIs
692: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
693: RAISE FND_API.G_EXC_ERROR;
694: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
695: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
696: END IF;
697:
690:
691: --Check the return status after calling private APIs
692: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
693: RAISE FND_API.G_EXC_ERROR;
694: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
695: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
696: END IF;
697:
698: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
691: --Check the return status after calling private APIs
692: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
693: RAISE FND_API.G_EXC_ERROR;
694: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
695: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
696: END IF;
697:
698: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
699: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
702:
703: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
704: l_msg_count := FND_MSG_PUB.count_msg;
705: IF l_msg_count > 0 THEN
706: RAISE FND_API.G_EXC_ERROR;
707: END IF;
708: -- Perform the Commit (if requested)
709: IF FND_API.to_boolean( p_commit ) THEN
710: COMMIT;
705: IF l_msg_count > 0 THEN
706: RAISE FND_API.G_EXC_ERROR;
707: END IF;
708: -- Perform the Commit (if requested)
709: IF FND_API.to_boolean( p_commit ) THEN
710: COMMIT;
711: END IF;
712: -- Count and Get messages (optional)
713: FND_MSG_PUB.count_and_get(
710: COMMIT;
711: END IF;
712: -- Count and Get messages (optional)
713: FND_MSG_PUB.count_and_get(
714: p_encoded => FND_API.G_FALSE,
715: p_count => x_msg_count,
716: p_data => x_msg_data);
717:
718: EXCEPTION
715: p_count => x_msg_count,
716: p_data => x_msg_data);
717:
718: EXCEPTION
719: WHEN FND_API.G_EXC_ERROR THEN
720: ROLLBACK TO create_install_instance;
721: x_return_status := FND_API.G_RET_STS_ERROR ;
722: FND_MSG_PUB.count_and_get(
723: p_encoded => FND_API.G_FALSE,
717:
718: EXCEPTION
719: WHEN FND_API.G_EXC_ERROR THEN
720: ROLLBACK TO create_install_instance;
721: x_return_status := FND_API.G_RET_STS_ERROR ;
722: FND_MSG_PUB.count_and_get(
723: p_encoded => FND_API.G_FALSE,
724: p_count => x_msg_count,
725: p_data => x_msg_data);
719: WHEN FND_API.G_EXC_ERROR THEN
720: ROLLBACK TO create_install_instance;
721: x_return_status := FND_API.G_RET_STS_ERROR ;
722: FND_MSG_PUB.count_and_get(
723: p_encoded => FND_API.G_FALSE,
724: p_count => x_msg_count,
725: p_data => x_msg_data);
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO create_install_instance;
722: FND_MSG_PUB.count_and_get(
723: p_encoded => FND_API.G_FALSE,
724: p_count => x_msg_count,
725: p_data => x_msg_data);
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO create_install_instance;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
729: FND_MSG_PUB.count_and_get(
730: p_encoded => FND_API.G_FALSE,
724: p_count => x_msg_count,
725: p_data => x_msg_data);
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO create_install_instance;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
729: FND_MSG_PUB.count_and_get(
730: p_encoded => FND_API.G_FALSE,
731: p_count => x_msg_count,
732: p_data => x_msg_data);
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO create_install_instance;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
729: FND_MSG_PUB.count_and_get(
730: p_encoded => FND_API.G_FALSE,
731: p_count => x_msg_count,
732: p_data => x_msg_data);
733: WHEN OTHERS THEN
734: ROLLBACK TO create_install_instance;
731: p_count => x_msg_count,
732: p_data => x_msg_data);
733: WHEN OTHERS THEN
734: ROLLBACK TO create_install_instance;
735: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
736: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
737: THEN
738: FND_MSG_PUB.add_exc_msg(
739: p_pkg_name => G_PKG_NAME,
740: p_procedure_name => l_api_name,
741: p_error_text => SUBSTRB(SQLERRM,1,240));
742: END IF;
743: FND_MSG_PUB.count_and_get(
744: p_encoded => FND_API.G_FALSE,
745: p_count => x_msg_count,
746: p_data => x_msg_data);
747: END create_install_instance;
748:
749: -- Define procedure install_instance
750: -- This API is used to assign an existing instance to a UC node.
751: PROCEDURE install_instance(
752: p_api_version IN NUMBER := 1.0,
753: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
754: p_commit IN VARCHAR2 := FND_API.G_FALSE,
755: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
756: x_return_status OUT NOCOPY VARCHAR2,
757: x_msg_count OUT NOCOPY NUMBER,
750: -- This API is used to assign an existing instance to a UC node.
751: PROCEDURE install_instance(
752: p_api_version IN NUMBER := 1.0,
753: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
754: p_commit IN VARCHAR2 := FND_API.G_FALSE,
755: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
756: x_return_status OUT NOCOPY VARCHAR2,
757: x_msg_count OUT NOCOPY NUMBER,
758: x_msg_data OUT NOCOPY VARCHAR2,
751: PROCEDURE install_instance(
752: p_api_version IN NUMBER := 1.0,
753: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
754: p_commit IN VARCHAR2 := FND_API.G_FALSE,
755: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
756: x_return_status OUT NOCOPY VARCHAR2,
757: x_msg_count OUT NOCOPY NUMBER,
758: x_msg_data OUT NOCOPY VARCHAR2,
759: p_uc_header_id IN NUMBER := NULL,
777: l_msg_data VARCHAR2(2000);
778:
779: BEGIN
780: --Initialize API return status to success
781: x_return_status := FND_API.G_RET_STS_SUCCESS;
782:
783: --Standard Start of API savepoint
784: SAVEPOINT install_instance;
785:
783: --Standard Start of API savepoint
784: SAVEPOINT install_instance;
785:
786: --Standard call to check for call compatibility.
787: IF NOT FND_API.compatible_api_call(
788: l_api_version,
789: p_api_version,
790: l_api_name,
791: G_PKG_NAME)
789: p_api_version,
790: l_api_name,
791: G_PKG_NAME)
792: THEN
793: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
794: END IF;
795:
796: --Initialize message list if p_init_msg_list is set to TRUE.
797: IF FND_API.to_boolean(p_init_msg_list) THEN
793: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
794: END IF;
795:
796: --Initialize message list if p_init_msg_list is set to TRUE.
797: IF FND_API.to_boolean(p_init_msg_list) THEN
798: FND_MSG_PUB.initialize;
799: END IF;
800:
801: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
810: validate_uc_header(p_uc_header_id,
811: p_uc_name,
812: l_uc_header_id,
813: l_return_status);
814: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
815: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
816: END IF;
817:
818: --Validate the pair of p_instance_num and p_instance_id
811: p_uc_name,
812: l_uc_header_id,
813: l_return_status);
814: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
815: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
816: END IF;
817:
818: --Validate the pair of p_instance_num and p_instance_id
819: validate_csi_instance(p_instance_id,
819: validate_csi_instance(p_instance_id,
820: p_instance_num,
821: l_instance_id,
822: l_return_status);
823: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
824: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
825: END IF;
826:
827: --Validate the pair of p_parent_instance_num and p_parent_instance_id
820: p_instance_num,
821: l_instance_id,
822: l_return_status);
823: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
824: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
825: END IF;
826:
827: --Validate the pair of p_parent_instance_num and p_parent_instance_id
828: validate_csi_instance(p_parent_instance_id,
828: validate_csi_instance(p_parent_instance_id,
829: p_parent_instance_num,
830: l_parent_instance_id,
831: l_return_status);
832: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
833: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834: END IF;
835:
836: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
829: p_parent_instance_num,
830: l_parent_instance_id,
831: l_return_status);
832: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
833: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834: END IF;
835:
836: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
837: --as the subject_id and p_parent_instance_id as the object_id and also position_reference is
846:
847: --Calling the corresponding private API
848: ahl_uc_instance_pvt.install_existing_instance(
849: p_api_version => 1.0,
850: p_init_msg_list => FND_API.G_FALSE,
851: p_commit => FND_API.G_FALSE,
852: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
853: x_return_status => l_return_status,
854: x_msg_count => l_msg_count,
847: --Calling the corresponding private API
848: ahl_uc_instance_pvt.install_existing_instance(
849: p_api_version => 1.0,
850: p_init_msg_list => FND_API.G_FALSE,
851: p_commit => FND_API.G_FALSE,
852: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
853: x_return_status => l_return_status,
854: x_msg_count => l_msg_count,
855: x_msg_data => l_msg_data,
848: ahl_uc_instance_pvt.install_existing_instance(
849: p_api_version => 1.0,
850: p_init_msg_list => FND_API.G_FALSE,
851: p_commit => FND_API.G_FALSE,
852: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
853: x_return_status => l_return_status,
854: x_msg_count => l_msg_count,
855: x_msg_data => l_msg_data,
856: p_uc_header_id => l_uc_header_id,
862: p_prod_user_flag => p_prod_user_flag,
863: x_warning_msg_tbl => x_warning_msg_tbl);
864:
865: --Check the return status after calling private APIs
866: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
867: RAISE FND_API.G_EXC_ERROR;
868: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
869: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
870: END IF;
863: x_warning_msg_tbl => x_warning_msg_tbl);
864:
865: --Check the return status after calling private APIs
866: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
867: RAISE FND_API.G_EXC_ERROR;
868: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
869: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
870: END IF;
871:
864:
865: --Check the return status after calling private APIs
866: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
867: RAISE FND_API.G_EXC_ERROR;
868: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
869: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
870: END IF;
871:
872: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
865: --Check the return status after calling private APIs
866: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
867: RAISE FND_API.G_EXC_ERROR;
868: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
869: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
870: END IF;
871:
872: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
873: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
876:
877: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
878: l_msg_count := FND_MSG_PUB.count_msg;
879: IF l_msg_count > 0 THEN
880: RAISE FND_API.G_EXC_ERROR;
881: END IF;
882: -- Perform the Commit (if requested)
883: IF FND_API.to_boolean( p_commit ) THEN
884: COMMIT;
879: IF l_msg_count > 0 THEN
880: RAISE FND_API.G_EXC_ERROR;
881: END IF;
882: -- Perform the Commit (if requested)
883: IF FND_API.to_boolean( p_commit ) THEN
884: COMMIT;
885: END IF;
886: -- Count and Get messages (optional)
887: FND_MSG_PUB.count_and_get(
884: COMMIT;
885: END IF;
886: -- Count and Get messages (optional)
887: FND_MSG_PUB.count_and_get(
888: p_encoded => FND_API.G_FALSE,
889: p_count => x_msg_count,
890: p_data => x_msg_data);
891:
892: EXCEPTION
889: p_count => x_msg_count,
890: p_data => x_msg_data);
891:
892: EXCEPTION
893: WHEN FND_API.G_EXC_ERROR THEN
894: ROLLBACK TO install_instance;
895: x_return_status := FND_API.G_RET_STS_ERROR ;
896: FND_MSG_PUB.count_and_get(
897: p_encoded => FND_API.G_FALSE,
891:
892: EXCEPTION
893: WHEN FND_API.G_EXC_ERROR THEN
894: ROLLBACK TO install_instance;
895: x_return_status := FND_API.G_RET_STS_ERROR ;
896: FND_MSG_PUB.count_and_get(
897: p_encoded => FND_API.G_FALSE,
898: p_count => x_msg_count,
899: p_data => x_msg_data);
893: WHEN FND_API.G_EXC_ERROR THEN
894: ROLLBACK TO install_instance;
895: x_return_status := FND_API.G_RET_STS_ERROR ;
896: FND_MSG_PUB.count_and_get(
897: p_encoded => FND_API.G_FALSE,
898: p_count => x_msg_count,
899: p_data => x_msg_data);
900: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
901: ROLLBACK TO install_instance;
896: FND_MSG_PUB.count_and_get(
897: p_encoded => FND_API.G_FALSE,
898: p_count => x_msg_count,
899: p_data => x_msg_data);
900: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
901: ROLLBACK TO install_instance;
902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
903: FND_MSG_PUB.count_and_get(
904: p_encoded => FND_API.G_FALSE,
898: p_count => x_msg_count,
899: p_data => x_msg_data);
900: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
901: ROLLBACK TO install_instance;
902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
903: FND_MSG_PUB.count_and_get(
904: p_encoded => FND_API.G_FALSE,
905: p_count => x_msg_count,
906: p_data => x_msg_data);
900: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
901: ROLLBACK TO install_instance;
902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
903: FND_MSG_PUB.count_and_get(
904: p_encoded => FND_API.G_FALSE,
905: p_count => x_msg_count,
906: p_data => x_msg_data);
907: WHEN OTHERS THEN
908: ROLLBACK TO install_instance;
905: p_count => x_msg_count,
906: p_data => x_msg_data);
907: WHEN OTHERS THEN
908: ROLLBACK TO install_instance;
909: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
910: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
911: THEN
912: FND_MSG_PUB.add_exc_msg(
913: p_pkg_name => G_PKG_NAME,
914: p_procedure_name => l_api_name,
915: p_error_text => SUBSTRB(SQLERRM,1,240));
916: END IF;
917: FND_MSG_PUB.count_and_get(
918: p_encoded => FND_API.G_FALSE,
919: p_count => x_msg_count,
920: p_data => x_msg_data);
921: END install_instance;
922:
924: -- This API is used by Production user to make parts change: replace an old instance
925: -- with a new one in a UC tree.
926: PROCEDURE swap_instance(
927: p_api_version IN NUMBER := 1.0,
928: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
929: p_commit IN VARCHAR2 := FND_API.G_FALSE,
930: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
931: x_return_status OUT NOCOPY VARCHAR2,
932: x_msg_count OUT NOCOPY NUMBER,
925: -- with a new one in a UC tree.
926: PROCEDURE swap_instance(
927: p_api_version IN NUMBER := 1.0,
928: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
929: p_commit IN VARCHAR2 := FND_API.G_FALSE,
930: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
931: x_return_status OUT NOCOPY VARCHAR2,
932: x_msg_count OUT NOCOPY NUMBER,
933: x_msg_data OUT NOCOPY VARCHAR2,
926: PROCEDURE swap_instance(
927: p_api_version IN NUMBER := 1.0,
928: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
929: p_commit IN VARCHAR2 := FND_API.G_FALSE,
930: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
931: x_return_status OUT NOCOPY VARCHAR2,
932: x_msg_count OUT NOCOPY NUMBER,
933: x_msg_data OUT NOCOPY VARCHAR2,
934: p_uc_header_id IN NUMBER := NULL,
955: l_msg_data VARCHAR2(2000);
956:
957: BEGIN
958: --Initialize API return status to success
959: x_return_status := FND_API.G_RET_STS_SUCCESS;
960:
961: --Standard Start of API savepoint
962: SAVEPOINT swap_instance;
963:
961: --Standard Start of API savepoint
962: SAVEPOINT swap_instance;
963:
964: --Standard call to check for call compatibility.
965: IF NOT FND_API.compatible_api_call(
966: l_api_version,
967: p_api_version,
968: l_api_name,
969: G_PKG_NAME)
967: p_api_version,
968: l_api_name,
969: G_PKG_NAME)
970: THEN
971: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
972: END IF;
973:
974: --Initialize message list if p_init_msg_list is set to TRUE.
975: IF FND_API.to_boolean(p_init_msg_list) THEN
971: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
972: END IF;
973:
974: --Initialize message list if p_init_msg_list is set to TRUE.
975: IF FND_API.to_boolean(p_init_msg_list) THEN
976: FND_MSG_PUB.initialize;
977: END IF;
978:
979: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
988: validate_uc_header(p_uc_header_id,
989: p_uc_name,
990: l_uc_header_id,
991: l_return_status);
992: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
994: END IF;
995:
996: --Validate the pair of p_old_instance_num and p_old_instance_id
989: p_uc_name,
990: l_uc_header_id,
991: l_return_status);
992: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
994: END IF;
995:
996: --Validate the pair of p_old_instance_num and p_old_instance_id
997: validate_csi_instance(p_old_instance_id,
997: validate_csi_instance(p_old_instance_id,
998: p_old_instance_num,
999: l_old_instance_id,
1000: l_return_status);
1001: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1002: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1003: END IF;
1004:
1005: --Validate the pair of p_new_instance_num and p_new_instance_id
998: p_old_instance_num,
999: l_old_instance_id,
1000: l_return_status);
1001: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1002: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1003: END IF;
1004:
1005: --Validate the pair of p_new_instance_num and p_new_instance_id
1006: validate_csi_instance(p_new_instance_id,
1006: validate_csi_instance(p_new_instance_id,
1007: p_new_instance_num,
1008: l_new_instance_id,
1009: l_return_status);
1010: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1011: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1012: END IF;
1013:
1014: --Validate the pair of p_parent_instance_num and p_parent_instance_id
1007: p_new_instance_num,
1008: l_new_instance_id,
1009: l_return_status);
1010: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1011: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1012: END IF;
1013:
1014: --Validate the pair of p_parent_instance_num and p_parent_instance_id
1015: validate_csi_instance(p_parent_instance_id,
1015: validate_csi_instance(p_parent_instance_id,
1016: p_parent_instance_num,
1017: l_parent_instance_id,
1018: l_return_status);
1019: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1020: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1021: END IF;
1022:
1023: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
1016: p_parent_instance_num,
1017: l_parent_instance_id,
1018: l_return_status);
1019: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1020: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1021: END IF;
1022:
1023: --Get the object_version_number of the record in csi_ii_relationships which has p_instance_id
1024: --as the subject_id and p_parent_instance_id as the object_id and also position_reference is
1033:
1034: --Calling the corresponding private API
1035: ahl_uc_instance_pvt.swap_instance(
1036: p_api_version => 1.0,
1037: p_init_msg_list => FND_API.G_FALSE,
1038: p_commit => FND_API.G_FALSE,
1039: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1040: x_return_status => l_return_status,
1041: x_msg_count => l_msg_count,
1034: --Calling the corresponding private API
1035: ahl_uc_instance_pvt.swap_instance(
1036: p_api_version => 1.0,
1037: p_init_msg_list => FND_API.G_FALSE,
1038: p_commit => FND_API.G_FALSE,
1039: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1040: x_return_status => l_return_status,
1041: x_msg_count => l_msg_count,
1042: x_msg_data => l_msg_data,
1035: ahl_uc_instance_pvt.swap_instance(
1036: p_api_version => 1.0,
1037: p_init_msg_list => FND_API.G_FALSE,
1038: p_commit => FND_API.G_FALSE,
1039: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1040: x_return_status => l_return_status,
1041: x_msg_count => l_msg_count,
1042: x_msg_data => l_msg_data,
1043: p_uc_header_id => l_uc_header_id,
1050: p_prod_user_flag => p_prod_user_flag,
1051: x_warning_msg_tbl => x_warning_msg_tbl);
1052:
1053: --Check the return status after calling private APIs
1054: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1055: RAISE FND_API.G_EXC_ERROR;
1056: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1057: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1058: END IF;
1051: x_warning_msg_tbl => x_warning_msg_tbl);
1052:
1053: --Check the return status after calling private APIs
1054: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1055: RAISE FND_API.G_EXC_ERROR;
1056: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1057: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1058: END IF;
1059:
1052:
1053: --Check the return status after calling private APIs
1054: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1055: RAISE FND_API.G_EXC_ERROR;
1056: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1057: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1058: END IF;
1059:
1060: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1053: --Check the return status after calling private APIs
1054: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1055: RAISE FND_API.G_EXC_ERROR;
1056: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1057: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1058: END IF;
1059:
1060: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1061: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1064:
1065: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
1066: l_msg_count := FND_MSG_PUB.count_msg;
1067: IF l_msg_count > 0 THEN
1068: RAISE FND_API.G_EXC_ERROR;
1069: END IF;
1070: -- Perform the Commit (if requested)
1071: IF FND_API.to_boolean( p_commit ) THEN
1072: COMMIT;
1067: IF l_msg_count > 0 THEN
1068: RAISE FND_API.G_EXC_ERROR;
1069: END IF;
1070: -- Perform the Commit (if requested)
1071: IF FND_API.to_boolean( p_commit ) THEN
1072: COMMIT;
1073: END IF;
1074: -- Count and Get messages (optional)
1075: FND_MSG_PUB.count_and_get(
1072: COMMIT;
1073: END IF;
1074: -- Count and Get messages (optional)
1075: FND_MSG_PUB.count_and_get(
1076: p_encoded => FND_API.G_FALSE,
1077: p_count => x_msg_count,
1078: p_data => x_msg_data);
1079:
1080: EXCEPTION
1077: p_count => x_msg_count,
1078: p_data => x_msg_data);
1079:
1080: EXCEPTION
1081: WHEN FND_API.G_EXC_ERROR THEN
1082: ROLLBACK TO swap_instance;
1083: x_return_status := FND_API.G_RET_STS_ERROR ;
1084: FND_MSG_PUB.count_and_get(
1085: p_encoded => FND_API.G_FALSE,
1079:
1080: EXCEPTION
1081: WHEN FND_API.G_EXC_ERROR THEN
1082: ROLLBACK TO swap_instance;
1083: x_return_status := FND_API.G_RET_STS_ERROR ;
1084: FND_MSG_PUB.count_and_get(
1085: p_encoded => FND_API.G_FALSE,
1086: p_count => x_msg_count,
1087: p_data => x_msg_data);
1081: WHEN FND_API.G_EXC_ERROR THEN
1082: ROLLBACK TO swap_instance;
1083: x_return_status := FND_API.G_RET_STS_ERROR ;
1084: FND_MSG_PUB.count_and_get(
1085: p_encoded => FND_API.G_FALSE,
1086: p_count => x_msg_count,
1087: p_data => x_msg_data);
1088: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO swap_instance;
1084: FND_MSG_PUB.count_and_get(
1085: p_encoded => FND_API.G_FALSE,
1086: p_count => x_msg_count,
1087: p_data => x_msg_data);
1088: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO swap_instance;
1090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1091: FND_MSG_PUB.count_and_get(
1092: p_encoded => FND_API.G_FALSE,
1086: p_count => x_msg_count,
1087: p_data => x_msg_data);
1088: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO swap_instance;
1090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1091: FND_MSG_PUB.count_and_get(
1092: p_encoded => FND_API.G_FALSE,
1093: p_count => x_msg_count,
1094: p_data => x_msg_data);
1088: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO swap_instance;
1090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1091: FND_MSG_PUB.count_and_get(
1092: p_encoded => FND_API.G_FALSE,
1093: p_count => x_msg_count,
1094: p_data => x_msg_data);
1095: WHEN OTHERS THEN
1096: ROLLBACK TO swap_instance;
1093: p_count => x_msg_count,
1094: p_data => x_msg_data);
1095: WHEN OTHERS THEN
1096: ROLLBACK TO swap_instance;
1097: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1098: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1099: THEN
1100: FND_MSG_PUB.add_exc_msg(
1101: p_pkg_name => G_PKG_NAME,
1102: p_procedure_name => l_api_name,
1103: p_error_text => SUBSTRB(SQLERRM,1,240));
1104: END IF;
1105: FND_MSG_PUB.count_and_get(
1106: p_encoded => FND_API.G_FALSE,
1107: p_count => x_msg_count,
1108: p_data => x_msg_data);
1109: END swap_instance;
1110:
1113: -- This API is used to create a new instance in csi_item_instances as an extra
1114: -- instance attached to the root node.
1115: PROCEDURE create_unassigned_instance(
1116: p_api_version IN NUMBER := 1.0,
1117: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1118: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1119: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1120: x_return_status OUT NOCOPY VARCHAR2,
1121: x_msg_count OUT NOCOPY NUMBER,
1114: -- instance attached to the root node.
1115: PROCEDURE create_unassigned_instance(
1116: p_api_version IN NUMBER := 1.0,
1117: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1118: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1119: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1120: x_return_status OUT NOCOPY VARCHAR2,
1121: x_msg_count OUT NOCOPY NUMBER,
1122: x_msg_data OUT NOCOPY VARCHAR2,
1115: PROCEDURE create_unassigned_instance(
1116: p_api_version IN NUMBER := 1.0,
1117: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1118: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1119: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1120: x_return_status OUT NOCOPY VARCHAR2,
1121: x_msg_count OUT NOCOPY NUMBER,
1122: x_msg_data OUT NOCOPY VARCHAR2,
1123: p_uc_header_id IN NUMBER,
1140: -- Standard start of API savepoint
1141: SAVEPOINT create_unassigned_instance;
1142:
1143: -- Initialize Procedure return status to success
1144: x_return_status := FND_API.G_RET_STS_SUCCESS;
1145:
1146: -- Standard call to check for call compatibility
1147: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
1148: l_api_name, G_PKG_NAME) THEN
1143: -- Initialize Procedure return status to success
1144: x_return_status := FND_API.G_RET_STS_SUCCESS;
1145:
1146: -- Standard call to check for call compatibility
1147: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
1148: l_api_name, G_PKG_NAME) THEN
1149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1150: END IF;
1151:
1145:
1146: -- Standard call to check for call compatibility
1147: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
1148: l_api_name, G_PKG_NAME) THEN
1149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1150: END IF;
1151:
1152: -- Initialize message list if p_init_msg_list is set to TRUE
1153: IF FND_API.To_Boolean(p_init_msg_list) THEN
1149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1150: END IF;
1151:
1152: -- Initialize message list if p_init_msg_list is set to TRUE
1153: IF FND_API.To_Boolean(p_init_msg_list) THEN
1154: FND_MSG_PUB.Initialize;
1155: END IF;
1156:
1157: -- Validate the parameters which are not present in the private API. All the other
1161: p_uc_name,
1162: l_uc_header_id,
1163: l_return_status);
1164:
1165: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1166: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167: END IF;
1168:
1169: -- Calling the corresponding private API
1162: l_uc_header_id,
1163: l_return_status);
1164:
1165: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1166: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167: END IF;
1168:
1169: -- Calling the corresponding private API
1170: ahl_uc_instance_pvt.create_unassigned_instance(
1168:
1169: -- Calling the corresponding private API
1170: ahl_uc_instance_pvt.create_unassigned_instance(
1171: p_api_version => 1.0,
1172: p_init_msg_list => FND_API.G_FALSE,
1173: p_commit => FND_API.G_FALSE,
1174: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1175: x_return_status => l_return_status,
1176: x_msg_count => l_msg_count,
1169: -- Calling the corresponding private API
1170: ahl_uc_instance_pvt.create_unassigned_instance(
1171: p_api_version => 1.0,
1172: p_init_msg_list => FND_API.G_FALSE,
1173: p_commit => FND_API.G_FALSE,
1174: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1175: x_return_status => l_return_status,
1176: x_msg_count => l_msg_count,
1177: x_msg_data => l_msg_data,
1170: ahl_uc_instance_pvt.create_unassigned_instance(
1171: p_api_version => 1.0,
1172: p_init_msg_list => FND_API.G_FALSE,
1173: p_commit => FND_API.G_FALSE,
1174: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1175: x_return_status => l_return_status,
1176: x_msg_count => l_msg_count,
1177: x_msg_data => l_msg_data,
1178: p_uc_header_id => l_uc_header_id,
1178: p_uc_header_id => l_uc_header_id,
1179: p_x_uc_instance_rec => p_x_uc_instance_rec);
1180:
1181: -- Check the return status after calling private API
1182: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1183: RAISE FND_API.G_EXC_ERROR;
1184: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1185: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1186: END IF;
1179: p_x_uc_instance_rec => p_x_uc_instance_rec);
1180:
1181: -- Check the return status after calling private API
1182: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1183: RAISE FND_API.G_EXC_ERROR;
1184: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1185: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1186: END IF;
1187:
1180:
1181: -- Check the return status after calling private API
1182: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1183: RAISE FND_API.G_EXC_ERROR;
1184: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1185: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1186: END IF;
1187:
1188: -- Standard check of p_commit
1181: -- Check the return status after calling private API
1182: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1183: RAISE FND_API.G_EXC_ERROR;
1184: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1185: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1186: END IF;
1187:
1188: -- Standard check of p_commit
1189: IF FND_API.TO_BOOLEAN(p_commit) THEN
1185: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1186: END IF;
1187:
1188: -- Standard check of p_commit
1189: IF FND_API.TO_BOOLEAN(p_commit) THEN
1190: COMMIT WORK;
1191: END IF;
1192:
1193: -- Standard call to get message count and if count is 1, get message info
1193: -- Standard call to get message count and if count is 1, get message info
1194: FND_MSG_PUB.Count_And_Get
1195: ( p_count => x_msg_count,
1196: p_data => x_msg_data,
1197: p_encoded => FND_API.G_FALSE
1198: );
1199:
1200: IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
1201: FND_LOG.string(FND_LOG.level_procedure,l_full_name,'End of the API');
1201: FND_LOG.string(FND_LOG.level_procedure,l_full_name,'End of the API');
1202: END IF;
1203:
1204: EXCEPTION
1205: WHEN FND_API.G_EXC_ERROR THEN
1206: Rollback to create_unassigned_instance;
1207: x_return_status := FND_API.G_RET_STS_ERROR;
1208: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1209: p_data => x_msg_data,
1203:
1204: EXCEPTION
1205: WHEN FND_API.G_EXC_ERROR THEN
1206: Rollback to create_unassigned_instance;
1207: x_return_status := FND_API.G_RET_STS_ERROR;
1208: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1209: p_data => x_msg_data,
1210: p_encoded => fnd_api.g_false);
1211:
1206: Rollback to create_unassigned_instance;
1207: x_return_status := FND_API.G_RET_STS_ERROR;
1208: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1209: p_data => x_msg_data,
1210: p_encoded => fnd_api.g_false);
1211:
1212: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1213: Rollback to create_unassigned_instance;
1214: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1208: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1209: p_data => x_msg_data,
1210: p_encoded => fnd_api.g_false);
1211:
1212: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1213: Rollback to create_unassigned_instance;
1214: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1215: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1216: p_data => x_msg_data,
1210: p_encoded => fnd_api.g_false);
1211:
1212: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1213: Rollback to create_unassigned_instance;
1214: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1215: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1216: p_data => x_msg_data,
1217: p_encoded => fnd_api.g_false);
1218:
1213: Rollback to create_unassigned_instance;
1214: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1215: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1216: p_data => x_msg_data,
1217: p_encoded => fnd_api.g_false);
1218:
1219: WHEN OTHERS THEN
1220: Rollback to create_unassigned_instance;
1221: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1217: p_encoded => fnd_api.g_false);
1218:
1219: WHEN OTHERS THEN
1220: Rollback to create_unassigned_instance;
1221: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1222: FND_MSG_PUB.Add_Exc_Msg( p_pkg_name => G_PKG_NAME,
1223: p_procedure_name => l_api_name,
1224: p_error_text => SQLERRM);
1225: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1223: p_procedure_name => l_api_name,
1224: p_error_text => SQLERRM);
1225: FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
1226: p_data => x_msg_data,
1227: p_encoded => FND_API.G_FALSE);
1228:
1229: END create_unassigned_instance;
1230:
1231: END AHL_UC_INSTANCE_PUB; -- Package body