[Home] [Help]
PACKAGE BODY: APPS.AMW_PROCESS_PVT
Source
1 PACKAGE BODY AMW_Process_PVT as
2 /* $Header: amwvprlb.pls 115.6 2004/04/22 21:26:39 gakumar noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMW_Process_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMW_Process_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amwvprlb.pls';
19
20 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
21 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
22
23
24
25 procedure Create_process(
26 p_api_version_number in number,
27 p_init_msg_list in varchar2 := FND_API.G_FALSE,
28 p_commit in varchar2 := FND_API.G_FALSE,
29 p_validation_level in number :=FND_API.G_VALID_LEVEL_FULL,
30 x_return_status OUT NOCOPY varchar2,
31 x_msg_count OUT NOCOPY number,
32 x_msg_data OUT NOCOPY varchar2,
33 p_process_tbl IN process_tbl_type := g_miss_process_tbl
34 )
35 is
36 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Process';
37 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
38 l_return_status_full VARCHAR2(1);
39 l_object_version_number NUMBER := 1;
40 l_PROCESS_ID NUMBER;
41 begin
42 SAVEPOINT CREATE_Process;
43 x_return_status := FND_API.G_RET_STS_SUCCESS;
44 FOR i IN p_process_tbl.FIRST .. p_process_tbl.LAST LOOP
45
46 Create_Process_rec(p_api_version_number,
47 p_init_msg_list,
48 p_commit,
49 p_validation_level,
50 x_return_status,
51 x_msg_count,
52 x_msg_data,
53 p_process_tbl(i),
54 l_PROCESS_ID );
55 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
56 RAISE FND_API.G_EXC_ERROR;
57 END IF;
58
59 END LOOP;
60 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
61
62 -- Standard call to get message count and if count is 1, get message info.
63 FND_MSG_PUB.Count_And_Get
64 (p_count => x_msg_count,
65 p_data => x_msg_data
66 );
67 EXCEPTION
68
69 WHEN AMW_Utility_PVT.resource_locked THEN
70 x_return_status := FND_API.g_ret_sts_error;
71 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
72
73 WHEN FND_API.G_EXC_ERROR THEN
74 ROLLBACK TO CREATE_Process;
75 x_return_status := FND_API.G_RET_STS_ERROR;
76 -- Standard call to get message count and if count=1, get the message
77 FND_MSG_PUB.Count_And_Get (
78 p_encoded => FND_API.G_FALSE,
79 p_count => x_msg_count,
80 p_data => x_msg_data
81 );
82
83 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
84 ROLLBACK TO CREATE_Process;
85 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
86 -- Standard call to get message count and if count=1, get the message
87 FND_MSG_PUB.Count_And_Get (
88 p_encoded => FND_API.G_FALSE,
89 p_count => x_msg_count,
90 p_data => x_msg_data
91 );
92
93 WHEN OTHERS THEN
94 ROLLBACK TO CREATE_Process;
95 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
96 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
97 THEN
98 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
99 END IF;
100 -- Standard call to get message count and if count=1, get the message
101 FND_MSG_PUB.Count_And_Get (
102 p_encoded => FND_API.G_FALSE,
103 p_count => x_msg_count,
104 p_data => x_msg_data
105 );
106 End Create_Process;
107
108
109 procedure update_process(
110 p_api_version_number in number,
111 p_init_msg_list in varchar2 := FND_API.G_FALSE,
112 p_commit in varchar2 := FND_API.G_FALSE,
113 p_validation_level in number :=FND_API.G_VALID_LEVEL_FULL,
114 x_return_status OUT NOCOPY varchar2,
115 x_msg_count OUT NOCOPY number,
116 x_msg_data OUT NOCOPY varchar2,
117 p_process_tbl IN process_tbl_type := g_miss_process_tbl
118 )
119 is
120 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Process';
121 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
122 l_return_status_full VARCHAR2(1);
123 l_object_version_number NUMBER := 1;
124 l_PROCESS_ID NUMBER;
125
126 begin
127 SAVEPOINT update_Process;
128 x_return_status := FND_API.G_RET_STS_SUCCESS;
129 FOR i IN p_process_tbl.FIRST .. p_process_tbl.LAST LOOP
130
131 Update_Process_rec(p_api_version_number,
132 p_init_msg_list,
133 p_commit,
134 p_validation_level,
135 x_return_status,
136 x_msg_count,
137 x_msg_data,
138 p_process_tbl(i),
139 l_object_version_number );
140 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
141 RAISE FND_API.G_EXC_ERROR;
142 END IF;
143
144 END LOOP;
145 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
146
147 -- Standard call to get message count and if count is 1, get message info.
148 FND_MSG_PUB.Count_And_Get
149 (p_count => x_msg_count,
150 p_data => x_msg_data
151 );
152 EXCEPTION
153
154 WHEN AMW_Utility_PVT.resource_locked THEN
155 x_return_status := FND_API.g_ret_sts_error;
156 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
157
158 WHEN FND_API.G_EXC_ERROR THEN
159 ROLLBACK TO update_Process;
160 x_return_status := FND_API.G_RET_STS_ERROR;
161 -- Standard call to get message count and if count=1, get the message
162 FND_MSG_PUB.Count_And_Get (
163 p_encoded => FND_API.G_FALSE,
164 p_count => x_msg_count,
165 p_data => x_msg_data
166 );
167
168 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
169 ROLLBACK TO update_Process;
170 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
171 -- Standard call to get message count and if count=1, get the message
172 FND_MSG_PUB.Count_And_Get (
173 p_encoded => FND_API.G_FALSE,
174 p_count => x_msg_count,
175 p_data => x_msg_data
176 );
177
178 WHEN OTHERS THEN
179 ROLLBACK TO update_Process;
180 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
181 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
182 THEN
183 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
184 END IF;
185 -- Standard call to get message count and if count=1, get the message
186 FND_MSG_PUB.Count_And_Get (
187 p_encoded => FND_API.G_FALSE,
188 p_count => x_msg_count,
189 p_data => x_msg_data
190 );
191 End update_Process;
192
193
194
195 -- Hint: Primary key needs to be returned.
196 PROCEDURE Create_Process_rec(
197 p_api_version_number IN NUMBER,
198 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
199 p_commit IN VARCHAR2 := FND_API.G_FALSE,
200 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
201
202 x_return_status OUT NOCOPY VARCHAR2,
203 x_msg_count OUT NOCOPY NUMBER,
204 x_msg_data OUT NOCOPY VARCHAR2,
205
206 p_process_rec IN process_rec_type := g_miss_process_rec,
207 x_process_id OUT NOCOPY NUMBER
208 )
209
210 IS
211 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Process';
212 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
213 l_return_status_full VARCHAR2(1);
214 l_object_version_number NUMBER := 1;
215 l_org_id NUMBER ;
216 l_PROCESS_ID NUMBER;
217 l_PROCESS_rev_ID NUMBER;
218 l_dummy NUMBER;
219
220 CURSOR c_id IS
221 SELECT AMW_PROCESS_s.NEXTVAL
222 FROM dual;
223
224 CURSOR c_id_exists (l_id IN NUMBER) IS
225 SELECT 1
226 FROM AMW_PROCESS
227 WHERE PROCESS_ID = l_id;
228
229 BEGIN
230 -- Standard Start of API savepoint
231 SAVEPOINT CREATE_Process_PVT;
232
233 -- Standard call to check for call compatibility.
234 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
235 p_api_version_number,
236 l_api_name,
237 G_PKG_NAME)
238 THEN
239 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
240 END IF;
241
242 -- Initialize message list if p_init_msg_list is set to TRUE.
243 IF FND_API.to_Boolean( p_init_msg_list )
244 THEN
245 FND_MSG_PUB.initialize;
246 END IF;
247
248 -- Debug Message
249 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
250
251
252 -- Initialize API return status to SUCCESS
253 x_return_status := FND_API.G_RET_STS_SUCCESS;
254
255 -- Local variable initialization
256
257 IF p_process_rec.PROCESS_ID IS NULL OR p_process_rec.PROCESS_ID = FND_API.g_miss_num THEN
258 LOOP
259 l_dummy := NULL;
260 OPEN c_id;
261 FETCH c_id INTO l_PROCESS_ID;
262 CLOSE c_id;
263
264 OPEN c_id_exists(l_PROCESS_ID);
265 FETCH c_id_exists INTO l_dummy;
266 CLOSE c_id_exists;
267 EXIT WHEN l_dummy IS NULL;
268 END LOOP;
269 END IF;
270
271 -- =========================================================================
272 -- Validate Environment
273 -- =========================================================================
274
275 IF FND_GLOBAL.User_Id IS NULL
276 THEN
277 AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
278 RAISE FND_API.G_EXC_ERROR;
279 END IF;
280 /*
281 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
282 THEN
283 -- Debug message
284 AMW_UTILITY_PVT.debug_message('Private API: Validate_Process');
285
286 -- Invoke validation procedures
287 Validate_process(
288 p_api_version_number => 1.0,
289 p_init_msg_list => FND_API.G_FALSE,
290 p_validation_level => p_validation_level,
291 p_process_rec => p_process_rec,
292 x_return_status => x_return_status,
293 x_msg_count => x_msg_count,
297 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
294 x_msg_data => x_msg_data);
295 END IF;
296
298 RAISE FND_API.G_EXC_ERROR;
299 END IF;
300 */
301
302 -- Debug Message
303 AMW_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
304
305 -- Invoke table handler(AMW_PROCESS_PKG.Insert_Row)
306 AMW_PROCESS_PKG.Insert_Row(
307 p_significant_process_flag => p_process_rec.significant_process_flag,
308 p_standard_process_flag => fnd_profile.value('AMW_SET_STD_PROCESS'),
309 p_approval_status => 'A',
310 p_certification_status => p_process_rec.certification_status,
311 p_process_owner_id => p_process_rec.process_owner_id,
312 p_last_update_date => SYSDATE,
313 p_last_updated_by => G_USER_ID,
314 p_creation_date => SYSDATE,
315 p_created_by => G_USER_ID,
316 p_last_update_login => G_LOGIN_ID,
317 p_item_type => p_process_rec.item_type,
318 p_name => p_process_rec.name,
319 p_created_from => p_process_rec.created_from,
320 p_request_id => p_process_rec.request_id,
321 p_program_application_id => p_process_rec.program_application_id,
322 p_program_id => p_process_rec.program_id,
323 p_program_update_date => p_process_rec.program_update_date,
324 p_attribute_category => p_process_rec.attribute_category,
325 p_attribute1 => p_process_rec.attribute1,
326 p_attribute2 => p_process_rec.attribute2,
327 p_attribute3 => p_process_rec.attribute3,
328 p_attribute4 => p_process_rec.attribute4,
329 p_attribute5 => p_process_rec.attribute5,
330 p_attribute6 => p_process_rec.attribute6,
331 p_attribute7 => p_process_rec.attribute7,
332 p_attribute8 => p_process_rec.attribute8,
333 p_attribute9 => p_process_rec.attribute9,
334 p_attribute10 => p_process_rec.attribute10,
335 p_attribute11 => p_process_rec.attribute11,
336 p_attribute12 => p_process_rec.attribute12,
337 p_attribute13 => p_process_rec.attribute13,
338 p_attribute14 => p_process_rec.attribute14,
339 p_attribute15 => p_process_rec.attribute15,
340 p_security_group_id => p_process_rec.security_group_id,
341 px_object_version_number => l_object_version_number,
342 p_control_count => p_process_rec.control_count,
343 p_risk_count => p_process_rec.risk_count,
344 p_org_count => p_process_rec.org_count,
345 px_process_rev_id => l_process_id,
346 ---px_process_rev_id => p_process_rec.process_rev_id,
347 px_process_id => l_process_id);
348
349 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350 RAISE FND_API.G_EXC_ERROR;
351 END IF;
352 --
353 -- End of API body
354 --
355
356 -- Standard check for p_commit
357 IF FND_API.to_Boolean( p_commit )
358 THEN
359 COMMIT WORK;
360 END IF;
361
362
363 -- Debug Message
364 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
365
366 -- Standard call to get message count and if count is 1, get message info.
367 FND_MSG_PUB.Count_And_Get
368 (p_count => x_msg_count,
369 p_data => x_msg_data
370 );
371 EXCEPTION
372
373 WHEN AMW_Utility_PVT.resource_locked THEN
374 x_return_status := FND_API.g_ret_sts_error;
375 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
376
377 WHEN FND_API.G_EXC_ERROR THEN
378 ROLLBACK TO CREATE_Process_PVT;
379 x_return_status := FND_API.G_RET_STS_ERROR;
380 -- Standard call to get message count and if count=1, get the message
381 FND_MSG_PUB.Count_And_Get (
382 p_encoded => FND_API.G_FALSE,
383 p_count => x_msg_count,
384 p_data => x_msg_data
385 );
386
387 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
388 ROLLBACK TO CREATE_Process_PVT;
389 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
390 -- Standard call to get message count and if count=1, get the message
391 FND_MSG_PUB.Count_And_Get (
392 p_encoded => FND_API.G_FALSE,
393 p_count => x_msg_count,
394 p_data => x_msg_data
395 );
396
397 WHEN OTHERS THEN
398 ROLLBACK TO CREATE_Process_PVT;
399 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
400 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
401 THEN
402 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
403 END IF;
404 -- Standard call to get message count and if count=1, get the message
405 FND_MSG_PUB.Count_And_Get (
406 p_encoded => FND_API.G_FALSE,
407 p_count => x_msg_count,
408 p_data => x_msg_data
409 );
410 End Create_Process_rec;
411
412
413 PROCEDURE Update_Process_rec(
414 p_api_version_number IN NUMBER,
415 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
416 p_commit IN VARCHAR2 := FND_API.G_FALSE,
417 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
418
419 x_return_status OUT NOCOPY VARCHAR2,
420 x_msg_count OUT NOCOPY NUMBER,
421 x_msg_data OUT NOCOPY VARCHAR2,
422
423 p_process_rec IN process_rec_type,
424 x_object_version_number OUT NOCOPY NUMBER
425 )
426
427 IS
428 /*
429 CURSOR c_get_process(last_update_date NUMBER) IS
430 SELECT *
431 FROM AMW_PROCESS
432 -- Hint: Developer need to provide Where clause
433 */
434 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Process';
435 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
436 -- Local Variables
437 l_object_version_number NUMBER;
438 l_PROCESS_ID NUMBER;
439 --l_ref_process_rec c_get_Process%ROWTYPE ;
440 l_tar_process_rec AMW_Process_PVT.process_rec_type := P_process_rec;
441 l_rowid ROWID;
442
443 BEGIN
444 -- Standard Start of API savepoint
445 SAVEPOINT UPDATE_Process_PVT;
446
447 -- Standard call to check for call compatibility.
448 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
449 p_api_version_number,
450 l_api_name,
451 G_PKG_NAME)
452 THEN
453 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
454 END IF;
455
456 -- Initialize message list if p_init_msg_list is set to TRUE.
457 IF FND_API.to_Boolean( p_init_msg_list )
458 THEN
459 FND_MSG_PUB.initialize;
460 END IF;
461
462 -- Debug Message
463 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
464
465
466 -- Initialize API return status to SUCCESS
467 x_return_status := FND_API.G_RET_STS_SUCCESS;
468
469 -- Debug Message
470 AMW_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
471
472 /*
476
473 OPEN c_get_Process( l_tar_process_rec.last_update_date);
474
475 FETCH c_get_Process INTO l_ref_process_rec ;
477 If ( c_get_Process%NOTFOUND) THEN
478 AMW_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
479 p_token_name => 'INFO',
480 p_token_value => 'Process') ;
481 RAISE FND_API.G_EXC_ERROR;
482 END IF;
483 -- Debug Message
484 AMW_UTILITY_PVT.debug_message('Private API: - Close Cursor');
485 CLOSE c_get_Process;
486 */
487
488
489 If (l_tar_process_rec.object_version_number is NULL or
490 l_tar_process_rec.object_version_number = FND_API.G_MISS_NUM ) Then
491 AMW_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
492 p_token_name => 'COLUMN',
493 p_token_value => 'Last_Update_Date') ;
494 raise FND_API.G_EXC_ERROR;
495 End if;
496 -- Check Whether record has been changed by someone else
497 If (l_tar_process_rec.object_version_number <> p_process_rec.object_version_number) Then
498 AMW_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
499 p_token_name => 'INFO',
500 p_token_value => 'Process') ;
501 raise FND_API.G_EXC_ERROR;
502 End if;
503 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
504 THEN
505 -- Debug message
506 AMW_UTILITY_PVT.debug_message('Private API: Validate_Process');
507
508 -- Invoke validation procedures
509 Validate_process(
510 p_api_version_number => 1.0,
511 p_init_msg_list => FND_API.G_FALSE,
512 p_validation_level => p_validation_level,
513 p_process_rec => p_process_rec,
514 x_return_status => x_return_status,
515 x_msg_count => x_msg_count,
516 x_msg_data => x_msg_data);
517 END IF;
518
519 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
520 RAISE FND_API.G_EXC_ERROR;
521 END IF;
522
523
524 -- Debug Message
525 AMW_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
526
527 -- Invoke table handler(AMW_PROCESS_PKG.Update_Row)
528 AMW_PROCESS_PKG.Update_Row(
529 p_significant_process_flag => p_process_rec.significant_process_flag,
530 p_standard_process_flag => p_process_rec.standard_process_flag,
531 p_approval_status => p_process_rec.approval_status,
532 p_certification_status => p_process_rec.certification_status,
533 p_process_owner_id => p_process_rec.process_owner_id,
534 p_last_update_date => SYSDATE,
535 p_last_updated_by => G_USER_ID,
536 p_creation_date => SYSDATE,
537 p_created_by => G_USER_ID,
538 p_last_update_login => G_LOGIN_ID,
539 p_item_type => p_process_rec.item_type,
540 p_name => p_process_rec.name,
541 p_created_from => p_process_rec.created_from,
542 p_request_id => p_process_rec.request_id,
543 p_program_application_id => p_process_rec.program_application_id,
547 p_attribute1 => p_process_rec.attribute1,
544 p_program_id => p_process_rec.program_id,
545 p_program_update_date => p_process_rec.program_update_date,
546 p_attribute_category => p_process_rec.attribute_category,
548 p_attribute2 => p_process_rec.attribute2,
549 p_attribute3 => p_process_rec.attribute3,
550 p_attribute4 => p_process_rec.attribute4,
551 p_attribute5 => p_process_rec.attribute5,
552 p_attribute6 => p_process_rec.attribute6,
553 p_attribute7 => p_process_rec.attribute7,
554 p_attribute8 => p_process_rec.attribute8,
555 p_attribute9 => p_process_rec.attribute9,
556 p_attribute10 => p_process_rec.attribute10,
557 p_attribute11 => p_process_rec.attribute11,
558 p_attribute12 => p_process_rec.attribute12,
559 p_attribute13 => p_process_rec.attribute13,
560 p_attribute14 => p_process_rec.attribute14,
561 p_attribute15 => p_process_rec.attribute15,
562 p_security_group_id => p_process_rec.security_group_id,
563 p_control_count => p_process_rec.control_count,
564 p_risk_count => p_process_rec.risk_count,
565 p_org_count => p_process_rec.org_count,
566 p_object_version_number => p_process_rec.object_version_number,
567 p_process_rev_id => p_process_rec.process_rev_id,
568 p_process_id => p_process_rec.process_id);
569 --
570 -- End of API body.
571 --
572
573 -- Standard check for p_commit
574 IF FND_API.to_Boolean( p_commit )
575 THEN
576 COMMIT WORK;
577 END IF;
578
579
580 -- Debug Message
581 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
582
583 -- Standard call to get message count and if count is 1, get message info.
584 FND_MSG_PUB.Count_And_Get
585 (p_count => x_msg_count,
586 p_data => x_msg_data
587 );
588 EXCEPTION
589
590 WHEN AMW_Utility_PVT.resource_locked THEN
591 x_return_status := FND_API.g_ret_sts_error;
592 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
593
594 WHEN FND_API.G_EXC_ERROR THEN
595 ROLLBACK TO UPDATE_Process_PVT;
596 x_return_status := FND_API.G_RET_STS_ERROR;
597 -- Standard call to get message count and if count=1, get the message
598 FND_MSG_PUB.Count_And_Get (
599 p_encoded => FND_API.G_FALSE,
600 p_count => x_msg_count,
601 p_data => x_msg_data
602 );
603
604 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605 ROLLBACK TO UPDATE_Process_PVT;
606 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
610 p_count => x_msg_count,
607 -- Standard call to get message count and if count=1, get the message
608 FND_MSG_PUB.Count_And_Get (
609 p_encoded => FND_API.G_FALSE,
611 p_data => x_msg_data
612 );
613
614 WHEN OTHERS THEN
615 ROLLBACK TO UPDATE_Process_PVT;
616 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
617 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
618 THEN
619 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
620 END IF;
621 -- Standard call to get message count and if count=1, get the message
622 FND_MSG_PUB.Count_And_Get (
623 p_encoded => FND_API.G_FALSE,
624 p_count => x_msg_count,
625 p_data => x_msg_data
626 );
627 End Update_Process_rec;
628
629
630 PROCEDURE Delete_Process(
631 p_api_version_number IN NUMBER,
632 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
633 p_commit IN VARCHAR2 := FND_API.G_FALSE,
634 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
635 x_return_status OUT NOCOPY VARCHAR2,
636 x_msg_count OUT NOCOPY NUMBER,
637 x_msg_data OUT NOCOPY VARCHAR2,
638 p_process_rev_id IN NUMBER,
639 p_object_version_number IN NUMBER
640 )
641
642 IS
643 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Process';
644 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
645 l_object_version_number NUMBER;
646
647 BEGIN
648 -- Standard Start of API savepoint
649 SAVEPOINT DELETE_Process_PVT;
650
651 -- Standard call to check for call compatibility.
652 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
653 p_api_version_number,
654 l_api_name,
655 G_PKG_NAME)
656 THEN
657 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
658 END IF;
659
660 -- Initialize message list if p_init_msg_list is set to TRUE.
661 IF FND_API.to_Boolean( p_init_msg_list )
662 THEN
663 FND_MSG_PUB.initialize;
664 END IF;
665
666 -- Debug Message
667 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
668
669
670 -- Initialize API return status to SUCCESS
671 x_return_status := FND_API.G_RET_STS_SUCCESS;
672
673 --
674 -- Api body
675 --
676 -- Debug Message
677 AMW_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
678
679 -- Invoke table handler(AMW_PROCESS_PKG.Delete_Row)
680 AMW_PROCESS_PKG.Delete_Row(
681 p_PROCESS_rev_ID => p_PROCESS_rev_ID);
682 --
683 -- End of API body
684 --
685
686 -- Standard check for p_commit
687 IF FND_API.to_Boolean( p_commit )
688 THEN
689 COMMIT WORK;
690 END IF;
691
692
693 -- Debug Message
694 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
695
696 -- Standard call to get message count and if count is 1, get message info.
697 FND_MSG_PUB.Count_And_Get
698 (p_count => x_msg_count,
699 p_data => x_msg_data
700 );
701 EXCEPTION
702
703 WHEN AMW_Utility_PVT.resource_locked THEN
704 x_return_status := FND_API.g_ret_sts_error;
705 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
706
707 WHEN FND_API.G_EXC_ERROR THEN
708 ROLLBACK TO DELETE_Process_PVT;
709 x_return_status := FND_API.G_RET_STS_ERROR;
710 -- Standard call to get message count and if count=1, get the message
711 FND_MSG_PUB.Count_And_Get (
712 p_encoded => FND_API.G_FALSE,
713 p_count => x_msg_count,
714 p_data => x_msg_data
715 );
716
717 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
718 ROLLBACK TO DELETE_Process_PVT;
719 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
720 -- Standard call to get message count and if count=1, get the message
721 FND_MSG_PUB.Count_And_Get (
722 p_encoded => FND_API.G_FALSE,
723 p_count => x_msg_count,
724 p_data => x_msg_data
725 );
726
727 WHEN OTHERS THEN
728 ROLLBACK TO DELETE_Process_PVT;
729 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
730 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
731 THEN
732 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
733 END IF;
734 -- Standard call to get message count and if count=1, get the message
735 FND_MSG_PUB.Count_And_Get (
736 p_encoded => FND_API.G_FALSE,
737 p_count => x_msg_count,
738 p_data => x_msg_data
739 );
740 End Delete_Process;
741
742
743
744 -- Hint: Primary key needs to be returned.
745 PROCEDURE Lock_Process(
746 p_api_version_number IN NUMBER,
747 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
748
749 x_return_status OUT NOCOPY VARCHAR2,
750 x_msg_count OUT NOCOPY NUMBER,
751 x_msg_data OUT NOCOPY VARCHAR2,
752
753 p_process_id IN NUMBER,
754 p_object_version IN NUMBER
755 )
756
757 IS
758 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Process';
759 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
760 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
761 l_PROCESS_ID NUMBER;
762
763 CURSOR c_Process IS
764 SELECT PROCESS_ID
765 FROM AMW_PROCESS
766 WHERE PROCESS_ID = p_PROCESS_ID
767 AND object_version_number = p_object_version
768 FOR UPDATE NOWAIT;
769
770 BEGIN
771
772 -- Debug Message
773 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
774
775 -- Initialize message list if p_init_msg_list is set to TRUE.
776 IF FND_API.to_Boolean( p_init_msg_list )
777 THEN
778 FND_MSG_PUB.initialize;
779 END IF;
780
781 -- Standard call to check for call compatibility.
782 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
783 p_api_version_number,
784 l_api_name,
785 G_PKG_NAME)
786 THEN
787 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788 END IF;
789
790
791 -- Initialize API return status to SUCCESS
792 x_return_status := FND_API.G_RET_STS_SUCCESS;
793
794
795 ------------------------ lock -------------------------
796
797 AMW_Utility_PVT.debug_message(l_full_name||': start');
798 OPEN c_Process;
799
800 FETCH c_Process INTO l_PROCESS_ID;
801
802 IF (c_Process%NOTFOUND) THEN
803 CLOSE c_Process;
804 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
805 FND_MESSAGE.set_name('AMW', 'AMW_API_RECORD_NOT_FOUND');
806 FND_MSG_PUB.add;
807 END IF;
808 RAISE FND_API.g_exc_error;
809 END IF;
810
811 CLOSE c_Process;
812
813 -------------------- finish --------------------------
814 FND_MSG_PUB.count_and_get(
815 p_encoded => FND_API.g_false,
816 p_count => x_msg_count,
817 p_data => x_msg_data);
818 AMW_Utility_PVT.debug_message(l_full_name ||': end');
819 EXCEPTION
820
821 WHEN AMW_Utility_PVT.resource_locked THEN
822 x_return_status := FND_API.g_ret_sts_error;
823 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
824
825 WHEN FND_API.G_EXC_ERROR THEN
826 ROLLBACK TO LOCK_Process_PVT;
827 x_return_status := FND_API.G_RET_STS_ERROR;
828 -- Standard call to get message count and if count=1, get the message
829 FND_MSG_PUB.Count_And_Get (
830 p_encoded => FND_API.G_FALSE,
831 p_count => x_msg_count,
832 p_data => x_msg_data
833 );
834
835 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
836 ROLLBACK TO LOCK_Process_PVT;
837 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
838 -- Standard call to get message count and if count=1, get the message
839 FND_MSG_PUB.Count_And_Get (
840 p_encoded => FND_API.G_FALSE,
841 p_count => x_msg_count,
842 p_data => x_msg_data
843 );
844
845 WHEN OTHERS THEN
846 ROLLBACK TO LOCK_Process_PVT;
847 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
848 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
849 THEN
850 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
851 END IF;
852 -- Standard call to get message count and if count=1, get the message
853 FND_MSG_PUB.Count_And_Get (
854 p_encoded => FND_API.G_FALSE,
855 p_count => x_msg_count,
856 p_data => x_msg_data
857 );
858 End Lock_Process;
859
860
861 PROCEDURE check_process_uk_items(
862 p_process_rec IN process_rec_type,
863 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
864 x_return_status OUT NOCOPY VARCHAR2)
865 IS
866 l_valid_flag VARCHAR2(1);
867
868 BEGIN
869 x_return_status := FND_API.g_ret_sts_success;
870 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
871 l_valid_flag := AMW_Utility_PVT.check_uniqueness(
872 'AMW_PROCESS',
873 'PROCESS_ID = ''' || p_process_rec.PROCESS_ID ||''''
874 );
875 ELSE
876 l_valid_flag := AMW_Utility_PVT.check_uniqueness(
877 'AMW_PROCESS',
878 'PROCESS_ID = ''' || p_process_rec.PROCESS_ID ||
879 ''' AND PROCESS_ID <> ' || p_process_rec.PROCESS_ID
880 );
881 END IF;
882
883 IF l_valid_flag = FND_API.g_false THEN
884 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_PROCESS_ID_DUPLICATE');
885 x_return_status := FND_API.g_ret_sts_error;
886 RETURN;
887 END IF;
888
889 END check_process_uk_items;
890
891 PROCEDURE check_process_req_items(
892 p_process_rec IN process_rec_type,
893 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
894 x_return_status OUT NOCOPY VARCHAR2
895 )
896 IS
897 BEGIN
898 x_return_status := FND_API.g_ret_sts_success;
899
900 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
901
902
903 IF p_process_rec.last_update_date = FND_API.g_miss_date OR p_process_rec.last_update_date IS NULL THEN
904 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_last_update_date');
905 x_return_status := FND_API.g_ret_sts_error;
906 RETURN;
907 END IF;
908
909
910 IF p_process_rec.last_updated_by = FND_API.g_miss_num OR p_process_rec.last_updated_by IS NULL THEN
911 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_last_updated_by');
912 x_return_status := FND_API.g_ret_sts_error;
913 RETURN;
914 END IF;
915
916
917 IF p_process_rec.creation_date = FND_API.g_miss_date OR p_process_rec.creation_date IS NULL THEN
918 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_creation_date');
919 x_return_status := FND_API.g_ret_sts_error;
920 RETURN;
921 END IF;
922
923
924 IF p_process_rec.created_by = FND_API.g_miss_num OR p_process_rec.created_by IS NULL THEN
925 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_created_by');
926 x_return_status := FND_API.g_ret_sts_error;
927 RETURN;
928 END IF;
929
930
931 IF p_process_rec.item_type = FND_API.g_miss_char OR p_process_rec.item_type IS NULL THEN
932 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_item_type');
933 x_return_status := FND_API.g_ret_sts_error;
934 RETURN;
935 END IF;
936
937
938 IF p_process_rec.name = FND_API.g_miss_char OR p_process_rec.name IS NULL THEN
939 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_name');
940 x_return_status := FND_API.g_ret_sts_error;
941 RETURN;
942 END IF;
943
944
945 IF p_process_rec.process_id = FND_API.g_miss_num OR p_process_rec.process_id IS NULL THEN
946 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_process_id');
947 x_return_status := FND_API.g_ret_sts_error;
948 RETURN;
949 END IF;
950 ELSE
951
952
953 IF p_process_rec.last_update_date IS NULL THEN
954 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_last_update_date');
955 x_return_status := FND_API.g_ret_sts_error;
956 RETURN;
957 END IF;
958
959
960 IF p_process_rec.last_updated_by IS NULL THEN
961 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_last_updated_by');
962 x_return_status := FND_API.g_ret_sts_error;
963 RETURN;
964 END IF;
965
966
967 IF p_process_rec.creation_date IS NULL THEN
968 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_creation_date');
969 x_return_status := FND_API.g_ret_sts_error;
970 RETURN;
971 END IF;
972
973
974 IF p_process_rec.created_by IS NULL THEN
975 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_created_by');
976 x_return_status := FND_API.g_ret_sts_error;
977 RETURN;
978 END IF;
979
980
981 IF p_process_rec.item_type IS NULL THEN
982 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_item_type');
983 x_return_status := FND_API.g_ret_sts_error;
984 RETURN;
985 END IF;
986
987
988 IF p_process_rec.name IS NULL THEN
989 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_name');
990 x_return_status := FND_API.g_ret_sts_error;
991 RETURN;
992 END IF;
993
994
995 IF p_process_rec.process_id IS NULL THEN
999 END IF;
996 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_process_NO_process_id');
997 x_return_status := FND_API.g_ret_sts_error;
998 RETURN;
1000 END IF;
1001
1002 END check_process_req_items;
1003
1004 PROCEDURE check_process_FK_items(
1005 p_process_rec IN process_rec_type,
1006 x_return_status OUT NOCOPY VARCHAR2
1007 )
1008 IS
1009 BEGIN
1010 x_return_status := FND_API.g_ret_sts_success;
1011
1012 -- Enter custom code here
1013
1014 END check_process_FK_items;
1015
1016 PROCEDURE check_process_Lookup_items(
1017 p_process_rec IN process_rec_type,
1018 x_return_status OUT NOCOPY VARCHAR2
1019 )
1020 IS
1021 BEGIN
1022 x_return_status := FND_API.g_ret_sts_success;
1023
1024 -- Enter custom code here
1025
1026 END check_process_Lookup_items;
1027
1028 PROCEDURE Check_process_Items (
1029 P_process_rec IN process_rec_type,
1030 p_validation_mode IN VARCHAR2,
1031 x_return_status OUT NOCOPY VARCHAR2
1032 )
1033 IS
1034 BEGIN
1035
1036 -- Check Items Uniqueness API calls
1037
1038 check_process_uk_items(
1039 p_process_rec => p_process_rec,
1040 p_validation_mode => p_validation_mode,
1041 x_return_status => x_return_status);
1042 IF x_return_status <> FND_API.g_ret_sts_success THEN
1043 RETURN;
1044 END IF;
1045
1046 -- Check Items Required/NOT NULL API calls
1047
1048 check_process_req_items(
1049 p_process_rec => p_process_rec,
1050 p_validation_mode => p_validation_mode,
1051 x_return_status => x_return_status);
1052 IF x_return_status <> FND_API.g_ret_sts_success THEN
1053 RETURN;
1054 END IF;
1055 -- Check Items Foreign Keys API calls
1056
1057 check_process_FK_items(
1058 p_process_rec => p_process_rec,
1059 x_return_status => x_return_status);
1060 IF x_return_status <> FND_API.g_ret_sts_success THEN
1061 RETURN;
1062 END IF;
1063 -- Check Items Lookups
1064
1065 check_process_Lookup_items(
1066 p_process_rec => p_process_rec,
1067 x_return_status => x_return_status);
1068 IF x_return_status <> FND_API.g_ret_sts_success THEN
1069 RETURN;
1070 END IF;
1071
1072 END Check_process_Items;
1073
1074
1075 PROCEDURE Complete_process_Rec (
1076 P_process_rec IN process_rec_type,
1077 x_complete_rec OUT NOCOPY process_rec_type
1078 );
1079
1080 PROCEDURE Complete_process_Rec (
1081 p_process_rec IN process_rec_type,
1082 x_complete_rec OUT NOCOPY process_rec_type)
1083 IS
1084 l_return_status VARCHAR2(1);
1085
1086 CURSOR c_complete IS
1087 SELECT *
1088 FROM amw_process
1089 WHERE process_id = p_process_rec.process_id;
1090 l_process_rec c_complete%ROWTYPE;
1091 BEGIN
1092 x_complete_rec := p_process_rec;
1093
1094
1095 OPEN c_complete;
1096 FETCH c_complete INTO l_process_rec;
1097 CLOSE c_complete;
1098
1099 -- last_update_date
1100 IF p_process_rec.last_update_date = FND_API.g_miss_date THEN
1101 x_complete_rec.last_update_date := l_process_rec.last_update_date;
1102 END IF;
1103
1104 -- last_updated_by
1105 IF p_process_rec.last_updated_by = FND_API.g_miss_num THEN
1106 x_complete_rec.last_updated_by := l_process_rec.last_updated_by;
1107 END IF;
1108
1109 -- creation_date
1110 IF p_process_rec.creation_date = FND_API.g_miss_date THEN
1111 x_complete_rec.creation_date := l_process_rec.creation_date;
1112 END IF;
1113
1114 -- created_by
1115 IF p_process_rec.created_by = FND_API.g_miss_num THEN
1116 x_complete_rec.created_by := l_process_rec.created_by;
1117 END IF;
1118
1119 -- last_update_login
1120 IF p_process_rec.last_update_login = FND_API.g_miss_num THEN
1121 x_complete_rec.last_update_login := l_process_rec.last_update_login;
1122 END IF;
1123
1124 -- item_type
1125 IF p_process_rec.item_type = FND_API.g_miss_char THEN
1126 x_complete_rec.item_type := l_process_rec.item_type;
1127 END IF;
1128
1129 -- name
1130 IF p_process_rec.name = FND_API.g_miss_char THEN
1131 x_complete_rec.name := l_process_rec.name;
1132 END IF;
1133
1134 -- created_from
1135 IF p_process_rec.created_from = FND_API.g_miss_char THEN
1136 x_complete_rec.created_from := l_process_rec.created_from;
1137 END IF;
1138
1139 -- request_id
1140 IF p_process_rec.request_id = FND_API.g_miss_num THEN
1141 x_complete_rec.request_id := l_process_rec.request_id;
1142 END IF;
1143
1144 -- program_application_id
1145 IF p_process_rec.program_application_id = FND_API.g_miss_num THEN
1146 x_complete_rec.program_application_id := l_process_rec.program_application_id;
1147 END IF;
1148
1149 -- program_id
1150 IF p_process_rec.program_id = FND_API.g_miss_num THEN
1151 x_complete_rec.program_id := l_process_rec.program_id;
1152 END IF;
1153
1154 -- program_update_date
1155 IF p_process_rec.program_update_date = FND_API.g_miss_date THEN
1156 x_complete_rec.program_update_date := l_process_rec.program_update_date;
1157 END IF;
1158
1159 -- attribute_category
1160 IF p_process_rec.attribute_category = FND_API.g_miss_char THEN
1161 x_complete_rec.attribute_category := l_process_rec.attribute_category;
1162 END IF;
1163
1164 -- attribute1
1165 IF p_process_rec.attribute1 = FND_API.g_miss_char THEN
1166 x_complete_rec.attribute1 := l_process_rec.attribute1;
1170 IF p_process_rec.attribute2 = FND_API.g_miss_char THEN
1167 END IF;
1168
1169 -- attribute2
1171 x_complete_rec.attribute2 := l_process_rec.attribute2;
1172 END IF;
1173
1174 -- attribute3
1175 IF p_process_rec.attribute3 = FND_API.g_miss_char THEN
1176 x_complete_rec.attribute3 := l_process_rec.attribute3;
1177 END IF;
1178
1179 -- attribute4
1180 IF p_process_rec.attribute4 = FND_API.g_miss_char THEN
1181 x_complete_rec.attribute4 := l_process_rec.attribute4;
1182 END IF;
1183
1184 -- attribute5
1185 IF p_process_rec.attribute5 = FND_API.g_miss_char THEN
1186 x_complete_rec.attribute5 := l_process_rec.attribute5;
1187 END IF;
1188
1189 -- attribute6
1190 IF p_process_rec.attribute6 = FND_API.g_miss_char THEN
1191 x_complete_rec.attribute6 := l_process_rec.attribute6;
1192 END IF;
1193
1194 -- attribute7
1195 IF p_process_rec.attribute7 = FND_API.g_miss_char THEN
1196 x_complete_rec.attribute7 := l_process_rec.attribute7;
1197 END IF;
1198
1199 -- attribute8
1200 IF p_process_rec.attribute8 = FND_API.g_miss_char THEN
1201 x_complete_rec.attribute8 := l_process_rec.attribute8;
1202 END IF;
1203
1204 -- attribute9
1205 IF p_process_rec.attribute9 = FND_API.g_miss_char THEN
1206 x_complete_rec.attribute9 := l_process_rec.attribute9;
1207 END IF;
1208
1209 -- attribute10
1210 IF p_process_rec.attribute10 = FND_API.g_miss_char THEN
1211 x_complete_rec.attribute10 := l_process_rec.attribute10;
1212 END IF;
1213
1214 -- attribute11
1215 IF p_process_rec.attribute11 = FND_API.g_miss_char THEN
1216 x_complete_rec.attribute11 := l_process_rec.attribute11;
1217 END IF;
1218
1219 -- attribute12
1220 IF p_process_rec.attribute12 = FND_API.g_miss_char THEN
1221 x_complete_rec.attribute12 := l_process_rec.attribute12;
1222 END IF;
1223
1224 -- attribute13
1225 IF p_process_rec.attribute13 = FND_API.g_miss_char THEN
1226 x_complete_rec.attribute13 := l_process_rec.attribute13;
1227 END IF;
1228
1229 -- attribute14
1230 IF p_process_rec.attribute14 = FND_API.g_miss_char THEN
1231 x_complete_rec.attribute14 := l_process_rec.attribute14;
1232 END IF;
1233
1234 -- attribute15
1235 IF p_process_rec.attribute15 = FND_API.g_miss_char THEN
1236 x_complete_rec.attribute15 := l_process_rec.attribute15;
1237 END IF;
1238
1239 -- security_group_id
1240 IF p_process_rec.security_group_id = FND_API.g_miss_num THEN
1241 x_complete_rec.security_group_id := l_process_rec.security_group_id;
1242 END IF;
1243
1244 -- object_version_number
1245 IF p_process_rec.object_version_number = FND_API.g_miss_num THEN
1246 x_complete_rec.object_version_number := l_process_rec.object_version_number;
1247 END IF;
1248
1249 -- process_id
1250 IF p_process_rec.process_id = FND_API.g_miss_num THEN
1251 x_complete_rec.process_id := l_process_rec.process_id;
1252 END IF;
1253 -- Note: Developers need to modify the procedure
1254 -- to handle any business specific requirements.
1255 END Complete_process_Rec;
1256 PROCEDURE Validate_process(
1257 p_api_version_number IN NUMBER,
1258 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1259 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1260 p_process_rec IN process_rec_type,
1261 x_return_status OUT NOCOPY VARCHAR2,
1262 x_msg_count OUT NOCOPY NUMBER,
1263 x_msg_data OUT NOCOPY VARCHAR2
1264 )
1265 IS
1266 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Process';
1267 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1268 l_object_version_number NUMBER;
1269 l_process_rec AMW_Process_PVT.process_rec_type;
1270
1271 BEGIN
1272 -- Standard Start of API savepoint
1273 SAVEPOINT VALIDATE_Process_;
1274
1275 -- Standard call to check for call compatibility.
1276 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1277 p_api_version_number,
1278 l_api_name,
1279 G_PKG_NAME)
1280 THEN
1281 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1282 END IF;
1283
1284 -- Initialize message list if p_init_msg_list is set to TRUE.
1285 IF FND_API.to_Boolean( p_init_msg_list )
1286 THEN
1287 FND_MSG_PUB.initialize;
1288 END IF;
1289 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1290 Check_process_Items(
1291 p_process_rec => p_process_rec,
1292 p_validation_mode => JTF_PLSQL_API.g_update,
1293 x_return_status => x_return_status
1294 );
1295
1296 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1297 RAISE FND_API.G_EXC_ERROR;
1298 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1299 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1303 Complete_process_Rec(
1300 END IF;
1301 END IF;
1302
1304 p_process_rec => p_process_rec,
1305 x_complete_rec => l_process_rec
1306 );
1307
1308 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1309 Validate_process_Rec(
1310 p_api_version_number => 1.0,
1311 p_init_msg_list => FND_API.G_FALSE,
1312 x_return_status => x_return_status,
1313 x_msg_count => x_msg_count,
1314 x_msg_data => x_msg_data,
1315 p_process_rec => l_process_rec);
1316
1317 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1318 RAISE FND_API.G_EXC_ERROR;
1319 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1320 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1321 END IF;
1322 END IF;
1323
1324
1325 -- Debug Message
1326 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1327
1328
1329 -- Initialize API return status to SUCCESS
1330 x_return_status := FND_API.G_RET_STS_SUCCESS;
1331
1332
1333 -- Debug Message
1334 AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1335
1336 -- Standard call to get message count and if count is 1, get message info.
1337 FND_MSG_PUB.Count_And_Get
1338 (p_count => x_msg_count,
1339 p_data => x_msg_data
1340 );
1341 EXCEPTION
1342
1343 WHEN AMW_Utility_PVT.resource_locked THEN
1344 x_return_status := FND_API.g_ret_sts_error;
1345 AMW_Utility_PVT.Error_Message(p_message_name => 'AMW_API_RESOURCE_LOCKED');
1346
1347 WHEN FND_API.G_EXC_ERROR THEN
1348 ROLLBACK TO VALIDATE_Process_;
1349 x_return_status := FND_API.G_RET_STS_ERROR;
1350 -- Standard call to get message count and if count=1, get the message
1351 FND_MSG_PUB.Count_And_Get (
1352 p_encoded => FND_API.G_FALSE,
1353 p_count => x_msg_count,
1354 p_data => x_msg_data
1355 );
1356
1357 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1358 ROLLBACK TO VALIDATE_Process_;
1359 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1360 -- Standard call to get message count and if count=1, get the message
1361 FND_MSG_PUB.Count_And_Get (
1362 p_encoded => FND_API.G_FALSE,
1363 p_count => x_msg_count,
1364 p_data => x_msg_data
1365 );
1366
1367 WHEN OTHERS THEN
1368 ROLLBACK TO VALIDATE_Process_;
1369 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1370 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1371 THEN
1372 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1373 END IF;
1374 -- Standard call to get message count and if count=1, get the message
1375 FND_MSG_PUB.Count_And_Get (
1376 p_encoded => FND_API.G_FALSE,
1377 p_count => x_msg_count,
1378 p_data => x_msg_data
1379 );
1380 End Validate_Process;
1381
1382
1383 PROCEDURE Validate_process_rec(
1384 p_api_version_number IN NUMBER,
1385 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1386 x_return_status OUT NOCOPY VARCHAR2,
1387 x_msg_count OUT NOCOPY NUMBER,
1388 x_msg_data OUT NOCOPY VARCHAR2,
1389 p_process_rec IN process_rec_type
1390 )
1391 IS
1392 BEGIN
1393 -- Initialize message list if p_init_msg_list is set to TRUE.
1394 IF FND_API.to_Boolean( p_init_msg_list )
1395 THEN
1396 FND_MSG_PUB.initialize;
1397 END IF;
1398
1399 -- Initialize API return status to SUCCESS
1400 x_return_status := FND_API.G_RET_STS_SUCCESS;
1401
1402 -- Hint: Validate data
1403 -- If data not valid
1404 -- THEN
1405 -- x_return_status := FND_API.G_RET_STS_ERROR;
1406
1407 -- Debug Message
1408 AMW_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1409 -- Standard call to get message count and if count is 1, get message info.
1410 FND_MSG_PUB.Count_And_Get
1411 (p_count => x_msg_count,
1412 p_data => x_msg_data
1413 );
1414 END Validate_process_Rec;
1415
1416 END AMW_Process_PVT;