DBA Data[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;