[Home] [Help]
PACKAGE BODY: APPS.CSP_REQUIREMENT_LINES_PVT
Source
1 PACKAGE BODY CSP_Requirement_Lines_PVT as
2 /* $Header: cspvrqlb.pls 115.7 2003/05/02 00:29:36 phegde noship $ */
3 -- Start of Comments
4 -- Package name : CSP_Requirement_Lines_PVT
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_Requirement_Lines_PVT';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cspvrqlb.pls';
12
13
14 -- Hint: Primary key needs to be returned.
15 PROCEDURE Create_requirement_lines(
16 P_Api_Version_Number IN NUMBER,
17 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
18 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
19 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
20 P_Requirement_Line_Tbl IN Requirement_Line_Tbl_Type := G_MISS_Requirement_Line_Tbl,
21 x_Requirement_Line_tbl OUT NOCOPY Requirement_Line_Tbl_Type,
22 X_Return_Status OUT NOCOPY VARCHAR2,
23 X_Msg_Count OUT NOCOPY NUMBER,
24 X_Msg_Data OUT NOCOPY VARCHAR2
25 )
26
27 IS
28 l_api_name CONSTANT VARCHAR2(30) := 'Create_requirement_lines';
29 l_api_version_number CONSTANT NUMBER := 1.0;
30 l_return_status_full VARCHAR2(1);
31 l_access_flag VARCHAR2(1);
32
33 l_requirement_line_Rec Requirement_Line_Rec_Type;
34 l_requirement_line_id NUMBER;
35 BEGIN
36 -- Standard Start of API savepoint
37 SAVEPOINT CREATE_Requirement_Lines_PUB;
38
39 -- Standard call to check for call compatibility.
40 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
41 p_api_version_number,
42 l_api_name,
43 G_PKG_NAME)
44 THEN
45 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
46 END IF;
47
48
49 -- Initialize message list if p_init_msg_list is set to TRUE.
50 IF FND_API.to_Boolean( p_init_msg_list )
51 THEN
52 FND_MSG_PUB.initialize;
53 END IF;
54
55
56 -- Debug Message
57 -- JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
58
59 -- Initialize API return status to SUCCESS
60 x_return_status := FND_API.G_RET_STS_SUCCESS;
61
62 --
63 -- API body
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('CSP', '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 IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
81 THEN
82 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
83 p_api_version_number => 2.0
84 ,p_init_msg_list => p_init_msg_list
85 ,p_salesforce_id => NULL
86 ,p_admin_group_id => p_admin_group_id
87 ,x_return_status => x_return_status
88 ,x_msg_count => x_msg_count
89 ,x_msg_data => x_msg_data
90 ,x_sales_member_rec => l_identity_sales_member_rec);
91
92
93 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
94 RAISE FND_API.G_EXC_ERROR;
95 END IF;
96
97 END IF;
98 */
99 -- Debug Message
100 --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling create table handler');
101
102 -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Insert_Row)
103 FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
104
105 l_requirement_line_rec := P_Requirement_Line_Tbl(I);
106
107 CSP_REQUIREMENT_LINES_PKG.Insert_Row(
108 px_REQUIREMENT_LINE_ID => l_requirement_line_rec.requirement_line_id,
109 p_CREATED_BY => FND_GLOBAL.USER_ID,
110 p_CREATION_DATE => SYSDATE,
111 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
112 p_LAST_UPDATE_DATE => SYSDATE,
113 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
114 p_REQUIREMENT_HEADER_ID => l_Requirement_Line_rec.REQUIREMENT_HEADER_ID,
115 p_INVENTORY_ITEM_ID => l_Requirement_Line_rec.INVENTORY_ITEM_ID,
116 p_UOM_CODE => l_Requirement_Line_rec.UOM_CODE,
117 p_REQUIRED_QUANTITY => l_Requirement_Line_rec.REQUIRED_QUANTITY,
118 p_SHIP_COMPLETE_FLAG => l_Requirement_Line_rec.SHIP_COMPLETE_FLAG,
119 p_LIKELIHOOD => l_Requirement_Line_rec.LIKELIHOOD,
120 p_REVISION => l_Requirement_Line_rec.REVISION,
121 p_SOURCE_ORGANIZATION_ID => l_Requirement_Line_rec.SOURCE_ORGANIZATION_ID,
122 p_SOURCE_SUBINVENTORY => l_Requirement_Line_rec.SOURCE_SUBINVENTORY,
123 p_ORDERED_QUANTITY => l_Requirement_Line_rec.ORDERED_QUANTITY,
124 p_ORDER_LINE_ID => l_Requirement_Line_rec.ORDER_LINE_ID,
125 p_RESERVATION_ID => l_Requirement_Line_rec.RESERVATION_ID,
126 p_ORDER_BY_DATE => l_Requirement_Line_rec.ORDER_BY_DATE,
127 p_ATTRIBUTE_CATEGORY => l_Requirement_Line_rec.ATTRIBUTE_CATEGORY,
128 p_ATTRIBUTE1 => l_Requirement_Line_rec.ATTRIBUTE1,
129 p_ATTRIBUTE2 => l_Requirement_Line_rec.ATTRIBUTE2,
130 p_ATTRIBUTE3 => l_Requirement_Line_rec.ATTRIBUTE3,
131 p_ATTRIBUTE4 => l_Requirement_Line_rec.ATTRIBUTE4,
132 p_ATTRIBUTE5 => l_Requirement_Line_rec.ATTRIBUTE5,
133 p_ATTRIBUTE6 => l_Requirement_Line_rec.ATTRIBUTE6,
134 p_ATTRIBUTE7 => l_Requirement_Line_rec.ATTRIBUTE7,
135 p_ATTRIBUTE8 => l_Requirement_Line_rec.ATTRIBUTE8,
136 p_ATTRIBUTE9 => l_Requirement_Line_rec.ATTRIBUTE9,
137 p_ATTRIBUTE10 => l_Requirement_Line_rec.ATTRIBUTE10,
138 p_ATTRIBUTE11 => l_Requirement_Line_rec.ATTRIBUTE11,
139 p_ATTRIBUTE12 => l_Requirement_Line_rec.ATTRIBUTE12,
140 p_ATTRIBUTE13 => l_Requirement_Line_rec.ATTRIBUTE13,
141 p_ATTRIBUTE14 => l_Requirement_Line_rec.ATTRIBUTE14,
142 p_ATTRIBUTE15 => l_Requirement_Line_rec.ATTRIBUTE15,
143 p_ARRIVAL_DATE => l_Requirement_line_rec.ARRIVAL_DATE,
144 p_ITEM_SCRATCHPAD => l_requirement_line_rec.item_scratchpad,
145 p_SHIPPING_METHOD_CODE => l_requirement_line_rec.shipping_method_code,
146 p_LOCAL_RESERVATION_ID => l_requirement_line_rec.LOCAL_RESERVATION_ID,
147 p_SOURCED_FROM => l_requirement_line_rec.SOURCED_FROM
148 );
149
150 -- Hint: Primary key should be returned.
151 x_REQUIREMENT_Line_Tbl(I) := l_requirement_line_rec;
152
153 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
154 RAISE FND_API.G_EXC_ERROR;
155 END IF;
156 END LOOP;
157 --
158 -- End of API body
159 --
160
161 -- Standard check for p_commit
162 /* IF FND_API.to_Boolean( p_commit )
163 THEN
164 COMMIT WORK;
165 END IF;
166 */
167
168 -- Debug Message
169 -- JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
170
171
172 -- Standard call to get message count and if count is 1, get message info.
173 /* FND_MSG_PUB.Count_And_Get
174 ( p_count => x_msg_count,
175 p_data => x_msg_data
176 ); */
177
178 EXCEPTION
179 WHEN FND_API.G_EXC_ERROR THEN
180 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
181 P_API_NAME => L_API_NAME
182 ,P_PKG_NAME => G_PKG_NAME
183 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
184 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
185 ,X_MSG_COUNT => X_MSG_COUNT
186 ,X_MSG_DATA => X_MSG_DATA
187 ,X_RETURN_STATUS => X_RETURN_STATUS);
188 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
189 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
190 P_API_NAME => L_API_NAME
191 ,P_PKG_NAME => G_PKG_NAME
192 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
193 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
194 ,X_MSG_COUNT => X_MSG_COUNT
195 ,X_MSG_DATA => X_MSG_DATA
196 ,X_RETURN_STATUS => X_RETURN_STATUS);
197 WHEN OTHERS THEN
198 Rollback to CREATE_Requirement_lines_PUB;
199 FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
200 FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
201 FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
202 FND_MSG_PUB.ADD;
203 fnd_msg_pub.count_and_get
204 ( p_count => x_msg_count
205 , p_data => x_msg_data);
206 x_return_status := FND_API.G_RET_STS_ERROR;
207 End Create_requirement_lines;
208
209
210 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
211 PROCEDURE Update_requirement_lines(
212 P_Api_Version_Number IN NUMBER,
213 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
214 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
215 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
216 P_Requirement_Line_Tbl IN Requirement_Line_Tbl_Type,
217 X_Return_Status OUT NOCOPY VARCHAR2,
218 X_Msg_Count OUT NOCOPY NUMBER,
219 X_Msg_Data OUT NOCOPY VARCHAR2
220 )
221
222 IS
223 /*
224 Cursor C_Get_requirement_lines(REQUIREMENT_LINE_ID Number) IS
225 Select rowid,
226 REQUIREMENT_LINE_ID,
227 CREATED_BY,
228 CREATION_DATE,
229 LAST_UPDATED_BY,
230 LAST_UPDATE_DATE,
231 LAST_UPDATE_LOGIN,
232 REQUIREMENT_HEADER_ID,
233 INVENTORY_ITEM_ID,
234 UOM_CODE,
235 REQUIRED_QUANTITY,
236 SHIP_COMPLETE_FLAG,
237 LIKELIHOOD,
238 REVISION,
239 SOURCE_ORGANIZATION_ID,
240 SOURCE_SUBINVENTORY,
241 ORDERED_QUANTITY,
242 ORDER_LINE_ID,
243 RESERVATION_ID,
244 ORDER_BY_DATE,
245 ATTRIBUTE_CATEGORY,
246 ATTRIBUTE1,
247 ATTRIBUTE2,
248 ATTRIBUTE3,
249 ATTRIBUTE4,
250 ATTRIBUTE5,
251 ATTRIBUTE6,
252 ATTRIBUTE7,
253 ATTRIBUTE8,
254 ATTRIBUTE9,
255 ATTRIBUTE10,
256 ATTRIBUTE11,
257 ATTRIBUTE12,
258 ATTRIBUTE13,
259 ATTRIBUTE14,
260 ATTRIBUTE15,
261 From CSP_REQUIREMENT_LINES
262 -- Hint: Developer need to provide Where clause
263 For Update NOWAIT;
264 */
265 l_api_name CONSTANT VARCHAR2(30) := 'Update_requirement_lines';
266 l_api_version_number CONSTANT NUMBER := 1.0;
267 -- Local Variables
268 l_Requirement_Line_rec CSP_requirement_lines_PVT.Requirement_Line_Rec_Type;
269 --l_tar_Requirement_Line_rec CSP_requirement_lines_PVT.Requirement_Line_Rec_Type := P_Requirement_Line_Rec;
270 l_rowid ROWID;
271 BEGIN
272 -- Standard Start of API savepoint
273 SAVEPOINT UPDATE_Requirement_Lines_PUB;
274
275 -- Standard call to check for call compatibility.
276 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
277 p_api_version_number,
278 l_api_name,
279 G_PKG_NAME)
280 THEN
281 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
282 END IF;
283
284
285 -- Initialize message list if p_init_msg_list is set to TRUE.
286 IF FND_API.to_Boolean( p_init_msg_list )
287 THEN
288 FND_MSG_PUB.initialize;
289 END IF;
290
291
292 -- Debug Message
293 --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
294
295
296 -- Initialize API return status to SUCCESS
297 x_return_status := FND_API.G_RET_STS_SUCCESS;
298
299 -- Debug Message
300 -- AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Open Cursor to Select');
301
302 /*
303 Open C_Get_requirement_lines( l_tar_Requirement_Lines_rec.REQUIREMENT_LINE_ID);
304
305 Fetch C_Get_requirement_lines into
306 l_rowid,
307 l_ref_Requirement_Lines_rec.REQUIREMENT_LINE_ID,
308 l_ref_Requirement_Lines_rec.CREATED_BY,
309 l_ref_Requirement_Lines_rec.CREATION_DATE,
310 l_ref_Requirement_Lines_rec.LAST_UPDATED_BY,
311 l_ref_Requirement_Lines_rec.LAST_UPDATE_DATE,
312 l_ref_Requirement_Lines_rec.LAST_UPDATE_LOGIN,
313 l_ref_Requirement_Lines_rec.REQUIREMENT_HEADER_ID,
314 l_ref_Requirement_Lines_rec.INVENTORY_ITEM_ID,
315 l_ref_Requirement_Lines_rec.UOM_CODE,
316 l_ref_Requirement_Lines_rec.REQUIRED_QUANTITY,
317 l_ref_Requirement_Lines_rec.SHIP_COMPLETE_FLAG,
318 l_ref_Requirement_Lines_rec.LIKELIHOOD,
319 l_ref_Requirement_Lines_rec.REVISION,
320 l_ref_Requirement_Lines_rec.SOURCE_ORGANIZATION_ID,
321 l_ref_Requirement_Lines_rec.SOURCE_SUBINVENTORY,
322 l_ref_Requirement_Lines_rec.ORDERED_QUANTITY,
323 l_ref_Requirement_Lines_rec.ORDER_LINE_ID,
324 l_ref_Requirement_Lines_rec.RESERVATION_ID,
325 l_ref_Requirement_Lines_rec.ORDER_BY_DATE,
326 l_ref_Requirement_Lines_rec.ATTRIBUTE_CATEGORY,
327 l_ref_Requirement_Lines_rec.ATTRIBUTE1,
328 l_ref_Requirement_Lines_rec.ATTRIBUTE2,
329 l_ref_Requirement_Lines_rec.ATTRIBUTE3,
330 l_ref_Requirement_Lines_rec.ATTRIBUTE4,
331 l_ref_Requirement_Lines_rec.ATTRIBUTE5,
332 l_ref_Requirement_Lines_rec.ATTRIBUTE6,
333 l_ref_Requirement_Lines_rec.ATTRIBUTE7,
334 l_ref_Requirement_Lines_rec.ATTRIBUTE8,
335 l_ref_Requirement_Lines_rec.ATTRIBUTE9,
336 l_ref_Requirement_Lines_rec.ATTRIBUTE10,
337 l_ref_Requirement_Lines_rec.ATTRIBUTE11,
338 l_ref_Requirement_Lines_rec.ATTRIBUTE12,
339 l_ref_Requirement_Lines_rec.ATTRIBUTE13,
340 l_ref_Requirement_Lines_rec.ATTRIBUTE14,
341 l_ref_Requirement_Lines_rec.ATTRIBUTE15,
342
343 If ( C_Get_requirement_lines%NOTFOUND) Then
344 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
345 THEN
346 FND_MESSAGE.Set_Name('CSP', 'API_MISSING_UPDATE_TARGET');
347 FND_MESSAGE.Set_Token ('INFO', 'requirement_lines', FALSE);
348 FND_MSG_PUB.Add;
349 END IF;
350 Close C_Get_requirement_lines;
351 raise FND_API.G_EXC_ERROR;
352 END IF;
353 -- Debug Message
354 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
355 Close C_Get_requirement_lines;
356
357
358
359 If (l_tar_Requirement_Lines_rec.last_update_date is NULL or
360 l_tar_Requirement_Lines_rec.last_update_date = FND_API.G_MISS_Date ) Then
361 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
362 THEN
363 FND_MESSAGE.Set_Name('CSP', 'API_MISSING_ID');
364 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
365 FND_MSG_PUB.ADD;
369 -- Check Whether record has been changed by someone else
366 END IF;
367 raise FND_API.G_EXC_ERROR;
368 End if;
370 If (l_tar_Requirement_Lines_rec.last_update_date <> l_ref_Requirement_Lines_rec.last_update_date) Then
371 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
372 THEN
373 FND_MESSAGE.Set_Name('CSP', 'API_RECORD_CHANGED');
374 FND_MESSAGE.Set_Token('INFO', 'requirement_lines', FALSE);
375 FND_MSG_PUB.ADD;
376 END IF;
377 raise FND_API.G_EXC_ERROR;
378 End if;
379
380 -- Debug message
381 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_requirement_lines');
382
383 -- Invoke validation procedures
384 Validate_requirement_lines(
385 p_init_msg_list => FND_API.G_FALSE,
386 p_validation_level => p_validation_level,
387 p_validation_mode => AS_UTILITY_PVT.G_UPDATE,
388 p_requirement_line_rec => p_requirement_line_rec,
389 x_return_status => x_return_status,
390 x_msg_count => x_msg_count,
391 x_msg_data => x_msg_data);
392
393 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
394 RAISE FND_API.G_EXC_ERROR;
395 END IF;
396
397
398 IF p_check_access_flag = 'Y'
399 THEN
400 -- Please un-comment here and complete it
401 -- AS_ACCESS_PUB.Has_???Access(
402 -- p_api_version_number => 2.0
403 -- ,p_init_msg_list => p_init_msg_list
404 -- ,p_validation_level => p_validation_level
405 -- ,p_profile_tbl => p_profile_tbl
406 -- ,p_admin_flag => p_admin_flag
407 -- ,p_admin_group_id => p_admin_group_id
408 -- ,p_person_id => l_identity_sales_member_rec.employee_person_id
409 -- ,p_customer_id =>
410 -- ,p_check_access_flag => 'Y'
411 -- ,p_identity_salesforce_id => p_identity_salesforce_id
412 -- ,p_partner_cont_party_id => NULL
413 -- ,x_return_status => x_return_status
414 -- ,x_msg_count => x_msg_count
415 -- ,x_msg_data => x_msg_data
416 -- ,x_access_flag => l_access_flag);
417
418 -- IF l_access_flag <> 'Y' THEN
419 -- AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR,
420 -- 'API_NO_UPDATE_PRIVILEGE');
421 -- END IF;
422
423
424 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
425 RAISE FND_API.G_EXC_ERROR;
426 END IF;
427
428 END IF;
429 -- Hint: Add corresponding Master-Detail business logic here if necessary.
430 */
431 -- Debug Message
432 --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
433
434 -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Update_Row)
435 FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
436 l_requirement_line_rec := p_requirement_line_tbl(I);
437
438 CSP_REQUIREMENT_LINES_PKG.Update_Row(
439 p_REQUIREMENT_LINE_ID => l_requirement_line_rec.REQUIREMENT_LINE_ID,
440 p_CREATED_BY => FND_API.G_MISS_NUM,
441 p_CREATION_DATE => FND_API.G_MISS_DATE,
442 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
443 p_LAST_UPDATE_DATE => SYSDATE,
444 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
445 p_REQUIREMENT_HEADER_ID => l_requirement_line_rec.REQUIREMENT_HEADER_ID,
446 p_INVENTORY_ITEM_ID => l_requirement_line_rec.INVENTORY_ITEM_ID,
447 p_UOM_CODE => l_requirement_line_rec.UOM_CODE,
448 p_REQUIRED_QUANTITY => l_requirement_line_rec.REQUIRED_QUANTITY,
449 p_SHIP_COMPLETE_FLAG => l_requirement_line_rec.SHIP_COMPLETE_FLAG,
450 p_LIKELIHOOD => l_requirement_line_rec.LIKELIHOOD,
451 p_REVISION => l_requirement_line_rec.REVISION,
452 p_SOURCE_ORGANIZATION_ID => l_requirement_line_rec.SOURCE_ORGANIZATION_ID,
453 p_SOURCE_SUBINVENTORY => l_requirement_line_rec.SOURCE_SUBINVENTORY,
454 p_ORDERED_QUANTITY => l_requirement_line_rec.ORDERED_QUANTITY,
455 p_ORDER_LINE_ID => l_requirement_line_rec.ORDER_LINE_ID,
456 p_RESERVATION_ID => l_requirement_line_rec.RESERVATION_ID,
457 p_ORDER_BY_DATE => l_requirement_line_rec.ORDER_BY_DATE,
458 p_ATTRIBUTE_CATEGORY => l_requirement_line_rec.ATTRIBUTE_CATEGORY,
459 p_ATTRIBUTE1 => l_requirement_line_rec.ATTRIBUTE1,
460 p_ATTRIBUTE2 => l_requirement_line_rec.ATTRIBUTE2,
461 p_ATTRIBUTE3 => l_requirement_line_rec.ATTRIBUTE3,
462 p_ATTRIBUTE4 => l_requirement_line_rec.ATTRIBUTE4,
463 p_ATTRIBUTE5 => l_requirement_line_rec.ATTRIBUTE5,
464 p_ATTRIBUTE6 => l_requirement_line_rec.ATTRIBUTE6,
465 p_ATTRIBUTE7 => l_requirement_line_rec.ATTRIBUTE7,
466 p_ATTRIBUTE8 => l_requirement_line_rec.ATTRIBUTE8,
467 p_ATTRIBUTE9 => l_requirement_line_rec.ATTRIBUTE9,
468 p_ATTRIBUTE10 => l_requirement_line_rec.ATTRIBUTE10,
469 p_ATTRIBUTE11 => l_requirement_line_rec.ATTRIBUTE11,
470 p_ATTRIBUTE12 => l_requirement_line_rec.ATTRIBUTE12,
474 p_ARRIVAL_DATE => l_requirement_line_rec.arrival_date,
471 p_ATTRIBUTE13 => l_requirement_line_rec.ATTRIBUTE13,
472 p_ATTRIBUTE14 => l_requirement_line_rec.ATTRIBUTE14,
473 p_ATTRIBUTE15 => l_requirement_line_rec.ATTRIBUTE15,
475 p_ITEM_SCRATCHPAD => l_requirement_line_rec.item_scratchpad,
476 p_SHIPPING_METHOD_CODE => l_requirement_line_rec.shipping_method_code,
477 p_LOCAL_RESERVATION_ID => l_requirement_line_rec.LOCAL_RESERVATION_ID,
478 p_SOURCED_FROM => l_requirement_line_rec.SOURCED_FROM
479 );
480
481 END LOOP;
482 --
483 -- End of API body.
484 --
485
486 -- Standard check for p_commit
487 IF FND_API.to_Boolean( p_commit )
488 THEN
489 COMMIT WORK;
490 END IF;
491
492
493 -- Debug Message
494 --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
495
496
497 -- Standard call to get message count and if count is 1, get message info.
498 /* FND_MSG_PUB.Count_And_Get
499 ( p_count => x_msg_count,
500 p_data => x_msg_data
501 );
502 */
503 EXCEPTION
504 WHEN FND_API.G_EXC_ERROR THEN
505 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
506 P_API_NAME => L_API_NAME
507 ,P_PKG_NAME => G_PKG_NAME
508 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
509 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
510 ,X_MSG_COUNT => X_MSG_COUNT
511 ,X_MSG_DATA => X_MSG_DATA
512 ,X_RETURN_STATUS => X_RETURN_STATUS);
513 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
514 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
515 P_API_NAME => L_API_NAME
516 ,P_PKG_NAME => G_PKG_NAME
517 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
518 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
519 ,X_MSG_COUNT => X_MSG_COUNT
520 ,X_MSG_DATA => X_MSG_DATA
521 ,X_RETURN_STATUS => X_RETURN_STATUS);
522 WHEN OTHERS THEN
523 Rollback to UPDATE_Requirement_Lines_PUB;
524 FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
525 FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
526 FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
527 FND_MSG_PUB.ADD;
528 fnd_msg_pub.count_and_get
529 ( p_count => x_msg_count
530 , p_data => x_msg_data);
531 x_return_status := FND_API.G_RET_STS_ERROR;
532 End Update_requirement_lines;
533
534
535 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
536 -- The Master delete procedure may not be needed depends on different business requirements.
537 PROCEDURE Delete_requirement_lines(
538 P_Api_Version_Number IN NUMBER,
539 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
540 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
541 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
542 p_requirement_line_tbl IN Requirement_Line_Tbl_Type,
543 X_Return_Status OUT NOCOPY VARCHAR2,
544 X_Msg_Count OUT NOCOPY NUMBER,
545 X_Msg_Data OUT NOCOPY VARCHAR2
546 )
547
548 IS
549 l_api_name CONSTANT VARCHAR2(30) := 'Delete_requirement_lines';
550 l_api_version_number CONSTANT NUMBER := 1.0;
551 l_requirement_line_rec Requirement_Line_Rec_type;
552 BEGIN
553 -- Standard Start of API savepoint
554 SAVEPOINT DELETE_Requirement_Lines_PUB;
555
556 -- Standard call to check for call compatibility.
557 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
558 p_api_version_number,
559 l_api_name,
560 G_PKG_NAME)
561 THEN
562 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
563 END IF;
564
565
566 -- Initialize message list if p_init_msg_list is set to TRUE.
567 IF FND_API.to_Boolean( p_init_msg_list )
568 THEN
569 FND_MSG_PUB.initialize;
570 END IF;
571
572
573 -- Debug Message
574 JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
575
576
577 -- Initialize API return status to SUCCESS
578 x_return_status := FND_API.G_RET_STS_SUCCESS;
579
580 --
581 -- Api body
582 --
583 -- Debug Message
584 JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
585
586 -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Delete_Row)
587 FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
588 l_requirement_line_rec := p_requirement_Line_Tbl(I);
589
590 CSP_REQUIREMENT_LINES_PKG.Delete_Row(
591 p_REQUIREMENT_LINE_ID => l_requirement_line_rec.REQUIREMENT_LINE_ID);
592
593 END LOOP;
594 --
595 -- End of API body
596 --
597
598 -- Standard check for p_commit
602 END IF;
599 IF FND_API.to_Boolean( p_commit )
600 THEN
601 COMMIT WORK;
603
604
605 -- Debug Message
606 JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
607
608
609 -- Standard call to get message count and if count is 1, get message info.
610 FND_MSG_PUB.Count_And_Get
611 ( p_count => x_msg_count,
612 p_data => x_msg_data
613 );
614
615 EXCEPTION
616 WHEN FND_API.G_EXC_ERROR THEN
617 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
618 P_API_NAME => L_API_NAME
619 ,P_PKG_NAME => G_PKG_NAME
620 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
621 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
622 ,X_MSG_COUNT => X_MSG_COUNT
623 ,X_MSG_DATA => X_MSG_DATA
624 ,X_RETURN_STATUS => X_RETURN_STATUS);
625 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
626 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
627 P_API_NAME => L_API_NAME
628 ,P_PKG_NAME => G_PKG_NAME
629 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
630 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
631 ,X_MSG_COUNT => X_MSG_COUNT
632 ,X_MSG_DATA => X_MSG_DATA
633 ,X_RETURN_STATUS => X_RETURN_STATUS);
634 WHEN OTHERS THEN
635 Rollback to DELETE_Requirement_Lines_PUB;
636 FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
637 FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
638 FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
639 FND_MSG_PUB.ADD;
640 fnd_msg_pub.count_and_get
641 ( p_count => x_msg_count
642 , p_data => x_msg_data);
643 x_return_status := FND_API.G_RET_STS_ERROR;
644 End Delete_requirement_lines;
645
646 /*
647 -- This procudure defines the columns for the Dynamic SQL.
648 PROCEDURE Define_Columns(
649 l_requirement_line_rec IN CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
650 p_cur_get_Requirement_Lines IN NUMBER
651 )
652 IS
653 BEGIN
654 -- Debug Message
655 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Define Columns Begins');
656
657 -- define all columns for CSP_REQUIREMENT_LINES view
658 dbms_sql.define_column(p_cur_get_Requirement_Lines, 1, p_requirement_line_rec.REQUIREMENT_LINE_ID);
659 dbms_sql.define_column(p_cur_get_Requirement_Lines, 2, p_requirement_line_rec.REQUIREMENT_HEADER_ID);
660 dbms_sql.define_column(p_cur_get_Requirement_Lines, 3, p_requirement_line_rec.INVENTORY_ITEM_ID);
661 dbms_sql.define_column(p_cur_get_Requirement_Lines, 4, p_requirement_line_rec.UOM_CODE, 3);
662 dbms_sql.define_column(p_cur_get_Requirement_Lines, 5, p_requirement_line_rec.REQUIRED_QUANTITY);
663 dbms_sql.define_column(p_cur_get_Requirement_Lines, 6, p_requirement_line_rec.SHIP_COMPLETE_FLAG, 3);
664 dbms_sql.define_column(p_cur_get_Requirement_Lines, 7, p_requirement_line_rec.LIKELIHOOD);
665 dbms_sql.define_column(p_cur_get_Requirement_Lines, 8, p_requirement_line_rec.REVISION, 3);
666 dbms_sql.define_column(p_cur_get_Requirement_Lines, 9, p_requirement_line_rec.SOURCE_ORGANIZATION_ID);
667 dbms_sql.define_column(p_cur_get_Requirement_Lines, 10, p_requirement_line_rec.SOURCE_SUBINVENTORY, 10);
668 dbms_sql.define_column(p_cur_get_Requirement_Lines, 11, p_requirement_line_rec.ORDERED_QUANTITY);
669 dbms_sql.define_column(p_cur_get_Requirement_Lines, 12, p_requirement_line_rec.ORDER_LINE_ID);
670 dbms_sql.define_column(p_cur_get_Requirement_Lines, 13, p_requirement_line_rec.RESERVATION_ID);
671 dbms_sql.define_column(p_cur_get_Requirement_Lines, 14, p_requirement_line_rec.ORDER_BY_DATE);
672 dbms_sql.define_column(p_cur_get_Requirement_Lines, 15, p_requirement_line_rec.ATTRIBUTE_CATEGORY, 30);
673 dbms_sql.define_column(p_cur_get_Requirement_Lines, 16, p_requirement_line_rec.ATTRIBUTE1, 150);
674 dbms_sql.define_column(p_cur_get_Requirement_Lines, 17, p_requirement_line_rec.ATTRIBUTE2, 150);
675 dbms_sql.define_column(p_cur_get_Requirement_Lines, 18, p_requirement_line_rec.ATTRIBUTE3, 150);
676 dbms_sql.define_column(p_cur_get_Requirement_Lines, 19, p_requirement_line_rec.ATTRIBUTE4, 150);
677 dbms_sql.define_column(p_cur_get_Requirement_Lines, 20, p_requirement_line_rec.ATTRIBUTE5, 150);
678 dbms_sql.define_column(p_cur_get_Requirement_Lines, 21, p_requirement_line_rec.ATTRIBUTE6, 150);
679 dbms_sql.define_column(p_cur_get_Requirement_Lines, 22, p_requirement_line_rec.ATTRIBUTE7, 150);
680 dbms_sql.define_column(p_cur_get_Requirement_Lines, 23, p_requirement_line_rec.ATTRIBUTE8, 150);
681 dbms_sql.define_column(p_cur_get_Requirement_Lines, 24, p_requirement_line_rec.ATTRIBUTE9, 150);
682 dbms_sql.define_column(p_cur_get_Requirement_Lines, 25, p_requirement_line_rec.ATTRIBUTE10, 150);
683 dbms_sql.define_column(p_cur_get_Requirement_Lines, 26, p_requirement_line_rec.ATTRIBUTE11, 150);
684 dbms_sql.define_column(p_cur_get_Requirement_Lines, 27, p_requirement_line_rec.ATTRIBUTE12, 150);
685 dbms_sql.define_column(p_cur_get_Requirement_Lines, 28, p_requirement_line_rec.ATTRIBUTE13, 150);
686 dbms_sql.define_column(p_cur_get_Requirement_Lines, 29, p_requirement_line_rec.ATTRIBUTE14, 150);
687 dbms_sql.define_column(p_cur_get_Requirement_Lines, 30, p_requirement_line_rec.ATTRIBUTE15, 150);
688
692
689 -- Debug Message
690 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Define Columns Ends');
691 END Define_Columns;
693 -- This procudure gets column values by the Dynamic SQL.
694 PROCEDURE Get_Column_Values(
695 p_cur_get_Requirement_Lines IN NUMBER,
696 X_Requirement_Lines_Rec OUT NOCOPY CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type
697 )
698 IS
699 BEGIN
700 -- Debug Message
701 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Get Column Values Begins');
702
703 -- get all column values for CSP_REQUIREMENT_LINES table
704 dbms_sql.column_value(p_cur_get_Requirement_Lines, 1, X_Requirement_Lines_Rec.REQUIREMENT_LINE_ID);
705 dbms_sql.column_value(p_cur_get_Requirement_Lines, 2, X_Requirement_Lines_Rec.REQUIREMENT_HEADER_ID);
706 dbms_sql.column_value(p_cur_get_Requirement_Lines, 3, X_Requirement_Lines_Rec.INVENTORY_ITEM_ID);
707 dbms_sql.column_value(p_cur_get_Requirement_Lines, 4, X_Requirement_Lines_Rec.UOM_CODE);
708 dbms_sql.column_value(p_cur_get_Requirement_Lines, 5, X_Requirement_Lines_Rec.REQUIRED_QUANTITY);
709 dbms_sql.column_value(p_cur_get_Requirement_Lines, 6, X_Requirement_Lines_Rec.SHIP_COMPLETE_FLAG);
710 dbms_sql.column_value(p_cur_get_Requirement_Lines, 7, X_Requirement_Lines_Rec.LIKELIHOOD);
711 dbms_sql.column_value(p_cur_get_Requirement_Lines, 8, X_Requirement_Lines_Rec.REVISION);
712 dbms_sql.column_value(p_cur_get_Requirement_Lines, 9, X_Requirement_Lines_Rec.SOURCE_ORGANIZATION_ID);
713 dbms_sql.column_value(p_cur_get_Requirement_Lines, 10, X_Requirement_Lines_Rec.SOURCE_SUBINVENTORY);
714 dbms_sql.column_value(p_cur_get_Requirement_Lines, 11, X_Requirement_Lines_Rec.ORDERED_QUANTITY);
715 dbms_sql.column_value(p_cur_get_Requirement_Lines, 12, X_Requirement_Lines_Rec.ORDER_LINE_ID);
716 dbms_sql.column_value(p_cur_get_Requirement_Lines, 13, X_Requirement_Lines_Rec.RESERVATION_ID);
717 dbms_sql.column_value(p_cur_get_Requirement_Lines, 14, X_Requirement_Lines_Rec.ORDER_BY_DATE);
718 dbms_sql.column_value(p_cur_get_Requirement_Lines, 15, X_Requirement_Lines_Rec.ATTRIBUTE_CATEGORY);
719 dbms_sql.column_value(p_cur_get_Requirement_Lines, 16, X_Requirement_Lines_Rec.ATTRIBUTE1);
720 dbms_sql.column_value(p_cur_get_Requirement_Lines, 17, X_Requirement_Lines_Rec.ATTRIBUTE2);
721 dbms_sql.column_value(p_cur_get_Requirement_Lines, 18, X_Requirement_Lines_Rec.ATTRIBUTE3);
722 dbms_sql.column_value(p_cur_get_Requirement_Lines, 19, X_Requirement_Lines_Rec.ATTRIBUTE4);
723 dbms_sql.column_value(p_cur_get_Requirement_Lines, 20, X_Requirement_Lines_Rec.ATTRIBUTE5);
724 dbms_sql.column_value(p_cur_get_Requirement_Lines, 21, X_Requirement_Lines_Rec.ATTRIBUTE6);
725 dbms_sql.column_value(p_cur_get_Requirement_Lines, 22, X_Requirement_Lines_Rec.ATTRIBUTE7);
726 dbms_sql.column_value(p_cur_get_Requirement_Lines, 23, X_Requirement_Lines_Rec.ATTRIBUTE8);
727 dbms_sql.column_value(p_cur_get_Requirement_Lines, 24, X_Requirement_Lines_Rec.ATTRIBUTE9);
728 dbms_sql.column_value(p_cur_get_Requirement_Lines, 25, X_Requirement_Lines_Rec.ATTRIBUTE10);
729 dbms_sql.column_value(p_cur_get_Requirement_Lines, 26, X_Requirement_Lines_Rec.ATTRIBUTE11);
730 dbms_sql.column_value(p_cur_get_Requirement_Lines, 27, X_Requirement_Lines_Rec.ATTRIBUTE12);
731 dbms_sql.column_value(p_cur_get_Requirement_Lines, 28, X_Requirement_Lines_Rec.ATTRIBUTE13);
732 dbms_sql.column_value(p_cur_get_Requirement_Lines, 29, X_Requirement_Lines_Rec.ATTRIBUTE14);
733 dbms_sql.column_value(p_cur_get_Requirement_Lines, 30, X_Requirement_Lines_Rec.ATTRIBUTE15);
734
735 -- Debug Message
736 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Get Column Values Ends');
737 END Get_Column_Values;
738
739 PROCEDURE Gen_Requirement_Lines_order_cl(
740 p_order_by_rec IN CSP_Requirement_Lines_PUB.Requirement_Lines_sort_rec_type,
741 x_order_by_cl OUT NOCOPY VARCHAR2,
742 x_return_status OUT NOCOPY VARCHAR2,
743 x_msg_count OUT NOCOPY NUMBER,
744 x_msg_data OUT NOCOPY VARCHAR2
745 )
746 IS
747 l_order_by_cl VARCHAR2(1000) := NULL;
748 l_util_order_by_tbl AS_UTILITY_PVT.Util_order_by_tbl_type;
749 BEGIN
750 -- Debug Message
751 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Order by Begins');
752
753 -- Hint: Developer should add more statements according to CSP_sort_rec_type
754 -- Ex:
755 -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
756 -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
757
758 -- Debug Message
759 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Invoke AS_UTILITY_PVT.Translate_OrderBy');
760
761 AS_UTILITY_PVT.Translate_OrderBy(
762 p_api_version_number => 1.0
763 ,p_init_msg_list => FND_API.G_FALSE
764 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
765 ,p_order_by_tbl => l_util_order_by_tbl
766 ,x_order_by_clause => l_order_by_cl
767 ,x_return_status => x_return_status
768 ,x_msg_count => x_msg_count
769 ,x_msg_data => x_msg_data);
770
771 IF(l_order_by_cl IS NOT NULL) THEN
772 x_order_by_cl := 'order by' || l_order_by_cl;
773 ELSE
774 x_order_by_cl := NULL;
775 END IF;
776
777 -- Debug Message
781 -- This procedure bind the variables for the Dynamic SQL
778 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Order by Ends');
779 END Gen_Requirement_Lines_order_cl;
780
782 PROCEDURE Bind(
783 p_requirement_line_rec IN CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
784 -- Hint: Add more binding variables here
785 p_cur_get_Requirement_Lines IN NUMBER
786 )
787 IS
788 BEGIN
789 -- Bind variables
790 -- Only those that are not NULL
791 -- Debug Message
792 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Bind Variables Begins');
793
794 -- The following example applies to all columns,
795 -- developers can copy and paste them.
796 IF( (p_requirement_line_rec.REQUIREMENT_LINE_ID IS NOT NULL) AND (p_requirement_line_rec.REQUIREMENT_LINE_ID <> FND_API.G_MISS_NUM) )
797 THEN
798 DBMS_SQL.BIND_VARIABLE(p_cur_get_Requirement_Lines, ':p_REQUIREMENT_LINE_ID', p_requirement_line_rec.REQUIREMENT_LINE_ID);
799 END IF;
800
801 -- Debug Message
802 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Bind Variables Ends');
803 END Bind;
804
805 PROCEDURE Gen_Select(
806 x_select_cl OUT NOCOPY VARCHAR2
807 )
808 IS
809 BEGIN
810 -- Debug Message
811 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Select Begins');
812
813 x_select_cl := 'Select ' ||
814 'CSP_REQUIREMENT_LINES.REQUIREMENT_LINE_ID,' ||
815 'CSP_REQUIREMENT_LINES.CREATED_BY,' ||
816 'CSP_REQUIREMENT_LINES.CREATION_DATE,' ||
817 'CSP_REQUIREMENT_LINES.LAST_UPDATED_BY,' ||
818 'CSP_REQUIREMENT_LINES.LAST_UPDATE_DATE,' ||
819 'CSP_REQUIREMENT_LINES.LAST_UPDATE_LOGIN,' ||
820 'CSP_REQUIREMENT_LINES.REQUIREMENT_HEADER_ID,' ||
821 'CSP_REQUIREMENT_LINES.INVENTORY_ITEM_ID,' ||
822 'CSP_REQUIREMENT_LINES.UOM_CODE,' ||
823 'CSP_REQUIREMENT_LINES.REQUIRED_QUANTITY,' ||
824 'CSP_REQUIREMENT_LINES.SHIP_COMPLETE_FLAG,' ||
825 'CSP_REQUIREMENT_LINES.LIKELIHOOD,' ||
826 'CSP_REQUIREMENT_LINES.REVISION,' ||
827 'CSP_REQUIREMENT_LINES.SOURCE_ORGANIZATION_ID,' ||
828 'CSP_REQUIREMENT_LINES.SOURCE_SUBINVENTORY,' ||
829 'CSP_REQUIREMENT_LINES.ORDERED_QUANTITY,' ||
830 'CSP_REQUIREMENT_LINES.ORDER_LINE_ID,' ||
831 'CSP_REQUIREMENT_LINES.RESERVATION_ID,' ||
832 'CSP_REQUIREMENT_LINES.ORDER_BY_DATE,' ||
833 'CSP_REQUIREMENT_LINES.ATTRIBUTE_CATEGORY,' ||
834 'CSP_REQUIREMENT_LINES.ATTRIBUTE1,' ||
835 'CSP_REQUIREMENT_LINES.ATTRIBUTE2,' ||
836 'CSP_REQUIREMENT_LINES.ATTRIBUTE3,' ||
837 'CSP_REQUIREMENT_LINES.ATTRIBUTE4,' ||
838 'CSP_REQUIREMENT_LINES.ATTRIBUTE5,' ||
839 'CSP_REQUIREMENT_LINES.ATTRIBUTE6,' ||
840 'CSP_REQUIREMENT_LINES.ATTRIBUTE7,' ||
841 'CSP_REQUIREMENT_LINES.ATTRIBUTE8,' ||
842 'CSP_REQUIREMENT_LINES.ATTRIBUTE9,' ||
843 'CSP_REQUIREMENT_LINES.ATTRIBUTE10,' ||
844 'CSP_REQUIREMENT_LINES.ATTRIBUTE11,' ||
845 'CSP_REQUIREMENT_LINES.ATTRIBUTE12,' ||
846 'CSP_REQUIREMENT_LINES.ATTRIBUTE13,' ||
847 'CSP_REQUIREMENT_LINES.ATTRIBUTE14,' ||
848 'CSP_REQUIREMENT_LINES.ATTRIBUTE15,' ||
849 'from CSP_REQUIREMENT_LINES';
850 -- Debug Message
851 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Select Ends');
852
853 END Gen_Select;
854
855 PROCEDURE Gen_Requirement_Lines_Where(
856 p_requirement_line_rec IN CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
857 x_Requirement_Lines_where OUT NOCOPY VARCHAR2
858 )
859 IS
860 -- cursors to check if wildcard values '%' and '_' have been passed
861 -- as item values
862 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
863 SELECT INSTR(p_rec_item, '%', 1, 1)
864 FROM DUAL;
865 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
866 SELECT INSTR(p_rec_item, '_', 1, 1)
867 FROM DUAL;
868
869 -- return values from cursors
870 str_csr1 NUMBER;
871 str_csr2 NUMBER;
872 l_operator VARCHAR2(10);
873 BEGIN
874 -- Debug Message
875 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Where Begins');
876
877 -- There are three examples for each kind of datatype:
878 -- NUMBER, DATE, VARCHAR2.
879 -- Developer can copy and paste the following codes for your own record.
880
881 -- example for NUMBER datatype
882 IF( (p_requirement_line_rec.REQUIREMENT_LINE_ID IS NOT NULL) AND (p_requirement_line_rec.REQUIREMENT_LINE_ID <> FND_API.G_MISS_NUM) )
883 THEN
884 IF(x_Requirement_Lines_where IS NULL) THEN
885 x_Requirement_Lines_where := 'Where';
886 ELSE
887 x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
888 END IF;
889 x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.REQUIREMENT_LINE_ID = :p_REQUIREMENT_LINE_ID';
890 END IF;
891
892 -- example for DATE datatype
896 OPEN c_chk_str1(p_requirement_line_rec.CREATION_DATE);
893 IF( (p_requirement_line_rec.CREATION_DATE IS NOT NULL) AND (p_requirement_line_rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
894 THEN
895 -- check if item value contains '%' wildcard
897 FETCH c_chk_str1 INTO str_csr1;
898 CLOSE c_chk_str1;
899
900 IF(str_csr1 <> 0) THEN
901 l_operator := ' LIKE ';
902 ELSE
903 l_operator := ' = ';
904 END IF;
905
906 -- check if item value contains '_' wildcard
907 OPEN c_chk_str2(p_requirement_line_rec.CREATION_DATE);
908 FETCH c_chk_str2 INTO str_csr2;
909 CLOSE c_chk_str2;
910
911 IF(str_csr2 <> 0) THEN
912 l_operator := ' LIKE ';
913 ELSE
914 l_operator := ' = ';
915 END IF;
916
917 IF(x_Requirement_Lines_where IS NULL) THEN
918 x_Requirement_Lines_where := 'Where ';
919 ELSE
920 x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
921 END IF;
922 x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
923 END IF;
924
925 -- example for VARCHAR2 datatype
926 IF( (p_requirement_line_rec.UOM_CODE IS NOT NULL) AND (p_requirement_line_rec.UOM_CODE <> FND_API.G_MISS_CHAR) )
927 THEN
928 -- check if item value contains '%' wildcard
929 OPEN c_chk_str1(p_requirement_line_rec.UOM_CODE);
930 FETCH c_chk_str1 INTO str_csr1;
931 CLOSE c_chk_str1;
932
933 IF(str_csr1 <> 0) THEN
934 l_operator := ' LIKE ';
935 ELSE
936 l_operator := ' = ';
937 END IF;
938
939 -- check if item value contains '_' wildcard
940 OPEN c_chk_str2(p_requirement_line_rec.UOM_CODE);
941 FETCH c_chk_str2 INTO str_csr2;
942 CLOSE c_chk_str2;
943
944 IF(str_csr2 <> 0) THEN
945 l_operator := ' LIKE ';
946 ELSE
947 l_operator := ' = ';
948 END IF;
949
950 IF(x_Requirement_Lines_where IS NULL) THEN
951 x_Requirement_Lines_where := 'Where ';
952 ELSE
953 x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
954 END IF;
955 x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.UOM_CODE ' || l_operator || ' :p_UOM_CODE';
956 END IF;
957
958 -- Add more IF statements for each column below
959
960 -- Debug Message
961 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Where Ends');
962
963 END Gen_Requirement_Lines_Where;
964
965 -- Item-level validation procedures
966 PROCEDURE Validate_REQUIREMENT_LINE_ID (
967 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
968 P_Validation_mode IN VARCHAR2,
969 P_REQUIREMENT_LINE_ID IN NUMBER,
970 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
971 X_Return_Status OUT NOCOPY VARCHAR2,
972 X_Msg_Count OUT NOCOPY NUMBER,
973 X_Msg_Data OUT NOCOPY VARCHAR2
974 )
975 IS
976 BEGIN
977
978 -- Initialize message list if p_init_msg_list is set to TRUE.
979 IF FND_API.to_Boolean( p_init_msg_list )
980 THEN
981 FND_MSG_PUB.initialize;
982 END IF;
983
984
985 -- Initialize API return status to SUCCESS
986 x_return_status := FND_API.G_RET_STS_SUCCESS;
987
988 -- validate NOT NULL column
989 IF(p_REQUIREMENT_LINE_ID is NULL)
990 THEN
991 AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIREMENT_LINE_ID)');
992 x_return_status := FND_API.G_RET_STS_ERROR;
993 END IF;
994
995 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
996 THEN
997 -- Hint: Validate data
998 -- IF p_REQUIREMENT_LINE_ID is not NULL and p_REQUIREMENT_LINE_ID <> G_MISS_CHAR
999 -- verify if data is valid
1000 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1001 NULL;
1002 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1003 THEN
1004 -- Hint: Validate data
1005 -- IF p_REQUIREMENT_LINE_ID <> G_MISS_CHAR
1006 -- verify if data is valid
1007 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1008 NULL;
1009 END IF;
1010
1011 -- Standard call to get message count and if count is 1, get message info.
1012 FND_MSG_PUB.Count_And_Get
1013 ( p_count => x_msg_count,
1014 p_data => x_msg_data
1015 );
1016
1017 END Validate_REQUIREMENT_LINE_ID;
1018
1019
1020 PROCEDURE Validate_REQUIREMENT_HEADER_ID (
1021 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1022 P_Validation_mode IN VARCHAR2,
1023 P_REQUIREMENT_HEADER_ID IN NUMBER,
1027 X_Msg_Data OUT NOCOPY VARCHAR2
1024 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1025 X_Return_Status OUT NOCOPY VARCHAR2,
1026 X_Msg_Count OUT NOCOPY NUMBER,
1028 )
1029 IS
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_REQUIREMENT_HEADER_ID is NULL)
1044 THEN
1045 AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIREMENT_HEADER_ID)');
1046 x_return_status := FND_API.G_RET_STS_ERROR;
1047 END IF;
1048
1049 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1050 THEN
1051 -- Hint: Validate data
1052 -- IF p_REQUIREMENT_HEADER_ID is not NULL and p_REQUIREMENT_HEADER_ID <> 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 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1057 THEN
1058 -- Hint: Validate data
1059 -- IF p_REQUIREMENT_HEADER_ID <> G_MISS_CHAR
1060 -- verify if data is valid
1061 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1062 NULL;
1063 END IF;
1064
1065 -- Standard call to get message count and if count is 1, get message info.
1066 FND_MSG_PUB.Count_And_Get
1067 ( p_count => x_msg_count,
1068 p_data => x_msg_data
1069 );
1070
1071 END Validate_REQUIREMENT_HEADER_ID;
1072
1073
1074 PROCEDURE Validate_INVENTORY_ITEM_ID (
1075 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1076 P_Validation_mode IN VARCHAR2,
1077 P_INVENTORY_ITEM_ID IN NUMBER,
1078 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1079 X_Return_Status OUT NOCOPY VARCHAR2,
1080 X_Msg_Count OUT NOCOPY NUMBER,
1081 X_Msg_Data OUT NOCOPY VARCHAR2
1082 )
1083 IS
1084 BEGIN
1085
1086 -- Initialize message list if p_init_msg_list is set to TRUE.
1087 IF FND_API.to_Boolean( p_init_msg_list )
1088 THEN
1089 FND_MSG_PUB.initialize;
1090 END IF;
1091
1092
1093 -- Initialize API return status to SUCCESS
1094 x_return_status := FND_API.G_RET_STS_SUCCESS;
1095
1096 -- validate NOT NULL column
1097 IF(p_INVENTORY_ITEM_ID is NULL)
1098 THEN
1099 AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(INVENTORY_ITEM_ID)');
1100 x_return_status := FND_API.G_RET_STS_ERROR;
1101 END IF;
1102
1103 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1104 THEN
1105 -- Hint: Validate data
1106 -- IF p_INVENTORY_ITEM_ID is not NULL and p_INVENTORY_ITEM_ID <> G_MISS_CHAR
1107 -- verify if data is valid
1108 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1109 NULL;
1110 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1111 THEN
1112 -- Hint: Validate data
1113 -- IF p_INVENTORY_ITEM_ID <> G_MISS_CHAR
1114 -- verify if data is valid
1115 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1116 NULL;
1117 END IF;
1118
1119 -- Standard call to get message count and if count is 1, get message info.
1120 FND_MSG_PUB.Count_And_Get
1121 ( p_count => x_msg_count,
1122 p_data => x_msg_data
1123 );
1124
1125 END Validate_INVENTORY_ITEM_ID;
1126
1127
1128 PROCEDURE Validate_UOM_CODE (
1129 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1130 P_Validation_mode IN VARCHAR2,
1131 P_UOM_CODE IN VARCHAR2,
1132 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1133 X_Return_Status OUT NOCOPY VARCHAR2,
1134 X_Msg_Count OUT NOCOPY NUMBER,
1135 X_Msg_Data OUT NOCOPY VARCHAR2
1136 )
1137 IS
1138 BEGIN
1139
1140 -- Initialize message list if p_init_msg_list is set to TRUE.
1141 IF FND_API.to_Boolean( p_init_msg_list )
1142 THEN
1143 FND_MSG_PUB.initialize;
1144 END IF;
1145
1146
1147 -- Initialize API return status to SUCCESS
1148 x_return_status := FND_API.G_RET_STS_SUCCESS;
1149
1150 -- validate NOT NULL column
1151 IF(p_UOM_CODE is NULL)
1152 THEN
1153 AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(UOM_CODE)');
1154 x_return_status := FND_API.G_RET_STS_ERROR;
1155 END IF;
1156
1160 -- IF p_UOM_CODE is not NULL and p_UOM_CODE <> G_MISS_CHAR
1157 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1158 THEN
1159 -- Hint: Validate data
1161 -- verify if data is valid
1162 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1163 NULL;
1164 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1165 THEN
1166 -- Hint: Validate data
1167 -- IF p_UOM_CODE <> G_MISS_CHAR
1168 -- verify if data is valid
1169 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1170 NULL;
1171 END IF;
1172
1173 -- Standard call to get message count and if count is 1, get message info.
1174 FND_MSG_PUB.Count_And_Get
1175 ( p_count => x_msg_count,
1176 p_data => x_msg_data
1177 );
1178
1179 END Validate_UOM_CODE;
1180
1181
1182 PROCEDURE Validate_REQUIRED_QUANTITY (
1183 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1184 P_Validation_mode IN VARCHAR2,
1185 P_REQUIRED_QUANTITY IN NUMBER,
1186 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1187 X_Return_Status OUT NOCOPY VARCHAR2,
1188 X_Msg_Count OUT NOCOPY NUMBER,
1189 X_Msg_Data OUT NOCOPY VARCHAR2
1190 )
1191 IS
1192 BEGIN
1193
1194 -- Initialize message list if p_init_msg_list is set to TRUE.
1195 IF FND_API.to_Boolean( p_init_msg_list )
1196 THEN
1197 FND_MSG_PUB.initialize;
1198 END IF;
1199
1200
1201 -- Initialize API return status to SUCCESS
1202 x_return_status := FND_API.G_RET_STS_SUCCESS;
1203
1204 -- validate NOT NULL column
1205 IF(p_REQUIRED_QUANTITY is NULL)
1206 THEN
1207 AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIRED_QUANTITY)');
1208 x_return_status := FND_API.G_RET_STS_ERROR;
1209 END IF;
1210
1211 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1212 THEN
1213 -- Hint: Validate data
1214 -- IF p_REQUIRED_QUANTITY is not NULL and p_REQUIRED_QUANTITY <> G_MISS_CHAR
1215 -- verify if data is valid
1216 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1217 NULL;
1218 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1219 THEN
1220 -- Hint: Validate data
1221 -- IF p_REQUIRED_QUANTITY <> G_MISS_CHAR
1222 -- verify if data is valid
1223 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1224 NULL;
1225 END IF;
1226
1227 -- Standard call to get message count and if count is 1, get message info.
1228 FND_MSG_PUB.Count_And_Get
1229 ( p_count => x_msg_count,
1230 p_data => x_msg_data
1231 );
1232
1233 END Validate_REQUIRED_QUANTITY;
1234
1235
1236 PROCEDURE Validate_SHIP_COMPLETE_FLAG (
1237 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1238 P_Validation_mode IN VARCHAR2,
1239 P_SHIP_COMPLETE_FLAG IN VARCHAR2,
1240 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1241 X_Return_Status OUT NOCOPY VARCHAR2,
1242 X_Msg_Count OUT NOCOPY NUMBER,
1243 X_Msg_Data OUT NOCOPY VARCHAR2
1244 )
1245 IS
1246 BEGIN
1247
1248 -- Initialize message list if p_init_msg_list is set to TRUE.
1249 IF FND_API.to_Boolean( p_init_msg_list )
1250 THEN
1251 FND_MSG_PUB.initialize;
1252 END IF;
1253
1254
1255 -- Initialize API return status to SUCCESS
1256 x_return_status := FND_API.G_RET_STS_SUCCESS;
1257
1258 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1259 THEN
1260 -- Hint: Validate data
1261 -- IF p_SHIP_COMPLETE_FLAG is not NULL and p_SHIP_COMPLETE_FLAG <> G_MISS_CHAR
1262 -- verify if data is valid
1263 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1264 NULL;
1265 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1266 THEN
1267 -- Hint: Validate data
1268 -- IF p_SHIP_COMPLETE_FLAG <> G_MISS_CHAR
1269 -- verify if data is valid
1270 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1271 NULL;
1272 END IF;
1273
1274 -- Standard call to get message count and if count is 1, get message info.
1275 FND_MSG_PUB.Count_And_Get
1276 ( p_count => x_msg_count,
1277 p_data => x_msg_data
1278 );
1279
1280 END Validate_SHIP_COMPLETE_FLAG;
1281
1282
1283 PROCEDURE Validate_LIKELIHOOD (
1284 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1285 P_Validation_mode IN VARCHAR2,
1286 P_LIKELIHOOD IN NUMBER,
1287 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1291 )
1288 X_Return_Status OUT NOCOPY VARCHAR2,
1289 X_Msg_Count OUT NOCOPY NUMBER,
1290 X_Msg_Data OUT NOCOPY VARCHAR2
1292 IS
1293 BEGIN
1294
1295 -- Initialize message list if p_init_msg_list is set to TRUE.
1296 IF FND_API.to_Boolean( p_init_msg_list )
1297 THEN
1298 FND_MSG_PUB.initialize;
1299 END IF;
1300
1301
1302 -- Initialize API return status to SUCCESS
1303 x_return_status := FND_API.G_RET_STS_SUCCESS;
1304
1305 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1306 THEN
1307 -- Hint: Validate data
1308 -- IF p_LIKELIHOOD is not NULL and p_LIKELIHOOD <> G_MISS_CHAR
1309 -- verify if data is valid
1310 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1311 NULL;
1312 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1313 THEN
1314 -- Hint: Validate data
1315 -- IF p_LIKELIHOOD <> G_MISS_CHAR
1316 -- verify if data is valid
1317 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1318 NULL;
1319 END IF;
1320
1321 -- Standard call to get message count and if count is 1, get message info.
1322 FND_MSG_PUB.Count_And_Get
1323 ( p_count => x_msg_count,
1324 p_data => x_msg_data
1325 );
1326
1327 END Validate_LIKELIHOOD;
1328
1329
1330 PROCEDURE Validate_REVISION (
1331 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1332 P_Validation_mode IN VARCHAR2,
1333 P_REVISION IN VARCHAR2,
1334 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1335 X_Return_Status OUT NOCOPY VARCHAR2,
1336 X_Msg_Count OUT NOCOPY NUMBER,
1337 X_Msg_Data OUT NOCOPY VARCHAR2
1338 )
1339 IS
1340 BEGIN
1341
1342 -- Initialize message list if p_init_msg_list is set to TRUE.
1343 IF FND_API.to_Boolean( p_init_msg_list )
1344 THEN
1345 FND_MSG_PUB.initialize;
1346 END IF;
1347
1348
1349 -- Initialize API return status to SUCCESS
1350 x_return_status := FND_API.G_RET_STS_SUCCESS;
1351
1352 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1353 THEN
1354 -- Hint: Validate data
1355 -- IF p_REVISION is not NULL and p_REVISION <> G_MISS_CHAR
1356 -- verify if data is valid
1357 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1358 NULL;
1359 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1360 THEN
1361 -- Hint: Validate data
1362 -- IF p_REVISION <> G_MISS_CHAR
1363 -- verify if data is valid
1364 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1365 NULL;
1366 END IF;
1367
1368 -- Standard call to get message count and if count is 1, get message info.
1369 FND_MSG_PUB.Count_And_Get
1370 ( p_count => x_msg_count,
1371 p_data => x_msg_data
1372 );
1373
1374 END Validate_REVISION;
1375
1376
1377 PROCEDURE Validate_SOURCE_ORGANIZATION_ID (
1378 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1379 P_Validation_mode IN VARCHAR2,
1380 P_SOURCE_ORGANIZATION_ID IN NUMBER,
1381 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1382 X_Return_Status OUT NOCOPY VARCHAR2,
1383 X_Msg_Count OUT NOCOPY NUMBER,
1384 X_Msg_Data OUT NOCOPY VARCHAR2
1385 )
1386 IS
1387 BEGIN
1388
1389 -- Initialize message list if p_init_msg_list is set to TRUE.
1390 IF FND_API.to_Boolean( p_init_msg_list )
1391 THEN
1392 FND_MSG_PUB.initialize;
1393 END IF;
1394
1395
1396 -- Initialize API return status to SUCCESS
1397 x_return_status := FND_API.G_RET_STS_SUCCESS;
1398
1399 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1400 THEN
1401 -- Hint: Validate data
1402 -- IF p_SOURCE_ORGANIZATION_ID is not NULL and p_SOURCE_ORGANIZATION_ID <> G_MISS_CHAR
1403 -- verify if data is valid
1404 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1405 NULL;
1406 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1407 THEN
1408 -- Hint: Validate data
1409 -- IF p_SOURCE_ORGANIZATION_ID <> G_MISS_CHAR
1410 -- verify if data is valid
1411 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1412 NULL;
1413 END IF;
1414
1415 -- Standard call to get message count and if count is 1, get message info.
1416 FND_MSG_PUB.Count_And_Get
1417 ( p_count => x_msg_count,
1418 p_data => x_msg_data
1419 );
1420
1421 END Validate_SOURCE_ORGANIZATION_ID;
1422
1423
1424 PROCEDURE Validate_SOURCE_SUBINVENTORY (
1425 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1426 P_Validation_mode IN VARCHAR2,
1430 X_Msg_Count OUT NOCOPY NUMBER,
1427 P_SOURCE_SUBINVENTORY IN VARCHAR2,
1428 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1429 X_Return_Status OUT NOCOPY VARCHAR2,
1431 X_Msg_Data OUT NOCOPY VARCHAR2
1432 )
1433 IS
1434 BEGIN
1435
1436 -- Initialize message list if p_init_msg_list is set to TRUE.
1437 IF FND_API.to_Boolean( p_init_msg_list )
1438 THEN
1439 FND_MSG_PUB.initialize;
1440 END IF;
1441
1442
1443 -- Initialize API return status to SUCCESS
1444 x_return_status := FND_API.G_RET_STS_SUCCESS;
1445
1446 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1447 THEN
1448 -- Hint: Validate data
1449 -- IF p_SOURCE_SUBINVENTORY is not NULL and p_SOURCE_SUBINVENTORY <> G_MISS_CHAR
1450 -- verify if data is valid
1451 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1452 NULL;
1453 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1454 THEN
1455 -- Hint: Validate data
1456 -- IF p_SOURCE_SUBINVENTORY <> G_MISS_CHAR
1457 -- verify if data is valid
1458 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1459 NULL;
1460 END IF;
1461
1462 -- Standard call to get message count and if count is 1, get message info.
1463 FND_MSG_PUB.Count_And_Get
1464 ( p_count => x_msg_count,
1465 p_data => x_msg_data
1466 );
1467
1468 END Validate_SOURCE_SUBINVENTORY;
1469
1470
1471 PROCEDURE Validate_ORDERED_QUANTITY (
1472 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1473 P_Validation_mode IN VARCHAR2,
1474 P_ORDERED_QUANTITY IN NUMBER,
1475 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1476 X_Return_Status OUT NOCOPY VARCHAR2,
1477 X_Msg_Count OUT NOCOPY NUMBER,
1478 X_Msg_Data OUT NOCOPY VARCHAR2
1479 )
1480 IS
1481 BEGIN
1482
1483 -- Initialize message list if p_init_msg_list is set to TRUE.
1484 IF FND_API.to_Boolean( p_init_msg_list )
1485 THEN
1486 FND_MSG_PUB.initialize;
1487 END IF;
1488
1489
1490 -- Initialize API return status to SUCCESS
1491 x_return_status := FND_API.G_RET_STS_SUCCESS;
1492
1493 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1494 THEN
1495 -- Hint: Validate data
1496 -- IF p_ORDERED_QUANTITY is not NULL and p_ORDERED_QUANTITY <> G_MISS_CHAR
1497 -- verify if data is valid
1498 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1499 NULL;
1500 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1501 THEN
1502 -- Hint: Validate data
1503 -- IF p_ORDERED_QUANTITY <> G_MISS_CHAR
1504 -- verify if data is valid
1505 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1506 NULL;
1507 END IF;
1508
1509 -- Standard call to get message count and if count is 1, get message info.
1510 FND_MSG_PUB.Count_And_Get
1511 ( p_count => x_msg_count,
1512 p_data => x_msg_data
1513 );
1514
1515 END Validate_ORDERED_QUANTITY;
1516
1517
1518 PROCEDURE Validate_ORDER_LINE_ID (
1519 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1520 P_Validation_mode IN VARCHAR2,
1521 P_ORDER_LINE_ID IN NUMBER,
1522 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1523 X_Return_Status OUT NOCOPY VARCHAR2,
1524 X_Msg_Count OUT NOCOPY NUMBER,
1525 X_Msg_Data OUT NOCOPY VARCHAR2
1526 )
1527 IS
1528 BEGIN
1529
1530 -- Initialize message list if p_init_msg_list is set to TRUE.
1531 IF FND_API.to_Boolean( p_init_msg_list )
1532 THEN
1533 FND_MSG_PUB.initialize;
1534 END IF;
1535
1536
1537 -- Initialize API return status to SUCCESS
1538 x_return_status := FND_API.G_RET_STS_SUCCESS;
1539
1540 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1541 THEN
1542 -- Hint: Validate data
1543 -- IF p_ORDER_LINE_ID is not NULL and p_ORDER_LINE_ID <> G_MISS_CHAR
1544 -- verify if data is valid
1545 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1546 NULL;
1547 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1548 THEN
1549 -- Hint: Validate data
1550 -- IF p_ORDER_LINE_ID <> G_MISS_CHAR
1551 -- verify if data is valid
1552 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1553 NULL;
1554 END IF;
1555
1556 -- Standard call to get message count and if count is 1, get message info.
1557 FND_MSG_PUB.Count_And_Get
1558 ( p_count => x_msg_count,
1559 p_data => x_msg_data
1560 );
1561
1562 END Validate_ORDER_LINE_ID;
1563
1564
1568 P_RESERVATION_ID IN NUMBER,
1565 PROCEDURE Validate_RESERVATION_ID (
1566 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1567 P_Validation_mode IN VARCHAR2,
1569 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1570 X_Return_Status OUT NOCOPY VARCHAR2,
1571 X_Msg_Count OUT NOCOPY NUMBER,
1572 X_Msg_Data OUT NOCOPY VARCHAR2
1573 )
1574 IS
1575 BEGIN
1576
1577 -- Initialize message list if p_init_msg_list is set to TRUE.
1578 IF FND_API.to_Boolean( p_init_msg_list )
1579 THEN
1580 FND_MSG_PUB.initialize;
1581 END IF;
1582
1583
1584 -- Initialize API return status to SUCCESS
1585 x_return_status := FND_API.G_RET_STS_SUCCESS;
1586
1587 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1588 THEN
1589 -- Hint: Validate data
1590 -- IF p_RESERVATION_ID is not NULL and p_RESERVATION_ID <> G_MISS_CHAR
1591 -- verify if data is valid
1592 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1593 NULL;
1594 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1595 THEN
1596 -- Hint: Validate data
1597 -- IF p_RESERVATION_ID <> G_MISS_CHAR
1598 -- verify if data is valid
1599 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1600 NULL;
1601 END IF;
1602
1603 -- Standard call to get message count and if count is 1, get message info.
1604 FND_MSG_PUB.Count_And_Get
1605 ( p_count => x_msg_count,
1606 p_data => x_msg_data
1607 );
1608
1609 END Validate_RESERVATION_ID;
1610
1611
1612 PROCEDURE Validate_ORDER_BY_DATE (
1613 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1614 P_Validation_mode IN VARCHAR2,
1615 P_ORDER_BY_DATE IN DATE,
1616 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1617 X_Return_Status OUT NOCOPY VARCHAR2,
1618 X_Msg_Count OUT NOCOPY NUMBER,
1619 X_Msg_Data OUT NOCOPY VARCHAR2
1620 )
1621 IS
1622 BEGIN
1623
1624 -- Initialize message list if p_init_msg_list is set to TRUE.
1625 IF FND_API.to_Boolean( p_init_msg_list )
1626 THEN
1627 FND_MSG_PUB.initialize;
1628 END IF;
1629
1630
1631 -- Initialize API return status to SUCCESS
1632 x_return_status := FND_API.G_RET_STS_SUCCESS;
1633
1634 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1635 THEN
1636 -- Hint: Validate data
1637 -- IF p_ORDER_BY_DATE is not NULL and p_ORDER_BY_DATE <> G_MISS_CHAR
1638 -- verify if data is valid
1639 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1640 NULL;
1641 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1642 THEN
1643 -- Hint: Validate data
1644 -- IF p_ORDER_BY_DATE <> G_MISS_CHAR
1645 -- verify if data is valid
1646 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1647 NULL;
1648 END IF;
1649
1650 -- Standard call to get message count and if count is 1, get message info.
1651 FND_MSG_PUB.Count_And_Get
1652 ( p_count => x_msg_count,
1653 p_data => x_msg_data
1654 );
1655
1656 END Validate_ORDER_BY_DATE;
1657
1658
1659 -- Hint: inter-field level validation can be added here.
1660 -- Hint: If p_validation_mode = AS_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1661 -- to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1662 -- stored in database table.
1663 PROCEDURE Validate_Requirement_Lines_rec(
1664 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1665 P_Validation_mode IN VARCHAR2,
1666 p_requirement_line_rec IN Requirement_Lines_Rec_Type,
1667 X_Return_Status OUT NOCOPY VARCHAR2,
1668 X_Msg_Count OUT NOCOPY NUMBER,
1669 X_Msg_Data OUT NOCOPY VARCHAR2
1670 )
1671 IS
1672 BEGIN
1673
1674 -- Initialize message list if p_init_msg_list is set to TRUE.
1675 IF FND_API.to_Boolean( p_init_msg_list )
1676 THEN
1677 FND_MSG_PUB.initialize;
1678 END IF;
1679
1680
1681 -- Initialize API return status to SUCCESS
1682 x_return_status := FND_API.G_RET_STS_SUCCESS;
1683
1684 -- Hint: Validate data
1685 -- If data not valid
1686 -- THEN
1687 -- x_return_status := FND_API.G_RET_STS_ERROR;
1688
1689 -- Debug Message
1690 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'API_INVALID_RECORD');
1691
1692 -- Standard call to get message count and if count is 1, get message info.
1693 FND_MSG_PUB.Count_And_Get
1694 ( p_count => x_msg_count,
1695 p_data => x_msg_data
1696 );
1697
1701 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1698 END Validate_Requirement_Lines_Rec;
1699
1700 PROCEDURE Validate_requirement_lines(
1702 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1703 P_Validation_mode IN VARCHAR2,
1704 p_requirement_line_rec IN Requirement_Lines_Rec_Type,
1705 X_Return_Status OUT NOCOPY VARCHAR2,
1706 X_Msg_Count OUT NOCOPY NUMBER,
1707 X_Msg_Data OUT NOCOPY VARCHAR2
1708 )
1709 IS
1710 l_api_name CONSTANT VARCHAR2(30) := 'Validate_requirement_lines';
1711 BEGIN
1712
1713 -- Debug Message
1714 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
1715
1716
1717 -- Initialize API return status to SUCCESS
1718 x_return_status := FND_API.G_RET_STS_SUCCESS;
1719
1720 IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
1721 -- Hint: We provide validation procedure for every column. Developer should delete
1722 -- unnecessary validation procedures.
1723 Validate_REQUIREMENT_LINE_ID(
1724 p_init_msg_list => FND_API.G_FALSE,
1725 p_validation_mode => p_validation_mode,
1726 p_REQUIREMENT_LINE_ID => p_requirement_line_rec.REQUIREMENT_LINE_ID,
1727 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1728 x_return_status => x_return_status,
1729 x_msg_count => x_msg_count,
1730 x_msg_data => x_msg_data);
1731 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1732 raise FND_API.G_EXC_ERROR;
1733 END IF;
1734
1735 Validate_REQUIREMENT_HEADER_ID(
1736 p_init_msg_list => FND_API.G_FALSE,
1737 p_validation_mode => p_validation_mode,
1738 p_REQUIREMENT_HEADER_ID => p_requirement_line_rec.REQUIREMENT_HEADER_ID,
1739 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1740 x_return_status => x_return_status,
1741 x_msg_count => x_msg_count,
1742 x_msg_data => x_msg_data);
1743 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1744 raise FND_API.G_EXC_ERROR;
1745 END IF;
1746
1747 Validate_INVENTORY_ITEM_ID(
1748 p_init_msg_list => FND_API.G_FALSE,
1749 p_validation_mode => p_validation_mode,
1750 p_INVENTORY_ITEM_ID => p_requirement_line_rec.INVENTORY_ITEM_ID,
1751 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1752 x_return_status => x_return_status,
1753 x_msg_count => x_msg_count,
1754 x_msg_data => x_msg_data);
1755 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1756 raise FND_API.G_EXC_ERROR;
1757 END IF;
1758
1759 Validate_UOM_CODE(
1760 p_init_msg_list => FND_API.G_FALSE,
1761 p_validation_mode => p_validation_mode,
1762 p_UOM_CODE => p_requirement_line_rec.UOM_CODE,
1763 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1764 x_return_status => x_return_status,
1765 x_msg_count => x_msg_count,
1766 x_msg_data => x_msg_data);
1767 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1768 raise FND_API.G_EXC_ERROR;
1769 END IF;
1770
1771 Validate_REQUIRED_QUANTITY(
1772 p_init_msg_list => FND_API.G_FALSE,
1773 p_validation_mode => p_validation_mode,
1774 p_REQUIRED_QUANTITY => p_requirement_line_rec.REQUIRED_QUANTITY,
1775 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1776 x_return_status => x_return_status,
1777 x_msg_count => x_msg_count,
1778 x_msg_data => x_msg_data);
1779 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1780 raise FND_API.G_EXC_ERROR;
1781 END IF;
1782
1783 Validate_SHIP_COMPLETE_FLAG(
1784 p_init_msg_list => FND_API.G_FALSE,
1785 p_validation_mode => p_validation_mode,
1786 p_SHIP_COMPLETE_FLAG => p_requirement_line_rec.SHIP_COMPLETE_FLAG,
1787 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1788 x_return_status => x_return_status,
1789 x_msg_count => x_msg_count,
1790 x_msg_data => x_msg_data);
1791 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1792 raise FND_API.G_EXC_ERROR;
1793 END IF;
1794
1795 Validate_LIKELIHOOD(
1796 p_init_msg_list => FND_API.G_FALSE,
1797 p_validation_mode => p_validation_mode,
1798 p_LIKELIHOOD => p_requirement_line_rec.LIKELIHOOD,
1802 x_msg_data => x_msg_data);
1799 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1800 x_return_status => x_return_status,
1801 x_msg_count => x_msg_count,
1803 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1804 raise FND_API.G_EXC_ERROR;
1805 END IF;
1806
1807 Validate_REVISION(
1808 p_init_msg_list => FND_API.G_FALSE,
1809 p_validation_mode => p_validation_mode,
1810 p_REVISION => p_requirement_line_rec.REVISION,
1811 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1812 x_return_status => x_return_status,
1813 x_msg_count => x_msg_count,
1814 x_msg_data => x_msg_data);
1815 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1816 raise FND_API.G_EXC_ERROR;
1817 END IF;
1818
1819 Validate_SOURCE_ORGANIZATION_ID(
1820 p_init_msg_list => FND_API.G_FALSE,
1821 p_validation_mode => p_validation_mode,
1822 p_SOURCE_ORGANIZATION_ID => p_requirement_line_rec.SOURCE_ORGANIZATION_ID,
1823 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1824 x_return_status => x_return_status,
1825 x_msg_count => x_msg_count,
1826 x_msg_data => x_msg_data);
1827 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1828 raise FND_API.G_EXC_ERROR;
1829 END IF;
1830
1831 Validate_SOURCE_SUBINVENTORY(
1832 p_init_msg_list => FND_API.G_FALSE,
1833 p_validation_mode => p_validation_mode,
1834 p_SOURCE_SUBINVENTORY => p_requirement_line_rec.SOURCE_SUBINVENTORY,
1835 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1836 x_return_status => x_return_status,
1837 x_msg_count => x_msg_count,
1838 x_msg_data => x_msg_data);
1839 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1840 raise FND_API.G_EXC_ERROR;
1841 END IF;
1842
1843 Validate_ORDERED_QUANTITY(
1844 p_init_msg_list => FND_API.G_FALSE,
1845 p_validation_mode => p_validation_mode,
1846 p_ORDERED_QUANTITY => p_requirement_line_rec.ORDERED_QUANTITY,
1847 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1848 x_return_status => x_return_status,
1849 x_msg_count => x_msg_count,
1850 x_msg_data => x_msg_data);
1851 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1852 raise FND_API.G_EXC_ERROR;
1853 END IF;
1854
1855 Validate_ORDER_LINE_ID(
1856 p_init_msg_list => FND_API.G_FALSE,
1857 p_validation_mode => p_validation_mode,
1858 p_ORDER_LINE_ID => p_requirement_line_rec.ORDER_LINE_ID,
1859 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1860 x_return_status => x_return_status,
1861 x_msg_count => x_msg_count,
1862 x_msg_data => x_msg_data);
1863 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1864 raise FND_API.G_EXC_ERROR;
1865 END IF;
1866
1867 Validate_RESERVATION_ID(
1868 p_init_msg_list => FND_API.G_FALSE,
1869 p_validation_mode => p_validation_mode,
1870 p_RESERVATION_ID => p_requirement_line_rec.RESERVATION_ID,
1871 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1872 x_return_status => x_return_status,
1873 x_msg_count => x_msg_count,
1874 x_msg_data => x_msg_data);
1875 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1876 raise FND_API.G_EXC_ERROR;
1877 END IF;
1878
1879 Validate_ORDER_BY_DATE(
1880 p_init_msg_list => FND_API.G_FALSE,
1881 p_validation_mode => p_validation_mode,
1882 p_ORDER_BY_DATE => p_requirement_line_rec.ORDER_BY_DATE,
1883 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1884 x_return_status => x_return_status,
1885 x_msg_count => x_msg_count,
1886 x_msg_data => x_msg_data);
1887 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1888 raise FND_API.G_EXC_ERROR;
1889 END IF;
1890
1891 END IF;
1892
1893 IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_RECORD) THEN
1894 -- Hint: Inter-field level validation can be added here
1895 -- invoke record level validation procedures
1896 Validate_Requirement_Lines_Rec(
1900 x_return_status => x_return_status,
1897 p_init_msg_list => FND_API.G_FALSE,
1898 p_validation_mode => p_validation_mode,
1899 p_requirement_line_rec => p_requirement_line_rec,
1901 x_msg_count => x_msg_count,
1902 x_msg_data => x_msg_data);
1903
1904 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1905 raise FND_API.G_EXC_ERROR;
1906 END IF;
1907 END IF;
1908
1909 IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD) THEN
1910 -- invoke inter-record level validation procedures
1911 NULL;
1912 END IF;
1913
1914 IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY) THEN
1915 -- invoke inter-entity level validation procedures
1916 NULL;
1917 END IF;
1918
1919
1920 -- Debug Message
1921 AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
1922
1923 END Validate_requirement_lines;
1924
1925 */
1926
1927 End CSP_Requirement_Lines_PVT;