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