[Home] [Help]
PACKAGE BODY: APPS.PA_WORKPLAN_ATTR_PUB
Source
1 PACKAGE BODY PA_WORKPLAN_ATTR_PUB AS
2 /* $Header: PAPRWPPB.pls 120.5.12020000.2 2012/07/31 05:14:12 rmuthine ship $ */
3
4 -- Global constant
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'PA_WORKPLAN_ATTR_PUB';
6
7
8 -- API name : Create_Proj_Workplan_Attrs
9 -- Type : Public
10 -- Pre-reqs : None.
11 -- Parameters :
12 -- p_api_version IN NUMBER Required Default = 1.0
13 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API.G_TRUE
14 -- p_commit IN VARCHAR2 Required Default = FND_API.G_FALSE
15 -- p_validate_only IN VARCHAR2 Required Default = FND_API.G_TRUE
16 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
17 -- p_calling_module IN VARCHAR2 Optional Default = 'SELF_SERVICE'
18 -- p_debug_mode IN VARCHAR2 Optional Default = 'N'
19 -- p_max_msg_count IN NUMBER Optional Default = FND_API.G_MISS_NUM
20 -- p_project_id IN NUMBER Required
21 -- p_proj_element_id IN NUMBER Required
22 -- p_approval_reqd_flag IN VARCHAR2 Required
23 -- p_auto_publish_flag IN VARCHAR2 Required
24 -- p_approver_source_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
25 -- p_approver_source_type IN NUMBER Optional Default = FND_API.G_MISS_NUM
26 -- p_approver_name IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
27 -- p_default_display_lvl IN NUMBER Required
28 -- p_enable_wp_version_flag IN VARCHAR2 Required
29 -- p_lifecycle_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
30 -- p_lifecycle_name IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
31 -- p_current_lifecycle_phase_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
32 -- p_current_lifecycle_phase IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
33 -- p_auto_pub_upon_creation_flag IN VARCHAR2 Required
34 -- p_auto_sync_txn_date_flag IN VARCHAR2 Required
35 -- p_txn_date_sync_buf_days IN NUMBER Optional Default = FND_API.G_MISS_NUM
36 -- x_return_status OUT VARCHAR2 Required
37 -- x_msg_count OUT NUMBER Required
38 -- x_msg_data OUT VARCHAR2 Optional
39
40 PROCEDURE CREATE_PROJ_WORKPLAN_ATTRS
41 ( p_api_version IN NUMBER := 1.0
42 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
43 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
44 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
45 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
46 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
47 ,p_debug_mode IN VARCHAR2 := 'N'
48 ,p_max_msg_count IN NUMBER := FND_API.G_MISS_NUM
49 ,p_project_id IN NUMBER
50 ,p_proj_element_id IN NUMBER
51 ,p_approval_reqd_flag IN VARCHAR2
52 ,p_auto_publish_flag IN VARCHAR2
53 ,p_approver_source_id IN NUMBER := FND_API.G_MISS_NUM
54 ,p_approver_source_type IN NUMBER := FND_API.G_MISS_NUM
55 ,p_approver_name IN VARCHAR2 := FND_API.G_MISS_CHAR
56 ,p_default_display_lvl IN NUMBER
57 ,p_enable_wp_version_flag IN VARCHAR2
58 ,p_lifecycle_id IN NUMBER := FND_API.G_MISS_NUM
59 ,p_lifecycle_name IN VARCHAR2 := FND_API.G_MISS_CHAR
60 ,p_current_lifecycle_phase_id IN NUMBER := FND_API.G_MISS_NUM
61 ,p_current_lifecycle_phase IN VARCHAR2 := FND_API.G_MISS_CHAR
62 ,p_auto_pub_upon_creation_flag IN VARCHAR2
63 ,p_auto_sync_txn_date_flag IN VARCHAR2
64 ,p_txn_date_sync_buf_days IN NUMBER := FND_API.G_MISS_NUM
65 --bug 3325803: FP M
66 ,p_allow_lowest_tsk_dep_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
67 ,p_schedule_third_party_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
68 ,p_third_party_schedule_code IN VARCHAR2 := FND_API.G_MISS_CHAR
69 ,p_auto_rollup_subproj_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
70 --bug 3325803: FP M
71 --FP M: Workflow attributes
72 -- gboomina Bug 8586393 - start
73 ,p_use_task_schedule_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
74 -- gboomina Bug 8586393 - end
75 ,p_enable_wf_flag IN VARCHAR2 := 'N'
76 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
77 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
78 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
79 )
80 IS
81 l_api_name CONSTANT VARCHAR(30) := 'Create_Proj_Workplan_Attrs';
82 l_api_version CONSTANT NUMBER := 1.0;
83
84 l_return_status VARCHAR2(1);
85 l_error_msg_code VARCHAR2(250);
86 l_msg_count NUMBER;
87 l_msg_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
88 l_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
89 l_msg_index_out NUMBER;
90
91 l_approver_source_id NUMBER;
92 l_approver_source_type NUMBER;
93 l_lifecycle_id NUMBER := NULL;
94 l_current_lifecycle_phase_id NUMBER;
95 BEGIN
96 pa_debug.init_err_stack('PA_WORKPLAN_ATTR_PUB.Create_Proj_Workplan_Attrs');
97
98 if (p_debug_mode = 'Y') then
99 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Create_Proj_Workplan_Attrs BEGIN');
100 end if;
101
102 if p_commit = FND_API.G_TRUE then
103 savepoint create_proj_workplan_attrs;
104 end if;
105
106 if not FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
107 raise FND_API.G_EXC_UNEXPECTED_ERROR;
108 end if;
109
110 if FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) then
111 FND_MSG_PUB.initialize;
112 end if;
113
114 if (p_debug_mode = 'Y') then
115 pa_debug.debug('Performing ID validations and conversions...');
116 end if;
117
118 if ((p_approver_name <> FND_API.G_MISS_CHAR) AND (p_approver_name is not NULL)) OR
119 ((p_approver_source_id <> FND_API.G_MISS_NUM) AND (p_approver_source_id is not NULL)) then
120 PA_WORKPLAN_ATTR_UTILS.CHECK_APPROVER_NAME_OR_ID
121 ( p_approver_source_id => p_approver_source_id
122 ,p_approver_source_type => p_approver_source_type
123 ,p_approver_name => p_approver_name
124 ,p_check_id_flag => 'Y'
125 ,x_approver_source_id => l_approver_source_id
126 ,x_approver_source_type => l_approver_source_type
127 ,x_return_status => l_return_status
128 ,x_error_msg_code => l_error_msg_code);
129
130 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
131 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
132 end if;
133 end if;
134
135 If (l_approver_source_id is not null and p_approval_reqd_flag = 'N') then
136 PA_UTILS.Add_Message( p_app_short_name => 'PA'
137 ,p_msg_name => 'PA_PS_APPROVER_ERR');
138 End If;
139
140 if ((p_lifecycle_name <> FND_API.G_MISS_CHAR) AND (p_lifecycle_name is not NULL)) OR
141 ((p_lifecycle_id <> FND_API.G_MISS_NUM) AND (p_lifecycle_id is not NULL)) then
142 PA_WORKPLAN_ATTR_UTILS.CHECK_LIFECYCLE_NAME_OR_ID
143 ( p_lifecycle_id => p_lifecycle_id
144 ,p_lifecycle_name => p_lifecycle_name
145 ,p_check_id_flag => 'Y'
146 ,x_lifecycle_id => l_lifecycle_id
147 ,x_return_status => l_return_status
148 ,x_error_msg_code => l_error_msg_code);
149
150 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
151 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
152 end if;
153 end if;
154
155 if ((p_current_lifecycle_phase_id <> FND_API.G_MISS_NUM) AND (p_current_lifecycle_phase_id is not NULL)) OR
156 ((p_current_lifecycle_phase <> FND_API.G_MISS_NUM) AND (p_current_lifecycle_phase is not NULL)) then
157 PA_WORKPLAN_ATTR_UTILS.CHECK_LIFECYCLE_PHASE_NAME_ID
158 ( p_lifecycle_id => l_lifecycle_id
159 ,p_current_lifecycle_phase_id => p_current_lifecycle_phase_id
160 ,p_current_lifecycle_phase => p_current_lifecycle_phase
161 ,p_check_id_flag => 'Y'
162 ,x_current_lifecycle_phase_id => l_current_lifecycle_phase_id
163 ,x_return_status => l_return_status
164 ,x_error_msg_code => l_error_msg_code);
165
166 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
167 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
168 end if;
169 end if;
170
171 l_msg_count := FND_MSG_PUB.count_msg;
172 if l_msg_count > 0 then
173 x_msg_count := l_msg_count;
174 if x_msg_count = 1 then
175 pa_interface_utils_pub.get_messages
176 (p_encoded => FND_API.G_TRUE,
177 p_msg_index => 1,
178 p_msg_count => l_msg_count,
179 p_msg_data => l_msg_data,
180 p_data => l_data,
181 p_msg_index_out => l_msg_index_out);
182 x_msg_data := l_data;
183 end if;
184 raise FND_API.G_EXC_ERROR;
185 end if;
186
187
188 PA_WORKPLAN_ATTR_PVT.CREATE_PROJ_WORKPLAN_ATTRS
189 ( p_commit => FND_API.G_FALSE
190 ,p_validate_only => p_validate_only
191 ,p_validation_level => p_validation_level
192 ,p_calling_module => p_calling_module
193 ,p_debug_mode => p_debug_mode
194 ,p_max_msg_count => p_max_msg_count
195 ,p_project_id => p_project_id
196 ,p_proj_element_id => p_proj_element_id
197 ,p_approval_reqd_flag => p_approval_reqd_flag
198 ,p_auto_publish_flag => p_auto_publish_flag
199 ,p_approver_source_id => l_approver_source_id
200 ,p_approver_source_type => l_approver_source_type
201 ,p_default_display_lvl => p_default_display_lvl
202 ,p_enable_wp_version_flag => p_enable_wp_version_flag
203 ,p_auto_pub_upon_creation_flag => p_auto_pub_upon_creation_flag
204 ,p_auto_sync_txn_date_flag => p_auto_sync_txn_date_flag
205 ,p_txn_date_sync_buf_days => p_txn_date_sync_buf_days
206 ,p_lifecycle_version_id => l_lifecycle_id
207 ,p_current_phase_version_id => l_current_lifecycle_phase_id
208 --bug 3325803
209 ,p_allow_lowest_tsk_dep_flag => p_allow_lowest_tsk_dep_flag
210 ,p_schedule_third_party_flag => p_schedule_third_party_flag
211 ,p_third_party_schedule_code => p_third_party_schedule_code
212 ,p_auto_rollup_subproj_flag => p_auto_rollup_subproj_flag
213 --end bug 3325803
214 -- gboomina Bug 8586393 - start
215 ,p_use_task_schedule_flag => p_use_task_schedule_flag
216 -- gboomina Bug 8586393 - end
217 ,x_return_status => l_return_status
218 ,x_msg_count => l_msg_count
219 ,x_msg_data => l_msg_data );
220
221 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
222 x_msg_count := FND_MSG_PUB.count_msg;
223 if x_msg_count = 1 then
224 pa_interface_utils_pub.get_messages
225 (p_encoded => FND_API.G_TRUE,
226 p_msg_index => 1,
227 p_msg_count => l_msg_count,
228 p_msg_data => l_msg_data,
229 p_data => l_data,
230 p_msg_index_out => l_msg_index_out);
231 x_msg_data := l_data;
232 end if;
233 raise FND_API.G_EXC_ERROR;
234 end if;
235
236 x_return_status := FND_API.G_RET_STS_SUCCESS;
237
238 if p_commit = FND_API.G_TRUE then
239 commit work;
240 end if;
241
242 if (p_debug_mode = 'Y') then
243 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Create_Proj_Workplan_Attrs END');
244 end if;
245
246 EXCEPTION
247 when FND_API.G_EXC_ERROR then
248 if p_commit = FND_API.G_TRUE then
249 rollback to create_proj_workplan_attrs;
250 end if;
251 x_return_status := FND_API.G_RET_STS_ERROR;
252 when FND_API.G_EXC_UNEXPECTED_ERROR then
253 if p_commit = FND_API.G_TRUE then
254 rollback to create_proj_workplan_attrs;
255 end if;
256 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
257 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
258 p_procedure_name => 'Create_Proj_Workplan_Attrs',
259 p_error_text => SUBSTRB(SQLERRM,1,240));
260 when OTHERS then
261 if p_commit = FND_API.G_TRUE then
262 rollback to create_proj_workplan_attrs;
263 end if;
264 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
265 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
266 p_procedure_name => 'Create_Proj_Workplan_Attrs',
267 p_error_text => SUBSTRB(SQLERRM,1,240));
268 raise;
269 END CREATE_PROJ_WORKPLAN_ATTRS;
270
271
272 -- API name : Update_Proj_Workplan_Attrs
273 -- Type : Public
274 -- Pre-reqs : None.
275 -- Parameters :
276 -- p_api_version IN NUMBER Required Default = 1.0
277 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API.G_TRUE
278 -- p_commit IN VARCHAR2 Required Default = FND_API.G_FALSE
279 -- p_validate_only IN VARCHAR2 Required Default = FND_API.G_TRUE
280 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
281 -- p_calling_module IN VARCHAR2 Optional Default = 'SELF_SERVICE'
282 -- p_debug_mode IN VARCHAR2 Optional Default = 'N'
283 -- p_max_msg_count IN NUMBER Optional Default = FND_API.G_MISS_NUM
284 -- p_project_id IN NUMBER Required Default = FND_API.G_MISS_NUM
285 -- p_approval_reqd_flag IN VARCHAR2 Required Default = FND_API.G_MISS_NUM
286 -- p_auto_publish_flag IN VARCHAR2 Required Default = FND_API.G_MISS_CHAR
287 -- p_approver_source_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
288 -- p_approver_source_type IN NUMBER Optional Default = FND_API.G_MISS_NUM
289 -- p_approver_name IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
290 -- p_default_display_lvl IN NUMBER Required Default = FND_API.G_MISS_NUM
291 -- p_enable_wp_version_flag IN VARCHAR2 Required Default = FND_API.G_MISS_CHAR
292 -- p_lifecycle_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
293 -- p_lifecycle_name IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
294 -- p_current_lifecycle_phase_id IN NUMBER Optional Default = FND_API.G_MISS_NUM
295 -- p_current_lifecycle_phase IN VARCHAR2 Optional Default = FND_API.G_MISS_CHAR
296 -- p_auto_pub_upon_creation_flag IN VARCHAR2 Required Default = FND_API.G_MISS_CHAR
297 -- p_auto_sync_txn_date_flag IN VARCHAR2 Required Default = FND_API.G_MISS_CHAR
298 -- p_txn_date_sync_buf_days IN NUMBER Optional Default = FND_API.G_MISS_NUM
299 -- p_record_version_number IN NUMBER Optional Default = FND_API.G_MISS_NUM
300 --bug 3325803: FP M
301 -- p_allow_lowest_tsk_dep_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
302 -- p_schedule_third_party_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
303 -- p_third_party_schedule_code IN VARCHAR2 := FND_API.G_MISS_CHAR
304 ---p_auto_rollup_subproj_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
305 --bug 3325803: FP M
306 -- x_return_status OUT VARCHAR2 Required
307 -- x_msg_count OUT NUMBER Required
308 -- x_msg_data OUT VARCHAR2 Optional
309
310
311 PROCEDURE UPDATE_PROJ_WORKPLAN_ATTRS
312 (
313 p_api_version IN NUMBER := 1.0
314 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
315 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
316 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
317 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
318 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
319 ,p_debug_mode IN VARCHAR2 := 'N'
320 ,p_max_msg_count IN NUMBER := FND_API.G_MISS_NUM
321 ,p_project_id IN NUMBER := FND_API.G_MISS_NUM /* Added for Progress impact bug 3420093 */
322 ,p_proj_element_id IN NUMBER := FND_API.G_MISS_NUM /* Added for Progress impact bug 3420093 */
323 ,p_approval_reqd_flag IN VARCHAR2 := FND_API.G_MISS_CHAR /* Added for Progress impact bug 3420093 */
324 ,p_auto_publish_flag IN VARCHAR2 := FND_API.G_MISS_CHAR /* Added for Progress impact bug 3420093 */
325 ,p_approver_source_id IN NUMBER := FND_API.G_MISS_NUM
326 ,p_approver_source_type IN NUMBER := FND_API.G_MISS_NUM
327 ,p_approver_name IN VARCHAR2 := FND_API.G_MISS_CHAR
328 ,p_default_display_lvl IN NUMBER := FND_API.G_MISS_NUM /* Added for Progress impact bug 3420093 */
329 ,p_enable_wp_version_flag IN VARCHAR2 := FND_API.G_MISS_CHAR /* Added for Progress impact bug 3420093 */
330 ,p_lifecycle_id IN NUMBER := FND_API.G_MISS_NUM
331 ,p_lifecycle_name IN VARCHAR2 := FND_API.G_MISS_CHAR
332 ,p_current_lifecycle_phase_id IN NUMBER := FND_API.G_MISS_NUM
333 ,p_current_lifecycle_phase IN VARCHAR2 := FND_API.G_MISS_CHAR
334 ,p_auto_pub_upon_creation_flag IN VARCHAR2 := FND_API.G_MISS_CHAR /* Added for Progress impact bug 3420093 */
335 ,p_auto_sync_txn_date_flag IN VARCHAR2 := FND_API.G_MISS_CHAR /* Added for Progress impact bug 3420093 */
336 ,p_txn_date_sync_buf_days IN NUMBER := FND_API.G_MISS_NUM
337 ,p_record_version_number IN NUMBER := FND_API.G_MISS_NUM
338 --bug 3325803: FP M
339 ,p_allow_lowest_tsk_dep_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
340 ,p_schedule_third_party_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
341 ,p_third_party_schedule_code IN VARCHAR2 := FND_API.G_MISS_CHAR
342 ,p_auto_rollup_subproj_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
343 --bug 3325803: FP M
344 --FP M: Workflow attributes
345 -- gboomina Bug 8586393 - start
346 ,p_use_task_schedule_flag IN VARCHAR2 := FND_API.G_MISS_CHAR
347 -- gboomina Bug 8586393 - end
348 ,p_enable_wf_flag IN VARCHAR2 := 'N'
349 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
350 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
351 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
352 )
353 IS
354
355 l_api_name CONSTANT VARCHAR(30) := 'Update_Proj_Workplan_Attrs';
356 l_api_version CONSTANT NUMBER := 1.0;
357
358 l_return_status VARCHAR2(1);
359 l_error_msg_code VARCHAR2(250);
360 l_msg_count NUMBER;
361 l_msg_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
362 l_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
363 l_msg_index_out NUMBER;
364
365 l_approver_source_id NUMBER;
366 l_approver_source_type NUMBER;
367 l_lifecycle_id NUMBER := NULL;
368 l_current_lifecycle_phase_id NUMBER;
369
370 --added for the Bug 14361423
371 CURSOR c_get_template_flag
372 IS
373 SELECT NVL(template_flag,'N')
374 FROM pa_projects_all
375 WHERE project_id = p_project_id;
376
377 l_template_flag VARCHAR2(1);
378 -- Bug 14361423
379 BEGIN
380 pa_debug.init_err_stack('PA_WORKPLAN_ATTR_PUB.Update_Proj_Workplan_Attrs');
381
382 if (p_debug_mode = 'Y') then
383 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Update_Proj_Workplan_Attrs BEGIN');
384 end if;
385
386 if p_commit = FND_API.G_TRUE then
387 savepoint update_proj_workplan_attrs;
388 end if;
389
390 if not FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
391 raise FND_API.G_EXC_UNEXPECTED_ERROR;
392 end if;
393
394 if FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) then
395 FND_MSG_PUB.initialize;
396 end if;
397
398 if (p_debug_mode = 'Y') then
399 pa_debug.debug('Performing ID validations and conversions...');
400 end if;
401
402 if ((p_approver_name <> FND_API.G_MISS_CHAR) AND (p_approver_name is not NULL)) OR
403 ((p_approver_source_id <> FND_API.G_MISS_NUM) AND (p_approver_source_id is not NULL)) then
404 PA_WORKPLAN_ATTR_UTILS.CHECK_APPROVER_NAME_OR_ID
405 ( p_approver_source_id => p_approver_source_id
406 ,p_approver_source_type => p_approver_source_type
407 ,p_approver_name => p_approver_name
408 ,p_check_id_flag => 'Y'
409 ,x_approver_source_id => l_approver_source_id
410 ,x_approver_source_type => l_approver_source_type
411 ,x_return_status => l_return_status
412 ,x_error_msg_code => l_error_msg_code);
413
414 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
415 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
416 end if;
417 end if;
418
419
420 OPEN c_get_template_flag;
421 FETCH c_get_template_flag INTO l_template_flag;
422 CLOSE c_get_template_flag;
423
424 -- Start of Bug fix 5678706
425 -- commented the Bug 14361423
426 /*
427 IF p_enable_wp_version_flag = 'N' AND
428 (l_approver_source_id is not null OR
429 p_approval_reqd_flag = 'Y' OR
430 p_approver_name IS NOT NULL OR
431 p_auto_publish_flag = 'Y' OR
432 p_auto_pub_upon_creation_flag = 'Y') THEN */
433 --changes done for the Bug 14361423
434 --'Automatically publish workplan upon project creation from project template' is applicable only for template but not for project.
435 --So we need to validate 'p_auto_pub_upon_creation_flag' only for template
436 IF ((p_enable_wp_version_flag = 'N') AND
437 ((l_approver_source_id is not null OR
438 p_approval_reqd_flag = 'Y' OR
439 p_approver_name IS NOT NULL OR
440 p_auto_publish_flag = 'Y' ) OR (p_auto_pub_upon_creation_flag = 'Y' AND l_template_flag='Y'))) THEN --End of Bug 14361423
441
442 PA_UTILS.Add_Message( p_app_short_name => 'PA'
443 ,p_msg_name => 'PA_PS_VERSN_DISABLED');
444 END IF;
445
446 -- End Of Bug fix 5678706
447
448
449
450 If (l_approver_source_id is not null and p_approval_reqd_flag = 'N') then
451 PA_UTILS.Add_Message( p_app_short_name => 'PA'
452 ,p_msg_name => 'PA_PS_APPROVER_ERR');
453 End If;
454
455 -- For bug 2593130
456 if (p_auto_publish_flag = 'Y' and p_approval_reqd_flag = 'N') then
457 PA_UTILS.Add_Message( p_app_short_name => 'PA'
458 ,p_msg_name => 'PA_PS_AUTO_PUB_INVALID');
459 End If;
460 -- End of bug fix
461
462 if ((p_lifecycle_name <> FND_API.G_MISS_CHAR) AND (p_lifecycle_name is not NULL)) OR
463 ((p_lifecycle_id <> FND_API.G_MISS_NUM) AND (p_lifecycle_id is not NULL)) then
464
465 PA_WORKPLAN_ATTR_UTILS.CHECK_LIFECYCLE_NAME_OR_ID
466 ( p_lifecycle_id => p_lifecycle_id
467 ,p_lifecycle_name => p_lifecycle_name
468 ,p_check_id_flag => 'Y'
469 ,x_lifecycle_id => l_lifecycle_id
470 ,x_return_status => l_return_status
471 ,x_error_msg_code => l_error_msg_code);
472
473 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
474 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
475 end if;
476 end if;
477
478 if ((p_current_lifecycle_phase_id <> FND_API.G_MISS_NUM) AND (p_current_lifecycle_phase_id is not NULL)) OR
479 ((p_current_lifecycle_phase <> FND_API.G_MISS_CHAR) AND (p_current_lifecycle_phase is not NULL)) then
480
481 PA_WORKPLAN_ATTR_UTILS.CHECK_LIFECYCLE_PHASE_NAME_ID
482 ( p_lifecycle_id => l_lifecycle_id
483 ,p_current_lifecycle_phase_id => p_current_lifecycle_phase_id
484 ,p_current_lifecycle_phase => p_current_lifecycle_phase
485 ,p_check_id_flag => 'Y'
486 ,x_current_lifecycle_phase_id => l_current_lifecycle_phase_id
487 ,x_return_status => l_return_status
488 ,x_error_msg_code => l_error_msg_code);
489
490 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
491 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA', p_msg_name => l_error_msg_code);
492 end if;
493 end if;
494
495 l_msg_count := FND_MSG_PUB.count_msg;
496 if l_msg_count > 0 then
497 x_msg_count := l_msg_count;
498 if x_msg_count = 1 then
499 pa_interface_utils_pub.get_messages
500 (p_encoded => FND_API.G_TRUE,
501 p_msg_index => 1,
502 p_msg_count => l_msg_count,
503 p_msg_data => l_msg_data,
504 p_data => l_data,
505 p_msg_index_out => l_msg_index_out);
506 x_msg_data := l_data;
507 end if;
508 raise FND_API.G_EXC_ERROR;
509 end if;
510
511 PA_WORKPLAN_ATTR_PVT.UPDATE_PROJ_WORKPLAN_ATTRS
512 ( p_commit => FND_API.G_FALSE
513 ,p_validate_only => p_validate_only
514 ,p_validation_level => p_validation_level
515 ,p_calling_module => p_calling_module
516 ,p_debug_mode => p_debug_mode
517 ,p_max_msg_count => p_max_msg_count
518 ,p_project_id => p_project_id
519 ,p_proj_element_id => p_proj_element_id
520 ,p_approval_reqd_flag => p_approval_reqd_flag
521 ,p_auto_publish_flag => p_auto_publish_flag
522 ,p_approver_source_id => l_approver_source_id
523 ,p_approver_source_type => l_approver_source_type
524 ,p_default_display_lvl => p_default_display_lvl
525 ,p_enable_wp_version_flag => p_enable_wp_version_flag
526 ,p_auto_pub_upon_creation_flag => p_auto_pub_upon_creation_flag
527 ,p_auto_sync_txn_date_flag => p_auto_sync_txn_date_flag
528 ,p_txn_date_sync_buf_days => p_txn_date_sync_buf_days
529 ,p_lifecycle_version_id => l_lifecycle_id
530 ,p_current_phase_version_id => l_current_lifecycle_phase_id
531 --bug 3325803: FP M
532 ,p_allow_lowest_tsk_dep_flag => p_allow_lowest_tsk_dep_flag
533 ,p_schedule_third_party_flag => p_schedule_third_party_flag
534 ,p_third_party_schedule_code => p_third_party_schedule_code
535 ,p_auto_rollup_subproj_flag => p_auto_rollup_subproj_flag
536 --bug 3325803: FP M
537 -- gboomina Bug 8586393 - start
538 ,p_use_task_schedule_flag => p_use_task_schedule_flag
539 -- gboomina Bug 8586393 - end
540 ,p_record_version_number => p_record_version_number
541 ,x_return_status => l_return_status
542 ,x_msg_count => l_msg_count
543 ,x_msg_data => l_msg_data );
544
545 --FP M:3491609:Project Execution Workflow
546 update pa_proj_elements
547 set enable_wf_flag = p_enable_wf_flag
548 where proj_element_id = p_proj_element_id ;
549 --FP M:3491609:Project Execution Workflow
550
551 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
552 x_msg_count := FND_MSG_PUB.count_msg;
553 if x_msg_count = 1 then
554 pa_interface_utils_pub.get_messages
555 (p_encoded => FND_API.G_TRUE,
556 p_msg_index => 1,
557 p_msg_count => l_msg_count,
558 p_msg_data => l_msg_data,
559 p_data => l_data,
560 p_msg_index_out => l_msg_index_out);
561 x_msg_data := l_data;
562 end if;
563 raise FND_API.G_EXC_ERROR;
564 end if;
565
566 x_return_status := FND_API.G_RET_STS_SUCCESS;
567
568 if p_commit = FND_API.G_TRUE then
569 commit work;
570 end if;
571
572 if (p_debug_mode = 'Y') then
573 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Update_Proj_Workplan_Attrs END');
574 end if;
575
576 EXCEPTION
577 when FND_API.G_EXC_ERROR then
578 if p_commit = FND_API.G_TRUE then
579 rollback to update_proj_workplan_attrs;
580 end if;
581 x_return_status := FND_API.G_RET_STS_ERROR;
582 when FND_API.G_EXC_UNEXPECTED_ERROR then
583 if p_commit = FND_API.G_TRUE then
584 rollback to update_proj_workplan_attrs;
585 end if;
586 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
587 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
588 p_procedure_name => 'Update_Proj_Workplan_Attrs',
589 p_error_text => SUBSTRB(SQLERRM,1,240));
590 when OTHERS then
591 if p_commit = FND_API.G_TRUE then
592 rollback to update_proj_workplan_attrs;
593 end if;
594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
595 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
596 p_procedure_name => 'Update_Proj_Workplan_Attrs',
597 p_error_text => SUBSTRB(SQLERRM,1,240));
598 raise;
599 END UPDATE_PROJ_WORKPLAN_ATTRS;
600
601 -- API name : Update_Structure_Name
602 -- Type : Public
603 -- Pre-reqs : None.
604 -- Parameters :
605 -- p_api_version IN NUMBER Required Default = 1.0
606 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API.G_TRUE
607 -- p_commit IN VARCHAR2 Required Default = FND_API.G_FALSE
608 -- p_validate_only IN VARCHAR2 Required Default = FND_API.G_TRUE
609 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
610 -- p_calling_module IN VARCHAR2 Optional Default = 'SELF_SERVICE'
611 -- p_debug_mode IN VARCHAR2 Optional Default = 'N'
612 -- p_max_msg_count IN NUMBER Optional Default = FND_API.G_MISS_NUM
613 -- p_proj_element_id IN NUMBER Required
614 -- p_structure_name IN VARCHAR2 Required
615 -- p_record_version_number IN NUMBER Optional Default = FND_API.G_MISS_NUM
616 -- x_return_status OUT VARCHAR2 Required
617 -- x_msg_count OUT NUMBER Required
618 -- x_msg_data OUT VARCHAR2 Optional
619
620 PROCEDURE UPDATE_STRUCTURE_NAME
621 ( p_api_version IN NUMBER := 1.0
622 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
623 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
624 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
625 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
626 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
627 ,p_debug_mode IN VARCHAR2 := 'N'
628 ,p_max_msg_count IN NUMBER := FND_API.G_MISS_NUM
629 ,p_proj_element_id IN NUMBER
630 ,p_structure_name IN VARCHAR2
631 ,p_record_version_number IN NUMBER := FND_API.G_MISS_NUM
632 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
633 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
634 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
635 )
636 IS
637 l_api_name CONSTANT VARCHAR(30) := 'Update_Structure_Name';
638 l_api_version CONSTANT NUMBER := 1.0;
639
640 l_return_status VARCHAR2(1);
641 l_error_msg_code VARCHAR2(250);
642 l_msg_count NUMBER;
643 l_msg_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
644 l_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
645 l_msg_index_out NUMBER;
646 BEGIN
647 pa_debug.init_err_stack('PA_WORKPLAN_ATTR_PUB.Update_Structure_Name');
648
649 if (p_debug_mode = 'Y') then
650 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Update_Structure_Name BEGIN');
651 end if;
652
653 if p_commit = FND_API.G_TRUE then
654 savepoint update_structure_name;
655 end if;
656
657 if not FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
658 raise FND_API.G_EXC_UNEXPECTED_ERROR;
659 end if;
660
661 if FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) then
662 FND_MSG_PUB.initialize;
663 end if;
664
665 if (p_debug_mode = 'Y') then
666 pa_debug.debug('Performing ID validations and conversions...');
667 end if;
668
669 If p_structure_name is null then
670 PA_UTILS.Add_Message( p_app_short_name => 'PA'
671 ,p_msg_name => 'PA_PS_STRUC_NAME_REQ');
672 End If;
673
674 l_msg_count := FND_MSG_PUB.count_msg;
675 if l_msg_count > 0 then
676 x_msg_count := l_msg_count;
677 if x_msg_count = 1 then
678 pa_interface_utils_pub.get_messages
679 (p_encoded => FND_API.G_TRUE,
680 p_msg_index => 1,
681 p_msg_count => l_msg_count,
682 p_msg_data => l_msg_data,
683 p_data => l_data,
684 p_msg_index_out => l_msg_index_out);
685 x_msg_data := l_data;
686 end if;
687 raise FND_API.G_EXC_ERROR;
688 end if;
689
690 PA_WORKPLAN_ATTR_PVT.UPDATE_STRUCTURE_NAME
691 ( p_commit => FND_API.G_FALSE
692 ,p_validate_only => p_validate_only
693 ,p_validation_level => p_validation_level
694 ,p_calling_module => p_calling_module
695 ,p_debug_mode => p_debug_mode
696 ,p_max_msg_count => p_max_msg_count
697 ,p_proj_element_id => p_proj_element_id
698 ,p_structure_name => p_structure_name
699 ,p_record_version_number => p_record_version_number
700 ,x_return_status => l_return_status
701 ,x_msg_count => l_msg_count
702 ,x_msg_data => l_msg_data );
703
704 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
705 x_msg_count := FND_MSG_PUB.count_msg;
706 if x_msg_count = 1 then
707 pa_interface_utils_pub.get_messages
708 (p_encoded => FND_API.G_TRUE,
709 p_msg_index => 1,
710 p_msg_count => l_msg_count,
711 p_msg_data => l_msg_data,
712 p_data => l_data,
713 p_msg_index_out => l_msg_index_out);
714 x_msg_data := l_data;
715 end if;
716 raise FND_API.G_EXC_ERROR;
717 end if;
718
719 x_return_status := FND_API.G_RET_STS_SUCCESS;
720
721 if p_commit = FND_API.G_TRUE then
722 commit work;
723 end if;
724
725 if (p_debug_mode = 'Y') then
726 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Update_Structure_Name END');
727 end if;
728
729 EXCEPTION
730 when FND_API.G_EXC_ERROR then
731 if p_commit = FND_API.G_TRUE then
732 rollback to update_structure_name;
733 end if;
734 x_return_status := FND_API.G_RET_STS_ERROR;
735 when FND_API.G_EXC_UNEXPECTED_ERROR then
736 if p_commit = FND_API.G_TRUE then
737 rollback to update_structure_name;
738 end if;
739 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
740 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
741 p_procedure_name => 'Update_Structure_Name',
742 p_error_text => SUBSTRB(SQLERRM,1,240));
743 when OTHERS then
744 if p_commit = FND_API.G_TRUE then
745 rollback to update_structure_name;
746 end if;
747 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
748 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
749 p_procedure_name => 'Update_Structure_Name',
750 p_error_text => SUBSTRB(SQLERRM,1,240));
751 raise;
752 END UPDATE_STRUCTURE_NAME;
753
754
755 -- API name : Delete_Proj_Workplan_Attrs
756 -- Type : Public
757 -- Pre-reqs : None.
758 -- Parameters :
759 -- p_api_version IN NUMBER Required Default = 1.0
760 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API.G_TRUE
761 -- p_commit IN VARCHAR2 Required Default = FND_API.G_FALSE
762 -- p_validate_only IN VARCHAR2 Required Default = FND_API.G_TRUE
763 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
764 -- p_calling_module IN VARCHAR2 Optional Default = 'SELF_SERVICE'
765 -- p_debug_mode IN VARCHAR2 Optional Default = 'N'
766 -- p_max_msg_count IN NUMBER Optional Default = FND_API.G_MISS_NUM
767 -- p_project_id IN NUMBER Required
768 -- p_proj_element_id IN NUMBER Required
769 -- p_record_version_number IN NUMBER Required Default = FND_API.G_MISS_NUM
770 -- x_return_status OUT VARCHAR2 Required
771 -- x_msg_count OUT NUMBER Required
772 -- x_msg_data OUT VARCHAR2 Optional
773
774 PROCEDURE DELETE_PROJ_WORKPLAN_ATTRS
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 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
780 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
781 ,p_debug_mode IN VARCHAR2 := 'N'
782 ,p_max_msg_count IN NUMBER := FND_API.G_MISS_NUM
783 ,p_project_id IN NUMBER
784 ,p_proj_element_id IN NUMBER
785 ,p_record_version_number IN NUMBER := FND_API.G_MISS_NUM
786 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
787 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
788 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
789 )
790 IS
791 l_api_name CONSTANT VARCHAR(30) := 'Delete_Proj_Workplan_Attrs';
792 l_api_version CONSTANT NUMBER := 1.0;
793
794 l_return_status VARCHAR2(1);
795 l_msg_count NUMBER;
796 l_msg_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
797 l_data VARCHAR2(2000); --precision changed from 250 to 2000 for bug 4093600
798 l_msg_index_out NUMBER;
799 BEGIN
800 pa_debug.init_err_stack('PA_WORKPLAN_ATTR_PUB.Delete_Proj_Workplan_Attrs');
801
802 if (p_debug_mode = 'Y') then
803 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Delete_Proj_Workplan_Attrs BEGIN');
804 end if;
805
806 if p_commit = FND_API.G_TRUE then
807 savepoint delete_proj_workplan_attrs;
808 end if;
809
810 if not FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
811 raise FND_API.G_EXC_UNEXPECTED_ERROR;
812 end if;
813
814 if FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) then
815 FND_MSG_PUB.initialize;
816 end if;
817
818 PA_WORKPLAN_ATTR_PVT.DELETE_PROJ_WORKPLAN_ATTRS
819 ( p_commit => FND_API.G_FALSE
820 ,p_validate_only => p_validate_only
821 ,p_validation_level => p_validation_level
822 ,p_calling_module => p_calling_module
823 ,p_debug_mode => p_debug_mode
824 ,p_max_msg_count => p_max_msg_count
825 ,p_project_id => p_project_id
826 ,p_proj_element_id => p_proj_element_id
827 ,p_record_version_number => p_record_version_number
828 ,x_return_status => l_return_status
829 ,x_msg_count => l_msg_count
830 ,x_msg_data => l_msg_data);
831
832 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
833 x_msg_count := FND_MSG_PUB.count_msg;
834 if x_msg_count = 1 then
835 pa_interface_utils_pub.get_messages
836 (p_encoded => FND_API.G_TRUE,
837 p_msg_index => 1,
838 p_msg_count => l_msg_count,
839 p_msg_data => l_msg_data,
840 p_data => l_data,
841 p_msg_index_out => l_msg_index_out);
842 x_msg_data := l_data;
843 end if;
844 raise FND_API.G_EXC_ERROR;
845 end if;
846
847 x_return_status := FND_API.G_RET_STS_SUCCESS;
848
849 if p_commit = FND_API.G_TRUE then
850 commit work;
851 end if;
852
853 if (p_debug_mode = 'Y') then
854 pa_debug.debug('PA_WORKPLAN_ATTR_PUB.Delete_Proj_Workplan_Attrs END');
855 end if;
856
857 EXCEPTION
858 when FND_API.G_EXC_ERROR then
859 if p_commit = FND_API.G_TRUE then
860 rollback to delete_proj_workplan_attrs;
861 end if;
862 x_return_status := FND_API.G_RET_STS_ERROR;
863 when FND_API.G_EXC_UNEXPECTED_ERROR then
864 if p_commit = FND_API.G_TRUE then
865 rollback to delete_proj_workplan_attrs;
866 end if;
867 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
868 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
869 p_procedure_name => 'Delete_Proj_Workplan_Attrs',
870 p_error_text => SUBSTRB(SQLERRM,1,240));
871 when OTHERS then
872 if p_commit = FND_API.G_TRUE then
873 rollback to delete_proj_workplan_attrs;
874 end if;
875 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
876 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_WORKPLAN_ATTR_PUB',
877 p_procedure_name => 'Delete_Proj_Workplan_Attrs',
878 p_error_text => SUBSTRB(SQLERRM,1,240));
879 raise;
880 END DELETE_PROJ_WORKPLAN_ATTRS;
881
882
883 END PA_WORKPLAN_ATTR_PUB;