[Home] [Help]
PACKAGE BODY: APPS.PA_TASK_TYPE_PUB
Source
1 PACKAGE BODY PA_TASK_TYPE_PUB AS
2 /*$Header: PATTPUBB.pls 120.3 2006/01/09 05:38:43 vkadimes noship $*/
3
4 g_module_name VARCHAR2(100) := 'PA_TASK_TYPE_PUB'; --Bug 3279978 FPM Enhancement
5
6 l_task_type_not_unique EXCEPTION;
7 l_task_type_invalid_dates EXCEPTION;
8 l_prog_entry_enable_error EXCEPTION;
9 l_prog_entry_req_error EXCEPTION;
10 l_wq_enable_error EXCEPTION;
11 l_remain_effort_enable_error EXCEPTION;
12 l_percent_comp_enable_error EXCEPTION;
13 l_delete_task_type_error EXCEPTION;
14 l_del_upg_task_type_error EXCEPTION;
15 l_upd_upg_task_type_error EXCEPTION;
16 l_pagelayout_name_invalid EXCEPTION;
17 PA_DLV_INV_PARAM_EXC EXCEPTION; --Bug 3279978 FP M Development
18 l_invalid_lead_day_exc EXCEPTION;
19 l_delete_delv_type_error EXCEPTION; -- Added for bug 4775641
20
21 PROCEDURE create_task_type
22 (p_task_type IN pa_task_types.task_type%TYPE
23 ,p_start_date_active IN pa_task_types.start_date_active%TYPE
24 ,p_end_date_active IN pa_task_types.end_date_active%TYPE := NULL
25 ,p_description IN pa_task_types.description%TYPE := NULL
26 ,p_task_type_class_code IN pa_task_types.task_type_class_code%TYPE
27 ,p_initial_status_code IN pa_task_types.initial_status_code%TYPE := NULL
28 ,p_prog_entry_enable_flag IN pa_task_types.prog_entry_enable_flag%TYPE := NULL
29 ,p_prog_entry_req_flag IN pa_task_types.prog_entry_req_flag%TYPE := NULL
30 ,p_initial_progress_status_code IN pa_task_types.initial_progress_status_code%TYPE := NULL
31 ,p_task_prog_entry_page_id IN pa_task_types.task_progress_entry_page_id%TYPE := NULL
32 ,p_task_prog_entry_page_name IN pa_page_layouts.page_name%TYPE := NULL
33 ,p_wq_enable_flag IN pa_task_types.wq_enable_flag%TYPE := NULL
34 ,p_work_item_code IN pa_task_types.work_item_code%TYPE := NULL
35 ,p_uom_code IN pa_task_types.uom_code%TYPE := NULL
36 ,p_actual_wq_entry_code IN pa_task_types.actual_wq_entry_code%TYPE := NULL
37 ,p_percent_comp_enable_flag IN pa_task_types.percent_comp_enable_flag%TYPE := NULL
38 ,p_base_percent_comp_deriv_code IN pa_task_types.base_percent_comp_deriv_code%TYPE := NULL
39 ,p_task_weighting_deriv_code IN pa_task_types.task_weighting_deriv_code%TYPE := NULL
40 ,p_remain_effort_enable_flag IN pa_task_types.remain_effort_enable_flag%TYPE := NULL
41 ,p_attribute_category IN pa_task_types.attribute_category%TYPE := NULL
42 ,p_attribute1 IN pa_task_types.attribute1%TYPE := NULL
43 ,p_attribute2 IN pa_task_types.attribute2%TYPE := NULL
44 ,p_attribute3 IN pa_task_types.attribute3%TYPE := NULL
45 ,p_attribute4 IN pa_task_types.attribute4%TYPE := NULL
46 ,p_attribute5 IN pa_task_types.attribute5%TYPE := NULL
47 ,p_attribute6 IN pa_task_types.attribute6%TYPE := NULL
48 ,p_attribute7 IN pa_task_types.attribute7%TYPE := NULL
49 ,p_attribute8 IN pa_task_types.attribute8%TYPE := NULL
50 ,p_attribute9 IN pa_task_types.attribute9%TYPE := NULL
51 ,p_attribute10 IN pa_task_types.attribute10%TYPE := NULL
52 ,p_attribute11 IN pa_task_types.attribute11%TYPE := NULL
53 ,p_attribute12 IN pa_task_types.attribute12%TYPE := NULL
54 ,p_attribute13 IN pa_task_types.attribute13%TYPE := NULL
55 ,p_attribute14 IN pa_task_types.attribute14%TYPE := NULL
56 ,p_attribute15 IN pa_task_types.attribute15%TYPE := NULL
57 ,p_api_version IN NUMBER := 1.0
58 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
59 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
60 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
61 ,p_object_type IN pa_task_types.object_type%TYPE := 'PA_TASKS' -- 3279978 : Added Object Type and Progress Rollup Method
62 ,p_wf_item_type IN pa_task_types.wf_item_type%TYPE :=NULL
63 ,p_wf_process IN pa_task_types.wf_process%TYPE :=NULL
64 ,p_wf_lead_days IN pa_task_types.wf_start_lead_days%TYPE :=NULL
65
66 ,x_task_type_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
67 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
68 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
69 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
70 )
71 IS
72
73 l_msg_index_out NUMBER;
74 --Bug: 4537865
75 l_new_msg_data VARCHAR2(2000);
76 --Bug: 4537865
77 l_error_message_code VARCHAR2(100);
78 l_task_prog_entry_page_id pa_page_layouts.page_id%TYPE;
79 l_task_weighting_deriv_code pa_task_types.task_weighting_deriv_code%TYPE;
80 l_task_type_class_code pa_task_types.task_type_class_code%TYPE;
81
82 BEGIN
83
84 -- Initialize the Error Stack
85 PA_DEBUG.init_err_stack('PA_task_type_PUB.Create_Task_Type');
86
87 -- Initialize the return status to success
88 x_return_status := FND_API.G_RET_STS_SUCCESS;
89
90 --Clear the global PL/SQL message table
91 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
92 FND_MSG_PUB.initialize;
93 END IF;
94
95 -- Issue API savepoint if the transaction is to be committed
96 IF p_commit = FND_API.G_TRUE THEN
97 SAVEPOINT CREATE_TASK_TYPE_PUB;
98 END IF;
99
100 --Log Message
101 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PUB.Create_Task_Type.begin'
102 ,x_msg => 'Beginning of Create_Task_Type pub'
103 ,x_log_level => 5);
104
105
106 -- Check whether task_type is unique
107 IF PA_TASK_TYPE_UTILS.is_task_type_unique(p_task_type => p_task_type) = 'N' THEN
108 RAISE l_task_type_not_unique;
109 END IF;
110
111 -- Validate From/To dates
112 IF p_end_date_active IS NOT NULL AND TRUNC(p_start_date_active) > TRUNC(p_end_date_active) THEN
113 RAISE l_task_type_invalid_dates;
114 END IF;
115
116 -- Name/ID validation for task progress entry page layout
117 l_task_prog_entry_page_id := p_task_prog_entry_page_id;
118 PA_PAGE_LAYOUT_UTILS.check_pagelayout_name_or_id(
119 p_pagelayout_name => p_task_prog_entry_page_name,
120 p_pagetype_code => 'AI',
121 p_check_id_flag => 'Y',
122 x_pagelayout_id => l_task_prog_entry_page_id,
123 x_return_status => x_return_status,
124 x_error_message_code => l_error_message_code);
125 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
126 RAISE l_pagelayout_name_invalid;
127 END IF;
128
129 -- Validate progress attributes.
130 PA_TASK_TYPE_UTILS.validate_progress_attributes(
131 p_prog_entry_enable_flag => p_prog_entry_enable_flag
132 ,p_prog_entry_req_flag => p_prog_entry_req_flag
133 ,p_initial_progress_status_code => p_initial_progress_status_code
134 ,p_task_prog_entry_page_id => l_task_prog_entry_page_id
135 ,p_wq_enable_flag => p_wq_enable_flag
136 ,p_work_item_code => p_work_item_code
137 ,p_uom_code => p_uom_code
138 ,p_actual_wq_entry_code => p_actual_wq_entry_code
139 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
140 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
141 ,p_task_weighting_deriv_code => p_task_weighting_deriv_code
142 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
143 ,x_return_status => x_return_status
144 ,x_msg_count => x_msg_count
145 ,x_msg_data => x_msg_data);
146
147 -- Default task_weighting_deriv_code to 'MANUAL' for all task types.
148 IF p_task_weighting_deriv_code IS NULL THEN
149 l_task_weighting_deriv_code := 'MANUAL';
150 END IF;
151
152 -- Default task_type_class_code to 'MANUAL' for all task types.
153 IF p_task_type_class_code IS NULL THEN
154 l_task_type_class_code := 'GENERAL';
155 END IF;
156
157 -- FP M : 3491609 : Project Execution Workflow Changes
158 If nvl(p_wf_lead_days,0)<0 then
159 Raise l_invalid_lead_day_exc ;
160 end if ;
161
162 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
163 --Log Message
164 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PUB.Create_Task_Type.begin'
165 ,x_msg => 'calling create_Task_Type pvt'
166 ,x_log_level => 5);
167
168 PA_TASK_TYPE_PVT.create_Task_Type
169 (p_task_type => p_task_type
170 ,p_start_date_active => p_start_date_active
171 ,p_end_date_active => p_end_date_active
172 ,p_description => p_description
173 ,p_task_type_class_code => l_task_type_class_code
174 ,p_initial_status_code => p_initial_status_code
175 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
176 ,p_prog_entry_req_flag => p_prog_entry_req_flag
177 ,p_initial_progress_status_code => p_initial_progress_status_code
178 ,p_task_prog_entry_page_id => l_task_prog_entry_page_id
179 ,p_wq_enable_flag => p_wq_enable_flag
180 ,p_work_item_code => p_work_item_code
181 ,p_uom_code => p_uom_code
182 ,p_actual_wq_entry_code => p_actual_wq_entry_code
183 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
184 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
185 ,p_task_weighting_deriv_code => l_task_weighting_deriv_code
186 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
187 ,p_attribute_category => p_attribute_category
188 ,p_attribute1 => p_attribute1
189 ,p_attribute2 => p_attribute2
190 ,p_attribute3 => p_attribute3
191 ,p_attribute4 => p_attribute4
192 ,p_attribute5 => p_attribute5
193 ,p_attribute6 => p_attribute6
194 ,p_attribute7 => p_attribute7
195 ,p_attribute8 => p_attribute8
196 ,p_attribute9 => p_attribute9
197 ,p_attribute10 => p_attribute10
198 ,p_attribute11 => p_attribute11
199 ,p_attribute12 => p_attribute12
200 ,p_attribute13 => p_attribute13
201 ,p_attribute14 => p_attribute14
202 ,p_attribute15 => p_attribute15
203 ,p_object_type => p_object_type -- 3279978 : Added Object Type and Progress Rollup Method
204 ,p_wf_item_type => p_wf_item_type
205 ,p_wf_process => p_wf_process
206 ,p_wf_lead_days => p_wf_lead_days
207 ,x_task_type_id => x_task_type_id
208 ,x_return_status => x_return_status
209 ,x_msg_count => x_msg_count
210 ,x_msg_data => x_msg_data);
211 END IF;
212
213 x_msg_count := FND_MSG_PUB.Count_Msg;
214 IF x_msg_count = 1 THEN
215 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
216 ,p_msg_index => 1
217 ,p_data => x_msg_data
218 ,p_msg_index_out => l_msg_index_out
219 );
220 END IF;
221
222 -- Reset the error stack when returning to the calling program
223 PA_DEBUG.Reset_Err_Stack;
224 -- If any errors exist then set the x_return_status to 'E'
225
226 IF x_msg_count > 0 THEN
227 x_return_status := FND_API.G_RET_STS_ERROR;
228 END IF;
229
230 -- Commit if the flag is set and there is no error
231 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
232 COMMIT;
233 END IF;
234
235 EXCEPTION
236 WHEN l_task_type_not_unique THEN
237 PA_UTILS.add_message('PA','PA_TASK_TYPE_NOT_UNIQUE');
238 x_return_status := FND_API.G_RET_STS_ERROR;
239 x_msg_data := 'PA_TASK_TYPE_NOT_UNIQUE';
240 x_msg_count := FND_MSG_PUB.Count_Msg;
241 IF x_msg_count = 1 THEN
242 pa_interface_utils_pub.get_messages
243 (p_encoded => FND_API.G_TRUE,
244 p_msg_index => 1,
245 p_msg_count => x_msg_count,
246 p_msg_data => x_msg_data,
247 --p_data => x_msg_data, --Bug: 4537865
248 p_data => l_new_msg_data, --Bug: 4537865
249 p_msg_index_out => l_msg_index_out );
250 --Bug: 4537865
251 x_msg_data := l_new_msg_data;
252 --Bug: 4537865
253 END IF;
254 WHEN l_task_type_invalid_dates THEN
255 PA_UTILS.add_message('PA','PA_TT_INVALID_DATES');
256 x_return_status := FND_API.G_RET_STS_ERROR;
257 x_msg_data := 'PA_TT_INVALID_DATES';
258 x_msg_count := FND_MSG_PUB.Count_Msg;
259 IF x_msg_count = 1 THEN
260 pa_interface_utils_pub.get_messages
261 (p_encoded => FND_API.G_TRUE,
262 p_msg_index => 1,
263 p_msg_count => x_msg_count,
264 p_msg_data => x_msg_data,
265 --p_data => x_msg_data, --Bug: 4537865
266 p_data => l_new_msg_data, --Bug: 4537865
267 p_msg_index_out => l_msg_index_out );
268 --Bug: 4537865
269 x_msg_data := l_new_msg_data;
270 --Bug: 4537865
271 END IF;
272 WHEN l_pagelayout_name_invalid THEN
273 PA_UTILS.add_message('PA',l_error_message_code);
274 x_return_status := FND_API.G_RET_STS_ERROR;
275 x_msg_data := l_error_message_code;
276 x_msg_count := FND_MSG_PUB.Count_Msg;
277 IF x_msg_count = 1 THEN
278 pa_interface_utils_pub.get_messages
279 (p_encoded => FND_API.G_TRUE,
280 p_msg_index => 1,
281 p_msg_count => x_msg_count,
282 p_msg_data => x_msg_data,
283 --p_data => x_msg_data, --Bug: 4537865
284 p_data => l_new_msg_data, --Bug: 4537865
285 p_msg_index_out => l_msg_index_out );
286 --Bug: 4537865
287 x_msg_data := l_new_msg_data;
288 --Bug: 4537865
289 END IF;
290 WHEN l_invalid_lead_day_exc THEN
291 PA_UTILS.add_message('PA','PA_INVALID_LEAD_DAYS');
292 x_return_status := FND_API.G_RET_STS_ERROR;
293 x_msg_data := l_error_message_code;
294 x_msg_count := FND_MSG_PUB.Count_Msg;
295 IF x_msg_count = 1 THEN
296 pa_interface_utils_pub.get_messages
297 (p_encoded => FND_API.G_TRUE,
298 p_msg_index => 1,
299 p_msg_count => x_msg_count,
300 p_msg_data => x_msg_data,
301 --p_data => x_msg_data, --Bug: 4537865
302 p_data => l_new_msg_data, --Bug: 4537865
303 p_msg_index_out => l_msg_index_out );
304 --Bug: 4537865
305 x_msg_data := l_new_msg_data;
306 --Bug: 4537865
307 END IF;
308 WHEN OTHERS THEN
309 IF p_commit = FND_API.G_TRUE THEN
310 ROLLBACK TO CREATE_TASK_TYPE_PUB;
311 END IF;
312
313 -- Set the excetption Message and the stack
314 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPES_PUB.Create_Task_Type'
315 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
316 --
317 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
318 RAISE;
319
320 END Create_Task_Type;
321
322
323 PROCEDURE Update_Task_Type
324 ( p_task_type_id IN pa_task_types.task_type_id%TYPE
325 ,p_task_type IN pa_task_types.task_type%TYPE
326 ,p_start_date_active IN pa_task_types.start_date_active%TYPE
327 ,p_end_date_active IN pa_task_types.end_date_active%TYPE := NULL
328 ,p_description IN pa_task_types.description%TYPE := NULL
329 ,p_task_type_class_code IN pa_task_types.task_type_class_code%TYPE
330 ,p_initial_status_code IN pa_task_types.initial_status_code%TYPE := NULL
331 ,p_prog_entry_enable_flag IN pa_task_types.prog_entry_enable_flag%TYPE := NULL
332 ,p_prog_entry_req_flag IN pa_task_types.prog_entry_req_flag%TYPE := NULL
333 ,p_initial_progress_status_code IN pa_task_types.initial_progress_status_code%TYPE := NULL
334 ,p_task_prog_entry_page_id IN pa_task_types.task_progress_entry_page_id%TYPE := NULL
335 ,p_task_prog_entry_page_name IN pa_page_layouts.page_name%TYPE := NULL
336 ,p_wq_enable_flag IN pa_task_types.wq_enable_flag%TYPE := NULL
337 ,p_work_item_code IN pa_task_types.work_item_code%TYPE := NULL
338 ,p_uom_code IN pa_task_types.uom_code%TYPE := NULL
339 ,p_actual_wq_entry_code IN pa_task_types.actual_wq_entry_code%TYPE := NULL
340 ,p_percent_comp_enable_flag IN pa_task_types.percent_comp_enable_flag%TYPE := NULL
341 ,p_base_percent_comp_deriv_code IN pa_task_types.base_percent_comp_deriv_code%TYPE := NULL
342 ,p_task_weighting_deriv_code IN pa_task_types.task_weighting_deriv_code%TYPE := NULL
343 ,p_remain_effort_enable_flag IN pa_task_types.remain_effort_enable_flag%TYPE := NULL
344 ,p_attribute_category IN pa_task_types.attribute_category%TYPE := NULL
345 ,p_attribute1 IN pa_task_types.attribute1%TYPE := NULL
346 ,p_attribute2 IN pa_task_types.attribute2%TYPE := NULL
347 ,p_attribute3 IN pa_task_types.attribute3%TYPE := NULL
348 ,p_attribute4 IN pa_task_types.attribute4%TYPE := NULL
349 ,p_attribute5 IN pa_task_types.attribute5%TYPE := NULL
350 ,p_attribute6 IN pa_task_types.attribute6%TYPE := NULL
351 ,p_attribute7 IN pa_task_types.attribute7%TYPE := NULL
352 ,p_attribute8 IN pa_task_types.attribute8%TYPE := NULL
353 ,p_attribute9 IN pa_task_types.attribute9%TYPE := NULL
354 ,p_attribute10 IN pa_task_types.attribute10%TYPE := NULL
355 ,p_attribute11 IN pa_task_types.attribute11%TYPE := NULL
356 ,p_attribute12 IN pa_task_types.attribute12%TYPE := NULL
357 ,p_attribute13 IN pa_task_types.attribute13%TYPE := NULL
358 ,p_attribute14 IN pa_task_types.attribute14%TYPE := NULL
359 ,p_attribute15 IN pa_task_types.attribute15%TYPE := NULL
360 ,p_object_type IN pa_task_types.object_type%TYPE := 'PA_TASKS' -- 3279978 : Added Object Type and Progress Rollup Method
361 ,p_api_version IN NUMBER := 1.0
362 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
363 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
364 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
365 ,p_wf_item_type IN pa_task_types.wf_item_type%TYPE :=NULL
366 ,p_wf_process IN pa_task_types.wf_process%TYPE :=NULL
367 ,p_wf_lead_days IN pa_task_types.wf_start_lead_days%TYPE :=NULL
368 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
369 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
370 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
371 )
372
373 IS
374
375 l_msg_index_out NUMBER;
376 --Bug: 4537865
377 l_new_msg_data VARCHAR2(2000);
378 --Bug: 4537865
379 l_error_message_code VARCHAR2(100);
380 l_task_prog_entry_page_id pa_page_layouts.page_id%TYPE;
381 l_task_weighting_deriv_code pa_task_types.task_weighting_deriv_code%TYPE;
382 l_is_task_type_used VARCHAR2(1);
383 l_task_type_class_code pa_task_types.task_type_class_code%TYPE;
384
385 CURSOR c1 IS
386 SELECT prog_entry_enable_flag, prog_entry_req_flag, wq_enable_flag, remain_effort_enable_flag, percent_comp_enable_flag, end_date_active
387 FROM pa_task_types
388 WHERE task_type_id = p_task_type_id;
389
390 v_c1 c1%ROWTYPE;
391
392 BEGIN
393
394 -- Initialize the Error Stack
395 PA_DEBUG.init_err_stack('PA_TASK_TYPES_PUB.Update_Task_Type');
396
397 -- Initialize the return status to success
398 x_return_status := FND_API.G_RET_STS_SUCCESS;
399
400 --Clear the global PL/SQL message table
401 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
402 FND_MSG_PUB.initialize;
403 END IF;
404
405 -- Issue API savepoint if the transaction is to be committed
406 IF p_commit = FND_API.G_TRUE THEN
407 SAVEPOINT UPDATE_TASK_TYPE_PUB;
408 END IF;
409
410 --Log Message
411 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PUB.Update_Task_Type.begin'
412 ,x_msg => 'Beginning of Update_Task_Type pub'
413 ,x_log_level => 5);
414
415
416 OPEN c1;
417 FETCH c1 INTO v_c1;
418 CLOSE c1;
419
420 -- Check whether task_type is unique
421 IF PA_TASK_TYPE_UTILS.is_task_type_unique(p_task_type => p_task_type,
422 p_task_type_id => p_task_type_id) = 'N' THEN
423 RAISE l_task_type_not_unique;
424 END IF;
425
426 -- Validate From/To dates
427 IF p_end_date_active IS NOT NULL AND TRUNC(p_start_date_active) > TRUNC(p_end_date_active) THEN
428 RAISE l_task_type_invalid_dates;
429 END IF;
430
431 -- Updating the end_date_active of the Upgraded Task Type is not allowed.
432 -- The seeded end_date_actived is NULL.
433 IF p_task_type_id = 1 AND p_end_date_active IS NOT NULL THEN
434
435 RAISE l_upd_upg_task_type_error;
436 END IF;
437
438 -- Name/ID validation for task progress entry page layout
439 l_task_prog_entry_page_id := p_task_prog_entry_page_id;
440 PA_PAGE_LAYOUT_UTILS.check_pagelayout_name_or_id(
441 p_pagelayout_name => p_task_prog_entry_page_name,
442 p_pagetype_code => 'AI',
443 p_check_id_flag => 'Y',
444 x_pagelayout_id => l_task_prog_entry_page_id,
445 x_return_status => x_return_status,
446 x_error_message_code => l_error_message_code);
447 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
448 RAISE l_pagelayout_name_invalid;
449 END IF;
450
451 -- Validate progress attributes.
452 PA_TASK_TYPE_UTILS.validate_progress_attributes(
453 p_prog_entry_enable_flag => p_prog_entry_enable_flag
454 ,p_prog_entry_req_flag => p_prog_entry_req_flag
455 ,p_initial_progress_status_code => p_initial_progress_status_code
456 ,p_task_prog_entry_page_id => l_task_prog_entry_page_id
457 ,p_wq_enable_flag => p_wq_enable_flag
458 ,p_work_item_code => p_work_item_code
459 ,p_uom_code => p_uom_code
460 ,p_actual_wq_entry_code => p_actual_wq_entry_code
461 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
462 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
463 ,p_task_weighting_deriv_code => p_task_weighting_deriv_code
464 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
465 ,x_return_status => x_return_status
466 ,x_msg_count => x_msg_count
467 ,x_msg_data => x_msg_data);
468
469 -- Default task_type_class_code to 'MANUAL' for all task types.
470 IF p_task_type_class_code IS NULL THEN
471 l_task_type_class_code := 'GENERAL';
472 END IF;
473
474 -- Check the five control flags
475 IF PA_PROJ_ELEMENTS_UTILS.is_task_type_used(p_task_type_id) = 'Y' THEN
476
477 IF (v_c1.prog_entry_enable_flag = 'Y' AND p_prog_entry_enable_flag = 'N') THEN
478 RAISE l_prog_entry_enable_error;
479 END IF;
480 IF (v_c1.prog_entry_req_flag = 'N' AND p_prog_entry_req_flag = 'Y') THEN
481 RAISE l_prog_entry_req_error;
482 END IF;
483 IF (v_c1.wq_enable_flag = 'Y' AND p_wq_enable_flag = 'N') THEN
484 RAISE l_wq_enable_error;
485 END IF;
486 IF (v_c1.remain_effort_enable_flag = 'Y' AND p_remain_effort_enable_flag = 'N') THEN
487 RAISE l_remain_effort_enable_error;
488 END IF;
489 IF (v_c1.percent_comp_enable_flag = 'Y' AND p_percent_comp_enable_flag = 'N') THEN
490 RAISE l_percent_comp_enable_error;
491 END IF;
492
493 END IF;
494
495 -- Default task_weighting_deriv_code to 'MANUAL' for all task types.
496 IF p_task_weighting_deriv_code IS NULL THEN
497 l_task_weighting_deriv_code := 'MANUAL';
498 END IF;
499
500 -- FP M : 3491609 : Project Execution Workflow Changes
501 If nvl(p_wf_lead_days,0)<0 then
502 Raise l_invalid_lead_day_exc ;
503 end if ;
504
505 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
506 --Log Message
507 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PUB.Update_Task_Type.begin'
508 ,x_msg => 'calling Update_Task_Type pvt'
509 ,x_log_level => 5);
510
511 PA_TASK_TYPE_PVT.Update_Task_Type
512 (p_task_type_id => p_task_type_id
513 ,p_task_type => p_task_type
514 ,p_start_date_active => p_start_date_active
515 ,p_end_date_active => p_end_date_active
516 ,p_description => p_description
517 ,p_task_type_class_code => l_task_type_class_code
518 ,p_initial_status_code => p_initial_status_code
519 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
520 ,p_prog_entry_req_flag => p_prog_entry_req_flag
521 ,p_initial_progress_status_code => p_initial_progress_status_code
522 ,p_task_prog_entry_page_id => l_task_prog_entry_page_id
523 ,p_wq_enable_flag => p_wq_enable_flag
524 ,p_work_item_code => p_work_item_code
525 ,p_uom_code => p_uom_code
526 ,p_actual_wq_entry_code => p_actual_wq_entry_code
527 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
528 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
529 ,p_task_weighting_deriv_code => l_task_weighting_deriv_code
530 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
531 ,p_attribute_category => p_attribute_category
532 ,p_attribute1 => p_attribute1
533 ,p_attribute2 => p_attribute2
534 ,p_attribute3 => p_attribute3
535 ,p_attribute4 => p_attribute4
536 ,p_attribute5 => p_attribute5
537 ,p_attribute6 => p_attribute6
538 ,p_attribute7 => p_attribute7
539 ,p_attribute8 => p_attribute8
540 ,p_attribute9 => p_attribute9
541 ,p_attribute10 => p_attribute10
542 ,p_attribute11 => p_attribute11
543 ,p_attribute12 => p_attribute12
544 ,p_attribute13 => p_attribute13
545 ,p_attribute14 => p_attribute14
546 ,p_attribute15 => p_attribute15
547 ,p_object_type => p_object_type -- 3279978 : Added Object Type and Progress Rollup Method
548 ,p_wf_item_type => p_wf_item_type
549 ,p_wf_process => p_wf_process
550 ,p_wf_lead_days => p_wf_lead_days
551 ,x_return_status => x_return_status
552 ,x_msg_count => x_msg_count
553 ,x_msg_data => x_msg_data);
554 END IF;
555
556 x_msg_count := FND_MSG_PUB.Count_Msg;
557 IF x_msg_count = 1 THEN
558 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
559 ,p_msg_index => 1
560 ,p_data => x_msg_data
561 ,p_msg_index_out => l_msg_index_out
562 );
563 END IF;
564
565 -- Reset the error stack when returning to the calling program
566 PA_DEBUG.Reset_Err_Stack;
567 -- If any errors exist then set the x_return_status to 'E'
568
569 IF x_msg_count > 0 THEN
570 x_return_status := FND_API.G_RET_STS_ERROR;
571 END IF;
572
573 -- Commit if the flag is set and there is no error
574 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
575 COMMIT;
576 END IF;
577
578 EXCEPTION
579 WHEN l_task_type_not_unique THEN
580 PA_UTILS.add_message('PA','PA_TASK_TYPE_NOT_UNIQUE');
581 x_return_status := FND_API.G_RET_STS_ERROR;
582 x_msg_data := 'PA_TASK_TYPE_NOT_UNIQUE';
583 x_msg_count := FND_MSG_PUB.Count_Msg;
584 IF x_msg_count = 1 THEN
585 pa_interface_utils_pub.get_messages
586 (p_encoded => FND_API.G_TRUE,
587 p_msg_index => 1,
588 p_msg_count => x_msg_count,
589 p_msg_data => x_msg_data,
590 --p_data => x_msg_data, * Bug: 4537865
591 p_data => l_new_msg_data, --Bug: 4537865
592 p_msg_index_out => l_msg_index_out );
593 --Bug: 4537865
594 x_msg_data := l_new_msg_data;
595 --Bug: 4537865
596 END IF;
597 WHEN l_task_type_invalid_dates THEN
598 PA_UTILS.add_message('PA','PA_TT_INVALID_DATES');
599 x_return_status := FND_API.G_RET_STS_ERROR;
600 x_msg_data := 'PA_TT_INVALID_DATES';
601 x_msg_count := FND_MSG_PUB.Count_Msg;
602 IF x_msg_count = 1 THEN
603 pa_interface_utils_pub.get_messages
604 (p_encoded => FND_API.G_TRUE,
605 p_msg_index => 1,
606 p_msg_count => x_msg_count,
607 p_msg_data => x_msg_data,
608 --p_data => x_msg_data, --Bug: 4537865
609 p_data => l_new_msg_data, --Bug: 4537865
610 p_msg_index_out => l_msg_index_out );
611 --Bug: 4537865
612 x_msg_data := l_new_msg_data;
613 --Bug: 4537865
614 END IF;
615 WHEN l_upd_upg_task_type_error THEN
616 PA_UTILS.add_message('PA','PA_UPD_UPG_TASK_TYPE_ERROR');
617 x_return_status := FND_API.G_RET_STS_ERROR;
618 x_msg_data := 'PA_UPD_UPG_TASK_TYPE_ERROR';
619 x_msg_count := FND_MSG_PUB.Count_Msg;
620 IF x_msg_count = 1 THEN
621 pa_interface_utils_pub.get_messages
622 (p_encoded => FND_API.G_TRUE,
623 p_msg_index => 1,
624 p_msg_count => x_msg_count,
625 p_msg_data => x_msg_data,
626 --p_data => x_msg_data, --Bug: 4537865
627 p_data => l_new_msg_data, --Bug: 4537865
628 p_msg_index_out => l_msg_index_out );
629 --Bug: 4537865
630 x_msg_data := l_new_msg_data;
631 --Bug: 4537865
632 END IF;
633 WHEN l_pagelayout_name_invalid THEN
634 PA_UTILS.add_message('PA',l_error_message_code);
635 x_return_status := FND_API.G_RET_STS_ERROR;
636 x_msg_data := l_error_message_code;
637 x_msg_count := FND_MSG_PUB.Count_Msg;
638 IF x_msg_count = 1 THEN
639 pa_interface_utils_pub.get_messages
640 (p_encoded => FND_API.G_TRUE,
641 p_msg_index => 1,
642 p_msg_count => x_msg_count,
643 p_msg_data => x_msg_data,
644 --p_data => x_msg_data, --Bug: 4537865
645 p_data => l_new_msg_data, --Bug: 4537865
646 p_msg_index_out => l_msg_index_out );
647 --Bug: 4537865
648 x_msg_data := l_new_msg_data;
649 --Bug: 4537865
650 END IF;
651 WHEN l_prog_entry_enable_error THEN
652 PA_UTILS.add_message('PA','PA_PROG_ENTRY_ENABLE_ERROR');
653 x_return_status := FND_API.G_RET_STS_ERROR;
654 x_msg_data := 'PA_PROG_ENTRY_ENABLE_FLAG_ERROR';
655 x_msg_count := FND_MSG_PUB.Count_Msg;
656 IF x_msg_count = 1 THEN
657 pa_interface_utils_pub.get_messages
658 (p_encoded => FND_API.G_TRUE,
659 p_msg_index => 1,
660 p_msg_count => x_msg_count,
661 p_msg_data => x_msg_data,
662 --p_data => x_msg_data, --Bug: 4537865
663 p_data => l_new_msg_data, --Bug: 4537865
664 p_msg_index_out => l_msg_index_out );
665 --Bug: 4537865
666 x_msg_data := l_new_msg_data;
667 --Bug: 4537865
668 END IF;
669 WHEN l_prog_entry_req_error THEN
670 PA_UTILS.add_message('PA','PA_PROG_ENTRY_REQ_ERROR');
671 x_return_status := FND_API.G_RET_STS_ERROR;
672 x_msg_data := 'PA_TASK_TYPE_NOT_UNIQUE';
673 x_msg_count := FND_MSG_PUB.Count_Msg;
674 IF x_msg_count = 1 THEN
675 pa_interface_utils_pub.get_messages
676 (p_encoded => FND_API.G_TRUE,
677 p_msg_index => 1,
678 p_msg_count => x_msg_count,
679 p_msg_data => x_msg_data,
680 --p_data => x_msg_data, --Bug: 4537865
681 p_data => l_new_msg_data, --Bug: 4537865
682 p_msg_index_out => l_msg_index_out );
683 --Bug: 4537865
684 x_msg_data := l_new_msg_data;
685 --Bug: 4537865
686 END IF;
687 WHEN l_wq_enable_error THEN
688 PA_UTILS.add_message('PA','PA_WQ_ENABLE_ERROR');
689 x_return_status := FND_API.G_RET_STS_ERROR;
690 x_msg_data := 'PA_WQ_ENABLE_ERROR';
691 x_msg_count := FND_MSG_PUB.Count_Msg;
692 IF x_msg_count = 1 THEN
693 pa_interface_utils_pub.get_messages
694 (p_encoded => FND_API.G_TRUE,
695 p_msg_index => 1,
696 p_msg_count => x_msg_count,
697 p_msg_data => x_msg_data,
698 --p_data => x_msg_data, --Bug: 4537865
699 p_data => l_new_msg_data, --Bug: 4537865
700 p_msg_index_out => l_msg_index_out );
701 --Bug: 4537865
702 x_msg_data := l_new_msg_data;
703 --Bug: 4537865
704 END IF;
705 WHEN l_remain_effort_enable_error THEN
706 PA_UTILS.add_message('PA','PA_REMAIN_EFFORT_ENABLE_ERROR');
707 x_return_status := FND_API.G_RET_STS_ERROR;
708 x_msg_data := 'PA_REMAIN_EFFORT_ENABLE_ERROR';
709 x_msg_count := FND_MSG_PUB.Count_Msg;
710 IF x_msg_count = 1 THEN
711 pa_interface_utils_pub.get_messages
712 (p_encoded => FND_API.G_TRUE,
713 p_msg_index => 1,
714 p_msg_count => x_msg_count,
715 p_msg_data => x_msg_data,
716 --p_data => x_msg_data, --Bug: 4537865
717 p_data => l_new_msg_data, --Bug: 4537865
718 p_msg_index_out => l_msg_index_out );
719 --Bug: 4537865
720 x_msg_data := l_new_msg_data;
721 --Bug: 4537865
722 END IF;
723 WHEN l_percent_comp_enable_error THEN
724 PA_UTILS.add_message('PA','PA_PERCENT_COMP_ENABLE_ERROR');
725 x_return_status := FND_API.G_RET_STS_ERROR;
726 x_msg_data := 'PA_PERCENT_COMP_ENABLE_ERROR';
727 x_msg_count := FND_MSG_PUB.Count_Msg;
728 IF x_msg_count = 1 THEN
729 pa_interface_utils_pub.get_messages
730 (p_encoded => FND_API.G_TRUE,
731 p_msg_index => 1,
732 p_msg_count => x_msg_count,
733 p_msg_data => x_msg_data,
734 --p_data => x_msg_data, --Bug: 4537865
735 p_data => l_new_msg_data, --Bug: 4537865
736 p_msg_index_out => l_msg_index_out );
737 --Bug: 4537865
738 x_msg_data := l_new_msg_data;
739 --Bug: 4537865
740 END IF;
741 WHEN l_invalid_lead_day_exc THEN
742 PA_UTILS.add_message('PA','PA_INVALID_LEAD_DAYS');
743 x_return_status := FND_API.G_RET_STS_ERROR;
744 x_msg_data := l_error_message_code;
745 x_msg_count := FND_MSG_PUB.Count_Msg;
746 IF x_msg_count = 1 THEN
747 pa_interface_utils_pub.get_messages
748 (p_encoded => FND_API.G_TRUE,
749 p_msg_index => 1,
750 p_msg_count => x_msg_count,
751 p_msg_data => x_msg_data,
752 --p_data => x_msg_data, --Bug: 4537865
753 p_data => l_new_msg_data, --Bug: 4537865
754 p_msg_index_out => l_msg_index_out );
755 --Bug: 4537865
756 x_msg_data := l_new_msg_data;
757 --Bug: 4537865
758 END IF;
759 WHEN OTHERS THEN
760 IF p_commit = FND_API.G_TRUE THEN
761 ROLLBACK TO UPDATE_TASK_TYPE_PUB;
762 END IF;
763 -- Set the excetption Message and the stack
764 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPES_PUB.Update_Task_Type'
765 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
766 --
767 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
768 RAISE;
769
770 END Update_Task_Type;
771
772
773 PROCEDURE Delete_Task_Type
774 (p_Task_Type_id IN pa_task_types.Task_Type_id%TYPE := NULL
775 ,p_api_version IN NUMBER := 1.0
776 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
777 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
778 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
779 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
780 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
781 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
782 )
783 IS
784
785 l_msg_index_out NUMBER;
786 --Bug: 4537865
787 l_new_msg_data VARCHAR2(2000);
788 --Bug: 4537865
789
790 BEGIN
791
792 -- Initialize the Error Stack
793 PA_DEBUG.init_err_stack('PA_task_types_PUB.Delete_Task_Type');
794
795 -- Initialize the return status to success
796 x_return_status := FND_API.G_RET_STS_SUCCESS;
797
798 --Clear the global PL/SQL message table
799 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
800 FND_MSG_PUB.initialize;
801 END IF;
802
803 -- Issue API savepoint if the transaction is to be committed
804 IF p_commit = FND_API.G_TRUE THEN
805 SAVEPOINT DELETE_TASK_TYPE_PUB;
806 END IF;
807
808 --Log Message
809 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_task_types_PUB.Delete_Task_Type.begin'
810 ,x_msg => 'Beginning of Delete_Task_Type pub'
811 ,x_log_level => 5);
812
813 --Log Message
814 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PUB.Delete_Task_Type.begin'
815 ,x_msg => 'calling Delete_Task_Type pvt'
816 ,x_log_level => 5);
817
818 -- Check whether the task type is the seeded task type.
819 IF p_task_type_id = 1 THEN
820 RAISE l_del_upg_task_type_error;
821 END IF;
822
823 -- Check the task type has been used by any task.
824 IF PA_PROJ_ELEMENTS_UTILS.is_task_type_used(p_task_type_id) = 'Y' THEN
825 RAISE l_delete_task_type_error;
826 END IF;
827
828 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
829 PA_TASK_TYPE_PVT.Delete_Task_Type
830 (p_task_type_id => p_task_type_id
831 ,x_return_status => x_return_status
832 ,x_msg_count => x_msg_count
833 ,x_msg_data => x_msg_data);
834 END IF;
835
836 x_msg_count := FND_MSG_PUB.Count_Msg;
837 IF x_msg_count = 1 THEN
838 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
839 ,p_msg_index => 1
840 ,p_data => x_msg_data
841 ,p_msg_index_out => l_msg_index_out
842 );
843 END IF;
844
845 -- Reset the error stack when returning to the calling program
846 PA_DEBUG.Reset_Err_Stack;
847 -- If any errors exist then set the x_return_status to 'E'
848
849 IF x_msg_count > 0 THEN
850 x_return_status := FND_API.G_RET_STS_ERROR;
851 END IF;
852
853 -- Commit if the flag is set and there is no error
854 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
855 COMMIT;
856 END IF;
857
858 EXCEPTION
859 WHEN l_del_upg_task_type_error THEN
860 PA_UTILS.add_message('PA','PA_DEL_UPG_TASK_TYPE_ERROR');
861 x_return_status := FND_API.G_RET_STS_ERROR;
862 x_msg_data := 'PA_DELETE_TASK_TYPE_ERROR';
863 x_msg_count := FND_MSG_PUB.Count_Msg;
864 IF x_msg_count = 1 THEN
865 pa_interface_utils_pub.get_messages
866 (p_encoded => FND_API.G_TRUE,
867 p_msg_index => 1,
868 p_msg_count => x_msg_count,
869 p_msg_data => x_msg_data,
870 --p_data => x_msg_data, --Bug: 4537865
871 p_data => l_new_msg_data, --Bug: 4537865
872 p_msg_index_out => l_msg_index_out );
873 --Bug: 4537865
874 x_msg_data := l_new_msg_data;
875 --Bug: 4537865
876 END IF;
877 WHEN l_delete_task_type_error THEN
878 PA_UTILS.add_message('PA','PA_DELETE_TASK_TYPE_ERROR');
879 x_return_status := FND_API.G_RET_STS_ERROR;
880 x_msg_data := 'PA_DELETE_TASK_TYPE_ERROR';
881 x_msg_count := FND_MSG_PUB.Count_Msg;
882 IF x_msg_count = 1 THEN
883 pa_interface_utils_pub.get_messages
884 (p_encoded => FND_API.G_TRUE,
885 p_msg_index => 1,
886 p_msg_count => x_msg_count,
887 p_msg_data => x_msg_data,
888 --p_data => x_msg_data, --Bug: 4537865
889 p_data => l_new_msg_data, --Bug: 4537865
890 p_msg_index_out => l_msg_index_out );
891 --Bug: 4537865
892 x_msg_data := l_new_msg_data;
893 --Bug: 4537865
894 END IF;
895 WHEN OTHERS THEN
896 IF p_commit = FND_API.G_TRUE THEN
897 ROLLBACK TO Delete_TASK_TYPE_PUB;
898 END IF;
899
900 -- Set the exception Message and the stack
901 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPES_PUB.Delete_Task_Type'
902 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
903 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
904 RAISE;
905
906 END Delete_Task_Type;
907
908 --Bug # 3279978 FP M Development
909 -- Procedure : CREATE_DELIVERABLE_TYPE
910 -- Type : Public Procedure
911 -- Purpose : This is the public API used to create the deliverable type .
912 -- Note : This API is called by the CR_UP_DELIVERABLE_TYPE Public API
913 -- if the value of its parameter p_insert_or_update is "INSERT"
914 -- This API places call to the private API CREATE_DELIVERABLE_TYPE
915 -- where business validations are done and call to table handler is placed.
916 --Assumptions : None
917 -- List of parameters other than standard IN and OUT parameters
918 -- Parameters Type Null? Default Value Description and Purpose
919 -- --------------------------- -------- ------ --------------- ----------------------------
920 --P_deliverable_type_name PA_TASK_TYPES.TASK_TYPE%TYPE N Deliverable Type Name
921 --P_prog_entry_enable_flag PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE Y 'N' Progress Entry Flag
922 --P_initial_deliverable_status_code PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE Y 'DLVR_NOT_STARTED'Initial Deliverable Status
923 --P_enable_deliverable_actions PA_TASK_TYPES.ENABLE_DLVR_ACTIONS%TYPE Y 'N' Enable Deliverable Action
924 --P_effective_from PA_TASK_TYPES.START_DATE_ACTIVE%TYPE N Effective from date
925 --p_effective_to PA_TASK_TYPES. END_DATE_ACTIVE %TYPE Y NULL Effective to date
926 --P_description PA_TASK_TYPES.DESCRIPTION%TYPE Y NULL Description
927 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TPE Y NULL
928
929
930 --28-Dec-2003 avaithia Created
931
932 PROCEDURE CREATE_DELIVERABLE_TYPE
933 (p_api_version IN NUMBER := 1.0
934 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
935 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
936 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
937 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
938 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
939 ,p_debug_mode IN VARCHAR2 := 'N'
940 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
941 ,p_deliverable_type_name IN PA_TASK_TYPES.TASK_TYPE%TYPE
942 ,p_prog_entry_enable_flag IN PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE := 'N'
943 ,p_initial_deliverable_status IN PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE := 'DLVR_NOT_STARTED'
944 ,p_deliverable_type_class IN PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE := 'ITEM'
945 ,p_enable_dlvr_actions_flag IN PA_TASK_TYPES.ENABLE_DLVR_ACTIONS_FLAG%TYPE := 'N'
946 ,p_effective_from IN PA_TASK_TYPES.START_DATE_ACTIVE%TYPE
947 ,p_effective_to IN PA_TASK_TYPES. END_DATE_ACTIVE %TYPE := NULL
948 ,p_description IN PA_TASK_TYPES.DESCRIPTION%TYPE := NULL
949 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE := NULL
950 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE := 1
951 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
952 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
953 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
954 )
955 IS
956
957 l_msg_count NUMBER := 0;
958 l_data VARCHAR2(2000);
959 l_msg_data VARCHAR2(2000);
960 l_msg_index_out NUMBER;
961 l_debug_mode VARCHAR2(1);
962
963 l_debug_level2 CONSTANT NUMBER := 2;
964 l_debug_level3 CONSTANT NUMBER := 3;
965 l_debug_level4 CONSTANT NUMBER := 4;
966 l_debug_level5 CONSTANT NUMBER := 5;
967
968 BEGIN
969
970 x_msg_count := 0;
971 x_return_status := FND_API.G_RET_STS_SUCCESS;
972 l_debug_mode := p_debug_mode;
973
974 IF l_debug_mode = 'Y'
975 THEN
976 PA_DEBUG.set_curr_function( p_function => 'CREATE_DELIVERABLE_TYPE',
977 p_debug_mode => l_debug_mode );
978 END IF;
979
980 IF l_debug_mode = 'Y'
981 THEN
982 PA_DEBUG.g_err_stage:= 'CREATE_DELIVERABLE_TYPE : Printing Input parameters';
983 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
984 l_debug_level3);
985
986 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_name'||':'||p_deliverable_type_name,
987 l_debug_level3);
988 PA_DEBUG.WRITE(g_module_name,'p_prog_entry_enable_flag'||':'||p_prog_entry_enable_flag,
989 l_debug_level3);
990 PA_DEBUG.WRITE(g_module_name,'p_initial_deliverable_status'||':'||p_initial_deliverable_status,
991 l_debug_level3);
992 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_class'||':'||p_deliverable_type_class,
993 l_debug_level3);
994 PA_DEBUG.WRITE(g_module_name,'p_enable_dlvr_actions_flag'||':'||p_enable_dlvr_actions_flag,
995 l_debug_level3);
996 PA_DEBUG.WRITE(g_module_name,'p_effective_from'||':'||p_effective_from,
997 l_debug_level3);
998 PA_DEBUG.WRITE(g_module_name,'p_effective_to'||':'||p_effective_to,
999 l_debug_level3);
1000 PA_DEBUG.WRITE(g_module_name,'p_description'||':'||p_description,
1001 l_debug_level3);
1002 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
1003 l_debug_level3);
1004 PA_DEBUG.WRITE(g_module_name,'p_record_version_number'||':'||p_record_version_number,
1005 l_debug_level3);
1006 END IF;
1007
1008 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
1009 THEN
1010 FND_MSG_PUB.initialize;
1011 END IF;
1012
1013 IF (p_commit = FND_API.G_TRUE)
1014 THEN
1015 savepoint CREATE_DELIVERABLE_TYPE_PUB;
1016 END IF;
1017
1018 IF l_debug_mode = 'Y'
1019 THEN
1020 Pa_Debug.g_err_stage:= 'Validating Input parameters';
1021 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1022 l_debug_level3);
1023 END IF;
1024
1025 --Check whether p_deliverable_type_name or effective start date is null
1026 --If it is null,then raise Invalid parameter exception
1027 IF (p_deliverable_type_name IS NULL) OR (p_effective_from IS NULL)
1028 THEN
1029 RAISE PA_DLV_INV_PARAM_EXC;
1030 END IF;
1031
1032 --Place a call to PA_TASK_TYPE_PVT.CREATE_DELIVERABLE_TYPE
1033 IF l_debug_mode = 'Y'
1034 THEN
1035 Pa_Debug.g_err_stage:= 'Calling PA_TASK_TYPE_PVT.CREATE_DELIVERABLE_TYPE';
1036 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1037 l_debug_level3);
1038 END IF;
1039
1040 PA_TASK_TYPE_PVT.CREATE_DELIVERABLE_TYPE
1041 (p_api_version => p_api_version
1042 ,p_init_msg_list => FND_API.G_FALSE
1043 ,p_commit => p_commit
1044 ,p_validate_only => p_validate_only
1045 ,p_validation_level => p_validation_level
1046 ,p_calling_module => p_calling_module
1047 ,p_debug_mode => l_debug_mode
1048 ,p_max_msg_count => p_max_msg_count
1049 ,p_deliverable_type_name => p_deliverable_type_name
1050 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
1051 ,p_initial_deliverable_status => p_initial_deliverable_status
1052 ,p_deliverable_type_class => p_deliverable_type_class
1053 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
1054 ,p_effective_from => p_effective_from
1055 ,p_effective_to => p_effective_to
1056 ,p_description => p_description
1057 ,p_deliverable_type_id => p_deliverable_type_id
1058 ,p_record_version_number => p_record_version_number
1059 ,x_return_status => x_return_status
1060 ,x_msg_count => x_msg_count
1061 ,x_msg_data => x_msg_data
1062 );
1063
1064 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1065 THEN
1066 RAISE FND_API.G_EXC_ERROR;
1067 END IF;
1068
1069 IF (p_commit = FND_API.G_TRUE)
1070 THEN
1071 COMMIT;
1072 END IF;
1073
1074 IF l_debug_mode = 'Y'
1075 THEN
1076 Pa_Debug.g_err_stage:= 'Successful Commit Done(In PATTPUBB.pls Create DlvType)!';
1077 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1078 l_debug_level3);
1079 END IF;
1080
1081
1082 EXCEPTION
1083
1084 WHEN FND_API.G_EXC_ERROR THEN
1085
1086 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1087 l_msg_count := Fnd_Msg_Pub.count_msg;
1088
1089 IF p_commit = FND_API.G_TRUE
1090 THEN
1091 ROLLBACK TO CREATE_DELIVERABLE_TYPE_PUB;
1092 END IF;
1093
1094 IF l_msg_count = 1 AND x_msg_data IS NULL
1095 THEN
1096 Pa_Interface_Utils_Pub.get_messages
1097 ( p_encoded => Fnd_Api.G_TRUE
1098 , p_msg_index => 1
1099 , p_msg_count => l_msg_count
1100 , p_msg_data => l_msg_data
1101 , p_data => l_data
1102 , p_msg_index_out => l_msg_index_out);
1103 x_msg_data := l_data;
1104 x_msg_count := l_msg_count;
1105 ELSE
1106 x_msg_count := l_msg_count;
1107 END IF;
1108
1109 IF l_debug_mode = 'Y'
1110 THEN
1111 Pa_Debug.reset_curr_function;
1112 END IF;
1113
1114 WHEN PA_DLV_INV_PARAM_EXC THEN
1115
1116 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1117 x_msg_count := 1;
1118 x_msg_data := 'PA_INV_PARAM_PASSED';
1119
1120 IF p_commit = FND_API.G_TRUE
1121 THEN
1122 ROLLBACK TO CREATE_DELIVERABLE_TYPE_PUB;
1123 END IF;
1124
1125 Fnd_Msg_Pub.add_exc_msg
1126 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1127 , p_procedure_name => 'CREATE_DELIVERABLE_TYPE'
1128 , p_error_text => x_msg_data);
1129
1130 IF l_debug_mode = 'Y'
1131 THEN
1132 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
1133 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1134 l_debug_level5);
1135 Pa_Debug.reset_curr_function;
1136 END IF;
1137 RAISE;
1138
1139 WHEN OTHERS THEN
1140
1141 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1142 x_msg_count := 1;
1143 x_msg_data := SQLERRM;
1144
1145 IF p_commit = FND_API.G_TRUE
1146 THEN
1147 ROLLBACK TO CREATE_DELIVERABLE_TYPE_PUB;
1148 END IF;
1149
1150
1151 Fnd_Msg_Pub.add_exc_msg
1152 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1153 , p_procedure_name => 'CREATE_DELIVERABLE_TYPE'
1154 , p_error_text => x_msg_data);
1155
1156 IF l_debug_mode = 'Y'
1157 THEN
1158 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
1159 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1160 l_debug_level5);
1161 Pa_Debug.reset_curr_function;
1162 END IF;
1163 RAISE;
1164 END CREATE_DELIVERABLE_TYPE ;
1165
1166 --Bug # 3279978 FP M Development
1167 -- Procedure : UPDATE_DELIVERABLE_TYPE
1168 -- Type : Public Procedure
1169 -- Purpose : This is the public API used to update the deliverable type .
1170 -- Note : 1)This API is called by the CR_UP_DELIVERABLE_TYPE Public API
1171 -- if the value of its parameter p_insert_or_update is "UPDATE"
1172
1173 -- 2)It performs standard locking for API and
1174 --
1175 -- 3)This API places call to the private API UPDATE_DELIVERABLE_TYPE
1176 -- where business validations and call to table handler is placed.
1177 -- Assumptions : None
1178
1179 -- List of parameters other than standard IN and OUT parameters
1180 -- Parameters Type Null? Default Value Description and Purpose
1181 -- --------------------------- -------- ------ --------------- ----------------------------
1182 --P_deliverable_type_name PA_TASK_TYPES.TASK_TYPE%TYPE N Deliverable Type Name
1183 --P_prog_entry_enable_flag PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE Y 'N' Progress Entry Flag
1184 --P_initial_deliverable_status_code PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE Y 'DLVR_NOT_STARTED'Initial Deliverable Status
1185 --P_enable_deliverable_actions PA_TASK_TYPES.ENABLE_DLVR_ACTIONS%TYPE Y 'N' Enable Deliverable Action
1186 --P_effective_from PA_TASK_TYPES.START_DATE_ACTIVE%TYPE N Effective from date
1187 --p_effective_to PA_TASK_TYPES. END_DATE_ACTIVE %TYPE Y NULL Effective to date
1188 --P_description PA_TASK_TYPES.DESCRIPTION%TYPE Y NULL Description
1189 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TPE N
1190 --28-Dec-2003 avaithia Created
1191 PROCEDURE UPDATE_DELIVERABLE_TYPE
1192 (p_api_version IN NUMBER := 1.0
1193 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1194 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1195 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1196 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1197 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
1198 ,p_debug_mode IN VARCHAR2 := 'N'
1199 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1200 ,p_deliverable_type_name IN PA_TASK_TYPES.TASK_TYPE%TYPE
1201 ,p_prog_entry_enable_flag IN PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE := 'N'
1202 ,p_initial_deliverable_status IN PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE := 'DLVR_NOT_STARTED'
1203 ,p_deliverable_type_class IN PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE := 'ITEM'
1204 ,p_enable_dlvr_actions_flag IN PA_TASK_TYPES.ENABLE_DLVR_ACTIONS_FLAG%TYPE := 'N'
1205 ,p_effective_from IN PA_TASK_TYPES.START_DATE_ACTIVE%TYPE
1206 ,p_effective_to IN PA_TASK_TYPES. END_DATE_ACTIVE %TYPE := NULL
1207 ,p_description IN PA_TASK_TYPES.DESCRIPTION%TYPE := NULL
1208 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE
1209 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE
1210 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1211 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1212 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1213 )
1214 IS
1215
1216 l_msg_count NUMBER := 0;
1217 l_data VARCHAR2(2000);
1218 l_msg_data VARCHAR2(2000);
1219 l_msg_index_out NUMBER;
1220 l_debug_mode VARCHAR2(1);
1221
1222 l_dummy VARCHAR2(1);
1223
1224 l_debug_level2 CONSTANT NUMBER := 2;
1225 l_debug_level3 CONSTANT NUMBER := 3;
1226 l_debug_level4 CONSTANT NUMBER := 4;
1227 l_debug_level5 CONSTANT NUMBER := 5;
1228
1229 BEGIN
1230
1231 x_msg_count := 0;
1232 x_return_status := FND_API.G_RET_STS_SUCCESS;
1233 l_debug_mode := p_debug_mode;
1234
1235 IF l_debug_mode = 'Y'
1236 THEN
1237 PA_DEBUG.set_curr_function( p_function => 'UPDATE_DELIVERABLE_TYPE',
1238 p_debug_mode => l_debug_mode );
1239 END IF;
1240
1241 IF l_debug_mode = 'Y'
1242 THEN
1243 PA_DEBUG.g_err_stage:= 'UPDATE_DELIVERABLE_TYPE : Printing Input parameters';
1244 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1245 l_debug_level3);
1246
1247 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_name'||':'||p_deliverable_type_name,
1248 l_debug_level3);
1249 PA_DEBUG.WRITE(g_module_name,'p_prog_entry_enable_flag'||':'||p_prog_entry_enable_flag,
1250 l_debug_level3);
1251 PA_DEBUG.WRITE(g_module_name,'p_initial_deliverable_status'||':'||p_initial_deliverable_status,
1252 l_debug_level3);
1253 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_class'||':'||p_deliverable_type_class,
1254 l_debug_level3);
1255 PA_DEBUG.WRITE(g_module_name,'p_enable_dlvr_actions_flag'||':'||p_enable_dlvr_actions_flag,
1256 l_debug_level3);
1257 PA_DEBUG.WRITE(g_module_name,'p_effective_from'||':'||p_effective_from,
1258 l_debug_level3);
1259 PA_DEBUG.WRITE(g_module_name,'p_effective_to'||':'||p_effective_to,
1260 l_debug_level3);
1261 PA_DEBUG.WRITE(g_module_name,'p_description'||':'||p_description,
1262 l_debug_level3);
1263 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
1264 l_debug_level3);
1265 PA_DEBUG.WRITE(g_module_name,'rec_ver_num is '||p_record_version_number,l_debug_level3);
1266 END IF;
1267
1268 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
1269 THEN
1270 FND_MSG_PUB.initialize;
1271 END IF;
1272
1273 IF (p_commit = FND_API.G_TRUE)
1274 THEN
1275 savepoint UPDATE_DELIVERABLE_TYPE_PUB;
1276 END IF;
1277
1278 IF l_debug_mode = 'Y'
1279 THEN
1280 Pa_Debug.g_err_stage:= 'Validating Input parameters';
1281 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1282 l_debug_level3);
1283 END IF;
1284
1285 --Check whether any of p_deliverable_type_id or p_record_version_number or name or startdate is null
1286 --If it is null,then raise Invalid parameter exception
1287 IF (p_deliverable_type_id IS NULL) OR (p_record_version_number IS NULL)
1288 OR (p_deliverable_type_name IS NULL) OR (p_effective_from IS NULL)
1289 THEN
1290 RAISE PA_DLV_INV_PARAM_EXC;
1291 END IF;
1292
1293 --Perform the standard Locking
1294
1295 BEGIN
1296 select 'x' into l_dummy
1297 FROM PA_TASK_TYPES
1298 WHERE TASK_TYPE_ID = p_deliverable_type_id
1299 AND OBJECT_TYPE = 'PA_DLVR_TYPES'
1300 AND record_version_number = p_record_version_number
1301 for UPDATE of record_version_number NOWAIT;
1302
1303 EXCEPTION
1304
1305 WHEN TIMEOUT_ON_RESOURCE THEN
1306 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1307 x_msg_count := 1;
1308 x_msg_data :='PA_XC_ROW_ALREADY_LOCKED';
1309
1310 IF p_commit = FND_API.G_TRUE THEN
1311 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1312 END IF;
1313
1314 PA_UTILS.Add_Message ( p_app_short_name => 'PA'
1315 ,p_msg_name => 'PA_XC_ROW_ALREADY_LOCKED');
1316
1317 IF l_debug_mode = 'Y'
1318 THEN
1319 Pa_Debug.g_err_stage:= ' Error'||x_msg_data;
1320 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1321 l_debug_level5);
1322 Pa_Debug.reset_curr_function;
1323 END IF;
1324 RAISE;
1325
1326
1327 WHEN NO_DATA_FOUND THEN
1328 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1329 x_msg_count := 1;
1330 x_msg_data :='PA_XC_RECORD_CHANGED';
1331
1332 IF p_commit = FND_API.G_TRUE
1333 THEN
1334 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1335 END IF;
1336
1337 PA_UTILS.Add_Message ( p_app_short_name => 'PA'
1338 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
1339
1340 IF l_debug_mode = 'Y'
1341 THEN
1342 Pa_Debug.g_err_stage:= ' Error'||x_msg_data;
1343 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1344 l_debug_level5);
1345 Pa_Debug.reset_curr_function;
1346 END IF;
1347 RAISE;
1348
1349 WHEN OTHERS THEN
1350 IF SQLCODE = -54 then
1351 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1352 x_msg_count := 1;
1353 x_msg_data :='PA_XC_ROW_ALREADY_LOCKED';
1354
1355 IF p_commit = FND_API.G_TRUE
1356 THEN
1357 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1358 END IF;
1359
1360 PA_UTILS.Add_Message ( p_app_short_name => 'PA'
1361 ,p_msg_name => 'PA_XC_ROW_ALREADY_LOCKED');
1362
1363 IF l_debug_mode = 'Y'
1364 THEN
1365 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
1366 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1367 l_debug_level5);
1368 Pa_Debug.reset_curr_function;
1369 END IF;
1370
1371 ELSE
1372 RAISE;
1373 END IF;
1374 END;
1375
1376 --Before placing call to Private API check in case if the message stack is populated;
1377 --If Yes,then set the return status to Error
1378
1379 l_msg_count := FND_MSG_PUB.count_msg;
1380
1381 IF l_msg_count > 0
1382 THEN
1383 x_msg_count :=l_msg_count;
1384 x_return_status := FND_API.G_RET_STS_ERROR;
1385 END IF;
1386
1387 --Before placing call to the API check for the return status
1388 --If it is Error,then raise it.
1389
1390 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1391 THEN
1392 RAISE FND_API.G_EXC_ERROR;
1393 END IF;
1394 --Place a call to PA_TASK_TYPE_PVT.UPDATE_DELIVERABLE_TYPE
1395 IF l_debug_mode = 'Y'
1396 THEN
1397 Pa_Debug.g_err_stage:= 'Calling PA_TASK_TYPE_PVT.UPDATE_DELIVERABLE_TYPE';
1398 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1399 l_debug_level3);
1400 END IF;
1401
1402 PA_TASK_TYPE_PVT.UPDATE_DELIVERABLE_TYPE
1403 (p_api_version => p_api_version
1404 ,p_init_msg_list => FND_API.G_FALSE
1405 ,p_commit => p_commit
1406 ,p_validate_only => p_validate_only
1407 ,p_validation_level => p_validation_level
1408 ,p_calling_module => p_calling_module
1409 ,p_debug_mode => l_debug_mode
1410 ,p_max_msg_count => p_max_msg_count
1411 ,p_deliverable_type_name => p_deliverable_type_name
1412 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
1413 ,p_initial_deliverable_status => p_initial_deliverable_status
1414 ,p_deliverable_type_class => p_deliverable_type_class
1415 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
1416 ,p_effective_from => p_effective_from
1417 ,p_effective_to => p_effective_to
1418 ,p_description => p_description
1419 ,p_deliverable_type_id => p_deliverable_type_id
1420 ,p_record_version_number => p_record_version_number
1421 ,x_return_status => x_return_status
1422 ,x_msg_count => x_msg_count
1423 ,x_msg_data => x_msg_data
1424 );
1425 IF l_debug_mode = 'Y'
1426 THEN
1427 Pa_Debug.g_err_stage:= 'After Calling PA_TASK_TYPE_PVT.UPDATE_DELIVERABLE_TYPE';
1428 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1429 l_debug_level3);
1430 END IF;
1431
1432 --After returning from the API check for the return status
1433
1434 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1435 THEN
1436 RAISE FND_API.G_EXC_ERROR;
1437 END IF;
1438
1439 IF (p_commit = FND_API.G_TRUE)
1440 THEN
1441 COMMIT;
1442 END IF;
1443
1444 IF l_debug_mode = 'Y'
1445 THEN
1446 Pa_Debug.g_err_stage:= 'Successful Commit Done(In PATTPUBB.pls UPDATE DlvType)!';
1447 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1448 l_debug_level3);
1449 END IF;
1450
1451
1452 EXCEPTION
1453
1454 WHEN FND_API.G_EXC_ERROR THEN
1455
1456 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1457 l_msg_count := Fnd_Msg_Pub.count_msg;
1458
1459 IF p_commit = FND_API.G_TRUE THEN
1460 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1461 END IF;
1462
1463 IF l_msg_count = 1 AND x_msg_data IS NULL
1464 THEN
1465 Pa_Interface_Utils_Pub.get_messages
1466 ( p_encoded => Fnd_Api.G_TRUE
1467 , p_msg_index => 1
1468 , p_msg_count => l_msg_count
1469 , p_msg_data => l_msg_data
1470 , p_data => l_data
1471 , p_msg_index_out => l_msg_index_out);
1472 x_msg_data := l_data;
1473 x_msg_count := l_msg_count;
1474 ELSE
1475 x_msg_count := l_msg_count;
1476 END IF;
1477 IF l_debug_mode = 'Y' THEN
1478 Pa_Debug.reset_curr_function;
1479 END IF;
1480
1481 WHEN PA_DLV_INV_PARAM_EXC THEN
1482
1483 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1484 x_msg_count := 1;
1485 x_msg_data := 'PA_INV_PARAM_PASSED';
1486
1487 IF p_commit = FND_API.G_TRUE
1488 THEN
1489 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1490 END IF;
1491
1492 Fnd_Msg_Pub.add_exc_msg
1493 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1494 , p_procedure_name => 'UPDATE_DELIVERABLE_TYPE'
1495 , p_error_text => x_msg_data);
1496
1497 IF l_debug_mode = 'Y'
1498 THEN
1499 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
1500 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1501 l_debug_level5);
1502 Pa_Debug.reset_curr_function;
1503 END IF;
1504 RAISE;
1505
1506 WHEN OTHERS THEN
1507
1508 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1509 x_msg_count := 1;
1510 x_msg_data := SQLERRM;
1511
1512 IF p_commit = FND_API.G_TRUE
1513 THEN
1514 ROLLBACK TO UPDATE_DELIVERABLE_TYPE_PUB;
1515 END IF;
1516
1517
1518 Fnd_Msg_Pub.add_exc_msg
1519 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1520 , p_procedure_name => 'UPDATE_DELIVERABLE_TYPE'
1521 , p_error_text => x_msg_data);
1522
1523 IF l_debug_mode = 'Y'
1524 THEN
1525 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
1526 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1527 l_debug_level5);
1528 Pa_Debug.reset_curr_function;
1529 END IF;
1530 RAISE;
1531 END UPDATE_DELIVERABLE_TYPE ;
1532
1533 --Bug # 3279978 FP M Development
1534
1535 -- Procedure : DELETE_DELIVERABLE_TYPE
1536 -- Type : Public Procedure
1537 -- Purpose : This is the public API used to delete the deliverable type.
1538 -- Note : This API places call to the private API DELETE_DELIVERABLE_TYPE
1539 -- in which business logic validations are done and call to table handler is placed
1540 -- List of parameters other than standard IN and OUT parameters
1541 -- Parameters Type Null? Description and Purpose
1542 -- --------------------------- ------------------------------- -------- -----------------------------------
1543 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TYPE N Deliverable Type Id
1544 --p_record_version_number PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE N Record Version Number
1545
1546 --This API is called by SS pages
1547 --28-Dec-2003 avaithia Created
1548
1549 PROCEDURE DELETE_DELIVERABLE_TYPE
1550 (p_api_version IN NUMBER := 1.0
1551 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1552 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1553 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1554 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1555 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
1556 ,p_debug_mode IN VARCHAR2 := 'N'
1557 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1558 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE
1559 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE
1560 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1561 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1562 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1563 )
1564 IS
1565
1566 l_msg_count NUMBER := 0;
1567 l_data VARCHAR2(2000);
1568 l_msg_data VARCHAR2(2000);
1569 l_msg_index_out NUMBER;
1570 l_debug_mode VARCHAR2(1);
1571
1572 l_debug_level2 CONSTANT NUMBER := 2;
1573 l_debug_level3 CONSTANT NUMBER := 3;
1574 l_debug_level4 CONSTANT NUMBER := 4;
1575 l_debug_level5 CONSTANT NUMBER := 5;
1576
1577 BEGIN
1578
1579 x_msg_count := 0;
1580 x_return_status := FND_API.G_RET_STS_SUCCESS;
1581 l_debug_mode := NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N');
1582
1583 IF l_debug_mode = 'Y'
1584 THEN
1585 PA_DEBUG.set_curr_function( p_function => 'DELETE_DELIVERABLE_TYPE',
1586 p_debug_mode => l_debug_mode );
1587 END IF;
1588
1589 IF l_debug_mode = 'Y'
1590 THEN
1591 PA_DEBUG.g_err_stage:= 'DELETE_DELIVERABLE_TYPE : Printing Input parameters';
1592 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1593 l_debug_level3);
1594 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
1595 l_debug_level3);
1596 PA_DEBUG.WRITE(g_module_name,'p_record_version_number'||':'||p_record_version_number,
1597 l_debug_level3);
1598 END IF;
1599
1600 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
1601 THEN
1602 FND_MSG_PUB.initialize;
1603 END IF;
1604
1605 IF (p_commit = FND_API.G_TRUE)
1606 THEN
1607 savepoint DELETE_DELIVERABLE_TYPE_PUB;
1608 END IF;
1609
1610 IF l_debug_mode = 'Y'
1611 THEN
1612 Pa_Debug.g_err_stage:= 'Validating Input parameters';
1613 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1614 l_debug_level3);
1615 END IF;
1616
1617 --Check whether p_deliverable_type_id or p_record_version_number is null
1618 --If it is null,then raise Invalid parameter exception
1619 IF (p_deliverable_type_id IS NULL) OR (p_record_version_number IS NULL)
1620 THEN
1621 RAISE PA_DLV_INV_PARAM_EXC;
1622 END IF;
1623
1624 /* Added for bug 4775641*/
1625 -- Check the deliverable type has been used by any deliverable.
1626 IF PA_DELIVERABLE_UTILS.IS_DLV_TYPE_IN_USE(p_deliverable_type_id) = 'Y' THEN
1627 RAISE l_delete_delv_type_error;
1628 END IF;
1629 /* End for bug 4775641*/
1630
1631 --Place a call to PA_TASK_TYPE_PVT.DELETE_DELIVERABLE_TYPE
1632 IF l_debug_mode = 'Y'
1633 THEN
1634 Pa_Debug.g_err_stage:= 'Calling PA_TASK_TYPE_PVT.DELETE_DELIVERABLE_TYPE';
1635 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1636 l_debug_level3);
1637 END IF;
1638 PA_TASK_TYPE_PVT.DELETE_DELIVERABLE_TYPE
1639 (p_api_version => p_api_version
1640 ,p_init_msg_list => FND_API.G_FALSE
1641 ,p_commit => p_commit
1642 ,p_validate_only => p_validate_only
1643 ,p_validation_level => p_validation_level
1644 ,p_calling_module => p_calling_module
1645 ,p_debug_mode => l_debug_mode
1646 ,p_max_msg_count => p_max_msg_count
1647 ,p_deliverable_type_id => p_deliverable_type_id
1648 ,p_record_version_number => p_record_version_number
1649 ,x_return_status => x_return_status
1650 ,x_msg_count => x_msg_count
1651 ,x_msg_data => x_msg_data
1652 );
1653 IF l_debug_mode = 'Y'
1654 THEN
1655 Pa_Debug.g_err_stage:= 'After coming from PA_TASK_TYPE_PVT.DELETE_DELIVERABLE_TYPE';
1656 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1657 l_debug_level3);
1658 END IF;
1659 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1660 THEN
1661 RAISE FND_API.G_EXC_ERROR;
1662 END IF;
1663
1664 IF (p_commit = FND_API.G_TRUE)
1665 THEN
1666 COMMIT;
1667 END IF;
1668
1669 IF l_debug_mode = 'Y'
1670 THEN
1671 Pa_Debug.g_err_stage:= 'Successful Commit Done(In PATTPUBB.pls Deleted the DlvType)!';
1672 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1673 l_debug_level3);
1674 END IF;
1675
1676
1677 EXCEPTION
1678
1679 WHEN l_delete_delv_type_error THEN -- Added for bug 4775641
1680 PA_UTILS.add_message('PA','PA_DELETE_DELIV_TYPE_ERROR');
1681 x_return_status := FND_API.G_RET_STS_ERROR;
1682 x_msg_data := 'PA_DELETE_DELIV_TYPE_ERROR';
1683 x_msg_count := FND_MSG_PUB.Count_Msg;
1684 IF x_msg_count = 1 THEN
1685 pa_interface_utils_pub.get_messages
1686 (p_encoded => FND_API.G_TRUE,
1687 p_msg_index => 1,
1688 p_msg_count => x_msg_count,
1689 p_msg_data => x_msg_data,
1690 p_data => x_msg_data,
1691 p_msg_index_out => l_msg_index_out );
1692 END IF;
1693
1694 WHEN FND_API.G_EXC_ERROR THEN
1695
1696 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1697 l_msg_count := Fnd_Msg_Pub.count_msg;
1698
1699 IF p_commit = FND_API.G_TRUE
1700 THEN
1701 ROLLBACK TO DELETE_DELIVERABLE_TYPE_PUB;
1702 END IF;
1703
1704 IF l_msg_count = 1 AND x_msg_data IS NULL
1705 THEN
1706 Pa_Interface_Utils_Pub.get_messages
1707 ( p_encoded => Fnd_Api.G_TRUE
1708 , p_msg_index => 1
1709 , p_msg_count => l_msg_count
1710 , p_msg_data => l_msg_data
1711 , p_data => l_data
1712 , p_msg_index_out => l_msg_index_out);
1713 x_msg_data := l_data;
1714 x_msg_count := l_msg_count;
1715 ELSE
1716 x_msg_count := l_msg_count;
1717 END IF;
1718
1719 IF l_debug_mode = 'Y'
1720 THEN
1721 Pa_Debug.reset_curr_function;
1722 END IF;
1723
1724 WHEN PA_DLV_INV_PARAM_EXC THEN
1725
1726 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1727 x_msg_count := 1;
1728 x_msg_data := 'PA_INV_PARAM_PASSED';
1729
1730 IF p_commit = FND_API.G_TRUE
1731 THEN
1732 ROLLBACK TO DELETE_DELIVERABLE_TYPE_PUB;
1733 END IF;
1734
1735 Fnd_Msg_Pub.add_exc_msg
1736 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1737 , p_procedure_name => 'DELETE_DELIVERABLE_TYPE'
1738 , p_error_text => x_msg_data);
1739
1740 IF l_debug_mode = 'Y'
1741 THEN
1742 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
1743 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1744 l_debug_level5);
1745 Pa_Debug.reset_curr_function;
1746 END IF;
1747 RAISE;
1748
1749 WHEN OTHERS THEN
1750
1751 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1752 x_msg_count := 1;
1753 x_msg_data := SQLERRM;
1754
1755 IF p_commit = FND_API.G_TRUE
1756 THEN
1757 ROLLBACK TO DELETE_DELIVERABLE_TYPE_PUB;
1758 END IF;
1759
1760
1761 Fnd_Msg_Pub.add_exc_msg
1762 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
1763 , p_procedure_name => 'DELETE_DELIVERABLE_TYPE'
1764 , p_error_text => x_msg_data);
1765
1766 IF l_debug_mode = 'Y'
1767 THEN
1768 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
1769 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1770 l_debug_level5);
1771 Pa_Debug.reset_curr_function;
1772 END IF;
1773 RAISE;
1774 END DELETE_DELIVERABLE_TYPE ;
1775
1776 --Bug # 3279978 FP M Development
1777 -- Procedure : CR_UP_DELIVERABLE_TYPE
1778 -- Type : Public Procedure
1779 -- Purpose : This is the public API that will be called from SS pages.
1780 -- Note : Based on the parameter p_insert_or_update mode
1781 -- it will either call CREATE or UPDATE deliverable API.
1782 -- Assumptions : None
1783 -- List of parameters other than standard IN and OUT parameters
1784 -- Parameters Type Null? Default Value Description and Purpose
1785 -- --------------------------- ------- -------- -------------------- ---------------------------
1786 --P_deliverable_type_name PA_TASK_TYPES.TASK_TYPE%TYPE N Deliverable Type Name
1787 --P_prog_entry_enable_flag PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE Y 'N' Progress Entrable Flag
1788 --P_initial_deliverable_status_code PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE Y 'DLVR_NOT_STARTED' Initial Deliverable Status
1789 --P_enable_deliverable_actions PA_TASK_TYPES.ENABLE_DLVR_ACTIONS%TYPE Y 'N' Enable Deliverable Action
1790 --P_effective_from PA_TASK_TYPES.START_DATE_ACTIVE%TYPE N Effective from date
1791 --p_effective_to PA_TASK_TYPES. END_DATE_ACTIVE %TYPE Y NULL Effective to date
1792 --P_description PA_TASK_TYPES.DESCRIPTION%TYPE Y NULL Description
1793 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TPE Y NULL
1794 --P_insert_or_update VARCHAR2 N 'INSERT' Insert/Update
1795
1796 --28-Dec-2003 avaithia Created
1797
1798 PROCEDURE CR_UP_DELIVERABLE_TYPE
1799 (p_api_version IN NUMBER := 1.0
1800 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1801 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1802 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1803 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1804 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
1805 ,p_debug_mode IN VARCHAR2 := 'N'
1806 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1807 ,p_deliverable_type_name IN PA_TASK_TYPES.TASK_TYPE%TYPE
1808 ,p_prog_entry_enable_flag IN PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE := 'N'
1809 ,p_initial_deliverable_status IN PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE := 'DLVR_NOT_STARTED'
1810 ,p_deliverable_type_class IN PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE := 'ITEM'
1811 ,p_enable_dlvr_actions_flag IN PA_TASK_TYPES.ENABLE_DLVR_ACTIONS_FLAG%TYPE := 'N'
1812 ,p_effective_from IN PA_TASK_TYPES.START_DATE_ACTIVE%TYPE
1813 ,p_effective_to IN PA_TASK_TYPES. END_DATE_ACTIVE %TYPE := NULL
1814 ,p_description IN PA_TASK_TYPES.DESCRIPTION%TYPE := NULL
1815 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE := NULL
1816 ,p_insert_or_update IN VARCHAR2 := 'INSERT'
1817 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE := 1
1818 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1819 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1820 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1821 )
1822 IS
1823
1824 l_msg_count NUMBER := 0;
1825 l_data VARCHAR2(2000);
1826 l_msg_data VARCHAR2(2000);
1827 l_msg_index_out NUMBER;
1828 l_debug_mode VARCHAR2(1);
1829
1830 l_debug_level2 CONSTANT NUMBER := 2;
1831 l_debug_level3 CONSTANT NUMBER := 3;
1832 l_debug_level4 CONSTANT NUMBER := 4;
1833 l_debug_level5 CONSTANT NUMBER := 5;
1834
1835 BEGIN
1836
1837 x_msg_count := 0;
1838 x_return_status := FND_API.G_RET_STS_SUCCESS;
1839 l_debug_mode := NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N');
1840
1841 IF l_debug_mode = 'Y' THEN
1842 PA_DEBUG.set_curr_function( p_function => 'CR_UP_DELIVERABLE_TYPE',
1843 p_debug_mode => l_debug_mode );
1844 END IF;
1845
1846 IF (p_commit = FND_API.G_TRUE)
1847 THEN
1848 savepoint CR_UP_DELIVERABLE_TYPE;
1849 END IF;
1850
1851 IF l_debug_mode = 'Y'
1852 THEN
1853 PA_DEBUG.g_err_stage:= 'CR_UP_DELIVERABLE_TYPE : Printing Input parameters';
1854 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1855 l_debug_level3);
1856
1857 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_name'||':'||p_deliverable_type_name,
1858 l_debug_level3);
1859 PA_DEBUG.WRITE(g_module_name,'p_prog_entry_enable_flag'||':'||p_prog_entry_enable_flag,
1860 l_debug_level3);
1861 PA_DEBUG.WRITE(g_module_name,'p_initial_deliverable_status'||':'||p_initial_deliverable_status,
1862 l_debug_level3);
1863 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_class'||':'||p_deliverable_type_class,
1864 l_debug_level3);
1865 PA_DEBUG.WRITE(g_module_name,'p_enable_dlvr_actions_flag'||':'||p_enable_dlvr_actions_flag,
1866 l_debug_level3);
1867 PA_DEBUG.WRITE(g_module_name,'p_effective_from'||':'||p_effective_from,
1868 l_debug_level3);
1869 PA_DEBUG.WRITE(g_module_name,'p_effective_to'||':'||p_effective_to,
1870 l_debug_level3);
1871 PA_DEBUG.WRITE(g_module_name,'p_description'||':'||p_description,
1872 l_debug_level3);
1873 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
1874 l_debug_level3);
1875 PA_DEBUG.WRITE(g_module_name,'p_insert_or_update'||':'||p_insert_or_update,
1876 l_debug_level3);
1877 PA_DEBUG.WRITE(g_module_name,'p_record_version_number'||':'||p_record_version_number,
1878 l_debug_level3);
1879
1880 END IF;
1881
1882 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
1883 THEN
1884 FND_MSG_PUB.initialize;
1885 END IF;
1886
1887 IF (p_commit = FND_API.G_TRUE)
1888 THEN
1889 savepoint CR_UP_DELIVERABLE_TYPE;
1890 END IF;
1891
1892 IF l_debug_mode = 'Y'
1893 THEN
1894 Pa_Debug.g_err_stage:= 'Validating Input parameters';
1895 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1896 l_debug_level3);
1897 END IF;
1898
1899 --Check whether the Deliverable Type Name /Start date IS NULL
1900 --If Yes,then throw Invalid Param Error
1901
1902 IF (p_deliverable_type_name IS NULL) OR (p_effective_from IS NULL)
1903 THEN
1904 RAISE PA_DLV_INV_PARAM_EXC;
1905 END IF;
1906
1907 IF l_debug_mode = 'Y'
1908 THEN
1909 Pa_Debug.g_err_stage:= 'Calling insert/update';
1910 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1911 l_debug_level3);
1912 END IF;
1913
1914 IF (p_insert_or_update = 'INSERT')
1915 THEN
1916 PA_TASK_TYPE_PUB.CREATE_DELIVERABLE_TYPE
1917 (p_api_version => p_api_version
1918 ,p_init_msg_list => FND_API.G_FALSE
1919 ,p_commit => p_commit
1920 ,p_validate_only => p_validate_only
1921 ,p_validation_level => p_validation_level
1922 ,p_calling_module => p_calling_module
1923 ,p_debug_mode => l_debug_mode
1924 ,p_max_msg_count => p_max_msg_count
1925 ,p_deliverable_type_name => p_deliverable_type_name
1926 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
1927 ,p_initial_deliverable_status => p_initial_deliverable_status
1928 ,p_deliverable_type_class => p_deliverable_type_class
1929 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
1930 ,p_effective_from => p_effective_from
1931 ,p_effective_to => p_effective_to
1932 ,p_description => p_description
1933 ,p_deliverable_type_id => p_deliverable_type_id
1934 ,p_record_version_number => p_record_version_number
1935 ,x_return_status => x_return_status
1936 ,x_msg_count => x_msg_count
1937 ,x_msg_data => x_msg_data
1938 );
1939 ELSE
1940 PA_TASK_TYPE_PUB.UPDATE_DELIVERABLE_TYPE
1941 (p_api_version => p_api_version
1942 ,p_init_msg_list => FND_API.G_FALSE
1943 ,p_commit => p_commit
1944 ,p_validate_only => p_validate_only
1945 ,p_validation_level => p_validation_level
1946 ,p_calling_module => p_calling_module
1947 ,p_debug_mode => l_debug_mode
1948 ,p_max_msg_count => p_max_msg_count
1949 ,p_deliverable_type_name => p_deliverable_type_name
1950 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
1951 ,p_initial_deliverable_status => p_initial_deliverable_status
1952 ,p_deliverable_type_class => p_deliverable_type_class
1953 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
1954 ,p_effective_from => p_effective_from
1955 ,p_effective_to => p_effective_to
1956 ,p_description => p_description
1957 ,p_deliverable_type_id => p_deliverable_type_id
1958 ,p_record_version_number => p_record_version_number
1959 ,x_return_status => x_return_status
1960 ,x_msg_count => x_msg_count
1961 ,x_msg_data => x_msg_data
1962 );
1963 END IF;
1964
1965 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1966 THEN
1967 RAISE FND_API.G_EXC_ERROR;
1968 END IF;
1969
1970 EXCEPTION
1971 WHEN FND_API.G_EXC_ERROR THEN
1972
1973 x_return_status := Fnd_Api.G_RET_STS_ERROR;
1974 l_msg_count := Fnd_Msg_Pub.count_msg;
1975
1976 IF p_commit = FND_API.G_TRUE
1977 THEN
1978 ROLLBACK TO CR_UP_DELIVERABLE_TYPE;
1979 END IF;
1980
1981 IF l_msg_count = 1 AND x_msg_data IS NULL
1982 THEN
1983 Pa_Interface_Utils_Pub.get_messages
1984 ( p_encoded => Fnd_Api.G_TRUE
1985 , p_msg_index => 1
1986 , p_msg_count => l_msg_count
1987 , p_msg_data => l_msg_data
1988 , p_data => l_data
1989 , p_msg_index_out => l_msg_index_out);
1990 x_msg_data := l_data;
1991 x_msg_count := l_msg_count;
1992 ELSE
1993 x_msg_count := l_msg_count;
1994 END IF;
1995
1996 IF l_debug_mode = 'Y'
1997 THEN
1998 Pa_Debug.reset_curr_function;
1999 END IF;
2000
2001 WHEN PA_DLV_INV_PARAM_EXC THEN
2002
2003 x_return_status := Fnd_Api.G_RET_STS_ERROR;
2004 x_msg_count := 1;
2005 x_msg_data := 'PA_INV_PARAM_PASSED';
2006
2007 IF p_commit = FND_API.G_TRUE
2008 THEN
2009 ROLLBACK TO CR_UP_DELIVERABLE_TYPE;
2010 END IF;
2011
2012 Fnd_Msg_Pub.add_exc_msg
2013 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
2014 , p_procedure_name => 'CR_UP_DELIVERABLE_TYPE'
2015 , p_error_text => x_msg_data);
2016
2017 IF l_debug_mode = 'Y'
2018 THEN
2019 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
2020 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
2021 l_debug_level5);
2022 Pa_Debug.reset_curr_function;
2023 END IF;
2024 RAISE;
2025
2026 WHEN OTHERS THEN
2027
2028 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2029 x_msg_count := 1;
2030 x_msg_data := SQLERRM;
2031
2032 IF p_commit = FND_API.G_TRUE
2033 THEN
2034 ROLLBACK TO CR_UP_DELIVERABLE_TYPE;
2035 END IF;
2036
2037
2038 Fnd_Msg_Pub.add_exc_msg
2039 ( p_pkg_name => 'PA_TASK_TYPE_PUB'
2040 , p_procedure_name => 'CR_UP_DELIVERABLE_TYPE'
2041 , p_error_text => x_msg_data);
2042
2043 IF l_debug_mode = 'Y'
2044 THEN
2045 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
2046 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
2047 l_debug_level5);
2048 Pa_Debug.reset_curr_function;
2049 END IF;
2050 RAISE;
2051 END CR_UP_DELIVERABLE_TYPE ;
2052
2053 END PA_TASK_TYPE_PUB;