DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_INTERFACE_UTILS_PUB

Source


1 package body PA_INTERFACE_UTILS_PUB as
2 --$Header: PAPMUTPB.pls 120.5.12010000.3 2008/11/10 08:53:57 jcgeorge ship $
3 G_PKG_NAME          CONSTANT VARCHAR2(30) := 'PA_INTERFACE_UTILS_PUB';
4 
5 PROCEDURE get_messages
6 (p_encoded        IN VARCHAR2 := FND_API.G_FALSE,
7  p_msg_index      IN NUMBER   := FND_API.G_MISS_NUM,
8  p_msg_count      IN NUMBER   := 1,
9  p_msg_data       IN VARCHAR2 := FND_API.G_MISS_CHAR,
10  p_data           OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
11  p_msg_index_out  OUT NOCOPY NUMBER /*Added the nocopy check for 4537865 */
12 )  IS
13 
14 --l_encoded     BOOLEAN;
15 l_data        VARCHAR2(2000);
16 l_msg_index   NUMBER;
17 
18 BEGIN
19 
20   IF p_msg_index = FND_API.G_MISS_NUM THEN
21      l_msg_index := FND_MSG_PUB.G_NEXT;
22   ELSE
23      l_msg_index := p_msg_index;
24   END IF;
25 
26 /* The comments put in to fix 1276810 in the previous version  have been
27    removed to fix bug 962199. They are not needed since changes have been
28    made in FND_MESSGAE package (File: AFNLMSGB.pls version 115.7) */
29 
30 -- bug 1276810: remove the call to FND_MESSAGE.GET,
31 -- use FND_MSG_PUB.get to get the message text
32 -- for both single (p_msg_count = 1) and multiple
33 -- messages. changed in rel 11.5.
34 
35 /*  IF p_msg_count = 1 THEN
36      FND_MESSAGE.SET_ENCODED (p_msg_data);
37      p_data := FND_MESSAGE.GET;
38   ELSE */
39 
40     FND_MSG_PUB.get (
41     p_msg_index      => l_msg_index,
42     p_encoded        => p_encoded,
43     p_data           => p_data,
44     p_msg_index_out  => p_msg_index_out );
45 -- END IF;
46 
47 EXCEPTION
48 WHEN OTHERS THEN
49 	p_data := NULL ;
50 	p_msg_index_out := NULL ;
51 
52 	-- Did not include RAISE because this API is used to retrive error msg data
53 	-- In case of Exception ,just return the data as NULL .
54 END get_messages;
55 
56 FUNCTION get_bg_id RETURN NUMBER IS
57    X_business_group_id   NUMBER(15);
58   BEGIN
59     SELECT business_group_id
60       INTO X_business_group_id
61       FROM pa_implementations;
62 
63     RETURN(X_business_group_id);
64 
65 END get_bg_id;
66 
67 /** Bug 1940353 -  Added one IN parameter p_resp_appl_id in this procedure **/
68 
69 PROCEDURE Set_Global_Info
70           (p_api_version_number  IN NUMBER,
71            p_responsibility_id   IN NUMBER := G_PA_MISS_NUM,
72            p_user_id           IN NUMBER := G_PA_MISS_NUM,
73            p_resp_appl_id      IN NUMBER := 275,
74            p_advanced_proj_sec_flag IN VARCHAR2 := 'N',   --bug 2471668
75            p_calling_mode      IN VARCHAR2 := 'AMG',    --bug 2783845
76            p_operating_unit_id   IN NUMBER := G_PA_MISS_NUM, -- 4363092 Added for MOAC Changes
77            p_msg_count          OUT NOCOPY NUMBER, /*Added the nocopy check for 4537865 */
78            p_msg_data           OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
79            p_return_status      OUT NOCOPY VARCHAR2  /*Added the nocopy check for 4537865 */
80 ) IS
81 
82 -- This procedure sets the global values for User_id,login_id and
83 -- also populates the server side env variable CLIENT_INFO
84 -- with the relevant org id (for multi org purposes)
85 
86 l_api_version_number    CONSTANT    NUMBER      :=  1.0;
87 l_api_name              CONSTANT    VARCHAR2(30):= 'Set_Global_Info';
88 l_value_conversion_error            BOOLEAN     :=  FALSE;
89 l_return_status                     VARCHAR2(1);
90 l_dummy         VARCHAR2(1);
91 l_temp_num              NUMBER ;
92 
93 /** Bug 1940353 - Modified the cursor l_resp_csr to check the combination of
94 resposibility and application id. Commented out the cursor l_resp_appl_csr **/
95 
96 CURSOR l_resp_csr IS
97 SELECT 'x'
98 FROM  fnd_responsibility
99 WHERE responsibility_id = p_responsibility_id
100 AND application_id = p_resp_appl_id;
101 
102 /* Bug 1940353 - Commented the following cursor.
103 
104 CURSOR l_resp_appl_csr IS
105 SELECT application_id
106 FROM  fnd_responsibility
107 WHERE responsibility_id = p_responsibility_id;
108 */
109 
110 
111 CURSOR l_user_csr IS
112 SELECT 'x'
113 FROM fnd_user
114 WHERE user_id = p_user_id;
115 l_resp_csr_rec      l_resp_csr%ROWTYPE;
116 /* Bug 1940353 - l_resp_appl_csr_rec        l_resp_appl_csr%ROWTYPE; */
117 
118 -- 4363092 MOAC Changes
119 l_msg_data varchar2(2000);
120 l_msg_count number;
121 l_ou_id number;
122 -- 4363092 end
123 
124 BEGIN
125   -- Standard Api compatibility call
126     IF NOT FND_API.Compatible_API_Call ( l_api_version_number   ,
127                                          p_api_version_number   ,
128                                          l_api_name             ,
129                                          G_PKG_NAME             )
130     THEN
131         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
132     END IF;
133 
134     p_return_status := FND_API.G_RET_STS_SUCCESS;
135 
136 
137   -- Ensure the responsibility id passed is valid
138     IF p_responsibility_id IS NULL or p_responsibility_id =
139        G_PA_MISS_NUM THEN
140     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
141     THEN
142         FND_MESSAGE.SET_NAME('PA','PA_RESP_ID_REQD');
143         FND_MSG_PUB.add;
144     END IF;
145 
146     RAISE FND_API.G_EXC_ERROR;
147     END IF;
148 
149     OPEN l_resp_csr;
150     FETCH l_resp_csr INTO l_dummy;
151     IF l_resp_csr%NOTFOUND THEN
152        IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
153       FND_MESSAGE.SET_NAME('PA','PA_RESP_ID_INVALID');
154           FND_MSG_PUB.add;
155        END IF;
156        CLOSE l_resp_csr;
157        RAISE FND_API.G_EXC_ERROR;
158     ELSE
159        CLOSE l_resp_csr;
160     END IF;
161 
162   -- Ensure the user id passed is valid
163     IF p_user_id IS NULL or p_user_id =
164        G_PA_MISS_NUM THEN
165     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
166     THEN
167         FND_MESSAGE.SET_NAME('PA','PA_USER_ID_REQD');
168         FND_MSG_PUB.add;
169     END IF;
170 
171     RAISE FND_API.G_EXC_ERROR;
172     END IF;
173 
174 
175     OPEN l_user_csr ;
176     FETCH l_user_csr INTO l_dummy;
177     IF l_user_csr%NOTFOUND THEN
178        IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
179       FND_MESSAGE.SET_NAME('PA','PA_USER_ID_INVALID');
180           FND_MSG_PUB.add;
181        END IF;
182        CLOSE l_user_csr;
183        RAISE FND_API.G_EXC_ERROR;
184     ELSE
185        CLOSE l_user_csr;
186     END IF;
187 
188  -- 07-NOV-97, jwhite ---------------------------------------------------
189 
190 -- Based on the Responsibility, Intialize the Application
191 
192 /* Bug 1940353 Begin-- Commented the following code(cursor Open, Fetch and Close).
193 the newly added parameter p_resp_appl_id is passed to Apps_initialize procedure */
194 
195 /*    OPEN l_resp_appl_csr;
196     FETCH l_resp_appl_csr INTO l_resp_appl_csr_rec;
197     FND_GLOBAL.Apps_Initialize
198         ( user_id           => p_user_id
199           , resp_id             => p_responsibility_id
200           , resp_appl_id    => l_resp_appl_csr_rec.application_id
201         );
202     CLOSE l_resp_appl_csr;
203 */
204 
205         FND_GLOBAL.Apps_Initialize
206                 ( user_id               => p_user_id
207                   , resp_id             => p_responsibility_id
208                   , resp_appl_id        => p_resp_appl_id
209                 );
210 
211 /* Bug 1940353 End */
212 
213         -- 4363092 MOAC Changes, Added code to do MO initialization and set the context to 'S'
214 
215         l_ou_id := p_operating_unit_id;
216 
217         PA_MOAC_UTILS.MO_INIT_SET_CONTEXT
218                 (
219                     p_org_id          => l_ou_id
220                   , p_product_code    => 'PA'
221                   , p_msg_count       => l_msg_count
222                   , p_msg_data        => l_msg_data
223                   , p_return_status   => l_return_status
224                 );
225 
226         IF  l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
227              RAISE FND_API.G_EXC_ERROR ;
228         END IF ;
229 
230         -- 4363092 end
231 
232 /*
233 Changed the call to the procedure Apps_Initalize to get the application Id
234 according to the responsibility and to avoide the hardcoding of the application id
235 FND_GLOBAL.Apps_Initialize
236     (user_id            => p_user_id
237       , resp_id             => p_responsibility_id
238       , resp_appl_id    => 275
239     );
240 */
241 
242 --bug 2471668
243 --Advanced Security model changes
244 --Initialize the global flag G_ADVANCED_PROJ_SEC_FLAG
245   G_ADVANCED_PROJ_SEC_FLAG := p_advanced_proj_sec_flag;
246 --bug 2471668
247 
248 -- Make Sure AMG Licensed
249 /* Commented out the AMG licensing. Please refer bug 2988747 for more info.
250 IF p_calling_mode <> 'PUBLISH'    --bug 2783845
251 THEN
252    IF ( FND_PROFILE.Value('PA_AMG_LICENSED') IS NULL OR
253      FND_PROFILE.Value('PA_AMG_LICENSED')  <> 'Y')
254    THEN
255     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_ERROR)
256     THEN
257         FND_MESSAGE.SET_NAME('PA','PA_AMG_NOT_LICENSED');
258         FND_MSG_PUB.add;
259     END IF;
260 
261     RAISE FND_API.G_EXC_ERROR;
262    END IF;
263 END IF;
264 */ --End bug 2988747
265 
266 -- 11,13-NOV-97, jwhite:
267 -- Set HR Globals for Security Access
268    HR_SECURITY_UTILS.Set_Custom_Schema;
269 -- -----------------------------------------------------------------------------
270 
271 create_amg_mapping_msg;
272 
273 EXCEPTION
274 
275     WHEN FND_API.G_EXC_ERROR
276     THEN
277 
278         p_return_status := FND_API.G_RET_STS_ERROR;
279 
280         FND_MSG_PUB.Count_And_Get
281             (   p_count     =>  p_msg_count ,
282                 p_data      =>  p_msg_data  );
283 
284     WHEN FND_API.G_EXC_UNEXPECTED_ERROR
285     THEN
286     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
287 
288     FND_MSG_PUB.Count_And_Get
289             (   p_count     =>  p_msg_count ,
290                 p_data      =>  p_msg_data  );
291 
292     WHEN OTHERS
293     THEN
294 
295     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296 
297     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
298     THEN
299         FND_MSG_PUB.add_exc_msg
300                 ( p_pkg_name        => G_PKG_NAME
301                 , p_procedure_name  => l_api_name   );
302 
303     END IF;
304 
305     FND_MSG_PUB.Count_And_Get
306             (   p_count     =>  p_msg_count ,
307                 p_data      =>  p_msg_data  );
308 
309 END Set_global_info;
310 
311 PROCEDURE GET_DEFAULTS (p_def_char OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
312             p_def_num OUT NOCOPY  NUMBER, /*Added the nocopy check for 4537865 */
313                         p_def_date OUT NOCOPY DATE, /*Added the nocopy check for 4537865 */
314                         p_return_status OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
315                         p_msg_count     OUT NOCOPY NUMBER, /*Added the nocopy check for 4537865 */
316                         p_msg_data   OUT NOCOPY VARCHAR2  /*Added the nocopy check for 4537865 */
317 ) IS
318 
319 l_api_name              CONSTANT    VARCHAR2(30):= 'Get_Defaults';
320 BEGIN
321 
322     p_return_status := FND_API.G_RET_STS_SUCCESS;
323 
324     p_def_char :=  G_PA_MISS_CHAR;
325     p_def_num  :=  G_PA_MISS_NUM;
326     p_def_date :=  G_PA_MISS_DATE;
327 
328 EXCEPTION
329 
330     WHEN FND_API.G_EXC_ERROR
331     THEN
332 
333         p_return_status := FND_API.G_RET_STS_ERROR;
334 
335 	-- 4537865
336 	p_def_char := NULL ;
337 	p_def_num:= NULL ;
338 	p_def_date := NULL ;
339 
340         FND_MSG_PUB.Count_And_Get
341             (   p_count     =>  p_msg_count ,
342                 p_data      =>  p_msg_data  );
343 
344     WHEN FND_API.G_EXC_UNEXPECTED_ERROR
345     THEN
346     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
347 
348         -- 4537865
349         p_def_char := NULL ;
350         p_def_num:= NULL ;
351         p_def_date := NULL ;
352 
353     FND_MSG_PUB.Count_And_Get
354             (   p_count     =>  p_msg_count ,
355                 p_data      =>  p_msg_data  );
356 
357     WHEN OTHERS
358     THEN
359 
360     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
361 
362         -- 4537865
363         p_def_char := NULL ;
364         p_def_num:= NULL ;
365         p_def_date := NULL ;
366 
367     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
368     THEN
369         FND_MSG_PUB.add_exc_msg
370                 ( p_pkg_name        => G_PKG_NAME
371                 , p_procedure_name  => l_api_name   );
372 
373     END IF;
374 
375     FND_MSG_PUB.Count_And_Get
376             (   p_count     =>  p_msg_count ,
377                 p_data      =>  p_msg_data  );
378 
379 END GET_DEFAULTS;
380 
381 
382 PROCEDURE Get_Accum_Period_Info
383     ( p_api_version_number      IN  NUMBER,
384       p_project_id          IN  NUMBER,
385       p_last_accum_period       OUT NOCOPY    VARCHAR2, /*Added the nocopy check for 4537865 */
386       p_last_accum_start_date   OUT NOCOPY DATE, /*Added the nocopy check for 4537865 */
387       p_last_accum_end_date     OUT NOCOPY DATE, /*Added the nocopy check for 4537865 */
388       p_current_reporting_period    OUT NOCOPY VARCHAR2, /*Added the nocopy check for 4537865 */
389       p_current_period_start_date   OUT NOCOPY  DATE, /*Added the nocopy check for 4537865 */
390       p_current_period_end_date OUT NOCOPY DATE, /*Added the nocopy check for 4537865 */
391           p_return_status       OUT NOCOPY     VARCHAR2, /*Added the nocopy check for 4537865 */
392           p_msg_count           OUT NOCOPY     NUMBER, /*Added the nocopy check for 4537865 */
393           p_msg_data            OUT NOCOPY     VARCHAR2 /*Added the nocopy check for 4537865 */
394 ) IS
395   --
396   -- Cursor to select the previous accumulation period
397   -- for the given project
398   --
399   CURSOR l_proj_csr IS
400     SELECT accum_period
401       FROM pa_project_accum_headers
402      WHERE project_id = p_project_id
403        AND task_id = 0
404        AND resource_list_member_id = 0;
405 
406   l_api_version_number    CONSTANT    NUMBER      :=  1.0;
407   l_api_name              CONSTANT    VARCHAR2(30):= 'Get_Accum_Period_Info';
408   l_prev_accum_period   VARCHAR2(20) := NULL;
409   l_impl_option     VARCHAR2(30);
410   l_current_pa_period   VARCHAR2(20);
411   l_current_gl_period   VARCHAR2(20);
412   l_current_pa_start_date  DATE;
413   l_current_pa_end_date    DATE;
414   l_current_gl_start_date  DATE;
415   l_current_gl_end_date    DATE;
416   l_current_year    NUMBER;
417   l_err_stack       VARCHAR2(630);
418   l_err_stage       VARCHAR2(30);
419   l_err_code        NUMBER;
420 
421 
422 BEGIN
423 
424   IF NOT FND_API.Compatible_API_Call ( l_api_version_number   ,
425                                        p_api_version_number   ,
426                                        l_api_name             ,
427                                        G_PKG_NAME             )  THEN
428     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
429   END IF;
430 
431   p_return_status := FND_API.G_RET_STS_SUCCESS;
432 
433   --
434   -- Get the reporting period type, either 'PA' or 'GL'
435   --
436   PA_ACCUM_UTILS.Get_Impl_Option(
437         x_impl_option   =>  l_impl_option,
438         x_err_stack =>  l_err_stack,
439         x_err_stage =>  l_err_stage,
440         x_err_code  =>  l_err_code );
441 
442 
443   OPEN l_proj_csr;
444   FETCH l_proj_csr INTO l_prev_accum_period;
445 
446   IF (l_proj_csr%NOTFOUND or l_prev_accum_period IS NULL) THEN
447 
448     p_last_accum_period := NULL;
449     p_last_accum_start_date := NULL;
450     p_last_accum_end_date := NULL;
451 
452   ELSE
453 
454     p_last_accum_period := l_prev_accum_period;
455 
456     IF (l_impl_option = 'PA') THEN
457 
458       SELECT pa_start_date, pa_end_date
459         INTO p_last_accum_start_date, p_last_accum_end_date
460         FROM pa_periods_v
461        WHERE period_name = l_prev_accum_period;
462 
463     ELSIF (l_impl_option = 'GL') THEN
464 
465       SELECT distinct gl_start_date, gl_end_date
466         INTO p_last_accum_start_date, p_last_accum_end_date
467         FROM pa_periods_v
468        WHERE gl_period_name = l_prev_accum_period;
469 
470     END IF;
471 
472   END IF;
473 
474   CLOSE l_proj_csr;
475 
476   PA_ACCUM_UTILS.Get_Current_Period_Info (
477         x_current_pa_period =>  l_current_pa_period,
478         x_current_gl_period =>  l_current_gl_period,
479         x_current_pa_start_date =>  l_current_pa_start_date,
480         x_current_pa_end_date   =>  l_current_pa_end_date,
481         x_current_gl_start_date =>  l_current_gl_start_date,
482         x_current_gl_end_date   =>  l_current_gl_end_date,
483         x_current_year      =>  l_current_year,
484         x_err_stack     =>  l_err_stack,
485         x_err_stage     =>  l_err_stage,
486         x_err_code      =>  l_err_code );
487 
488   IF (l_impl_option = 'GL') THEN
489 
490     p_current_reporting_period  := l_current_gl_period;
491     p_current_period_start_date := l_current_gl_start_date;
492     p_current_period_end_date   := l_current_gl_end_date;
493 
494   ELSIF (l_impl_option = 'PA') THEN
495 
496     p_current_reporting_period  := l_current_pa_period;
497     p_current_period_start_date := l_current_pa_start_date;
498     p_current_period_end_date   := l_current_pa_end_date;
499 
500   END IF;
501 
502   -- Standard call to get message count and if count is 1, get message info
503   FND_MSG_PUB.Count_And_Get
504     ( p_count => p_msg_count,
505       p_data  => p_msg_data
506     );
507 
508 EXCEPTION
509 
510   WHEN FND_API.G_EXC_ERROR THEN
511     p_return_status := FND_API.G_RET_STS_ERROR;
512 
513       -- RESET OUT PARAMS : 4537865
514       p_last_accum_period      := NULL ;
515       p_last_accum_start_date  := NULL ;
516       p_last_accum_end_date    := NULL ;
517       p_current_reporting_period := NULL ;
518       p_current_period_start_date   := NULL ;
519       p_current_period_end_date := NULL;
520 
521     FND_MSG_PUB.Count_And_Get (
522          p_count  =>    p_msg_count,
523          p_data   =>    p_msg_data );
524 
525   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
526     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
527 
528       -- RESET OUT PARAMS : 4537865
529       p_last_accum_period      := NULL ;
530       p_last_accum_start_date  := NULL ;
531       p_last_accum_end_date    := NULL ;
532       p_current_reporting_period := NULL ;
533       p_current_period_start_date   := NULL ;
534       p_current_period_end_date := NULL;
535 
536     FND_MSG_PUB.Count_And_Get (
537          p_count  =>    p_msg_count,
538          p_data   =>    p_msg_data );
539 
540   WHEN OTHERS THEN
541     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
542 
543 
544       -- RESET OUT PARAMS : 4537865
545       p_last_accum_period      := NULL ;
546       p_last_accum_start_date  := NULL ;
547       p_last_accum_end_date    := NULL ;
548       p_current_reporting_period := NULL ;
549       p_current_period_start_date   := NULL ;
550       p_current_period_end_date := NULL;
551 
552     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
553 
554       FND_MSG_PUB.add_exc_msg (
555                  p_pkg_name     => G_PKG_NAME,
556          p_procedure_name   => l_api_name   );
557 
558     END IF;
559 
560     FND_MSG_PUB.Count_And_Get (
561          p_count  =>    p_msg_count,
562          p_data   =>    p_msg_data );
563 
564 END Get_Accum_Period_Info;
565 
566 PROCEDURE Get_Release_info (
567      p_current_release           OUT NOCOPY  VARCHAR2, /*Added the nocopy check for 4537865 */
568           p_return_status     OUT NOCOPY  VARCHAR2, /*Added the nocopy check for 4537865 */
569           p_msg_count         OUT NOCOPY  NUMBER, /*Added the nocopy check for 4537865 */
570           p_msg_data          OUT NOCOPY   VARCHAR2  /*Added the nocopy check for 4537865 */
571 ) IS
572 
573 --  This procedure returns information on which Applications Release
574 --  you are running against.
575 --  For example under Rel 10.7 the procedure returns the value
576 --  '10.7.0' and under Rel 11 the procedure returns the value
577 --  '11.0.28' . The release information is returned in the OUT parameter
578 --  p_current_release.
579 
580 l_api_name              CONSTANT    VARCHAR2(30):= 'Get_Release_info';
581 l_rel_name              VARCHAR2(60);
582 l_other                 VARCHAR2(60);
583 l_ret_val               BOOLEAN;
584 
585 BEGIN
586    l_ret_val := FND_RELEASE.get_release
587                             (RELEASE_NAME       => l_rel_name,
588                              OTHER_RELEASE_INFO => l_other);
589 
590    IF l_ret_val THEN
591       p_current_release := l_rel_name;
592    ELSE
593       RAISE FND_API.G_EXC_ERROR;
594    END IF;
595 
596   p_return_status := FND_API.G_RET_STS_SUCCESS;
597 
598 EXCEPTION
599 
600    WHEN FND_API.G_EXC_ERROR
601    THEN
602 
603       p_return_status := FND_API.G_RET_STS_ERROR;
604 
605       -- RESET OUT PARAMS : 4537865
606       p_current_release := NULL ;
607 
608       FND_MSG_PUB.Count_And_Get
609          (   p_count    => p_msg_count ,
610              p_data     => p_msg_data  );
611 
612    WHEN FND_API.G_EXC_UNEXPECTED_ERROR
613    THEN
614    p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
615 
616       -- RESET OUT PARAMS : 4537865
617       p_current_release := NULL ;
618 
619    FND_MSG_PUB.Count_And_Get
620          (   p_count    => p_msg_count ,
621              p_data     => p_msg_data  );
622 
623    WHEN OTHERS
624    THEN
625 
626    p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
627 
628       -- RESET OUT PARAMS : 4537865
629       p_current_release := NULL ;
630 
631    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
632    THEN
633       FND_MSG_PUB.add_exc_msg
634             ( p_pkg_name      => G_PKG_NAME
635             , p_procedure_name   => l_api_name  );
636 
637    END IF;
638 
639    FND_MSG_PUB.Count_And_Get
640          (   p_count    => p_msg_count ,
641              p_data     => p_msg_data  );
642 
643 END Get_Release_info;
644 
645 -------------------------------------------------------------
646 -- Name     :create_amg_mapping_msg
647 -- Type     :PL/SQL Procedure
648 --Description   :This procedure will populate the pl/sql table
649 --              using old message code and new message
650 --                with message context.
651 --
652 -- Called Subprograms:
653 --
654 -- History  :03/17/98   Sakthivel Balasubramanian   Created
655 --
656 -- Message format :   create_amg_mapping_message ()
657 -------------------------------------------------------------
658 PROCEDURE create_amg_mapping_msg
659 IS
660 
661     i           NUMBER := 1;
662 
663 BEGIN
664 
665 --  PAPMPRPB.pls procedure create_project
666 
667     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CUSTOMER_NOT_OVERRIDABLE';
668     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CUST_NOT_OVERRIDABLE_AMG';
669     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
670 
671     i := i + 1;
672     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_DESCRIPTION_NOT_OVERRIDABLE';
673     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_DESC_NOT_OVERRIDABLE_AMG';
674     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
675 
676     i := i + 1;
677     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_GET_CUSTOMER_INFO_FAILED';
678     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_GET_CUST_INFO_FAILED_AMG';
679     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
680 
681     i := i + 1;
682     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NAME_NOT_UNIQUE';
683     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NAME_NOT_UNIQUE_A_AMG';
684     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDP';
685 
686 
687     i := i + 1;
688     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NUM_NOT_UNIQUE';
689     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NUM_NOT_UNIQUE_A_AMG';
690     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDP';
691 
692     i := i+1;
693     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_SOURCE_TEMPLATE_IS_MISSING';
694     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_SOURCE_TEMP_IS_MISSING_AMG';
695     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
696 
697 i := i + 1;
698     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NAME_NOT_UNIQUE';
699     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NAME_NOT_UNIQUE_M_AMG';
700     pa_pm_message_amg_tbl(i).p_msg_context          := 'MODP';
701 
702     i := i + 1;
703     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NUM_NOT_UNIQUE';
704     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NUM_NOT_UNIQUE_M_AMG';
705     pa_pm_message_amg_tbl(i).p_msg_context          := 'MODP';
706 
707     i := i+1;
708     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_INVALID_COMPLETION_DATE';
709     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_INVALID_COMP_DATE_AMG';
710     pa_pm_message_amg_tbl(i).p_msg_context          := 'TASK';
711 
712     i := i+1;
713     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CHANGE_TASK_NUM_OK_FAILED';
714     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CHANGE_TK_NUM_OK_FAIL_AMG';
715     pa_pm_message_amg_tbl(i).p_msg_context          := 'MODT';
716 
717     i := i+1;
718     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CHECK_ADD_SUBTASK_FAILED';
719     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CHECK_ADD_ST_FAILED_AMG';
720     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDT';
721 
722     i := i+1;
723     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CHECK_DEL_PROJECT_FAILED';
724     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CHECK_DEL_PR_FAILED_AMG';
725     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
726 
727     i := i+1;
728     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CHECK_DELETE_TASK_FAILED';
729     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CHECK_DEL_TK_FAILED_AMG';
730     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
731 
732         -- 4096218
733         i := i + 1;
734         pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PS_TASK_HAS_PROG';
735         pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PS_TASK_HAS_PROG_AMG' ;
736         pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
737 
738     i := i+1;
739     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_ROLE_TYPE_NOT_OVERRIDABLE';
740     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_ROLE_TYPE_NOT_OVER_AMG';
741     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
742 
743     i := i+1;
744     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CLASS_CAT_NOT_OVERRIDABLE';
745     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CLASS_CAT_NOT_OVER_AMG';
746     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
747 
748     i := i+1;
749     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TK_OUTSIDE_PROJECT_RANGE';
750     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TK_OUTSIDE_PROJ_RANGE_AMG';
751     pa_pm_message_amg_tbl(i).p_msg_context          := 'TASK';
752 
753     i := i+1;
754     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJECT_REF_AND_ID_MISSING';
755     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_REF_AND_ID_MISSING_AMG';
756     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
757 
758     i := i+1;
759     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TOP_TASK_CHILD_NO_DELETE';
760     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TOP_TK_CHILD_NO_DEL_AMG';
761     pa_pm_message_amg_tbl(i).p_msg_context          := 'TASK';
762 
763     i := i+1;
764     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_INV_IND_RATE_SCH_ID_REQD';
765     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_INV_IND_RT_SCH_ID_REQD_AMG';
766     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
767 
768     i := i+1;
769     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_INVALID_NON_LABOR_SCH_TYPE';
770     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_INV_NON_LAB_SCH_TYPE_AMG';
771     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
772 
773     i := i+1;
774     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NON_LBR_ORG_ID_NOT_VALID';
775     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NON_LBR_ORG_ID_NT_VALID_AMG';
776     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
777 
778     i := i+1;
779     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_REV_IND_RATE_SCH_ID_REQD';
780     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_REV_IND_RT_SCH_ID_REQD_AMG';
781     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
782 
783    i := i+1;
784    pa_pm_message_amg_tbl(i).p_old_message_code  := 'PA_PARENT_COMPLETION_EARLIER';
785    pa_pm_message_amg_tbl(i).p_new_message_code  := 'PA_PARENT_COMPL_EARLIER_AMG';
786    pa_pm_message_amg_tbl(i).p_msg_context          := 'TASK';
787 
788     i := i+1;
789     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_RESOURCE_LIST_IS_MISSING';
790     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_RES_LIST_IS_MISSING_AMG';
791     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
792 
793     i := i+1;
794     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BUGDET_LINE_INDEX_MISSING';
795     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BUGD_LINE_INDEX_MISS_AMG';
796     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
797 
798     i := i+1;
799     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BUDGET_PERIOD_IS_INVALID';
800     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BUDGET_PERIOD_IS_INV_AMG';
801     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
802 
803     i := i+1;
804     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_CALC_BURDENED_COST_FAILED';
805     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_CALC_BURD_COST_FAILED_AMG';
806     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
807 
808     i := i+1;
809     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_GET_DRAFT_VERSION_FAILED';
810     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_GET_DRAFT_VER_FAILED_AMG';
811     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
812 
813     i := i+1;
814     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BUDGET_LINE_ALREADY_EXISTS';
815     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BUD_LINE_ALREADY_EXISTS_AMG';
816     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
817 
818     i := i+1;
819     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TASK_IS_NOT_TOP_OR_LOWEST';
820     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TASK_IS_NOT_TOP_OR_LOW_AMG';
821     pa_pm_message_amg_tbl(i).p_msg_context          := 'TASK';
822 
823 -- lower level API's
824 
825     i := i + 1;
826     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NAME_NOT_UNIQUE';
827     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NAME_NOT_UNIQUE_AMG';
828     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
829 
830     i := i + 1; /***Added for 3650505**/
831     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_INVALID_CLASS_CATEGORY';
832     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_INVALID_CLASS_CATEGORY_AMG';
833     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
834 
835     /**changed ended for 3650505**/
836 
837     i := i + 1;
838     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_EPR_PROJ_NUM_NOT_UNIQUE';
839     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NUM_NOT_UNIQUE_AMG';
840     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
841 
842     i := i+1;
843     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BU_AMT_ALLOC_LT_AMT_ACCRUED';
844     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BU_AMT_ALLOC_LT_ACCR_AMG';
845     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
846 
847     i := i+1;
848     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BU_UNBALANCED_PROJ_BUDGET';
849     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BU_UNBAL_PROJ_BUDG_AMG';
850     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
851 
852     i := i+1;
853     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_BU_UNBALANCED_TASK_BUDGET';
854     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_BU_UNBAL_TASK_BUDG_AMG';
855     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
856 
857     i := i+1;
858     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TASK_FUND_NO_PROJ_EVENTS';
859     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TASK_FUND_NO_PROJ_EVT_AMG';
860     pa_pm_message_amg_tbl(i).p_msg_context          := 'BUDG';
861 
862     i := i+1;
863     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_TASK_ID';
864     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_TASK_ID_D_AMG';
865     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
866 
867     i := i+1;
868     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TASK_BURDEN_SUM_DEST';
869     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TASK_BURDEN_SUM_DEST_D_AMG';
870     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
871 
872     i := i+1;
873     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_AP_INV_EXIST';
874     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_AP_INV_EXIST_D_AMG';
875     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
876 
877     i := i+1;
878     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_BUDGET_EXIST';
879     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_BUDGET_EXIST_D_AMG';
880     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
881 
882     i := i+1;
883     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_CMT_TXN_EXIST';
884     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_CMT_TXN_EXIST_D_AMG';
885     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
886 
887     i := i+1;
888     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_COMP_RULE_SET_EXIST';
889     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_RULE_SET_EXIST_D_AMG';
890     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
891 
892     i := i+1;
893     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_EVENT_EXIST';
894     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_EVENT_EXIST_D_AMG';
895     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
896 
897     i := i+1;
898     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_EXP_ITEM_EXIST';
899     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_EXP_ITEM_EXIST_D_AMG';
900     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
901 
902     i := i+1;
903     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_FUND_EXIST';
904     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_FUND_EXIST_D_AMG';
905     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
906 
907     i := i+1;
908     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_PO_DIST_EXIST';
909     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_PO_DIST_EXIST_D_AMG';
910     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
911 
912     i := i+1;
913     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_PO_REQ_DIST_EXIST';
914     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_PO_REQ_DIST_EXIST_D_AMG';
915     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
916 
917     i := i+1;
918     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_TASK_ID';
919     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_TASK_ID_ST_AMG';
920     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
921 
922     i := i+1;
923     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_TOP_TASK_ID';
924     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_TOP_TASK_ID_ST_AMG';
925     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
926 
927     i := i+1;
928     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_BURDEN_SUM_DEST';
929     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_BURDEN_SUM_DEST_ST_AMG';
930     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
931 
932     i := i+1;
933     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_ASSET_ASSIGNMT_EXIST';
934     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_ASSETASSIG_EXIST_ST_AMG';
935     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
936 
937     i := i+1;
938     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_BUDGET_EXIST';
939     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_BUDGET_EXIST_ST_AMG';
940     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
941 
942     i := i+1;
943     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_BURDEN_SCH_OVRIDE_EXIST';
944     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_BUR_SCHOVR_EXIST_ST_AMG';
945     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
946 
947     i := i+1;
948     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_JOB_BILL_RATE_O_EXIST';
949     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_JBILL_RATE_EXIST_ST_AMG';
950     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
951 
952     i := i+1;
953     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_LABOR_MULTIPLIER_EXIST';
954     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_LAB_MULT_EXIST_ST_AMG';
955     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
956 
957     i := i+1;
958     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_NL_BILL_RATE_O_EXIST';
959     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_NLBIL_RAT_EXIST_ST_AMG';
960     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
961 
962     i := i+1;
963     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_PCT_COMPL_EXIST';
964     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_PCT_COMPL_EXIST_ST_AMG';
965     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
966 
967    i := i+1;
968    pa_pm_message_amg_tbl(i).p_old_message_code  := 'PA_TSK_PCT_COMPL_EXIST';
969    pa_pm_message_amg_tbl(i).p_new_message_code  := 'PA_TSK_PCT_COMPL_EXIST_D_AMG';
970    pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
971 
972     i := i+1;
973     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_TXN_CONST_EXIST';
974     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_TXN_CONST_EXIST_ST_AMG';
975     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
976 
977     i := i+1;
978     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_JOB_BILL_TITLE_O_EXIST';
979     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_JBILLTITLE_EXIST_ST_AMG';
980     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
981 
982     i := i+1;
983     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_JOB_ASSIGNMENT_O_EXIST';
984     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_JOBASSIG_O_EXIST_ST_AMG';
985     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
986 
987     i := i+1;
988     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_EXP_ITEM_EXIST';
989     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_EXP_ITEM_EXIST_ST_AMG';
990     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
991 
992     i := i+1;
993     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_PO_DIST_EXIST';
994     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_PO_DIST_EXIST_ST_AMG';
995     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
996 
997     i := i+1;
998     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_PO_REQ_DIST_EXIST';
999     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_PO_REQDIST_EXIST_ST_AMG';
1000     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1001 
1002     i := i+1;
1003     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_AP_INV_EXIST';
1004     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_AP_INV_EXIST_ST_AMG';
1005     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1006 
1007     i := i+1;
1008     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_AP_INV_DIST_EXIST';
1009     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_APINV_DIST_EXIST_ST_AMG';
1010     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1011 
1012     i := i+1;
1013     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_PROJ_ID';
1014     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_PROJ_ID_D_AMG';
1015     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1016 
1017     i := i+1;
1018     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_AP_INV_DIST_EXIST';
1019     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_INV_DIST_EXIST_D_AMG';
1020     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1021 
1022     i := i+1;
1023     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_AP_INV_EXIST';
1024     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_AP_INV_EXIST_D_AMG';
1025     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1026 
1027     i := i+1;
1028     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_BUDGET_EXIST';
1029     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_BUDGET_EXIST_D_AMG';
1030     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1031 
1032     i := i+1;
1033     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_BURDEN_SUM_DEST';
1034     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_BURDEN_SUM_DEST_D_AMG';
1035     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1036 
1037     i := i+1;
1038     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_CMT_TXN_EXIST';
1039     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_CMT_TXN_EXIST_D_AMG';
1040     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1041 
1042     i := i+1;
1043     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_COMP_RULE_SET_EXIST';
1044     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_COM_RUL_SET_EXIST_D_AMG';
1045     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1046 
1047     i := i+1;
1048     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_CREATED_REF_EXIST';
1049     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_CREATED_REF_EXIST_D_AMG';
1050     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1051 
1052     i := i+1;
1053     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_EVENT_EXIST';
1054     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_EVENT_EXIST_D_AMG';
1055     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1056 
1057 i := i+1;
1058     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_EXP_ITEM_EXIST';
1059     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_EXP_ITEM_EXIST_D_AMG';
1060     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1061 
1062 i := i+1;
1063     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_FUND_EXIST';
1064     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_FUND_EXIST_D_AMG';
1065     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1066 
1067 i := i+1;
1068     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_IN_USE_EXTERNAL';
1069     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_IN_USE_EXTERNAL_D_AMG';
1070     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1071 
1072 i := i+1;
1073     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_PO_DIST_EXIST';
1074     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_PO_DIST_EXIST_D_AMG';
1075     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1076 
1077 i := i+1;
1078     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_PO_REQ_DIST_EXIST';
1079     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_PORDIST_EXIST_D_AMG';
1080     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELP';
1081 
1082 i := i+1;
1083     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TASK_IN_USE_EXTERNAL';
1084     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TASK_IN_USE_EXTERNAL_D_AMG';
1085     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
1086 
1087 i := i+1;
1088     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_AP_INV_DIST_EXIST';
1089     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_AP_INV_DIST_EXIST_D_AMG';
1090     pa_pm_message_amg_tbl(i).p_msg_context          := 'DELT';
1091 
1092 i := i+1;
1093     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TASK_BURDEN_SUM_DEST';
1094     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TASK_BURDEN_SUM_ST_AMG';
1095     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1096 
1097 i := i+1;
1098     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_EMP_BILL_RATE_O_EXIST';
1099     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_EBILLRATE_EXIST_ST_AMG';
1100     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1101 
1102 i := i+1;
1103     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_LABOR_COST_MUL_EXIST';
1104     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_LCOST_MUL_EXIST_ST_AMG';
1105     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1106 
1107 i := i+1;
1108     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_TXN_CONT_EXIST';
1109     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_TXN_CONT_EXIST_ST_AMG';
1110     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1111 
1112 /* Added this part of code as fix for bug 1538208 */
1113 /* start of fix */
1114 i := i+1;
1115     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_TSK_CC_PROJ_EXIST';
1116     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_TSK_CC_PROJ_ST_EXIST_AMG';
1117     pa_pm_message_amg_tbl(i).p_msg_context          := 'ADDST';
1118 /* End of fix */
1119 i := i+1;
1120     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_ORIG_PROJ_ID';
1121     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_ORIG_PROJ_ID_AMG';
1122     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1123 
1124 i := i+1;
1125     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_NO_PROJ_CREATED';
1126     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_NO_PROJ_CREATED_AMG';
1127     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1128 
1129 i := i+1;
1130     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_NO_PROJ_NAME';
1131     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NO_PROJ_NAME_AMG';
1132     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1133 
1134 i := i+1;
1135     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_NO_PROJ_NUM';
1136     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_NO_PROJ_NUM_AMG';
1137     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1138 
1139 i := i+1;
1140     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PR_START_DATE_NEEDED';
1141     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_START_DATE_NEEDED_AMG';
1142     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1143 
1144 i := i+1;
1145     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJ_ORG_NOT_ACTIVE';
1146     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PROJ_ORG_NOT_ACTIVE_AMG';
1147     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1148 
1149 i := i+1;
1150     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_SU_INVALID_DATES';
1151     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_SU_INVALID_DATES_AMG';
1152     pa_pm_message_amg_tbl(i).p_msg_context          := 'PROJ';
1153 
1154 i := i+1;
1155     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_FUNCTION_SECURITY_ENFORCED';
1156     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_FUNC_SECURITY_ENFORCED_AMG';
1157     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
1158 
1159 i := i+1;
1160     pa_pm_message_amg_tbl(i).p_old_message_code     := 'PA_PROJECT_SECURITY_ENFORCED';
1161     pa_pm_message_amg_tbl(i).p_new_message_code     := 'PA_PR_SECURITY_ENFORCED_AMG';
1162     pa_pm_message_amg_tbl(i).p_msg_context          := 'GENERAL';
1163 
1164     RETURN;
1165 
1166 END create_amg_mapping_msg;
1167 
1168 -----------------------------------------------------------
1169 -- Name     :Get_new_message_code
1170 -- Type     :PL/SQL Procedure
1171 --Description   :This objective of this API is to get new
1172 --              message code mapped with old message code
1173 --                and message context.
1174 --
1175 -- Called Subprograms:
1176 --
1177 -- History  :03/17/98   Sakthivel Balasubramanian   Created
1178 --
1179 -- Message format : get_new_message_code()
1180 -----------------------------------------------------------
1181 
1182 FUNCTION get_new_message_code
1183 ( p_message_code        IN  VARCHAR2    :=FND_API.G_FALSE
1184  ,p_msg_context    IN   VARCHAR2    := FND_API.G_FALSE
1185 ) RETURN VARCHAR2
1186 IS
1187     p_new_message_code  VARCHAR2(50);
1188     i                       NUMBER  :=1;
1189     tot_num_record         NUMBER   :=0;
1190 BEGIN
1191 
1192     IF pa_pm_message_amg_tbl.EXISTS(1) THEN
1193       tot_num_record    := pa_pm_message_amg_tbl.COUNT;
1194     END IF;
1195 
1196    FOR i  IN 1.. tot_num_record
1197    LOOP
1198 
1199         IF pa_pm_message_amg_tbl(i).p_old_message_code = p_message_code
1200         AND pa_pm_message_amg_tbl(i).p_msg_context = p_msg_context
1201         THEN
1202            p_new_message_code := pa_pm_message_amg_tbl(i).p_new_message_code;
1203            exit;
1204         END IF;
1205 
1206    END LOOP;
1207 
1208    IF p_new_message_code IS NULL
1209    THEN
1210       --FND_MESSAGE.SET_NAME('PA','PA_PR_NO_NEW_MESSAGE_CODE');
1211 /*  We just need to return the message. map_new_amg_msg will add this message to stack
1212     Dicussed with Sakthi.
1213       FND_MESSAGE.SET_NAME('PA', p_message_code);
1214       FND_MSG_PUB.add;
1215       APP_EXCEPTION.RAISE_EXCEPTION;
1216 */
1217       RETURN p_message_code;
1218    ELSE
1219        RETURN (p_new_message_code);
1220    END IF;
1221 
1222 END get_new_message_code;
1223 
1224 ------------------------------------------------------------------
1225 -- Name     :map_new_amg_msg
1226 -- Type     :PL/SQL Procedure
1227 -- Description  :This procedure will map old message with pl/sql
1228 --              table and display new meaningful
1229 --                message to user.
1230 --
1231 -- Called Subprograms:
1232 --
1233 -- History  :03/17/98   Sakthivel Balasubramanian   Created
1234 --
1235 -- Message format :
1236 --map_new_amg_msg ( 'Message_Code','CHANGE/SPLIT', 'Y/N',
1237 --                  'GENERAL/ADDP/MODP/DELP/PROJ/ADDB/MODB/DELB/BUDG/
1238 --                  ADDT/MODT/DELT/TASK/ADDST/MODST/DELST',
1239 --                  '','','','','');
1240 ------------------------------------------------------------------
1241 
1242 PROCEDURE map_new_amg_msg
1243 ( p_old_message_code        IN  VARCHAR2    :=FND_API.G_FALSE
1244  ,p_msg_attribute           IN  VARCHAR2    := FND_API.G_FALSE
1245  ,p_resize_flag         IN  VARCHAR2    := FND_API.G_FALSE
1246  ,p_msg_context         IN  VARCHAR2    := FND_API.G_FALSE
1247  ,p_attribute1          IN  VARCHAR2    := FND_API.G_FALSE
1248  ,p_attribute2          IN  VARCHAR2    := FND_API.G_FALSE
1249  ,p_attribute3          IN  VARCHAR2    := FND_API.G_FALSE
1250  ,p_attribute4          IN  VARCHAR2    := FND_API.G_FALSE
1251  ,p_attribute5          IN  VARCHAR2    := FND_API.G_FALSE
1252 )
1253 IS
1254     p_new_message_code  VARCHAR2(50);
1255     i                       BINARY_INTEGER  := 1000;
1256   l_msg_count_index              NUMBER;
1257   l_msg_count                    NUMBER;
1258   l_data                         VARCHAR2(2000);
1259 BEGIN
1260 
1261 --  p_old_message_code is mandatory
1262   --Added below if condition for bug 4762153
1263   IF p_msg_attribute = 'NOCHANGE'
1264    THEN
1265 	   p_new_message_code := p_old_message_code;
1266   END IF;
1267   IF p_msg_attribute = 'CHANGE' AND p_resize_flag = 'N'
1268    THEN
1269        p_new_message_code := p_old_message_code || '_AMG';
1270    ELSIF p_msg_attribute = 'CHANGE' AND p_resize_flag = 'Y'
1271    THEN
1272 --get the new error message code associated to the old
1273 --message code and p_msg_context
1274       p_new_message_code := get_new_message_code(p_old_message_code,
1275                             p_msg_context);
1276    ELSIF p_msg_attribute = 'SPLIT' AND p_resize_flag = 'Y'
1277    THEN
1278 --get the new error message code associated to the old
1279 --message code and p_msg_context
1280       p_new_message_code := get_new_message_code(p_old_message_code,
1281                             p_msg_context);
1282    ELSIF p_msg_attribute = 'SPLIT' AND p_resize_flag = 'N'
1283    THEN
1284         IF p_msg_context in ('ADDP','ADDB','ADDT')
1285         THEN
1286             p_new_message_code := p_old_message_code || '_A'||'_AMG';
1287        ELSIF p_msg_context in ('MODP','MODB','MODT')
1288         THEN
1289             p_new_message_code := p_old_message_code || '_M'||'_AMG';
1290        ELSIF p_msg_context in ('DELP','DELB','DELT')
1291         THEN
1292             p_new_message_code := p_old_message_code || '_D'||'_AMG';
1293        ELSIF p_msg_context in ('ADDST','MODST','DELST')
1294         THEN
1295              IF p_msg_context = 'ADDST'
1296              THEN
1297                p_new_message_code := p_old_message_code || '_ST'||'_AMG';
1298            ELSIF p_msg_context = 'MODST'
1299              THEN
1300                p_new_message_code := p_old_message_code || '_MT'||'_AMG';
1301            ELSIF p_msg_context = 'DELST'
1302            THEN
1303                p_new_message_code := p_old_message_code || '_DT'||'_AMG';
1304            END IF;
1305        END IF;
1306    END IF;
1307 
1308    FND_MESSAGE.SET_NAME('PA',p_new_message_code);
1309 
1310    -- <Bug#2840688>
1311    IF (p_new_message_code <> p_old_message_code)
1312    THEN
1313    -- <Bug#2840688>
1314 
1315     -- ***********START MODIFICATIONS FOR THE AGREEMENT AND FUNDING AMG API's
1316 
1317       IF p_msg_context in ('AGREEMENT')
1318       THEN
1319               FND_MESSAGE.SET_TOKEN('AGREEMENT',  p_attribute1);
1320       -- p_attribute1 = agreement_reference
1321       END IF;
1322 
1323       IF p_msg_context in ('FUNDING')
1324       THEN
1325               FND_MESSAGE.SET_TOKEN('FUNDING',  p_attribute2);
1326       -- p_attribute2 = funding_reference
1327       END IF;
1328 
1329       -- **********END MODIFICATIONS FOR THE AGREEMENT AND FUNDING AMG API's
1330 
1331     -- ***********START MODIFICATIONS FOR THE EVENT AMG API's
1332       IF p_msg_context in ('EVENT')
1333       THEN
1334               FND_MESSAGE.SET_TOKEN('EVENT',  p_attribute1);
1335       END IF;
1336 
1337       -- **********END MODIFICATIONS FOR THE EVENT AMG API's
1338       /* Added EVENT check for bug#3009144 */
1339       IF p_msg_context not in ('GENERAL','AGREEMENT','FUNDING','EVENT')
1340       THEN
1341        FND_MESSAGE.SET_TOKEN('PROJECT',  p_attribute1);
1342    -- p_attribute1 = project_id
1343       END IF;
1344 
1345     IF p_msg_context in ('ADDT','MODT','DELT','TASK',
1346                            'ADDST','MODST','DELST')
1347     THEN
1348        FND_MESSAGE.SET_TOKEN('TASK',  p_attribute2);
1349    -- p_attribute2 = task_id
1350     ELSIF p_msg_context in ('ADDB','MODB','DELB','BUDG')
1351     THEN
1352         FND_MESSAGE.SET_TOKEN('TASK',  p_attribute2);
1353    -- p_attribute2 = task_id
1354         FND_MESSAGE.SET_TOKEN('BUDGET_TYPE',  p_attribute3);
1355    -- p_attribute3 = budget_type
1356         FND_MESSAGE.SET_TOKEN('SOURCE_NAME',  p_attribute4);
1357    -- p_attribute4 = resource_name
1358         FND_MESSAGE.SET_TOKEN('START_DATE',  p_attribute5);
1359    -- p_attribute5 = start_date
1360     END IF;
1361 
1362       END IF; --<Bug#2840688/>
1363    FND_MSG_PUB.add;
1364     RETURN;
1365 
1366 END map_new_amg_msg;
1367 
1368 ------------------------------------------------------------------
1369 -- Name     :get_task_number_amg
1370 -- Type     :PL/SQL Procedure
1371 -- Description  :This function will get task number to calling
1372 --              procedure.
1373 --
1374 -- Called Subprograms:
1375 --
1376 -- History  :03/17/98   Sakthivel Balasubramanian   Created
1377 --
1378 -- Message format :
1379 --
1380 --get_task_number_amg ( task_number, task_reference, task_id);
1381 --
1382 ------------------------------------------------------------------
1383 
1384 FUNCTION get_task_number_amg
1385 ( p_task_number         IN VARCHAR2 := FND_API.G_MISS_CHAR
1386  ,p_task_reference      IN  VARCHAR2    := FND_API.G_MISS_CHAR
1387  ,p_task_id               IN    VARCHAR2    := FND_API.G_MISS_CHAR
1388 )
1389 RETURN VARCHAR2 IS
1390 
1391     p_result_task_number        VARCHAR2(50);
1392     p_result_task_name          VARCHAR2(20);
1393     p_result_task_reference         VARCHAR2(25);
1394    CURSOR   l_amg_task_csr
1395       (p_pa_task_id pa_tasks.task_id%type)
1396    IS
1397    SELECT   task_name,
1398             pm_task_reference
1399    FROM     pa_tasks p
1400    WHERE p.task_id = p_pa_task_id;
1401 
1402 BEGIN
1403 
1404     p_result_task_number := NULL;
1405 
1406     IF p_task_number IS NOT NULL and p_task_reference IS NOT NULL
1407     THEN
1408        p_result_task_number	:= substrb(p_task_number,1,20)||'-'||p_task_reference; --Bug 5733285. Added substrb
1409     ELSIF  p_task_id IS NOT NULL AND p_task_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM -- Bug 6518944
1410     THEN
1411      OPEN l_amg_task_csr( p_task_id );
1412      FETCH l_amg_task_csr INTO p_result_task_name, p_result_task_reference;
1413      CLOSE l_amg_task_csr;
1414        p_result_task_number := p_result_task_name||'-'||p_result_task_reference;
1415     END IF;
1416 
1417      RETURN(p_result_task_number);
1418 
1419 END get_task_number_amg;
1420 
1421 END PA_INTERFACE_UTILS_PUB;