148: IF (p_x_pc_header_rec.PRODUCT_TYPE_DESC) IS NULL
149: THEN
150: FND_MESSAGE.SET_NAME('AHL','AHL_PC_PRODUCT_TYPE_REQD');
151: FND_MSG_PUB.ADD;
152: RAISE FND_API.G_EXC_ERROR;
153: ELSE
154: OPEN get_item_type_code (p_x_pc_header_rec.PRODUCT_TYPE_DESC);
155: FETCH get_item_type_code INTO l_item_type_code, l_item_type_desc;
156: -- No such Item Type found for passed Item Type Desc, then ERROR
158: THEN
159: FND_MESSAGE.SET_NAME('AHL','AHL_PC_PRODUCT_TYPE_NOT_FOUND');
160: FND_MSG_PUB.ADD;
161: CLOSE get_item_type_code;
162: RAISE FND_API.G_EXC_ERROR;
163: ELSE
164: FETCH get_item_type_code INTO l_dummy_code, l_dummy_desc;
165: -- Multiple matches for Item Type Desc
166: IF get_item_type_code%FOUND
173: FND_MESSAGE.SET_NAME('AHL','AHL_PC_DUP_PROD_CODE_FOR_DESC');
174: FND_MSG_PUB.ADD;
175: CLOSE check_item_type_desc_and_code;
176: CLOSE get_item_type_code;
177: RAISE FND_API.G_EXC_ERROR;
178: ELSE
179: IF ( p_x_pc_header_rec.PRODUCT_TYPE_CODE) IS NULL
180: THEN
181: FND_MESSAGE.SET_NAME('AHL','AHL_PC_DUP_PROD_CODE_FOR_DESC');
181: FND_MESSAGE.SET_NAME('AHL','AHL_PC_DUP_PROD_CODE_FOR_DESC');
182: FND_MSG_PUB.ADD;
183: CLOSE check_item_type_desc_and_code;
184: CLOSE get_item_type_code;
185: RAISE FND_API.G_EXC_ERROR;
186: END IF;
187: END IF;
188: ELSE
189: p_x_pc_header_rec.PRODUCT_TYPE_CODE := l_item_type_code;
198: -- PROCESS_PC_HEADER --
199: -------------------------
200: PROCEDURE PROCESS_PC_HEADER (
201: p_api_version IN NUMBER,
202: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
203: p_commit IN VARCHAR2 := FND_API.G_FALSE,
204: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
205: p_module_type IN VARCHAR2 := NULL,
206: p_x_pc_header_rec IN OUT NOCOPY AHL_PC_HEADER_PUB.PC_HEADER_REC,
199: -------------------------
200: PROCEDURE PROCESS_PC_HEADER (
201: p_api_version IN NUMBER,
202: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
203: p_commit IN VARCHAR2 := FND_API.G_FALSE,
204: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
205: p_module_type IN VARCHAR2 := NULL,
206: p_x_pc_header_rec IN OUT NOCOPY AHL_PC_HEADER_PUB.PC_HEADER_REC,
207: x_return_status OUT NOCOPY VARCHAR2,
200: PROCEDURE PROCESS_PC_HEADER (
201: p_api_version IN NUMBER,
202: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
203: p_commit IN VARCHAR2 := FND_API.G_FALSE,
204: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
205: p_module_type IN VARCHAR2 := NULL,
206: p_x_pc_header_rec IN OUT NOCOPY AHL_PC_HEADER_PUB.PC_HEADER_REC,
207: x_return_status OUT NOCOPY VARCHAR2,
208: x_msg_count OUT NOCOPY NUMBER,
220: -- Standard start of API savepoint
221: SAVEPOINT PROCESS_PC_HEADER_PUB;
222:
223: -- Standard call to check for call compatibility
224: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
225: THEN
226: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
227: END IF;
228:
222:
223: -- Standard call to check for call compatibility
224: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
225: THEN
226: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
227: END IF;
228:
229: -- Initialize message list if p_init_msg_list is set to TRUE
230: IF FND_API.To_Boolean(p_init_msg_list)
226: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
227: END IF;
228:
229: -- Initialize message list if p_init_msg_list is set to TRUE
230: IF FND_API.To_Boolean(p_init_msg_list)
231: THEN
232: FND_MSG_PUB.Initialize;
233: END IF;
234:
231: THEN
232: FND_MSG_PUB.Initialize;
233: END IF;
234:
235: x_return_status := FND_API.G_RET_STS_SUCCESS;
236:
237: IF G_DEBUG='Y' THEN
238: AHL_DEBUG_PUB.ENABLE_DEBUG;
239: END IF;
259: -- Check Error Message stack.
260: x_msg_count := FND_MSG_PUB.count_msg;
261: IF x_msg_count > 0
262: THEN
263: RAISE FND_API.G_EXC_ERROR;
264: END IF;
265:
266: -- Call PVT APIs
267: x_return_status := FND_API.G_RET_STS_SUCCESS;
263: RAISE FND_API.G_EXC_ERROR;
264: END IF;
265:
266: -- Call PVT APIs
267: x_return_status := FND_API.G_RET_STS_SUCCESS;
268:
269: IF (p_x_pc_header_rec.operation_flag = AHL_PC_HEADER_PVT.G_DML_CREATE)
270: THEN
271: IF G_DEBUG='Y' THEN
274:
275: AHL_PC_HEADER_PVT.CREATE_PC_HEADER
276: (
277: p_api_version => 1.0,
278: p_init_msg_list => FND_API.G_FALSE,
279: p_commit => FND_API.G_FALSE,
280: p_validation_level => p_validation_level,
281: p_x_pc_header_rec => p_x_pc_header_rec,
282: x_return_status => x_return_status,
275: AHL_PC_HEADER_PVT.CREATE_PC_HEADER
276: (
277: p_api_version => 1.0,
278: p_init_msg_list => FND_API.G_FALSE,
279: p_commit => FND_API.G_FALSE,
280: p_validation_level => p_validation_level,
281: p_x_pc_header_rec => p_x_pc_header_rec,
282: x_return_status => x_return_status,
283: x_msg_count => x_msg_count,
291:
292: AHL_PC_HEADER_PVT.UPDATE_PC_HEADER
293: (
294: p_api_version => 1.0,
295: p_init_msg_list => FND_API.G_FALSE,
296: p_commit => FND_API.G_FALSE,
297: p_validation_level => p_validation_level,
298: p_x_pc_header_rec => p_x_pc_header_rec,
299: x_return_status => x_return_status,
292: AHL_PC_HEADER_PVT.UPDATE_PC_HEADER
293: (
294: p_api_version => 1.0,
295: p_init_msg_list => FND_API.G_FALSE,
296: p_commit => FND_API.G_FALSE,
297: p_validation_level => p_validation_level,
298: p_x_pc_header_rec => p_x_pc_header_rec,
299: x_return_status => x_return_status,
300: x_msg_count => x_msg_count,
309:
310: AHL_PC_HEADER_PVT.COPY_PC_HEADER
311: (
312: p_api_version => 1.0,
313: p_init_msg_list => FND_API.G_FALSE,
314: p_commit => FND_API.G_FALSE,
315: p_validation_level => p_validation_level,
316: p_x_pc_header_rec => p_x_pc_header_rec,
317: x_return_status => x_return_status,
310: AHL_PC_HEADER_PVT.COPY_PC_HEADER
311: (
312: p_api_version => 1.0,
313: p_init_msg_list => FND_API.G_FALSE,
314: p_commit => FND_API.G_FALSE,
315: p_validation_level => p_validation_level,
316: p_x_pc_header_rec => p_x_pc_header_rec,
317: x_return_status => x_return_status,
318: x_msg_count => x_msg_count,
326:
327: AHL_PC_HEADER_PVT.DELETE_PC_HEADER
328: (
329: p_api_version => 1.0,
330: p_init_msg_list => FND_API.G_FALSE,
331: p_commit => FND_API.G_FALSE,
332: p_validation_level => p_validation_level,
333: p_x_pc_header_rec => p_x_pc_header_rec,
334: x_return_status => x_return_status,
327: AHL_PC_HEADER_PVT.DELETE_PC_HEADER
328: (
329: p_api_version => 1.0,
330: p_init_msg_list => FND_API.G_FALSE,
331: p_commit => FND_API.G_FALSE,
332: p_validation_level => p_validation_level,
333: p_x_pc_header_rec => p_x_pc_header_rec,
334: x_return_status => x_return_status,
335: x_msg_count => x_msg_count,
340: -- Check Error Message stack.
341: x_msg_count := FND_MSG_PUB.count_msg;
342: IF x_msg_count > 0
343: THEN
344: RAISE FND_API.G_EXC_ERROR;
345: END IF;
346:
347: -- Standard check for p_commit
348: IF FND_API.To_Boolean (p_commit)
344: RAISE FND_API.G_EXC_ERROR;
345: END IF;
346:
347: -- Standard check for p_commit
348: IF FND_API.To_Boolean (p_commit)
349: THEN
350: COMMIT WORK;
351: END IF;
352:
352:
353: -- Standard call to get message count and if count is 1, get message info
354: FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
355: p_data => x_msg_data,
356: p_encoded => fnd_api.g_false );
357:
358: EXCEPTION
359: WHEN FND_API.G_EXC_ERROR THEN
360: x_return_status := FND_API.G_RET_STS_ERROR;
355: p_data => x_msg_data,
356: p_encoded => fnd_api.g_false );
357:
358: EXCEPTION
359: WHEN FND_API.G_EXC_ERROR THEN
360: x_return_status := FND_API.G_RET_STS_ERROR;
361: Rollback to PROCESS_PC_HEADER_PUB;
362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
363: p_data => x_msg_data,
356: p_encoded => fnd_api.g_false );
357:
358: EXCEPTION
359: WHEN FND_API.G_EXC_ERROR THEN
360: x_return_status := FND_API.G_RET_STS_ERROR;
361: Rollback to PROCESS_PC_HEADER_PUB;
362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
363: p_data => x_msg_data,
364: p_encoded => fnd_api.g_false );
360: x_return_status := FND_API.G_RET_STS_ERROR;
361: Rollback to PROCESS_PC_HEADER_PUB;
362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
363: p_data => x_msg_data,
364: p_encoded => fnd_api.g_false );
365:
366: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
367: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
368: Rollback to PROCESS_PC_HEADER_PUB;
362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
363: p_data => x_msg_data,
364: p_encoded => fnd_api.g_false );
365:
366: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
367: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
368: Rollback to PROCESS_PC_HEADER_PUB;
369: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
370: p_data => x_msg_data,
363: p_data => x_msg_data,
364: p_encoded => fnd_api.g_false );
365:
366: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
367: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
368: Rollback to PROCESS_PC_HEADER_PUB;
369: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
370: p_data => x_msg_data,
371: p_encoded => fnd_api.g_false );
367: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
368: Rollback to PROCESS_PC_HEADER_PUB;
369: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
370: p_data => x_msg_data,
371: p_encoded => fnd_api.g_false );
372:
373: WHEN OTHERS THEN
374: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
375: Rollback to PROCESS_PC_HEADER_PUB;
370: p_data => x_msg_data,
371: p_encoded => fnd_api.g_false );
372:
373: WHEN OTHERS THEN
374: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
375: Rollback to PROCESS_PC_HEADER_PUB;
376: IF FND_MSG_PUB.check_msg_level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
377: THEN
378: fnd_msg_pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
380: p_error_text => SUBSTR(SQLERRM,1,240) );
381: END IF;
382: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
383: p_data => x_msg_data,
384: p_encoded => fnd_api.g_false );
385:
386: END PROCESS_PC_HEADER ;
387:
388: END AHL_PC_HEADER_PUB;