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