[Home] [Help]
PACKAGE BODY: APPS.CSP_ORDERLINES_PVT
Source
1 PACKAGE BODY CSP_ORDERLINES_PVT AS
2 /* $Header: cspvtmlb.pls 115.11 2003/05/02 17:17:58 phegde ship $ */
3 -- Start of Comments
4 -- Package name : CSP_ORDERLINES_PVT
5 -- Purpose :
6 -- History :
7 -- NOTE : CSP: api_version_number is 1.0
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_ORDERLINES_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cspvtmlb.pls';
13
14 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
15 G_LOGIN_ID NUMBER := FND_GLOBAL.LOGIN_ID;
16
17 -- Hint: Primary key needs to be returned.
18 PROCEDURE Create_orderlines(
19 P_Api_Version_Number IN NUMBER,
20 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
21 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
22 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
23 P_mol_Rec IN mol_Rec_Type := G_MISS_mol_REC,
24 --Hint: Add detail tables as parameter lists if it's master-detail relationship.
25 X_LINE_ID OUT NOCOPY NUMBER,
26 X_Return_Status OUT NOCOPY VARCHAR2,
27 X_Msg_Count OUT NOCOPY NUMBER,
28 X_Msg_Data OUT NOCOPY VARCHAR2
29 )
30
31 IS
32 l_api_name CONSTANT VARCHAR2(30) := 'Create_orderlines';
33 l_api_version_number CONSTANT NUMBER := 1.0;
34 l_return_status_full VARCHAR2(1);
35 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
36 BEGIN
37 -- Standard Start of API savepoint
38 SAVEPOINT CREATE_ORDERLINES_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
46 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47 END IF;
48
49
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 -- Debug Message
58 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
59
60
61 -- Initialize API return status to SUCCESS
62 x_return_status := FND_API.G_RET_STS_SUCCESS;
63
64 --
65 -- API body
66 --
67
68 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
69 /*
70 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
71 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
72 THEN
73 AS_CALLOUT_PKG.Create_orderlines_BC(
74 p_api_version_number => 2.0,
75 p_init_msg_list => FND_API.G_FALSE,
76 p_commit => FND_API.G_FALSE,
77 p_validation_level => p_validation_level,
78 P_mol_Rec => P_mol_Rec,
79 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
80 x_return_status => x_return_status,
81 x_msg_count => x_msg_count,
82 x_msg_data => x_msg_data);
83 END IF;
84 */
85 -- ******************************************************************
86 -- Validate Environment
87 -- ******************************************************************
88 IF FND_GLOBAL.User_Id IS NULL
89 THEN
90 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
91 THEN
92 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
93 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
94 FND_MSG_PUB.ADD;
95 END IF;
96 RAISE FND_API.G_EXC_ERROR;
97 END IF;
98
99 /* commented out by CSP DEC 06, 1999.
100
101 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
102 p_api_version_number => 2.0
103 ,p_salesforce_id => NULL
104 ,x_return_status => x_return_status
105 ,x_msg_count => x_msg_count
106 ,x_msg_data => x_msg_data
107 ,x_sales_member_rec => l_identity_sales_member_rec);
108
109 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
110 RAISE FND_API.G_EXC_ERROR;
111 END IF;
112
113 */
114 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
115 THEN
116 -- Debug message
117 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Validate_orderlines');
118
119 -- Invoke validation procedures
120 Validate_orderlines(
121 p_init_msg_list => FND_API.G_FALSE,
122 p_validation_level => p_validation_level,
123 p_validation_mode => JTF_PLSQL_API.G_CREATE,
124 P_mol_Rec => P_mol_Rec,
125 x_return_status => x_return_status,
126 x_msg_count => x_msg_count,
127 x_msg_data => x_msg_data);
128 END IF;
129
130 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
131 RAISE FND_API.G_EXC_ERROR;
132 END IF;
133
134 -- Hint: Add corresponding Master-Detail business logic here if necessary.
135
136 -- Debug Message
137 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Calling create table handler');
138
139 -- Invoke table handler(CSP_MOVEORDER_LINES_PKG.Insert_Row)
140 CSP_MOVEORDER_LINES_PKG.Insert_Row(
141 p_LINE_ID => p_mol_rec.LINE_ID,
142 p_CREATED_BY => G_USER_ID,
143 p_CREATION_DATE => sysdate,
144 p_LAST_UPDATED_BY => G_USER_ID,
145 p_LAST_UPDATE_DATE => sysdate,
146 p_LAST_UPDATED_LOGIN => G_LOGIN_ID,
147 p_HEADER_ID => p_mol_rec.HEADER_ID,
148 p_CUSTOMER_PO => p_mol_rec.CUSTOMER_PO,
149 p_INCIDENT_ID => p_mol_rec.INCIDENT_ID,
150 p_TASK_ID => p_mol_rec.TASK_ID,
151 p_TASK_ASSIGNMENT_ID => p_mol_rec.TASK_ASSIGNMENT_ID,
152 p_COMMENTS => p_mol_rec.COMMENTS,
153 p_ATTRIBUTE_CATEGORY => p_mol_rec.ATTRIBUTE_CATEGORY,
154 p_ATTRIBUTE1 => p_mol_rec.ATTRIBUTE1,
155 p_ATTRIBUTE2 => p_mol_rec.ATTRIBUTE2,
156 p_ATTRIBUTE3 => p_mol_rec.ATTRIBUTE3,
157 p_ATTRIBUTE4 => p_mol_rec.ATTRIBUTE4,
158 p_ATTRIBUTE5 => p_mol_rec.ATTRIBUTE5,
159 p_ATTRIBUTE6 => p_mol_rec.ATTRIBUTE6,
160 p_ATTRIBUTE7 => p_mol_rec.ATTRIBUTE7,
161 p_ATTRIBUTE8 => p_mol_rec.ATTRIBUTE8,
162 p_ATTRIBUTE9 => p_mol_rec.ATTRIBUTE9,
163 p_ATTRIBUTE10 => p_mol_rec.ATTRIBUTE10,
164 p_ATTRIBUTE11 => p_mol_rec.ATTRIBUTE11,
165 p_ATTRIBUTE12 => p_mol_rec.ATTRIBUTE12,
166 p_ATTRIBUTE13 => p_mol_rec.ATTRIBUTE13,
167 p_ATTRIBUTE14 => p_mol_rec.ATTRIBUTE14,
168 p_ATTRIBUTE15 => p_mol_rec.ATTRIBUTE15);
169 -- Hint: Primary key should be returned.
170 -- x_LINE_ID := px_LINE_ID;
171 x_LINE_ID := p_mol_rec.LINE_ID;
172
173 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
174 RAISE FND_API.G_EXC_ERROR;
175 END IF;
176
177 --
178 -- End of API body
179 --
180
181 -- Standard check for p_commit
182 IF FND_API.to_Boolean( p_commit )
183 THEN
184 COMMIT WORK;
185 END IF;
186
187
188 -- Debug Message
189 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
190
191
192 -- Standard call to get message count and if count is 1, get message info.
193 FND_MSG_PUB.Count_And_Get
194 ( p_count => x_msg_count,
195 p_data => x_msg_data
196 );
197
198 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
199 /*
200 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
201 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
202 THEN
203 AS_CALLOUT_PKG.Create_orderlines_AC(
204 p_api_version_number => 2.0,
205 p_init_msg_list => FND_API.G_FALSE,
206 p_commit => FND_API.G_FALSE,
207 p_validation_level => p_validation_level,
208 P_mol_Rec => P_mol_Rec,
209 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
210 x_return_status => x_return_status,
211 x_msg_count => x_msg_count,
212 x_msg_data => x_msg_data);
213 END IF;
214 */
215 EXCEPTION
216 WHEN FND_API.G_EXC_ERROR THEN
217 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
218 P_API_NAME => L_API_NAME
219 ,P_PKG_NAME => G_PKG_NAME
220 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
221 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
222 ,X_MSG_COUNT => X_MSG_COUNT
223 ,X_MSG_DATA => X_MSG_DATA
224 ,X_RETURN_STATUS => X_RETURN_STATUS);
225
226 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
227 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
228 P_API_NAME => L_API_NAME
229 ,P_PKG_NAME => G_PKG_NAME
230 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
231 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
232 ,X_MSG_COUNT => X_MSG_COUNT
233 ,X_MSG_DATA => X_MSG_DATA
234 ,X_RETURN_STATUS => X_RETURN_STATUS);
235
236 WHEN OTHERS THEN
237 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
238 P_API_NAME => L_API_NAME
239 ,P_PKG_NAME => G_PKG_NAME
240 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
241 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
242 ,X_MSG_COUNT => X_MSG_COUNT
243 ,X_MSG_DATA => X_MSG_DATA
244 ,X_RETURN_STATUS => X_RETURN_STATUS);
245 End Create_orderlines;
246
247
248 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
249 PROCEDURE Update_orderlines(
250 P_Api_Version_Number IN NUMBER,
251 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
252 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
253 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
254 P_Identity_Salesforce_Id IN NUMBER := NULL,
255 P_mol_Rec IN mol_Rec_Type,
256 X_Return_Status OUT NOCOPY VARCHAR2,
257 X_Msg_Count OUT NOCOPY NUMBER,
258 X_Msg_Data OUT NOCOPY VARCHAR2
259 )
260
261 IS
262 /*
263 Cursor C_Get_orderlines(LINE_ID Number) IS
264 Select rowid,
265 LINE_ID,
266 CREATED_BY,
267 CREATION_DATE,
268 LAST_UPDATED_BY,
269 LAST_UPDATE_DATE,
270 LAST_UPDATED_LOGIN,
271 HEADER_ID,
272 CUSTOMER_PO,
273 INCIDENT_ID,
274 TASK_ID,
275 TASK_ASSIGNMENT_ID,
276 COMMENTS,
277 ATTRIBUTE_CATEGORY,
278 ATTRIBUTE1,
279 ATTRIBUTE2,
280 ATTRIBUTE3,
281 ATTRIBUTE4,
282 ATTRIBUTE5,
283 ATTRIBUTE6,
284 ATTRIBUTE7,
285 ATTRIBUTE8,
286 ATTRIBUTE9,
287 ATTRIBUTE10,
288 ATTRIBUTE11,
289 ATTRIBUTE12,
290 ATTRIBUTE13,
291 ATTRIBUTE14,
292 ATTRIBUTE15
293 From CSP_MOVEORDER_LINES
294 -- Hint: Developer need to provide Where clause
295 For Update NOWAIT;
296 */
297 l_api_name CONSTANT VARCHAR2(30) := 'Update_orderlines';
298 l_api_version_number CONSTANT NUMBER := 1.0;
299 -- Local Variables
300 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
301 l_ref_mol_rec CSP_orderlines_PVT.mol_Rec_Type;
302 l_tar_mol_rec CSP_orderlines_PVT.mol_Rec_Type := P_mol_Rec;
303 l_rowid ROWID;
304 BEGIN
305 -- Standard Start of API savepoint
306 SAVEPOINT UPDATE_ORDERLINES_PVT;
307
308 -- Standard call to check for call compatibility.
309 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
310 p_api_version_number,
311 l_api_name,
312 G_PKG_NAME)
313 THEN
314 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
315 END IF;
316
317
318 -- Initialize message list if p_init_msg_list is set to TRUE.
319 IF FND_API.to_Boolean( p_init_msg_list )
320 THEN
321 FND_MSG_PUB.initialize;
322 END IF;
323
324
325 -- Debug Message
326 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
327
328
329 -- Initialize API return status to SUCCESS
330 x_return_status := FND_API.G_RET_STS_SUCCESS;
331
332 --
333 -- Api body
334 --
335 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
336 /*
337 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
338 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
339 THEN
340 AS_CALLOUT_PKG.Update_orderlines_BU(
341 p_api_version_number => 2.0,
342 p_init_msg_list => FND_API.G_FALSE,
343 p_commit => FND_API.G_FALSE,
344 p_validation_level => p_validation_level,
345 p_identity_salesforce_id => p_identity_salesforce_id,
346 P_mol_Rec => P_mol_Rec,
347 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
348 x_return_status => x_return_status,
349 x_msg_count => x_msg_count,
350 x_msg_data => x_msg_data);
351 END IF;
352 */
353
354 /* comment out by CSP DEC 06, 1999.
355 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
356 p_api_version_number => 2.0
357 ,p_salesforce_id => p_identity_salesforce_id
358 ,x_return_status => x_return_status
359 ,x_msg_count => x_msg_count
360 ,x_msg_data => x_msg_data
361 ,x_sales_member_rec => l_identity_sales_member_rec);
362
363 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
364 RAISE FND_API.G_EXC_ERROR;
365 END IF;
366
367 */
368
369 -- Debug Message
370 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: - Open Cursor to Select');
371
372 /*
373 Open C_Get_orderlines( l_tar_mol_rec.LINE_ID);
374
375 Fetch C_Get_orderlines into
376 l_rowid,
377 l_ref_mol_rec.LINE_ID,
378 l_ref_mol_rec.CREATED_BY,
379 l_ref_mol_rec.CREATION_DATE,
380 l_ref_mol_rec.LAST_UPDATED_BY,
381 l_ref_mol_rec.LAST_UPDATE_DATE,
382 l_ref_mol_rec.LAST_UPDATED_LOGIN,
383 l_ref_mol_rec.HEADER_ID,
384 l_ref_mol_rec.CUSTOMER_PO,
385 l_ref_mol_rec.INCIDENT_ID,
386 l_ref_mol_rec.TASK_ID,
387 l_ref_mol_rec.TASK_ASSIGNMENT_ID,
388 l_ref_mol_rec.COMMENTS,
389 l_ref_mol_rec.ATTRIBUTE_CATEGORY,
390 l_ref_mol_rec.ATTRIBUTE1,
391 l_ref_mol_rec.ATTRIBUTE2,
392 l_ref_mol_rec.ATTRIBUTE3,
393 l_ref_mol_rec.ATTRIBUTE4,
394 l_ref_mol_rec.ATTRIBUTE5,
395 l_ref_mol_rec.ATTRIBUTE6,
396 l_ref_mol_rec.ATTRIBUTE7,
397 l_ref_mol_rec.ATTRIBUTE8,
398 l_ref_mol_rec.ATTRIBUTE9,
399 l_ref_mol_rec.ATTRIBUTE10,
400 l_ref_mol_rec.ATTRIBUTE11,
401 l_ref_mol_rec.ATTRIBUTE12,
402 l_ref_mol_rec.ATTRIBUTE13,
403 l_ref_mol_rec.ATTRIBUTE14,
404 l_ref_mol_rec.ATTRIBUTE15;
405
406 If ( C_Get_orderlines%NOTFOUND) Then
407 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
408 THEN
409 FND_MESSAGE.Set_Name('CSP', 'API_MISSING_UPDATE_TARGET');
410 FND_MESSAGE.Set_Token ('INFO', 'orderlines', FALSE);
411 FND_MSG_PUB.Add;
412 END IF;
413 raise FND_API.G_EXC_ERROR;
414 END IF;
415 -- Debug Message
416 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: - Close Cursor');
417 Close C_Get_orderlines;
418 */
419
420 /* commented out by klou, 01/07/00
421 If (l_tar_mol_rec.last_update_date is NULL or
422 l_tar_mol_rec.last_update_date = FND_API.G_MISS_Date ) Then
423 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
424 THEN
425 FND_MESSAGE.Set_Name('CSP', 'API_MISSING_ID');
426 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
427 FND_MSG_PUB.ADD;
428 END IF;
429 raise FND_API.G_EXC_ERROR;
430 End if;
431
432 -- Check Whether record has been changed by someone else
433 If (l_tar_mol_rec.last_update_date <> l_ref_mol_rec.last_update_date) Then
434 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
435 THEN
436 FND_MESSAGE.Set_Name('CSP', 'API_RECORD_CHANGED');
437 FND_MESSAGE.Set_Token('INFO', 'orderlines', FALSE);
438 FND_MSG_PUB.ADD;
439 END IF;
440 raise FND_API.G_EXC_ERROR;
441 End if;
442 */
443 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
444 THEN
445 -- Debug message
446 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Validate_orderlines');
447
448 -- Invoke validation procedures
449 Validate_orderlines(
450 p_init_msg_list => FND_API.G_FALSE,
451 p_validation_level => p_validation_level,
452 p_validation_mode => JTF_PLSQL_API.G_UPDATE,
453 P_mol_Rec => P_mol_Rec,
454 x_return_status => x_return_status,
455 x_msg_count => x_msg_count,
456 x_msg_data => x_msg_data);
457 END IF;
458
459 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
460 RAISE FND_API.G_EXC_ERROR;
461 END IF;
462
463 -- Hint: Add corresponding Master-Detail business logic here if necessary.
464
465 -- Debug Message
466 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Calling update table handler');
467
468 -- Invoke table handler(CSP_MOVEORDER_LINES_PKG.Update_Row)
469 CSP_MOVEORDER_LINES_PKG.Update_Row(
470 p_LINE_ID => p_mol_rec.LINE_ID,
471 p_CREATED_BY => p_mol_rec.created_by,
472 p_CREATION_DATE => p_mol_rec.creation_date,
473 p_LAST_UPDATED_BY => p_mol_rec.last_updated_by,
474 p_LAST_UPDATE_DATE => SYSDATE,
475 p_LAST_UPDATED_LOGIN =>p_mol_rec.last_updated_login,
476 p_HEADER_ID => p_mol_rec.HEADER_ID,
477 p_CUSTOMER_PO => p_mol_rec.CUSTOMER_PO,
478 p_INCIDENT_ID => p_mol_rec.INCIDENT_ID,
479 p_TASK_ID => p_mol_rec.TASK_ID,
480 p_TASK_ASSIGNMENT_ID => p_mol_rec.TASK_ASSIGNMENT_ID,
481 p_COMMENTS => p_mol_rec.COMMENTS,
482 p_ATTRIBUTE_CATEGORY => p_mol_rec.ATTRIBUTE_CATEGORY,
483 p_ATTRIBUTE1 => p_mol_rec.ATTRIBUTE1,
484 p_ATTRIBUTE2 => p_mol_rec.ATTRIBUTE2,
485 p_ATTRIBUTE3 => p_mol_rec.ATTRIBUTE3,
486 p_ATTRIBUTE4 => p_mol_rec.ATTRIBUTE4,
487 p_ATTRIBUTE5 => p_mol_rec.ATTRIBUTE5,
488 p_ATTRIBUTE6 => p_mol_rec.ATTRIBUTE6,
489 p_ATTRIBUTE7 => p_mol_rec.ATTRIBUTE7,
490 p_ATTRIBUTE8 => p_mol_rec.ATTRIBUTE8,
491 p_ATTRIBUTE9 => p_mol_rec.ATTRIBUTE9,
492 p_ATTRIBUTE10 => p_mol_rec.ATTRIBUTE10,
493 p_ATTRIBUTE11 => p_mol_rec.ATTRIBUTE11,
494 p_ATTRIBUTE12 => p_mol_rec.ATTRIBUTE12,
495 p_ATTRIBUTE13 => p_mol_rec.ATTRIBUTE13,
496 p_ATTRIBUTE14 => p_mol_rec.ATTRIBUTE14,
497 p_ATTRIBUTE15 => p_mol_rec.ATTRIBUTE15);
498 --
499 -- End of API body.
500 --
501
502 -- Standard check for p_commit
503 IF FND_API.to_Boolean( p_commit )
504 THEN
505 COMMIT WORK;
506 END IF;
507
508
509 -- Debug Message
510 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
511
512
513 -- Standard call to get message count and if count is 1, get message info.
514 FND_MSG_PUB.Count_And_Get
515 ( p_count => x_msg_count,
516 p_data => x_msg_data
517 );
518
519 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
520 /*
521 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
522 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
523 THEN
524 AS_CALLOUT_PKG.Update_orderlines_AU(
525 p_api_version_number => 2.0,
526 p_init_msg_list => FND_API.G_FALSE,
527 p_commit => FND_API.G_FALSE,
528 p_validation_level => p_validation_level,
529 p_identity_salesforce_id => p_identity_salesforce_id,
530 P_mol_Rec => P_mol_Rec,
531 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
532 x_return_status => x_return_status,
533 x_msg_count => x_msg_count,
534 x_msg_data => x_msg_data);
535 END IF;
536 */
537 EXCEPTION
538 WHEN FND_API.G_EXC_ERROR THEN
539 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
540 P_API_NAME => L_API_NAME
541 ,P_PKG_NAME => G_PKG_NAME
542 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
543 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
544 ,X_MSG_COUNT => X_MSG_COUNT
545 ,X_MSG_DATA => X_MSG_DATA
546 ,X_RETURN_STATUS => X_RETURN_STATUS);
547
548 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
549 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
550 P_API_NAME => L_API_NAME
551 ,P_PKG_NAME => G_PKG_NAME
552 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
553 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
554 ,X_MSG_COUNT => X_MSG_COUNT
555 ,X_MSG_DATA => X_MSG_DATA
556 ,X_RETURN_STATUS => X_RETURN_STATUS);
557
558 WHEN OTHERS THEN
559 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
560 P_API_NAME => L_API_NAME
561 ,P_PKG_NAME => G_PKG_NAME
562 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
563 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
564 ,X_MSG_COUNT => X_MSG_COUNT
565 ,X_MSG_DATA => X_MSG_DATA
566 ,X_RETURN_STATUS => X_RETURN_STATUS);
567 End Update_orderlines;
568
569
570 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
571 -- The Master delete procedure may not be needed depends on different business requirements.
572 PROCEDURE Delete_orderlines(
573 P_Api_Version_Number IN NUMBER,
574 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
575 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
576 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
577 P_identity_salesforce_id IN NUMBER := NULL,
578 P_mol_Rec IN mol_Rec_Type,
579 X_Return_Status OUT NOCOPY VARCHAR2,
580 X_Msg_Count OUT NOCOPY NUMBER,
581 X_Msg_Data OUT NOCOPY VARCHAR2
582 )
583
584 IS
585 l_api_name CONSTANT VARCHAR2(30) := 'Delete_orderlines';
586 l_api_version_number CONSTANT NUMBER := 1.0;
587 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
588 BEGIN
589 -- Standard Start of API savepoint
590 SAVEPOINT DELETE_ORDERLINES_PVT;
591
592 -- Standard call to check for call compatibility.
593 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
594 p_api_version_number,
595 l_api_name,
596 G_PKG_NAME)
597 THEN
598 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
599 END IF;
600
601
602 -- Initialize message list if p_init_msg_list is set to TRUE.
603 IF FND_API.to_Boolean( p_init_msg_list )
604 THEN
605 FND_MSG_PUB.initialize;
606 END IF;
607
608
609 -- Debug Message
610 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
611
612
613 -- Initialize API return status to SUCCESS
614 x_return_status := FND_API.G_RET_STS_SUCCESS;
615
616 --
617 -- Api body
618 --
619 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
620 /*
621 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
622 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
623 THEN
624 AS_CALLOUT_PKG.Delete_orderlines_BD(
625 p_api_version_number => 2.0,
626 p_init_msg_list => FND_API.G_FALSE,
627 p_commit => FND_API.G_FALSE,
628 p_validation_level => p_validation_level,
629 p_identity_salesforce_id => p_identity_salesforce_id,
630 P_mol_Rec => P_mol_Rec,
631 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
632 x_return_status => x_return_status,
633 x_msg_count => x_msg_count,
634 x_msg_data => x_msg_data);
635 END IF;
636 */
637
638 /* comment out by CSP DEC 06, 1999.
639 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
640 p_api_version_number => 2.0
641 ,p_salesforce_id => p_identity_salesforce_id
642 ,x_return_status => x_return_status
643 ,x_msg_count => x_msg_count
644 ,x_msg_data => x_msg_data
645 ,x_sales_member_rec => l_identity_sales_member_rec);
646
647 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
648 RAISE FND_API.G_EXC_ERROR;
649 END IF;
650 */
651 -- Debug Message
652 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Calling delete table handler');
653
654 -- Invoke table handler(CSP_MOVEORDER_LINES_PKG.Delete_Row)
655 CSP_MOVEORDER_LINES_PKG.Delete_Row(
656 p_LINE_ID => p_mol_rec.LINE_ID);
657 --
658 -- End of API body
659 --
660
661 -- Standard check for p_commit
662 IF FND_API.to_Boolean( p_commit )
663 THEN
664 COMMIT WORK;
665 END IF;
666
667
668 -- Debug Message
669 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
670
671
672 -- Standard call to get message count and if count is 1, get message info.
673 FND_MSG_PUB.Count_And_Get
674 ( p_count => x_msg_count,
675 p_data => x_msg_data
676 );
677
678 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
679 /*
680 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
681 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
682 THEN
683 AS_CALLOUT_PKG.Delete_orderlines_AD(
684 p_api_version_number => 2.0,
685 p_init_msg_list => FND_API.G_FALSE,
686 p_commit => FND_API.G_FALSE,
687 p_validation_level => p_validation_level,
688 p_identity_salesforce_id => p_identity_salesforce_id,
689 P_mol_Rec => P_mol_Rec,
690 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
691 x_return_status => x_return_status,
692 x_msg_count => x_msg_count,
693 x_msg_data => x_msg_data);
694 END IF;
695 */
696 EXCEPTION
697 WHEN FND_API.G_EXC_ERROR THEN
698 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
699 P_API_NAME => L_API_NAME
700 ,P_PKG_NAME => G_PKG_NAME
701 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
702 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
703 ,X_MSG_COUNT => X_MSG_COUNT
704 ,X_MSG_DATA => X_MSG_DATA
705 ,X_RETURN_STATUS => X_RETURN_STATUS);
706
707 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
708 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
709 P_API_NAME => L_API_NAME
710 ,P_PKG_NAME => G_PKG_NAME
711 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
712 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
713 ,X_MSG_COUNT => X_MSG_COUNT
714 ,X_MSG_DATA => X_MSG_DATA
715 ,X_RETURN_STATUS => X_RETURN_STATUS);
716
717 WHEN OTHERS THEN
718 JTF_PLSQL_API.HANDLE_EXCEPTIONS(
719 P_API_NAME => L_API_NAME
720 ,P_PKG_NAME => G_PKG_NAME
721 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
722 ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
723 ,X_MSG_COUNT => X_MSG_COUNT
724 ,X_MSG_DATA => X_MSG_DATA
725 ,X_RETURN_STATUS => X_RETURN_STATUS);
726 End Delete_orderlines;
727
728
729 -- This procudure defines the columns for the Dynamic SQL.
730 PROCEDURE Define_Columns(
731 P_mol_Rec IN CSP_ORDERLINES_PUB.mol_Rec_Type,
732 p_cur_get_mol IN NUMBER
733 )
734 IS
735 BEGIN
736 -- Debug Message
737 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Define Columns Begins');
738
739 -- define all columns for CSP_MOVEORDER_LINES_V view
740 dbms_sql.define_column(p_cur_get_mol, 1, P_mol_Rec.LINE_ID);
741 dbms_sql.define_column(p_cur_get_mol, 2, P_mol_Rec.LAST_UPDATED_LOGIN);
742 dbms_sql.define_column(p_cur_get_mol, 3, P_mol_Rec.HEADER_ID);
743 dbms_sql.define_column(p_cur_get_mol, 4, P_mol_Rec.CUSTOMER_PO, 30);
744 dbms_sql.define_column(p_cur_get_mol, 5, P_mol_Rec.INCIDENT_ID);
745 dbms_sql.define_column(p_cur_get_mol, 6, P_mol_Rec.TASK_ID);
746 dbms_sql.define_column(p_cur_get_mol, 7, P_mol_Rec.TASK_ASSIGNMENT_ID);
747 dbms_sql.define_column(p_cur_get_mol, 8, P_mol_Rec.COMMENTS, 240);
748 dbms_sql.define_column(p_cur_get_mol, 9, P_mol_Rec.ATTRIBUTE_CATEGORY, 30);
749 dbms_sql.define_column(p_cur_get_mol, 10, P_mol_Rec.ATTRIBUTE1, 150);
750 dbms_sql.define_column(p_cur_get_mol, 11, P_mol_Rec.ATTRIBUTE2, 150);
751 dbms_sql.define_column(p_cur_get_mol, 12, P_mol_Rec.ATTRIBUTE3, 150);
752 dbms_sql.define_column(p_cur_get_mol, 13, P_mol_Rec.ATTRIBUTE4, 150);
753 dbms_sql.define_column(p_cur_get_mol, 14, P_mol_Rec.ATTRIBUTE5, 150);
754 dbms_sql.define_column(p_cur_get_mol, 15, P_mol_Rec.ATTRIBUTE6, 150);
755 dbms_sql.define_column(p_cur_get_mol, 16, P_mol_Rec.ATTRIBUTE7, 150);
756 dbms_sql.define_column(p_cur_get_mol, 17, P_mol_Rec.ATTRIBUTE8, 150);
757 dbms_sql.define_column(p_cur_get_mol, 18, P_mol_Rec.ATTRIBUTE9, 150);
758 dbms_sql.define_column(p_cur_get_mol, 19, P_mol_Rec.ATTRIBUTE10, 150);
759 dbms_sql.define_column(p_cur_get_mol, 20, P_mol_Rec.ATTRIBUTE11, 150);
760 dbms_sql.define_column(p_cur_get_mol, 21, P_mol_Rec.ATTRIBUTE12, 150);
761 dbms_sql.define_column(p_cur_get_mol, 22, P_mol_Rec.ATTRIBUTE13, 150);
762 dbms_sql.define_column(p_cur_get_mol, 23, P_mol_Rec.ATTRIBUTE14, 150);
763 dbms_sql.define_column(p_cur_get_mol, 24, P_mol_Rec.ATTRIBUTE15, 150);
764
765 -- Debug Message
766 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Define Columns Ends');
767 END Define_Columns;
768
769 -- This procudure gets column values by the Dynamic SQL.
770 PROCEDURE Get_Column_Values(
771 p_cur_get_mol IN NUMBER,
772 X_mol_Rec OUT NOCOPY CSP_ORDERLINES_PUB.mol_Rec_Type
773 )
774 IS
775 BEGIN
776 -- Debug Message
777 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Get Column Values Begins');
778
779 -- get all column values for CSP_MOVEORDER_LINES_V table
780 dbms_sql.column_value(p_cur_get_mol, 1, X_mol_Rec.LINE_ID);
781 dbms_sql.column_value(p_cur_get_mol, 2, X_mol_Rec.LAST_UPDATED_LOGIN);
782 dbms_sql.column_value(p_cur_get_mol, 3, X_mol_Rec.HEADER_ID);
783 dbms_sql.column_value(p_cur_get_mol, 4, X_mol_Rec.CUSTOMER_PO);
784 dbms_sql.column_value(p_cur_get_mol, 5, X_mol_Rec.INCIDENT_ID);
785 dbms_sql.column_value(p_cur_get_mol, 6, X_mol_Rec.TASK_ID);
786 dbms_sql.column_value(p_cur_get_mol, 7, X_mol_Rec.TASK_ASSIGNMENT_ID);
787 dbms_sql.column_value(p_cur_get_mol, 8, X_mol_Rec.COMMENTS);
788 dbms_sql.column_value(p_cur_get_mol, 9, X_mol_Rec.ATTRIBUTE_CATEGORY);
789 dbms_sql.column_value(p_cur_get_mol, 10, X_mol_Rec.ATTRIBUTE1);
790 dbms_sql.column_value(p_cur_get_mol, 11, X_mol_Rec.ATTRIBUTE2);
791 dbms_sql.column_value(p_cur_get_mol, 12, X_mol_Rec.ATTRIBUTE3);
792 dbms_sql.column_value(p_cur_get_mol, 13, X_mol_Rec.ATTRIBUTE4);
793 dbms_sql.column_value(p_cur_get_mol, 14, X_mol_Rec.ATTRIBUTE5);
794 dbms_sql.column_value(p_cur_get_mol, 15, X_mol_Rec.ATTRIBUTE6);
795 dbms_sql.column_value(p_cur_get_mol, 16, X_mol_Rec.ATTRIBUTE7);
796 dbms_sql.column_value(p_cur_get_mol, 17, X_mol_Rec.ATTRIBUTE8);
797 dbms_sql.column_value(p_cur_get_mol, 18, X_mol_Rec.ATTRIBUTE9);
798 dbms_sql.column_value(p_cur_get_mol, 19, X_mol_Rec.ATTRIBUTE10);
799 dbms_sql.column_value(p_cur_get_mol, 20, X_mol_Rec.ATTRIBUTE11);
800 dbms_sql.column_value(p_cur_get_mol, 21, X_mol_Rec.ATTRIBUTE12);
801 dbms_sql.column_value(p_cur_get_mol, 22, X_mol_Rec.ATTRIBUTE13);
802 dbms_sql.column_value(p_cur_get_mol, 23, X_mol_Rec.ATTRIBUTE14);
803 dbms_sql.column_value(p_cur_get_mol, 24, X_mol_Rec.ATTRIBUTE15);
804
805 -- Debug Message
806 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Get Column Values Ends');
807 END Get_Column_Values;
808
809 PROCEDURE Gen_mol_order_cl(
810 p_order_by_rec IN CSP_ORDERLINES_PUB.mol_sort_rec_type,
811 x_order_by_cl OUT NOCOPY VARCHAR2,
812 x_return_status OUT NOCOPY VARCHAR2,
813 x_msg_count OUT NOCOPY NUMBER,
814 x_msg_data OUT NOCOPY VARCHAR2
815 )
816 IS
817 l_order_by_cl VARCHAR2(1000) := NULL;
818 l_util_order_by_tbl JTF_PLSQL_API.Util_order_by_tbl_type;
819 BEGIN
820 -- Debug Message
821 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Order by Begins');
822
823 -- Hint: Developer should add more statements according to CSP_sort_rec_type
824 -- Ex:
825 -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
826 -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
827
828 -- Debug Message
829 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Invoke JTF_PLSQL_API.Translate_OrderBy');
830
831 JTF_PLSQL_API.Translate_OrderBy(
832 p_api_version_number => 1.0
833 ,p_init_msg_list => FND_API.G_FALSE
834 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
835 ,p_order_by_tbl => l_util_order_by_tbl
836 ,x_order_by_clause => l_order_by_cl
837 ,x_return_status => x_return_status
838 ,x_msg_count => x_msg_count
839 ,x_msg_data => x_msg_data);
840
841 IF(l_order_by_cl IS NOT NULL) THEN
842 x_order_by_cl := 'order by' || l_order_by_cl;
843 ELSE
844 x_order_by_cl := NULL;
845 END IF;
846
847 -- Debug Message
848 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Order by Ends');
849 END Gen_mol_order_cl;
850
851 -- This procedure bind the variables for the Dynamic SQL
852 PROCEDURE Bind(
853 P_mol_Rec IN CSP_ORDERLINES_PUB.mol_Rec_Type,
854 -- Hint: Add more binding variables here
855 p_cur_get_mol IN NUMBER
856 )
857 IS
858 BEGIN
859 -- Bind variables
860 -- Only those that are not NULL
861 -- Debug Message
862 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Bind Variables Begins');
863
864 -- The following example applies to all columns,
865 -- developers can copy and paste them.
866 IF( (P_mol_Rec.LINE_ID IS NOT NULL) AND (P_mol_Rec.LINE_ID <> FND_API.G_MISS_NUM) )
867 THEN
868 DBMS_SQL.BIND_VARIABLE(p_cur_get_mol, ':p_LINE_ID', P_mol_Rec.LINE_ID);
869 END IF;
870
871 -- Debug Message
872 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Bind Variables Ends');
873 END Bind;
874
875 PROCEDURE Gen_Select(
876 x_select_cl OUT NOCOPY VARCHAR2
877 )
878 IS
879 BEGIN
880 -- Debug Message
881 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Select Begins');
882
883 x_select_cl := 'Select ' ||
884 'CSP_MOVEORDER_LINES_V.LINE_ID,' ||
885 'CSP_MOVEORDER_LINES_V.CREATED_BY,' ||
886 'CSP_MOVEORDER_LINES_V.CREATION_DATE,' ||
887 'CSP_MOVEORDER_LINES_V.LAST_UPDATED_BY,' ||
888 'CSP_MOVEORDER_LINES_V.LAST_UPDATE_DATE,' ||
889 'CSP_MOVEORDER_LINES_V.LAST_UPDATED_LOGIN,' ||
890 'CSP_MOVEORDER_LINES_V.HEADER_ID,' ||
891 'CSP_MOVEORDER_LINES_V.CUSTOMER_PO,' ||
892 'CSP_MOVEORDER_LINES_V.INCIDENT_ID,' ||
893 'CSP_MOVEORDER_LINES_V.TASK_ID,' ||
894 'CSP_MOVEORDER_LINES_V.TASK_ASSIGNMENT_ID,' ||
895 'CSP_MOVEORDER_LINES_V.COMMENTS,' ||
896 'CSP_MOVEORDER_LINES_V.ATTRIBUTE_CATEGORY,' ||
897 'CSP_MOVEORDER_LINES_V.ATTRIBUTE1,' ||
898 'CSP_MOVEORDER_LINES_V.ATTRIBUTE2,' ||
899 'CSP_MOVEORDER_LINES_V.ATTRIBUTE3,' ||
900 'CSP_MOVEORDER_LINES_V.ATTRIBUTE4,' ||
901 'CSP_MOVEORDER_LINES_V.ATTRIBUTE5,' ||
902 'CSP_MOVEORDER_LINES_V.ATTRIBUTE6,' ||
903 'CSP_MOVEORDER_LINES_V.ATTRIBUTE7,' ||
904 'CSP_MOVEORDER_LINES_V.ATTRIBUTE8,' ||
905 'CSP_MOVEORDER_LINES_V.ATTRIBUTE9,' ||
906 'CSP_MOVEORDER_LINES_V.ATTRIBUTE10,' ||
907 'CSP_MOVEORDER_LINES_V.ATTRIBUTE11,' ||
908 'CSP_MOVEORDER_LINES_V.ATTRIBUTE12,' ||
909 'CSP_MOVEORDER_LINES_V.ATTRIBUTE13,' ||
910 'CSP_MOVEORDER_LINES_V.ATTRIBUTE14,' ||
911 'CSP_MOVEORDER_LINES_V.ATTRIBUTE15,' ||
912 'from CSP_MOVEORDER_LINES_V';
913 -- Debug Message
914 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Select Ends');
915
916 END Gen_Select;
917
918 PROCEDURE Gen_mol_Where(
919 P_mol_Rec IN CSP_ORDERLINES_PUB.mol_Rec_Type,
920 x_mol_where OUT NOCOPY VARCHAR2
921 )
922 IS
923 -- cursors to check if wildcard values '%' and '_' have been passed
924 -- as item values
925 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
926 SELECT INSTR(p_rec_item, '%', 1, 1)
927 FROM DUAL;
928 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
929 SELECT INSTR(p_rec_item, '_', 1, 1)
930 FROM DUAL;
931
932 -- return values from cursors
933 str_csr1 NUMBER;
934 str_csr2 NUMBER;
935 l_operator VARCHAR2(10);
936 BEGIN
937 -- Debug Message
938 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Where Begins');
939
940 -- There are three examples for each kind of datatype:
941 -- NUMBER, DATE, VARCHAR2.
942 -- Developer can copy and paste the following codes for your own record.
943
944 -- example for NUMBER datatype
945 IF( (P_mol_Rec.LINE_ID IS NOT NULL) AND (P_mol_Rec.LINE_ID <> FND_API.G_MISS_NUM) )
946 THEN
947 IF(x_mol_where IS NULL) THEN
948 x_mol_where := 'Where';
949 ELSE
950 x_mol_where := x_mol_where || ' AND ';
951 END IF;
952 x_mol_where := x_mol_where || 'P_mol_Rec.LINE_ID = :p_LINE_ID';
953 END IF;
954
955 -- example for DATE datatype
956 IF( (P_mol_Rec.CREATION_DATE IS NOT NULL) AND (P_mol_Rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
957 THEN
958 -- check if item value contains '%' wildcard
959 OPEN c_chk_str1(P_mol_Rec.CREATION_DATE);
960 FETCH c_chk_str1 INTO str_csr1;
961 CLOSE c_chk_str1;
962
963 IF(str_csr1 <> 0) THEN
964 l_operator := ' LIKE ';
965 ELSE
966 l_operator := ' = ';
967 END IF;
968
969 -- check if item value contains '_' wildcard
970 OPEN c_chk_str2(P_mol_Rec.CREATION_DATE);
971 FETCH c_chk_str2 INTO str_csr2;
972 CLOSE c_chk_str2;
973
974 IF(str_csr2 <> 0) THEN
975 l_operator := ' LIKE ';
976 ELSE
977 l_operator := ' = ';
978 END IF;
979
980 IF(x_mol_where IS NULL) THEN
981 x_mol_where := 'Where ';
982 ELSE
983 x_mol_where := x_mol_where || ' AND ';
984 END IF;
985 x_mol_where := x_mol_where || 'P_mol_Rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
986 END IF;
987
988 -- example for VARCHAR2 datatype
989 IF( (P_mol_Rec.CUSTOMER_PO IS NOT NULL) AND (P_mol_Rec.CUSTOMER_PO <> FND_API.G_MISS_CHAR) )
990 THEN
991 -- check if item value contains '%' wildcard
992 OPEN c_chk_str1(P_mol_Rec.CUSTOMER_PO);
993 FETCH c_chk_str1 INTO str_csr1;
994 CLOSE c_chk_str1;
995
996 IF(str_csr1 <> 0) THEN
997 l_operator := ' LIKE ';
998 ELSE
999 l_operator := ' = ';
1000 END IF;
1001
1002 -- check if item value contains '_' wildcard
1003 OPEN c_chk_str2(P_mol_Rec.CUSTOMER_PO);
1004 FETCH c_chk_str2 INTO str_csr2;
1005 CLOSE c_chk_str2;
1006
1007 IF(str_csr2 <> 0) THEN
1008 l_operator := ' LIKE ';
1009 ELSE
1010 l_operator := ' = ';
1011 END IF;
1012
1013 IF(x_mol_where IS NULL) THEN
1014 x_mol_where := 'Where ';
1015 ELSE
1016 x_mol_where := x_mol_where || ' AND ';
1017 END IF;
1018 x_mol_where := x_mol_where || 'P_mol_Rec.CUSTOMER_PO ' || l_operator || ' :p_CUSTOMER_PO';
1019 END IF;
1020
1021 -- Add more IF statements for each column below
1022
1023 -- Debug Message
1024 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Where Ends');
1025
1026 END Gen_mol_Where;
1027
1028 -- Item-level validation procedures
1029 PROCEDURE Validate_LINE_ID (
1030 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1031 P_Validation_mode IN VARCHAR2,
1032 P_LINE_ID IN NUMBER,
1033 P_HEADER_ID IN NUMBER, -- added for valiation of line_id 06-DEC-99, VL.
1034 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1035 X_Return_Status OUT NOCOPY VARCHAR2,
1036 X_Msg_Count OUT NOCOPY NUMBER,
1037 X_Msg_Data OUT NOCOPY VARCHAR2
1038 )
1039 IS
1040 l_check_line_id NUMBER;
1041 BEGIN
1042
1043 -- Initialize message list if p_init_msg_list is set to TRUE.
1044 IF FND_API.to_Boolean( p_init_msg_list )
1045 THEN
1046 FND_MSG_PUB.initialize;
1047 END IF;
1048
1049
1050 -- Initialize API return status to SUCCESS
1051 x_return_status := FND_API.G_RET_STS_SUCCESS;
1052
1053 -- validate NOT NULL column
1054 IF(p_LINE_ID is NULL)
1055 THEN
1056 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR, 'CSP', 'Private orderlines API: -Violate NOT NULL constraint(LINE_ID)');
1057 x_return_status := FND_API.G_RET_STS_ERROR;
1058 END IF;
1059
1060 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1061 THEN
1062 NULL;
1063 -- Hint: Validate data
1064 -- IF p_LINE_ID is not NULL and p_LINE_ID <> G_MISS_CHAR
1065 -- verify if data is valid
1066 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1067 /* Removed by klou. This block of validations is moved to the csp_to_form_molines.validate_and_write.
1068 -- CSP line_id validation
1069 BEGIN
1070 SELECT organization_id into l_check_line_id
1071 from mtl_txn_request_lines
1072 where header_id = p_header_id
1073 and line_id = p_line_id;
1074
1075 EXCEPTION
1076 WHEN NO_DATA_FOUND THEN
1077 x_return_status := FND_API.G_RET_STS_ERROR;
1078 x_msg_count := x_msg_count + 1;
1079 x_msg_data := 'The Line ID is not valid for the Header ID. Or Header ID does not exists.';
1080 WHEN OTHERS THEN
1081 x_return_status := FND_API.G_RET_STS_ERROR;
1082 x_msg_count := x_msg_count + 1;
1083 x_msg_data := 'Unexpected errors found. Please check the Line ID and Header ID.';
1084 END;
1085 */
1086 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1087 THEN
1088 -- Hint: Validate data
1089 -- IF p_LINE_ID <> G_MISS_CHAR
1090 -- verify if data is valid
1091 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1092 NULL;
1093 END IF;
1094
1095 -- Standard call to get message count and if count is 1, get message info.
1096 FND_MSG_PUB.Count_And_Get
1097 ( p_count => x_msg_count,
1098 p_data => x_msg_data
1099 );
1100
1101 END Validate_LINE_ID;
1102
1103
1104 PROCEDURE Validate_LAST_UPDATED_LOGIN (
1105 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1106 P_Validation_mode IN VARCHAR2,
1107 P_LAST_UPDATED_LOGIN IN NUMBER,
1108 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1109 X_Return_Status OUT NOCOPY VARCHAR2,
1110 X_Msg_Count OUT NOCOPY NUMBER,
1111 X_Msg_Data OUT NOCOPY VARCHAR2
1112 )
1113 IS
1114 BEGIN
1115
1116 -- Initialize message list if p_init_msg_list is set to TRUE.
1117 IF FND_API.to_Boolean( p_init_msg_list )
1118 THEN
1119 FND_MSG_PUB.initialize;
1120 END IF;
1121
1122
1123 -- Initialize API return status to SUCCESS
1124 x_return_status := FND_API.G_RET_STS_SUCCESS;
1125
1126 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1127 THEN
1128 -- Hint: Validate data
1129 -- IF p_LAST_UPDATED_LOGIN is not NULL and p_LAST_UPDATED_LOGIN <> G_MISS_CHAR
1130 -- verify if data is valid
1131 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1132 NULL;
1133 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1134 THEN
1135 -- Hint: Validate data
1136 -- IF p_LAST_UPDATED_LOGIN <> G_MISS_CHAR
1137 -- verify if data is valid
1138 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1139 NULL;
1140 END IF;
1141
1142 -- Standard call to get message count and if count is 1, get message info.
1143 FND_MSG_PUB.Count_And_Get
1144 ( p_count => x_msg_count,
1145 p_data => x_msg_data
1146 );
1147
1148 END Validate_LAST_UPDATED_LOGIN;
1149
1150
1151 PROCEDURE Validate_HEADER_ID (
1152 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1153 P_Validation_mode IN VARCHAR2,
1154 P_HEADER_ID IN NUMBER,
1155 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1156 X_Return_Status OUT NOCOPY VARCHAR2,
1157 X_Msg_Count OUT NOCOPY NUMBER,
1158 X_Msg_Data OUT NOCOPY VARCHAR2
1159 )
1160 IS
1161 BEGIN
1162
1163 -- Initialize message list if p_init_msg_list is set to TRUE.
1164 IF FND_API.to_Boolean( p_init_msg_list )
1165 THEN
1166 FND_MSG_PUB.initialize;
1167 END IF;
1168
1169
1170 -- Initialize API return status to SUCCESS
1171 x_return_status := FND_API.G_RET_STS_SUCCESS;
1172
1173 -- validate NOT NULL column
1174 IF(p_HEADER_ID is NULL)
1175 THEN
1176 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR, 'CSP', 'Private orderlines API: -Violate NOT NULL constraint(HEADER_ID)');
1177 x_return_status := FND_API.G_RET_STS_ERROR;
1178 END IF;
1179
1180 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1181 THEN
1182 -- Hint: Validate data
1183 -- IF p_HEADER_ID is not NULL and p_HEADER_ID <> G_MISS_CHAR
1184 -- verify if data is valid
1185 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1186 NULL;
1187 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1188 THEN
1189 -- Hint: Validate data
1190 -- IF p_HEADER_ID <> G_MISS_CHAR
1191 -- verify if data is valid
1192 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1193 NULL;
1194 END IF;
1195
1196 -- Standard call to get message count and if count is 1, get message info.
1197 FND_MSG_PUB.Count_And_Get
1198 ( p_count => x_msg_count,
1199 p_data => x_msg_data
1200 );
1201
1202 END Validate_HEADER_ID;
1203
1204
1205 PROCEDURE Validate_CUSTOMER_PO (
1206 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1207 P_Validation_mode IN VARCHAR2,
1208 P_CUSTOMER_PO IN VARCHAR2,
1209 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1210 X_Return_Status OUT NOCOPY VARCHAR2,
1211 X_Msg_Count OUT NOCOPY NUMBER,
1212 X_Msg_Data OUT NOCOPY VARCHAR2
1213 )
1214 IS
1215 BEGIN
1216
1217 -- Initialize message list if p_init_msg_list is set to TRUE.
1218 IF FND_API.to_Boolean( p_init_msg_list )
1219 THEN
1220 FND_MSG_PUB.initialize;
1221 END IF;
1222
1223
1224 -- Initialize API return status to SUCCESS
1225 x_return_status := FND_API.G_RET_STS_SUCCESS;
1226
1227 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1228 THEN
1229 -- Hint: Validate data
1230 -- IF p_CUSTOMER_PO is not NULL and p_CUSTOMER_PO <> G_MISS_CHAR
1231 -- verify if data is valid
1232 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1233 NULL;
1234 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1235 THEN
1236 -- Hint: Validate data
1237 -- IF p_CUSTOMER_PO <> G_MISS_CHAR
1238 -- verify if data is valid
1239 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1240 NULL;
1241 END IF;
1242
1243 -- Standard call to get message count and if count is 1, get message info.
1244 FND_MSG_PUB.Count_And_Get
1245 ( p_count => x_msg_count,
1246 p_data => x_msg_data
1247 );
1248
1249 END Validate_CUSTOMER_PO;
1250
1251
1252 PROCEDURE Validate_INCIDENT_ID (
1253 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1254 P_Validation_mode IN VARCHAR2,
1255 P_INCIDENT_ID IN NUMBER,
1256 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1257 X_Return_Status OUT NOCOPY VARCHAR2,
1258 X_Msg_Count OUT NOCOPY NUMBER,
1259 X_Msg_Data OUT NOCOPY VARCHAR2
1260 )
1261 IS
1262 BEGIN
1263
1264 -- Initialize message list if p_init_msg_list is set to TRUE.
1265 IF FND_API.to_Boolean( p_init_msg_list )
1266 THEN
1267 FND_MSG_PUB.initialize;
1268 END IF;
1269
1270
1271 -- Initialize API return status to SUCCESS
1272 x_return_status := FND_API.G_RET_STS_SUCCESS;
1273
1274 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1275 THEN
1276 -- Hint: Validate data
1277 -- IF p_INCIDENT_ID is not NULL and p_INCIDENT_ID <> G_MISS_CHAR
1278 -- verify if data is valid
1279 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1280 NULL;
1281 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1282 THEN
1283 -- Hint: Validate data
1284 -- IF p_INCIDENT_ID <> G_MISS_CHAR
1285 -- verify if data is valid
1286 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1287 NULL;
1288 END IF;
1289
1290 -- Standard call to get message count and if count is 1, get message info.
1291 FND_MSG_PUB.Count_And_Get
1292 ( p_count => x_msg_count,
1293 p_data => x_msg_data
1294 );
1295
1296 END Validate_INCIDENT_ID;
1297
1298
1299 PROCEDURE Validate_TASK_ID (
1300 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1301 P_Validation_mode IN VARCHAR2,
1302 P_TASK_ID IN NUMBER,
1303 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1304 X_Return_Status OUT NOCOPY VARCHAR2,
1305 X_Msg_Count OUT NOCOPY NUMBER,
1306 X_Msg_Data OUT NOCOPY VARCHAR2
1307 )
1308 IS
1309 BEGIN
1310
1311 -- Initialize message list if p_init_msg_list is set to TRUE.
1312 IF FND_API.to_Boolean( p_init_msg_list )
1313 THEN
1314 FND_MSG_PUB.initialize;
1315 END IF;
1316
1317
1318 -- Initialize API return status to SUCCESS
1319 x_return_status := FND_API.G_RET_STS_SUCCESS;
1320
1321 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1322 THEN
1323 -- Hint: Validate data
1324 -- IF p_TASK_ID is not NULL and p_TASK_ID <> G_MISS_CHAR
1325 -- verify if data is valid
1326 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1327 NULL;
1328 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1329 THEN
1330 -- Hint: Validate data
1331 -- IF p_TASK_ID <> G_MISS_CHAR
1332 -- verify if data is valid
1333 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1334 NULL;
1335 END IF;
1336
1337 -- Standard call to get message count and if count is 1, get message info.
1338 FND_MSG_PUB.Count_And_Get
1339 ( p_count => x_msg_count,
1340 p_data => x_msg_data
1341 );
1342
1343 END Validate_TASK_ID;
1344
1345
1346 PROCEDURE Validate_TASK_ASSIGNMENT_ID (
1347 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1348 P_Validation_mode IN VARCHAR2,
1349 P_TASK_ASSIGNMENT_ID IN NUMBER,
1350 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1351 X_Return_Status OUT NOCOPY VARCHAR2,
1352 X_Msg_Count OUT NOCOPY NUMBER,
1353 X_Msg_Data OUT NOCOPY VARCHAR2
1354 )
1355 IS
1356 BEGIN
1357
1358 -- Initialize message list if p_init_msg_list is set to TRUE.
1359 IF FND_API.to_Boolean( p_init_msg_list )
1360 THEN
1361 FND_MSG_PUB.initialize;
1362 END IF;
1363
1364
1365 -- Initialize API return status to SUCCESS
1366 x_return_status := FND_API.G_RET_STS_SUCCESS;
1367
1368 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1369 THEN
1370 -- Hint: Validate data
1371 -- IF p_TASK_ASSIGNMENT_ID is not NULL and p_TASK_ASSIGNMENT_ID <> G_MISS_CHAR
1372 -- verify if data is valid
1373 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1374 NULL;
1375 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1376 THEN
1377 -- Hint: Validate data
1378 -- IF p_TASK_ASSIGNMENT_ID <> G_MISS_CHAR
1379 -- verify if data is valid
1380 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1381 NULL;
1382 END IF;
1383
1384 -- Standard call to get message count and if count is 1, get message info.
1385 FND_MSG_PUB.Count_And_Get
1386 ( p_count => x_msg_count,
1387 p_data => x_msg_data
1388 );
1389
1390 END Validate_TASK_ASSIGNMENT_ID;
1391
1392
1393 PROCEDURE Validate_COMMENTS (
1394 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1395 P_Validation_mode IN VARCHAR2,
1396 P_COMMENTS IN VARCHAR2,
1397 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1398 X_Return_Status OUT NOCOPY VARCHAR2,
1399 X_Msg_Count OUT NOCOPY NUMBER,
1400 X_Msg_Data OUT NOCOPY VARCHAR2
1401 )
1402 IS
1403 BEGIN
1404
1405 -- Initialize message list if p_init_msg_list is set to TRUE.
1406 IF FND_API.to_Boolean( p_init_msg_list )
1407 THEN
1408 FND_MSG_PUB.initialize;
1409 END IF;
1410
1411
1412 -- Initialize API return status to SUCCESS
1413 x_return_status := FND_API.G_RET_STS_SUCCESS;
1414
1415 IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1416 THEN
1417 -- Hint: Validate data
1418 -- IF p_COMMENTS is not NULL and p_COMMENTS <> G_MISS_CHAR
1419 -- verify if data is valid
1420 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1421 NULL;
1422 ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1423 THEN
1424 -- Hint: Validate data
1425 -- IF p_COMMENTS <> G_MISS_CHAR
1426 -- verify if data is valid
1427 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1428 NULL;
1429 END IF;
1430
1431 -- Standard call to get message count and if count is 1, get message info.
1432 FND_MSG_PUB.Count_And_Get
1433 ( p_count => x_msg_count,
1434 p_data => x_msg_data
1435 );
1436
1437 END Validate_COMMENTS;
1438
1439
1440 -- Hint: inter-field level validation can be added here.
1441 -- Hint: If p_validation_mode = JTF_PLSQL_API.G_VALIDATE_UPDATE, we should use cursor
1442 -- to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1443 -- stored in database table.
1444 PROCEDURE Validate_mol_rec(
1445 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1446 P_Validation_mode IN VARCHAR2,
1447 P_mol_Rec IN mol_Rec_Type,
1448 X_Return_Status OUT NOCOPY VARCHAR2,
1449 X_Msg_Count OUT NOCOPY NUMBER,
1450 X_Msg_Data OUT NOCOPY VARCHAR2
1451 )
1452 IS
1453 BEGIN
1454
1455 -- Initialize message list if p_init_msg_list is set to TRUE.
1456 IF FND_API.to_Boolean( p_init_msg_list )
1457 THEN
1458 FND_MSG_PUB.initialize;
1459 END IF;
1460
1461
1462 -- Initialize API return status to SUCCESS
1463 x_return_status := FND_API.G_RET_STS_SUCCESS;
1464
1465 -- Hint: Validate data
1466 -- If data not valid
1467 -- THEN
1468 -- x_return_status := FND_API.G_RET_STS_ERROR;
1469
1470 -- Debug Message
1471 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'API_INVALID_RECORD');
1472
1473 -- Standard call to get message count and if count is 1, get message info.
1474 FND_MSG_PUB.Count_And_Get
1475 ( p_count => x_msg_count,
1476 p_data => x_msg_data
1477 );
1478
1479 END Validate_mol_Rec;
1480
1481 PROCEDURE Validate_orderlines(
1482 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1483 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1484 P_Validation_mode IN VARCHAR2,
1485 P_mol_Rec IN mol_Rec_Type,
1486 X_Return_Status OUT NOCOPY VARCHAR2,
1487 X_Msg_Count OUT NOCOPY NUMBER,
1488 X_Msg_Data OUT NOCOPY VARCHAR2
1489 )
1490 IS
1491 l_api_name CONSTANT VARCHAR2(30) := 'Validate_orderlines';
1492 BEGIN
1493
1494 -- Debug Message
1495 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
1496
1497
1498 -- Initialize API return status to SUCCESS
1499 x_return_status := FND_API.G_RET_STS_SUCCESS;
1500
1501 IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_ITEM) THEN
1502 -- Hint: We provide validation procedure for every column. Developer should delete
1503 -- unnecessary validation procedures.
1504 Validate_LINE_ID(
1505 p_init_msg_list => FND_API.G_FALSE,
1506 p_validation_mode => p_validation_mode,
1507 p_LINE_ID => P_mol_Rec.LINE_ID,
1508 P_HEADER_ID => P_mol_Rec.HEADER_ID,
1509 -- Hint: You may add x_item_property_rec as one of your OUT 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_LAST_UPDATED_LOGIN(
1518 p_init_msg_list => FND_API.G_FALSE,
1519 p_validation_mode => p_validation_mode,
1520 p_LAST_UPDATED_LOGIN => P_mol_Rec.LAST_UPDATED_LOGIN,
1521 -- Hint: You may add x_item_property_rec as one of your OUT 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_HEADER_ID(
1530 p_init_msg_list => FND_API.G_FALSE,
1531 p_validation_mode => p_validation_mode,
1532 p_HEADER_ID => P_mol_Rec.HEADER_ID,
1533 -- Hint: You may add x_item_property_rec as one of your OUT 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_CUSTOMER_PO(
1542 p_init_msg_list => FND_API.G_FALSE,
1543 p_validation_mode => p_validation_mode,
1544 p_CUSTOMER_PO => P_mol_Rec.CUSTOMER_PO,
1545 -- Hint: You may add x_item_property_rec as one of your OUT 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_INCIDENT_ID(
1554 p_init_msg_list => FND_API.G_FALSE,
1555 p_validation_mode => p_validation_mode,
1556 p_INCIDENT_ID => P_mol_Rec.INCIDENT_ID,
1557 -- Hint: You may add x_item_property_rec as one of your OUT 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 Validate_TASK_ID(
1566 p_init_msg_list => FND_API.G_FALSE,
1567 p_validation_mode => p_validation_mode,
1568 p_TASK_ID => P_mol_Rec.TASK_ID,
1569 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1570 x_return_status => x_return_status,
1571 x_msg_count => x_msg_count,
1572 x_msg_data => x_msg_data);
1573 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1574 raise FND_API.G_EXC_ERROR;
1575 END IF;
1576
1577 Validate_TASK_ASSIGNMENT_ID(
1578 p_init_msg_list => FND_API.G_FALSE,
1579 p_validation_mode => p_validation_mode,
1580 p_TASK_ASSIGNMENT_ID => P_mol_Rec.TASK_ASSIGNMENT_ID,
1581 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1582 x_return_status => x_return_status,
1583 x_msg_count => x_msg_count,
1584 x_msg_data => x_msg_data);
1585 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1586 raise FND_API.G_EXC_ERROR;
1587 END IF;
1588
1589 Validate_COMMENTS(
1590 p_init_msg_list => FND_API.G_FALSE,
1591 p_validation_mode => p_validation_mode,
1592 p_COMMENTS => P_mol_Rec.COMMENTS,
1593 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1594 x_return_status => x_return_status,
1595 x_msg_count => x_msg_count,
1596 x_msg_data => x_msg_data);
1597 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1598 raise FND_API.G_EXC_ERROR;
1599 END IF;
1600
1601 END IF;
1602
1603 IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_RECORD) THEN
1604 -- Hint: Inter-field level validation can be added here
1605 -- invoke record level validation procedures
1606 Validate_mol_Rec(
1607 p_init_msg_list => FND_API.G_FALSE,
1608 p_validation_mode => p_validation_mode,
1609 P_mol_Rec => P_mol_Rec,
1610 x_return_status => x_return_status,
1611 x_msg_count => x_msg_count,
1612 x_msg_data => x_msg_data);
1613
1614 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1615 raise FND_API.G_EXC_ERROR;
1616 END IF;
1617 END IF;
1618
1619 IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_INTER_RECORD) THEN
1620 -- invoke inter-record level validation procedures
1621 NULL;
1622 END IF;
1623
1624 IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_INTER_ENTITY) THEN
1625 -- invoke inter-entity level validation procedures
1626 NULL;
1627 END IF;
1628
1629
1630 -- Debug Message
1631 JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
1632
1633 END Validate_orderlines;
1634
1635 End CSP_ORDERLINES_PVT;