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.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;