4 -- Package name : aso_RELATED_OBJ_PVT
1 PACKAGE BODY aso_RELATED_OBJ_PVT as
2 /* $Header: asovobjb.pls 120.1 2005/06/29 12:42:22 appldev ship $ */
3 -- Start of Comments
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'aso_RELATED_OBJ_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asovobjb.pls';
13
14
15 -- Hint: Primary key needs to be returned.
16 PROCEDURE Create_related_obj(
17 P_Api_Version_Number IN NUMBER,
18 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
19 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
20 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
21 P_RELATED_OBJ_Rec IN ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC,
22 X_RELATED_OBJECT_ID OUT NOCOPY /* file.sql.39 change */ NUMBER,
23 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
24 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
25 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
26 )
27
28 IS
29 l_api_name CONSTANT VARCHAR2(30) := 'Create_related_obj';
30 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
31 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
32 l_api_version_number CONSTANT NUMBER := 1.0;
33 l_return_status_full VARCHAR2(1);
34 l_x_status VARCHAR2(1);
35
36 BEGIN
37 -- Standard Start of API savepoint
38 SAVEPOINT CREATE_RELATED_OBJ_PVT;
39
40 -- Standard call to check for call compatibility.
41 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
42 p_api_version_number,
43 l_api_name,
44 G_PKG_NAME)
45 THEN
49
46 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47 END IF;
48
50 -- Initialize message list if p_init_msg_list is set to TRUE.
51 IF FND_API.to_Boolean( p_init_msg_list )
52 THEN
53 FND_MSG_PUB.initialize;
54 END IF;
55
56
57 -- Initialize API return status to SUCCESS
58 x_return_status := FND_API.G_RET_STS_SUCCESS;
59
60 --
61 -- API body
62 --
63
64
65 -- ******************************************************************
66 -- Validate Environment
67 -- ******************************************************************
68 IF FND_GLOBAL.User_Id IS NULL
69 THEN
70 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
71 THEN
72 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
73 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
74 FND_MSG_PUB.ADD;
75 END IF;
76 RAISE FND_API.G_EXC_ERROR;
77 END IF;
78
79
80
81 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
82
83
84
85 -- Invoke validation procedures
86 ASO_VALIDATE_PVT.Validate_QTE_OBJ_TYPE_CODE (
87 P_Init_Msg_List => P_Init_Msg_List ,
88 P_QUOTE_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.QUOTE_OBJECT_TYPE_CODE,
89 X_Return_Status => X_Return_Status ,
90 X_Msg_Count => X_Msg_Count ,
91 X_Msg_Data => X_Msg_Data
92 );
93 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
94 RAISE FND_API.G_EXC_ERROR;
95 END IF;
96 ASO_VALIDATE_PVT.Validate_OBJECT_TYPE_CODE (
97 P_Init_Msg_List => P_Init_Msg_List ,
98 P_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.OBJECT_TYPE_CODE,
99 X_Return_Status => X_Return_Status ,
100 X_Msg_Count => X_Msg_Count ,
101 X_Msg_Data => X_Msg_Data
102 );
103 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
104 RAISE FND_API.G_EXC_ERROR;
105 END IF;
106 ASO_VALIDATE_PVT.Validate_RLTSHIP_TYPE_CODE (
107 P_Init_Msg_List => P_Init_Msg_List ,
108 P_RELATIONSHIP_TYPE_CODE => P_RELATED_OBJ_Rec.RELATIONSHIP_TYPE_CODE,
109 X_Return_Status => X_Return_Status ,
110 X_Msg_Count => X_Msg_Count ,
111 X_Msg_Data => X_Msg_Data
112 );
113 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
114 RAISE FND_API.G_EXC_ERROR;
115 END IF;
116
117
118 END IF;
119
120 IF p_related_obj_rec.quote_object_type_code = 'HEADER' and
121 p_related_obj_rec.quote_object_id is not null THEN
122
123 aso_conc_req_int.lock_exists( p_quote_header_id => p_related_obj_rec.quote_object_id,
124 x_status => l_x_status );
125
126 IF aso_debug_pub.g_debug_flag = 'Y' THEN
127 aso_debug_pub.add('create_related_obj: l_x_status: '|| l_x_status);
128 END IF;
129
130 if l_x_status = fnd_api.g_true then
131
132 if fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error) then
133 fnd_message.set_name('ASO', 'ASO_CONC_REQUEST_RUNNING');
134 fnd_msg_pub.add;
135 end if;
136
137 x_return_status := fnd_api.g_ret_sts_error;
138 raise fnd_api.g_exc_error;
139
140 end if;
141
142 END IF;
143
144 -- Invoke table handler(ASO_QUOTE_RELATED_OBJECTS_PKG.Insert_Row)
145 ASO_QUOTE_RELATED_OBJECTS_PKG.Insert_Row(
146 px_RELATED_OBJECT_ID => x_RELATED_OBJECT_ID,
147 p_CREATION_DATE => SYSDATE,
148 p_CREATED_BY => G_USER_ID,
149 p_LAST_UPDATE_DATE => SYSDATE,
150 p_LAST_UPDATED_BY => G_USER_ID,
151 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
152 p_REQUEST_ID => p_RELATED_OBJ_rec.REQUEST_ID,
153 p_PROGRAM_APPLICATION_ID => p_RELATED_OBJ_rec.PROGRAM_APPLICATION_ID,
154 p_PROGRAM_ID => p_RELATED_OBJ_rec.PROGRAM_ID,
155 p_PROGRAM_UPDATE_DATE => p_RELATED_OBJ_rec.PROGRAM_UPDATE_DATE,
156 p_QUOTE_OBJECT_TYPE_CODE => p_RELATED_OBJ_rec.QUOTE_OBJECT_TYPE_CODE,
157 p_QUOTE_OBJECT_ID => p_RELATED_OBJ_rec.QUOTE_OBJECT_ID,
158 p_OBJECT_TYPE_CODE => p_RELATED_OBJ_rec.OBJECT_TYPE_CODE,
159 p_OBJECT_ID => p_RELATED_OBJ_rec.OBJECT_ID,
160 p_RELATIONSHIP_TYPE_CODE => p_RELATED_OBJ_rec.RELATIONSHIP_TYPE_CODE,
161 p_RECIPROCAL_FLAG => p_RELATED_OBJ_rec.RECIPROCAL_FLAG,
162 p_OBJECT_VERSION_NUMBER => p_RELATED_OBJ_rec.OBJECT_VERSION_NUMBER);
163
164
165 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
166 RAISE FND_API.G_EXC_ERROR;
167 END IF;
168
169 --
170 -- End of API body
171 --
172
173 -- Standard check for p_commit
174 IF FND_API.to_Boolean( p_commit )
175 THEN
176 COMMIT WORK;
177 END IF;
178
179 -- Standard call to get message count and if count is 1, get message info.
180 FND_MSG_PUB.Count_And_Get
181 ( p_count => x_msg_count,
182 p_data => x_msg_data
183 );
184
185 EXCEPTION
186 WHEN FND_API.G_EXC_ERROR THEN
187 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
188 P_API_NAME => L_API_NAME
189 ,P_PKG_NAME => G_PKG_NAME
190 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
191 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
195 ,X_MSG_DATA => X_MSG_DATA
192 ,P_SQLCODE => SQLCODE
193 ,P_SQLERRM => SQLERRM
194 ,X_MSG_COUNT => X_MSG_COUNT
196 ,X_RETURN_STATUS => X_RETURN_STATUS);
197
198 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
199 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
200 P_API_NAME => L_API_NAME
201 ,P_PKG_NAME => G_PKG_NAME
202 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
203 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
204 ,P_SQLCODE => SQLCODE
205 ,P_SQLERRM => SQLERRM
206 ,X_MSG_COUNT => X_MSG_COUNT
207 ,X_MSG_DATA => X_MSG_DATA
208 ,X_RETURN_STATUS => X_RETURN_STATUS);
209
210 WHEN OTHERS THEN
211 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
212 P_API_NAME => L_API_NAME
213 ,P_PKG_NAME => G_PKG_NAME
214 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
215 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
216 ,P_SQLCODE => SQLCODE
217 ,P_SQLERRM => SQLERRM
218 ,X_MSG_COUNT => X_MSG_COUNT
219 ,X_MSG_DATA => X_MSG_DATA
220 ,X_RETURN_STATUS => X_RETURN_STATUS);
221
222 End Create_related_obj;
223
224
225
226
227 PROCEDURE Update_related_obj(
228 P_Api_Version_Number IN NUMBER,
229 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
230 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
231 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
232 P_RELATED_OBJ_Rec IN ASO_QUOTE_PUB.RELATED_OBJ_Rec_Type,
233 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
234 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
235 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
236 )
237
238 IS
239
240 Cursor C_Get_related_obj(RELATED_OBJECT_ID Number) IS
241 Select --rowid,
242 RELATED_OBJECT_ID,
243 CREATION_DATE,
244 CREATED_BY,
245 LAST_UPDATE_DATE,
246 LAST_UPDATED_BY,
247 LAST_UPDATE_LOGIN,
248 REQUEST_ID,
249 PROGRAM_APPLICATION_ID,
250 PROGRAM_ID,
251 PROGRAM_UPDATE_DATE,
252 QUOTE_OBJECT_TYPE_CODE,
253 QUOTE_OBJECT_ID,
254 OBJECT_TYPE_CODE,
255 OBJECT_ID,
256 RELATIONSHIP_TYPE_CODE,
257 RECIPROCAL_FLAG
258 -- QUOTE_OBJECT_CODE
259 From ASO_QUOTE_RELATED_OBJECTS
260 where related_object_id = P_RELATED_OBJ_Rec.related_object_id;
261 --For Update NOWAIT;
262
263 l_api_name CONSTANT VARCHAR2(30) := 'Update_related_obj';
264 l_api_version_number CONSTANT NUMBER := 1.0;
265
266 l_ref_RELATED_OBJ_rec aso_quote_pub.RELATED_OBJ_Rec_Type;
267 l_tar_RELATED_OBJ_rec aso_quote_pub.RELATED_OBJ_Rec_Type := P_RELATED_OBJ_Rec;
268 l_rowid ROWID;
269 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
270 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
271 l_x_status varchar2(1);
272
273 BEGIN
274 -- Standard Start of API savepoint
275 SAVEPOINT UPDATE_RELATED_OBJ_PVT;
276
277 -- Standard call to check for call compatibility.
278 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
279 p_api_version_number,
280 l_api_name,
281 G_PKG_NAME)
282 THEN
283 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
284 END IF;
285
286
287 -- Initialize message list if p_init_msg_list is set to TRUE.
288 IF FND_API.to_Boolean( p_init_msg_list )
289 THEN
290 FND_MSG_PUB.initialize;
291 END IF;
292
293
294 -- Initialize API return status to SUCCESS
295 x_return_status := FND_API.G_RET_STS_SUCCESS;
296
297 --
298 -- Api body
299 --
300
301 Open C_Get_related_obj( l_tar_RELATED_OBJ_rec.RELATED_OBJECT_ID);
302
303 Fetch C_Get_related_obj into
304 -- l_rowid,
305 l_ref_RELATED_OBJ_rec.RELATED_OBJECT_ID,
306 l_ref_RELATED_OBJ_rec.CREATION_DATE,
307 l_ref_RELATED_OBJ_rec.CREATED_BY,
308 l_ref_RELATED_OBJ_rec.LAST_UPDATE_DATE,
309 l_ref_RELATED_OBJ_rec.LAST_UPDATED_BY,
310 l_ref_RELATED_OBJ_rec.LAST_UPDATE_LOGIN,
311 l_ref_RELATED_OBJ_rec.REQUEST_ID,
312 l_ref_RELATED_OBJ_rec.PROGRAM_APPLICATION_ID,
313 l_ref_RELATED_OBJ_rec.PROGRAM_ID,
314 l_ref_RELATED_OBJ_rec.PROGRAM_UPDATE_DATE,
315 l_ref_RELATED_OBJ_rec.QUOTE_OBJECT_TYPE_CODE,
316 l_ref_RELATED_OBJ_rec.QUOTE_OBJECT_ID,
317 l_ref_RELATED_OBJ_rec.OBJECT_TYPE_CODE,
318 l_ref_RELATED_OBJ_rec.OBJECT_ID,
319 l_ref_RELATED_OBJ_rec.RELATIONSHIP_TYPE_CODE,
320 l_ref_RELATED_OBJ_rec.RECIPROCAL_FLAG;
321 -- l_ref_RELATED_OBJ_rec.QUOTE_OBJECT_CODE;
322
323 If ( C_Get_related_obj%NOTFOUND) Then
324 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
325 THEN
326 FND_MESSAGE.Set_Name('aso', 'API_MISSING_UPDATE_TARGET');
327 FND_MESSAGE.Set_Token ('INFO', 'related_obj', FALSE);
328 FND_MSG_PUB.Add;
329 END IF;
330 raise FND_API.G_EXC_ERROR;
331 END IF;
332 -- Debug Message
336
333 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
334 Close C_Get_related_obj;
335
337
341 THEN
338 If (l_tar_RELATED_OBJ_rec.last_update_date is NULL or
339 l_tar_RELATED_OBJ_rec.last_update_date = FND_API.G_MISS_Date ) Then
340 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
342 FND_MESSAGE.Set_Name('aso', 'API_MISSING_ID');
343 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
344 FND_MSG_PUB.ADD;
345 END IF;
346 raise FND_API.G_EXC_ERROR;
347 End if;
348 -- Check Whether record has been changed by someone else
349 If (l_tar_RELATED_OBJ_rec.last_update_date <> l_ref_RELATED_OBJ_rec.last_update_date) Then
350 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
351 THEN
352 FND_MESSAGE.Set_Name('aso', 'API_RECORD_CHANGED');
353 FND_MESSAGE.Set_Token('INFO', 'related_obj', FALSE);
354 FND_MSG_PUB.ADD;
355 END IF;
356 raise FND_API.G_EXC_ERROR;
357 End if;
358
359 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
360
361 ASO_VALIDATE_PVT.Validate_QTE_OBJ_TYPE_CODE (
362 P_Init_Msg_List => P_Init_Msg_List ,
363 P_QUOTE_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.QUOTE_OBJECT_TYPE_CODE,
364 X_Return_Status => X_Return_Status ,
365 X_Msg_Count => X_Msg_Count ,
366 X_Msg_Data => X_Msg_Data
367 );
368 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
369 RAISE FND_API.G_EXC_ERROR;
370 END IF;
371 ASO_VALIDATE_PVT.Validate_OBJECT_TYPE_CODE (
372 P_Init_Msg_List => P_Init_Msg_List ,
373 P_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.OBJECT_TYPE_CODE,
374 X_Return_Status => X_Return_Status ,
375 X_Msg_Count => X_Msg_Count ,
376 X_Msg_Data => X_Msg_Data
377 );
378 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
379 RAISE FND_API.G_EXC_ERROR;
380 END IF;
381 ASO_VALIDATE_PVT.Validate_RLTSHIP_TYPE_CODE(
382 P_Init_Msg_List => P_Init_Msg_List ,
383 P_RELATIONSHIP_TYPE_CODE => P_RELATED_OBJ_Rec.RELATIONSHIP_TYPE_CODE,
384 X_Return_Status => X_Return_Status ,
385 X_Msg_Count => X_Msg_Count ,
386 X_Msg_Data => X_Msg_Data
387 );
388 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
389 RAISE FND_API.G_EXC_ERROR;
390 END IF;
391
392 END IF;
393
394 IF p_related_obj_rec.quote_object_type_code = 'HEADER' and
395 p_related_obj_rec.quote_object_id is not null THEN
396
397 aso_conc_req_int.lock_exists( p_quote_header_id => p_related_obj_rec.quote_object_id ,
398 x_status => l_x_status );
399
400 IF aso_debug_pub.g_debug_flag = 'Y' THEN
401 aso_debug_pub.add('update_related_obj: l_x_status: '|| l_x_status);
402 END IF;
403
404 if l_x_status = fnd_api.g_true then
405
406 if fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error) then
407 fnd_message.set_name('ASO', 'ASO_CONC_REQUEST_RUNNING');
408 fnd_msg_pub.add;
409 end if;
410
411 x_return_status := fnd_api.g_ret_sts_error;
412 raise fnd_api.g_exc_error;
413
414 end if;
415
416 END IF;
417
418 -- Invoke table handler(ASO_QUOTE_RELATED_OBJECTS_PKG.Update_Row)
419 ASO_QUOTE_RELATED_OBJECTS_PKG.Update_Row(
420 p_RELATED_OBJECT_ID => p_RELATED_OBJ_rec.RELATED_OBJECT_ID,
421 p_CREATION_DATE => SYSDATE,
422 p_CREATED_BY => G_USER_ID,
423 p_LAST_UPDATE_DATE => SYSDATE,
424 p_LAST_UPDATED_BY => G_USER_ID,
425 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
426 p_REQUEST_ID => p_RELATED_OBJ_rec.REQUEST_ID,
427 p_PROGRAM_APPLICATION_ID => p_RELATED_OBJ_rec.PROGRAM_APPLICATION_ID,
428 p_PROGRAM_ID => p_RELATED_OBJ_rec.PROGRAM_ID,
429 p_PROGRAM_UPDATE_DATE => p_RELATED_OBJ_rec.PROGRAM_UPDATE_DATE,
430 p_QUOTE_OBJECT_TYPE_CODE => p_RELATED_OBJ_rec.QUOTE_OBJECT_TYPE_CODE,
431 p_QUOTE_OBJECT_ID => p_RELATED_OBJ_rec.QUOTE_OBJECT_ID,
432 p_OBJECT_TYPE_CODE => p_RELATED_OBJ_rec.OBJECT_TYPE_CODE,
433 p_OBJECT_ID => p_RELATED_OBJ_rec.OBJECT_ID,
434 p_RELATIONSHIP_TYPE_CODE => p_RELATED_OBJ_rec.RELATIONSHIP_TYPE_CODE,
435 p_RECIPROCAL_FLAG => p_RELATED_OBJ_rec.RECIPROCAL_FLAG,
436 p_OBJECT_VERSION_NUMBER => p_RELATED_OBJ_rec.OBJECT_VERSION_NUMBER);
437
441 --
438 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
439 RAISE FND_API.G_EXC_ERROR;
440 END IF;
442 -- End of API body.
443 --
444
445 -- Standard check for p_commit
446 IF FND_API.to_Boolean( p_commit )
447 THEN
448 COMMIT WORK;
449 END IF;
450
451
452 -- Standard call to get message count and if count is 1, get message info.
453 FND_MSG_PUB.Count_And_Get
454 ( p_count => x_msg_count,
455 p_data => x_msg_data
456 );
457
458 EXCEPTION
459 WHEN FND_API.G_EXC_ERROR THEN
460 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
461 P_API_NAME => L_API_NAME
462 ,P_PKG_NAME => G_PKG_NAME
463 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
464 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
465 ,P_SQLCODE => SQLCODE
466 ,P_SQLERRM => SQLERRM
467 ,X_MSG_COUNT => X_MSG_COUNT
468 ,X_MSG_DATA => X_MSG_DATA
469 ,X_RETURN_STATUS => X_RETURN_STATUS);
470
471 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
472 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
473 P_API_NAME => L_API_NAME
474 ,P_PKG_NAME => G_PKG_NAME
475 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
476 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
477 ,P_SQLCODE => SQLCODE
478 ,P_SQLERRM => SQLERRM
479 ,X_MSG_COUNT => X_MSG_COUNT
480 ,X_MSG_DATA => X_MSG_DATA
481 ,X_RETURN_STATUS => X_RETURN_STATUS);
482
483 WHEN OTHERS THEN
484 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
485 P_API_NAME => L_API_NAME
486 ,P_PKG_NAME => G_PKG_NAME
487 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
488 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
489 ,P_SQLCODE => SQLCODE
490 ,P_SQLERRM => SQLERRM
491 ,X_MSG_COUNT => X_MSG_COUNT
492 ,X_MSG_DATA => X_MSG_DATA
493 ,X_RETURN_STATUS => X_RETURN_STATUS);
494
495
496 End Update_related_obj;
497
498
499
500 PROCEDURE Delete_related_obj(
501 P_Api_Version_Number IN NUMBER,
502 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
503 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
504 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
505 P_RELATED_OBJ_Rec IN ASO_QUOTE_PUB.RELATED_OBJ_Rec_Type,
506 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
507 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
508 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
509 )
510
511 IS
512 l_api_name CONSTANT VARCHAR2(30) := 'Delete_related_obj';
513 l_api_version_number CONSTANT NUMBER := 1.0;
514 l_x_status VARCHAR2(1);
515
516 l_quote_object_type_code varchar2(30);
517 l_quote_object_id number;
518
519 cursor quote_object is
520 select quote_object_type_code, quote_object_id
521 from aso_quote_related_objects
522 where related_object_id = p_related_obj_rec.related_object_id;
523
524 BEGIN
525 -- Standard Start of API savepoint
526 SAVEPOINT DELETE_RELATED_OBJ_PVT;
527
528 -- Standard call to check for call compatibility.
529 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
530 p_api_version_number,
531 l_api_name,
532 G_PKG_NAME)
533 THEN
534 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
535 END IF;
536
537
538 -- Initialize message list if p_init_msg_list is set to TRUE.
539 IF FND_API.to_Boolean( p_init_msg_list )
540 THEN
541 FND_MSG_PUB.initialize;
542 END IF;
543
544
545
546 -- Initialize API return status to SUCCESS
547 x_return_status := FND_API.G_RET_STS_SUCCESS;
548
549 --
550 -- Api body
551 --
552
553 open quote_object;
554 fetch quote_object into l_quote_object_type_code, l_quote_object_id;
555 close quote_object;
556
557 IF l_quote_object_type_code = 'HEADER' and
558 l_quote_object_id is not null THEN
559
560 aso_conc_req_int.lock_exists( p_quote_header_id => l_quote_object_id,
561 x_status => l_x_status );
562
563 IF aso_debug_pub.g_debug_flag = 'Y' THEN
564 aso_debug_pub.add('delete_related_obj: l_x_status: '|| l_x_status);
565 END IF;
566
567 if l_x_status = fnd_api.g_true then
568
569 if fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error) then
570 fnd_message.set_name('ASO', 'ASO_CONC_REQUEST_RUNNING');
571 fnd_msg_pub.add;
572 end if;
573
574 x_return_status := fnd_api.g_ret_sts_error;
575 raise fnd_api.g_exc_error;
576
577 end if;
578
579 END IF;
580
581 -- Invoke table handler(ASO_QUOTE_RELATED_OBJECTS_PKG.Delete_Row)
582 ASO_QUOTE_RELATED_OBJECTS_PKG.Delete_Row(
583 p_RELATED_OBJECT_ID => p_RELATED_OBJ_rec.RELATED_OBJECT_ID);
584
585 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
586 RAISE FND_API.G_EXC_ERROR;
587 END IF;
588 --
589 -- End of API body
590 --
591
592 -- Standard check for p_commit
593 IF FND_API.to_Boolean( p_commit )
594 THEN
595 COMMIT WORK;
599
596 END IF;
597
598
600
601 -- Standard call to get message count and if count is 1, get message info.
602 FND_MSG_PUB.Count_And_Get
603 ( p_count => x_msg_count,
604 p_data => x_msg_data);
605
606 EXCEPTION
607 WHEN FND_API.G_EXC_ERROR THEN
608 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
609 P_API_NAME => L_API_NAME
610 ,P_PKG_NAME => G_PKG_NAME
611 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
612 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
613 ,P_SQLCODE => SQLCODE
614 ,P_SQLERRM => SQLERRM
615 ,X_MSG_COUNT => X_MSG_COUNT
616 ,X_MSG_DATA => X_MSG_DATA
617 ,X_RETURN_STATUS => X_RETURN_STATUS);
618
619 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
620 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
621 P_API_NAME => L_API_NAME
622 ,P_PKG_NAME => G_PKG_NAME
623 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
624 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
625 ,P_SQLCODE => SQLCODE
626 ,P_SQLERRM => SQLERRM
627 ,X_MSG_COUNT => X_MSG_COUNT
628 ,X_MSG_DATA => X_MSG_DATA
629 ,X_RETURN_STATUS => X_RETURN_STATUS);
630
631 WHEN OTHERS THEN
632 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
633 P_API_NAME => L_API_NAME
634 ,P_PKG_NAME => G_PKG_NAME
635 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
636 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
637 ,P_SQLCODE => SQLCODE
638 ,P_SQLERRM => SQLERRM
639 ,X_MSG_COUNT => X_MSG_COUNT
640 ,X_MSG_DATA => X_MSG_DATA
641 ,X_RETURN_STATUS => X_RETURN_STATUS);
642
643 End Delete_related_obj;
644
645
646
647
648 -- Item-level validation procedures
649 PROCEDURE Validate_RELATED_OBJECT_ID (
650 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
651 P_Validation_mode IN VARCHAR2,
652 P_RELATED_OBJECT_ID IN NUMBER,
653 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
654 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
655 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
656 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
657 )
658 IS
659 BEGIN
660
661 -- Initialize message list if p_init_msg_list is set to TRUE.
662 IF FND_API.to_Boolean( p_init_msg_list )
663 THEN
664 FND_MSG_PUB.initialize;
665 END IF;
666
667
668 -- Initialize API return status to SUCCESS
669 x_return_status := FND_API.G_RET_STS_SUCCESS;
670
671 -- validate NOT NULL column
672 IF(p_RELATED_OBJECT_ID is NULL)
673 THEN
674 --ASO_UTILITY_PVT.Print('ERROR', 'Private related_obj API: -Violate NOT NULL constraint(RELATED_OBJECT_ID)');
675 x_return_status := FND_API.G_RET_STS_ERROR;
676 END IF;
677
681 -- IF p_RELATED_OBJECT_ID is not NULL and p_RELATED_OBJECT_ID <> G_MISS_CHAR
678 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
679 THEN
680 -- Hint: Validate data
682 -- verify if data is valid
683 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
684 NULL;
685 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
686 THEN
687 -- Hint: Validate data
688 -- IF p_RELATED_OBJECT_ID <> G_MISS_CHAR
689 -- verify if data is valid
690 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
691 NULL;
692 END IF;
693
694 -- Standard call to get message count and if count is 1, get message info.
695 FND_MSG_PUB.Count_And_Get
696 ( p_count => x_msg_count,
697 p_data => x_msg_data
698 );
699
700 END Validate_RELATED_OBJECT_ID;
701
702
703 PROCEDURE Validate_REQUEST_ID (
704 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
705 P_Validation_mode IN VARCHAR2,
706 P_REQUEST_ID IN NUMBER,
707 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
708 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
709 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
710 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
714
711 )
712 IS
713 BEGIN
715 -- Initialize message list if p_init_msg_list is set to TRUE.
716 IF FND_API.to_Boolean( p_init_msg_list )
717 THEN
718 FND_MSG_PUB.initialize;
719 END IF;
720
721
722 -- Initialize API return status to SUCCESS
723 x_return_status := FND_API.G_RET_STS_SUCCESS;
724
725 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
726 THEN
727 -- Hint: Validate data
728 -- IF p_REQUEST_ID is not NULL and p_REQUEST_ID <> G_MISS_CHAR
729 -- verify if data is valid
730 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
731 NULL;
732 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
733 THEN
734 -- Hint: Validate data
735 -- IF p_REQUEST_ID <> G_MISS_CHAR
736 -- verify if data is valid
737 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
738 NULL;
739 END IF;
740
741 -- Standard call to get message count and if count is 1, get message info.
742 FND_MSG_PUB.Count_And_Get
743 ( p_count => x_msg_count,
744 p_data => x_msg_data
745 );
746
747 END Validate_REQUEST_ID;
748
749
750 PROCEDURE Validate_PROGRAM_APPL_ID (
751 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
752 P_Validation_mode IN VARCHAR2,
753 P_PROGRAM_APPLICATION_ID IN NUMBER,
754 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
755 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
756 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
757 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
758 )
759 IS
760 BEGIN
761
762 -- Initialize message list if p_init_msg_list is set to TRUE.
763 IF FND_API.to_Boolean( p_init_msg_list )
764 THEN
765 FND_MSG_PUB.initialize;
766 END IF;
767
768
769 -- Initialize API return status to SUCCESS
770 x_return_status := FND_API.G_RET_STS_SUCCESS;
771
772 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
773 THEN
774 -- Hint: Validate data
775 -- IF p_PROGRAM_APPLICATION_ID is not NULL and p_PROGRAM_APPLICATION_ID <> G_MISS_CHAR
776 -- verify if data is valid
777 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
778 NULL;
779 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
780 THEN
781 -- Hint: Validate data
782 -- IF p_PROGRAM_APPLICATION_ID <> G_MISS_CHAR
783 -- verify if data is valid
784 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
785 NULL;
786 END IF;
787
788 -- Standard call to get message count and if count is 1, get message info.
789 FND_MSG_PUB.Count_And_Get
790 ( p_count => x_msg_count,
791 p_data => x_msg_data
792 );
793
794 END Validate_PROGRAM_APPL_ID;
795
796
797 PROCEDURE Validate_PROGRAM_ID (
798 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
799 P_Validation_mode IN VARCHAR2,
800 P_PROGRAM_ID IN NUMBER,
801 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
802 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
803 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
804 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
805 )
806 IS
807 BEGIN
808
809 -- Initialize message list if p_init_msg_list is set to TRUE.
810 IF FND_API.to_Boolean( p_init_msg_list )
811 THEN
812 FND_MSG_PUB.initialize;
813 END IF;
814
815
816 -- Initialize API return status to SUCCESS
817 x_return_status := FND_API.G_RET_STS_SUCCESS;
818
819 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
820 THEN
821 -- Hint: Validate data
822 -- IF p_PROGRAM_ID is not NULL and p_PROGRAM_ID <> G_MISS_CHAR
823 -- verify if data is valid
824 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
825 NULL;
826 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
827 THEN
828 -- Hint: Validate data
829 -- IF p_PROGRAM_ID <> G_MISS_CHAR
830 -- verify if data is valid
831 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
832 NULL;
833 END IF;
834
835 -- Standard call to get message count and if count is 1, get message info.
836 FND_MSG_PUB.Count_And_Get
837 ( p_count => x_msg_count,
841 END Validate_PROGRAM_ID;
838 p_data => x_msg_data
839 );
840
842
843
844 PROCEDURE Validate_PROGRAM_UPDATE_DATE (
845 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
846 P_Validation_mode IN VARCHAR2,
847 P_PROGRAM_UPDATE_DATE IN DATE,
848 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
849 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
850 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
851 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
852 )
853 IS
854 BEGIN
855
856 -- Initialize message list if p_init_msg_list is set to TRUE.
857 IF FND_API.to_Boolean( p_init_msg_list )
858 THEN
859 FND_MSG_PUB.initialize;
860 END IF;
861
862
863 -- Initialize API return status to SUCCESS
864 x_return_status := FND_API.G_RET_STS_SUCCESS;
865
866 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
867 THEN
868 -- Hint: Validate data
869 -- IF p_PROGRAM_UPDATE_DATE is not NULL and p_PROGRAM_UPDATE_DATE <> G_MISS_CHAR
870 -- verify if data is valid
871 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
872 NULL;
873 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
874 THEN
875 -- Hint: Validate data
876 -- IF p_PROGRAM_UPDATE_DATE <> G_MISS_CHAR
877 -- verify if data is valid
878 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
879 NULL;
880 END IF;
881
882 -- Standard call to get message count and if count is 1, get message info.
883 FND_MSG_PUB.Count_And_Get
884 ( p_count => x_msg_count,
885 p_data => x_msg_data
886 );
887
888 END Validate_PROGRAM_UPDATE_DATE;
889
890
891 PROCEDURE Validate_QTE_OBJ_TYPE_CODE (
892 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
893 P_Validation_mode IN VARCHAR2,
894 P_QUOTE_OBJECT_TYPE_CODE IN VARCHAR2,
895 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
896 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
897 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
898 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
899 )
900 IS
901 l_count NUMBER;
902 BEGIN
903
904 -- Initialize message list if p_init_msg_list is set to TRUE.
905 IF FND_API.to_Boolean( p_init_msg_list )
906 THEN
907 FND_MSG_PUB.initialize;
908 END IF;
909
910
911 -- Initialize API return status to SUCCESS
912 x_return_status := FND_API.G_RET_STS_SUCCESS;
913
914 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
915 THEN
916 -- Hint: Validate data
917 -- IF p_QUOTE_OBJECT_TYPE_CODE is not NULL and p_QUOTE_OBJECT_TYPE_CODE <> G_MISS_CHAR
918 -- verify if data is valid
919 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
920 NULL;
921
922 select count(*) into l_count
923 from aso_lookups
924 where lookup_type = 'ASO_QUOTE_OBJECT_TYPE'
925 and lookup_code = p_QUOTE_OBJECT_TYPE_CODE;
926
927 IF l_count < 1 THEN
928 x_return_status := FND_API.G_RET_STS_ERROR;
929 END IF;
930
931 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
932 THEN
933 -- Hint: Validate data
934 -- IF p_QUOTE_OBJECT_TYPE_CODE <> G_MISS_CHAR
935 -- verify if data is valid
936 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
937 NULL;
938
939 IF p_QUOTE_OBJECT_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
940 select count(*) into l_count
941 from aso_lookups
942 where lookup_type = 'ASO_QUOTE_OBJECT_TYPE'
943 and lookup_code = p_QUOTE_OBJECT_TYPE_CODE;
944
945 IF l_count < 1 THEN
946 x_return_status := FND_API.G_RET_STS_ERROR;
947 END IF;
948 END IF;
949 END IF;
950
951 -- Standard call to get message count and if count is 1, get message info.
952 FND_MSG_PUB.Count_And_Get
953 ( p_count => x_msg_count,
954 p_data => x_msg_data
955 );
956
957 END Validate_QTE_OBJ_TYPE_CODE;
958
959
960 PROCEDURE Validate_QUOTE_OBJECT_ID (
961 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
962 P_Validation_mode IN VARCHAR2,
963 P_QUOTE_OBJECT_ID IN NUMBER,
964 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
965 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
966 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
967 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
968 )
969 IS
970 BEGIN
971
975 FND_MSG_PUB.initialize;
972 -- Initialize message list if p_init_msg_list is set to TRUE.
973 IF FND_API.to_Boolean( p_init_msg_list )
974 THEN
976 END IF;
977
978
979 -- Initialize API return status to SUCCESS
980 x_return_status := FND_API.G_RET_STS_SUCCESS;
981
982 -- validate NOT NULL column
983 IF(p_QUOTE_OBJECT_ID is NULL)
984 THEN
985 --ASO_UTILITY_PVT.Print('ERROR', 'Private related_obj API: -Violate NOT NULL constraint(QUOTE_OBJECT_ID)');
986 x_return_status := FND_API.G_RET_STS_ERROR;
987 END IF;
988 /*
989 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
990 THEN
991 -- Hint: Validate data
992 -- IF p_QUOTE_OBJECT_ID is not NULL and p_QUOTE_OBJECT_ID <> G_MISS_CHAR
993 -- verify if data is valid
994 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
995 NULL;
996
997
998 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
999 THEN
1000 -- Hint: Validate data
1001 -- IF p_QUOTE_OBJECT_ID <> G_MISS_CHAR
1002 -- verify if data is valid
1003 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1004 NULL;
1005 END IF;
1006 */
1007
1008
1009
1010 -- Standard call to get message count and if count is 1, get message info.
1011 FND_MSG_PUB.Count_And_Get
1012 ( p_count => x_msg_count,
1013 p_data => x_msg_data
1014 );
1015
1016 END Validate_QUOTE_OBJECT_ID;
1017
1018
1019 PROCEDURE Validate_OBJECT_TYPE_CODE (
1020 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1021 P_Validation_mode IN VARCHAR2,
1022 P_OBJECT_TYPE_CODE IN VARCHAR2,
1023 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1024 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1025 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1026 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1027 )
1028 IS
1029 l_count NUMBER;
1030 BEGIN
1031
1032 -- Initialize message list if p_init_msg_list is set to TRUE.
1033 IF FND_API.to_Boolean( p_init_msg_list )
1034 THEN
1035 FND_MSG_PUB.initialize;
1036 END IF;
1037
1038
1039 -- Initialize API return status to SUCCESS
1040 x_return_status := FND_API.G_RET_STS_SUCCESS;
1041
1042 -- validate NOT NULL column
1043 IF(p_OBJECT_TYPE_CODE is NULL)
1044 THEN
1045 --ASO_UTILITY_PVT.Print('ERROR', 'Private related_obj API: -Violate NOT NULL constraint(OBJECT_TYPE_CODE)');
1046 x_return_status := FND_API.G_RET_STS_ERROR;
1047 END IF;
1048
1049 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1050 THEN
1051 -- Hint: Validate data
1052 -- IF p_OBJECT_TYPE_CODE is not NULL and p_OBJECT_TYPE_CODE <> G_MISS_CHAR
1053 -- verify if data is valid
1054 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1055 NULL;
1056
1057 select count(*) into l_count
1058 from aso_lookups
1059 where lookup_type = 'ASO_RELATED_OBJECT_TYPE'
1060 and lookup_code = p_OBJECT_TYPE_CODE;
1061
1062 IF l_count < 1 THEN
1063 x_return_status := FND_API.G_RET_STS_ERROR;
1064 END IF;
1065
1066 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1067 THEN
1068 -- Hint: Validate data
1069 -- IF p_OBJECT_TYPE_CODE <> G_MISS_CHAR
1070 -- verify if data is valid
1071 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1072 NULL;
1073
1074 IF p_OBJECT_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
1075 select count(*) into l_count
1076 from aso_lookups
1077 where lookup_type = 'ASO_RELATED_OBJECT_TYPE'
1078 and lookup_code = p_OBJECT_TYPE_CODE;
1079
1080 IF l_count < 1 THEN
1081 x_return_status := FND_API.G_RET_STS_ERROR;
1082 END IF;
1083 END IF;
1084 END IF;
1085
1086 -- Standard call to get message count and if count is 1, get message info.
1087 FND_MSG_PUB.Count_And_Get
1088 ( p_count => x_msg_count,
1089 p_data => x_msg_data
1090 );
1091
1092 END Validate_OBJECT_TYPE_CODE;
1093
1094
1095 PROCEDURE Validate_OBJECT_ID (
1096 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1097 P_Validation_mode IN VARCHAR2,
1098 P_OBJECT_ID IN NUMBER,
1099 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1100 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1101 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1102 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1103 )
1104 IS
1105 BEGIN
1106
1107 -- Initialize message list if p_init_msg_list is set to TRUE.
1108 IF FND_API.to_Boolean( p_init_msg_list )
1109 THEN
1110 FND_MSG_PUB.initialize;
1111 END IF;
1112
1113
1114 -- Initialize API return status to SUCCESS
1115 x_return_status := FND_API.G_RET_STS_SUCCESS;
1116
1117 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1121 -- verify if data is valid
1118 THEN
1119 -- Hint: Validate data
1120 -- IF p_OBJECT_ID is not NULL and p_OBJECT_ID <> G_MISS_CHAR
1122 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1123 NULL;
1124 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1125 THEN
1126 -- Hint: Validate data
1127 -- IF p_OBJECT_ID <> G_MISS_CHAR
1128 -- verify if data is valid
1129 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1130 NULL;
1131 END IF;
1132
1133 -- Standard call to get message count and if count is 1, get message info.
1134 FND_MSG_PUB.Count_And_Get
1135 ( p_count => x_msg_count,
1136 p_data => x_msg_data
1137 );
1138
1139 END Validate_OBJECT_ID;
1140
1141
1142 PROCEDURE Validate_RLTSHIP_TYPE_CODE (
1143 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1144 P_Validation_mode IN VARCHAR2,
1145 P_RELATIONSHIP_TYPE_CODE IN VARCHAR2,
1146 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1147 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1148 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1149 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1150 )
1151 IS
1152 l_count NUMBER;
1153 BEGIN
1154
1155 -- Initialize message list if p_init_msg_list is set to TRUE.
1156 IF FND_API.to_Boolean( p_init_msg_list )
1157 THEN
1158 FND_MSG_PUB.initialize;
1159 END IF;
1160
1161
1162 -- Initialize API return status to SUCCESS
1163 x_return_status := FND_API.G_RET_STS_SUCCESS;
1164
1165 -- validate NOT NULL column
1166 IF(p_RELATIONSHIP_TYPE_CODE is NULL)
1167 THEN
1168 --ASO_UTILITY_PVT.Print('ERROR', 'Private related_obj API: -Violate NOT NULL constraint(RELATIONSHIP_TYPE_CODE)');
1169 x_return_status := FND_API.G_RET_STS_ERROR;
1170 END IF;
1171
1172 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1173 THEN
1174 -- Hint: Validate data
1175 -- IF p_RELATIONSHIP_TYPE_CODE is not NULL and p_RELATIONSHIP_TYPE_CODE <> G_MISS_CHAR
1176 -- verify if data is valid
1177 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1178 NULL;
1179
1180 SELECT count(*) into l_count
1181 from aso_lookups
1182 where lookup_type = 'ASO_OBJECT_RELATIONSHIP_TYPE'
1183 and lookup_code = p_RELATIONSHIP_TYPE_CODE;
1184
1185 IF l_count < 1 THEN
1186 x_return_status := FND_API.G_RET_STS_ERROR;
1187 END IF;
1188
1189 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1190 THEN
1191 -- Hint: Validate data
1192 -- IF p_RELATIONSHIP_TYPE_CODE <> G_MISS_CHAR
1193 -- verify if data is valid
1194 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1195 NULL;
1196
1197 IF p_RELATIONSHIP_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
1198 SELECT count(*) into l_count
1199 from aso_lookups
1200 where lookup_type = 'ASO_OBJECT_RELATIONSHIP_TYPE'
1201 and lookup_code = p_RELATIONSHIP_TYPE_CODE;
1202
1203 IF l_count < 1 THEN
1204 x_return_status := FND_API.G_RET_STS_ERROR;
1205 END IF;
1206 END IF;
1207 END IF;
1208
1209 -- Standard call to get message count and if count is 1, get message info.
1210 FND_MSG_PUB.Count_And_Get
1211 ( p_count => x_msg_count,
1212 p_data => x_msg_data
1213 );
1214
1215 END Validate_RLTSHIP_TYPE_CODE;
1216
1217
1218 PROCEDURE Validate_RECIPROCAL_FLAG (
1219 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1220 P_Validation_mode IN VARCHAR2,
1221 P_RECIPROCAL_FLAG IN VARCHAR2,
1222 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1223 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1224 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1225 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1226 )
1227 IS
1228 BEGIN
1229
1230 -- Initialize message list if p_init_msg_list is set to TRUE.
1231 IF FND_API.to_Boolean( p_init_msg_list )
1232 THEN
1233 FND_MSG_PUB.initialize;
1234 END IF;
1235
1236
1237 -- Initialize API return status to SUCCESS
1238 x_return_status := FND_API.G_RET_STS_SUCCESS;
1239
1240 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1241 THEN
1242 -- Hint: Validate data
1243 -- IF p_RECIPROCAL_FLAG is not NULL and p_RECIPROCAL_FLAG <> G_MISS_CHAR
1244 -- verify if data is valid
1245 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1246 NULL;
1247 IF (p_RECIPROCAL_FLAG <> FND_API.G_TRUE or p_RECIPROCAL_FLAG <> FND_API.G_FALSE) THEN
1248 x_return_status := FND_API.G_RET_STS_ERROR;
1249 END IF;
1250
1251 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1252 THEN
1253 -- Hint: Validate data
1254 -- IF p_RECIPROCAL_FLAG <> G_MISS_CHAR
1255 -- verify if data is valid
1259 IF (p_RECIPROCAL_FLAG <> FND_API.G_TRUE or p_RECIPROCAL_FLAG <> FND_API.G_FALSE) THEN
1256 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1257 NULL;
1258 IF p_RECIPROCAL_FLAG <> FND_API.G_MISS_CHAR THEN
1260 x_return_status := FND_API.G_RET_STS_ERROR;
1261 END IF;
1262 END IF;
1263 END IF;
1264
1265 -- Standard call to get message count and if count is 1, get message info.
1266 FND_MSG_PUB.Count_And_Get
1267 ( p_count => x_msg_count,
1268 p_data => x_msg_data
1269 );
1270
1271 END Validate_RECIPROCAL_FLAG;
1272
1273
1274 PROCEDURE Validate_QUOTE_OBJECT_CODE (
1275 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1276 P_Validation_mode IN VARCHAR2,
1277 P_QUOTE_OBJECT_CODE IN NUMBER,
1278 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1279 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1280 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1281 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1282 )
1283 IS
1284 BEGIN
1285
1286 -- Initialize message list if p_init_msg_list is set to TRUE.
1287 IF FND_API.to_Boolean( p_init_msg_list )
1288 THEN
1289 FND_MSG_PUB.initialize;
1290 END IF;
1291
1292
1293 -- Initialize API return status to SUCCESS
1294 x_return_status := FND_API.G_RET_STS_SUCCESS;
1295
1296 -- validate NOT NULL column
1297 IF(p_QUOTE_OBJECT_CODE is NULL)
1298 THEN
1299 --ASO_UTILITY_PVT.Print('ERROR', 'Private related_obj API: -Violate NOT NULL constraint(QUOTE_OBJECT_CODE)');
1300 x_return_status := FND_API.G_RET_STS_ERROR;
1301 END IF;
1302
1303 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1304 THEN
1305 -- Hint: Validate data
1306 -- IF p_QUOTE_OBJECT_CODE is not NULL and p_QUOTE_OBJECT_CODE <> G_MISS_CHAR
1307 -- verify if data is valid
1308 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1309 NULL;
1310 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1311 THEN
1312 -- Hint: Validate data
1313 -- IF p_QUOTE_OBJECT_CODE <> G_MISS_CHAR
1314 -- verify if data is valid
1315 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1316 NULL;
1317 END IF;
1318
1319 -- Standard call to get message count and if count is 1, get message info.
1320 FND_MSG_PUB.Count_And_Get
1321 ( p_count => x_msg_count,
1322 p_data => x_msg_data
1323 );
1324
1325 END Validate_QUOTE_OBJECT_CODE;
1326
1327
1328 -- Hint: inter-field level validation can be added here.
1329 -- Hint: If p_validation_mode = ASO_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1330 -- to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1331 -- stored in database table.
1332 PROCEDURE Validate_RELATED_OBJ_rec(
1333 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1334 P_Validation_mode IN VARCHAR2,
1335 P_RELATED_OBJ_Rec IN ASO_QUOTE_PUB.RELATED_OBJ_Rec_Type,
1336 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1337 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1338 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1339 )
1340 IS
1341 l_count NUMBER;
1342 BEGIN
1343
1344 -- Initialize message list if p_init_msg_list is set to TRUE.
1345 IF FND_API.to_Boolean( p_init_msg_list )
1346 THEN
1347 FND_MSG_PUB.initialize;
1348 END IF;
1349
1350
1351 -- Initialize API return status to SUCCESS
1352 x_return_status := FND_API.G_RET_STS_SUCCESS;
1353
1354 -- Hint: Validate data
1355 -- If data not valid
1356 -- THEN
1357 -- x_return_status := FND_API.G_RET_STS_ERROR;
1358
1359 IF P_RELATED_OBJ_Rec.quote_object_type_code = 'MODEL' then
1360 select count(*) into l_count
1361 from aso_quote_headers_all
1362 where quote_header_id = P_RELATED_OBJ_Rec.quote_object_id;
1363
1364 IF l_count < 1 THEN
1365 x_return_status := FND_API.G_RET_STS_ERROR;
1366 END IF;
1367
1368 ELSIF P_RELATED_OBJ_Rec.quote_object_type_code = 'LINE' THEN
1369 select count(*) into l_count
1370 from aso_quote_lines_all
1371 where quote_line_id = P_RELATED_OBJ_Rec.quote_object_id;
1372
1373 IF l_count < 1 THEN
1374 x_return_status := FND_API.G_RET_STS_ERROR;
1375 END IF;
1376
1377 ELSIF P_RELATED_OBJ_Rec.quote_object_type_code = 'SHIPMENT' THEN
1378 select count(*) into l_count
1379 from aso_shipments
1380 where shipment_id = P_RELATED_OBJ_Rec.quote_object_id;
1381
1382 IF l_count < 1 THEN
1383 x_return_status := FND_API.G_RET_STS_ERROR;
1384 END IF;
1385 END IF;
1386
1387 -- Debug Message
1388 --ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'API_INVALID_RECORD');
1389
1390 -- Standard call to get message count and if count is 1, get message info.
1391 FND_MSG_PUB.Count_And_Get
1392 ( p_count => x_msg_count,
1393 p_data => x_msg_data
1394 );
1395
1399 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1396 END Validate_RELATED_OBJ_Rec;
1397
1398 PROCEDURE Validate_related_obj(
1400 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1401 P_Validation_mode IN VARCHAR2,
1402 P_RELATED_OBJ_Rec IN ASO_QUOTE_PUB.RELATED_OBJ_Rec_Type,
1403 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1404 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1405 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1406 )
1407 IS
1408 l_api_name CONSTANT VARCHAR2(30) := 'Validate_related_obj';
1409 BEGIN
1410
1411 -- Debug Message
1412 --ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
1413
1414
1415 -- Initialize API return status to SUCCESS
1416 x_return_status := FND_API.G_RET_STS_SUCCESS;
1417
1418 IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
1419 -- Hint: We provide validation procedure for every column. Developer should delete
1420 -- unnecessary validation procedures.
1421 Validate_RELATED_OBJECT_ID(
1422 p_init_msg_list => FND_API.G_FALSE,
1423 p_validation_mode => p_validation_mode,
1424 p_RELATED_OBJECT_ID => P_RELATED_OBJ_Rec.RELATED_OBJECT_ID,
1425 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1426 x_return_status => x_return_status,
1427 x_msg_count => x_msg_count,
1428 x_msg_data => x_msg_data);
1429 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1430 raise FND_API.G_EXC_ERROR;
1431 END IF;
1432
1433 Validate_REQUEST_ID(
1434 p_init_msg_list => FND_API.G_FALSE,
1435 p_validation_mode => p_validation_mode,
1436 p_REQUEST_ID => P_RELATED_OBJ_Rec.REQUEST_ID,
1437 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1438 x_return_status => x_return_status,
1439 x_msg_count => x_msg_count,
1440 x_msg_data => x_msg_data);
1441 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1442 raise FND_API.G_EXC_ERROR;
1443 END IF;
1444
1445 Validate_PROGRAM_APPL_ID(
1446 p_init_msg_list => FND_API.G_FALSE,
1447 p_validation_mode => p_validation_mode,
1448 p_PROGRAM_APPLICATION_ID => P_RELATED_OBJ_Rec.PROGRAM_APPLICATION_ID,
1449 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1450 x_return_status => x_return_status,
1451 x_msg_count => x_msg_count,
1452 x_msg_data => x_msg_data);
1453 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1454 raise FND_API.G_EXC_ERROR;
1455 END IF;
1456
1457 Validate_PROGRAM_ID(
1458 p_init_msg_list => FND_API.G_FALSE,
1459 p_validation_mode => p_validation_mode,
1460 p_PROGRAM_ID => P_RELATED_OBJ_Rec.PROGRAM_ID,
1461 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1462 x_return_status => x_return_status,
1463 x_msg_count => x_msg_count,
1464 x_msg_data => x_msg_data);
1465 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1466 raise FND_API.G_EXC_ERROR;
1467 END IF;
1468
1469 Validate_PROGRAM_UPDATE_DATE(
1470 p_init_msg_list => FND_API.G_FALSE,
1471 p_validation_mode => p_validation_mode,
1472 p_PROGRAM_UPDATE_DATE => P_RELATED_OBJ_Rec.PROGRAM_UPDATE_DATE,
1473 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1474 x_return_status => x_return_status,
1475 x_msg_count => x_msg_count,
1476 x_msg_data => x_msg_data);
1477 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1478 raise FND_API.G_EXC_ERROR;
1479 END IF;
1480
1481 Validate_QTE_OBJ_TYPE_CODE(
1482 p_init_msg_list => FND_API.G_FALSE,
1483 p_validation_mode => p_validation_mode,
1484 p_QUOTE_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.QUOTE_OBJECT_TYPE_CODE,
1485 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1486 x_return_status => x_return_status,
1487 x_msg_count => x_msg_count,
1488 x_msg_data => x_msg_data);
1489 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1490 raise FND_API.G_EXC_ERROR;
1491 END IF;
1492
1493 Validate_QUOTE_OBJECT_ID(
1494 p_init_msg_list => FND_API.G_FALSE,
1495 p_validation_mode => p_validation_mode,
1496 p_QUOTE_OBJECT_ID => P_RELATED_OBJ_Rec.QUOTE_OBJECT_ID,
1497 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1498 x_return_status => x_return_status,
1499 x_msg_count => x_msg_count,
1503 END IF;
1500 x_msg_data => x_msg_data);
1501 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1502 raise FND_API.G_EXC_ERROR;
1504
1505 Validate_OBJECT_TYPE_CODE(
1506 p_init_msg_list => FND_API.G_FALSE,
1507 p_validation_mode => p_validation_mode,
1508 p_OBJECT_TYPE_CODE => P_RELATED_OBJ_Rec.OBJECT_TYPE_CODE,
1509 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1510 x_return_status => x_return_status,
1511 x_msg_count => x_msg_count,
1512 x_msg_data => x_msg_data);
1513 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1514 raise FND_API.G_EXC_ERROR;
1515 END IF;
1516
1517 Validate_OBJECT_ID(
1518 p_init_msg_list => FND_API.G_FALSE,
1519 p_validation_mode => p_validation_mode,
1520 p_OBJECT_ID => P_RELATED_OBJ_Rec.OBJECT_ID,
1521 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1522 x_return_status => x_return_status,
1523 x_msg_count => x_msg_count,
1524 x_msg_data => x_msg_data);
1525 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1526 raise FND_API.G_EXC_ERROR;
1527 END IF;
1528
1529 Validate_RLTSHIP_TYPE_CODE(
1530 p_init_msg_list => FND_API.G_FALSE,
1531 p_validation_mode => p_validation_mode,
1532 p_RELATIONSHIP_TYPE_CODE => P_RELATED_OBJ_Rec.RELATIONSHIP_TYPE_CODE,
1533 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1534 x_return_status => x_return_status,
1535 x_msg_count => x_msg_count,
1536 x_msg_data => x_msg_data);
1537 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1538 raise FND_API.G_EXC_ERROR;
1539 END IF;
1540
1541 Validate_RECIPROCAL_FLAG(
1542 p_init_msg_list => FND_API.G_FALSE,
1543 p_validation_mode => p_validation_mode,
1544 p_RECIPROCAL_FLAG => P_RELATED_OBJ_Rec.RECIPROCAL_FLAG,
1545 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1546 x_return_status => x_return_status,
1547 x_msg_count => x_msg_count,
1548 x_msg_data => x_msg_data);
1549 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1550 raise FND_API.G_EXC_ERROR;
1551 END IF;
1552
1553 Validate_QUOTE_OBJECT_CODE(
1554 p_init_msg_list => FND_API.G_FALSE,
1555 p_validation_mode => p_validation_mode,
1556 p_QUOTE_OBJECT_CODE => P_RELATED_OBJ_Rec.QUOTE_OBJECT_CODE,
1557 -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY /* file.sql.39 change */ parameter if you'd like to pass back item property.
1558 x_return_status => x_return_status,
1559 x_msg_count => x_msg_count,
1560 x_msg_data => x_msg_data);
1561 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1562 raise FND_API.G_EXC_ERROR;
1563 END IF;
1564
1565 END IF;
1566
1567 IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD) THEN
1568 -- Hint: Inter-field level validation can be added here
1569 -- invoke record level validation procedures
1570 Validate_RELATED_OBJ_Rec(
1571 p_init_msg_list => FND_API.G_FALSE,
1572 p_validation_mode => p_validation_mode,
1573 P_RELATED_OBJ_Rec => P_RELATED_OBJ_Rec,
1574 x_return_status => x_return_status,
1575 x_msg_count => x_msg_count,
1576 x_msg_data => x_msg_data);
1577
1578 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1579 raise FND_API.G_EXC_ERROR;
1580 END IF;
1581 END IF;
1582
1583 IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD) THEN
1584 -- invoke inter-record level validation procedures
1585 NULL;
1586 END IF;
1587
1588 IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY) THEN
1589 -- invoke inter-entity level validation procedures
1590 NULL;
1591 END IF;
1592
1593
1594 -- Debug Message
1595 --ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
1596
1597 END Validate_related_obj;
1598
1599 End aso_RELATED_OBJ_PVT;