DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_FORECAST_GLOBAL

Source


1 PACKAGE BODY PA_FORECAST_GLOBAL AS
2 /* $Header: PARFGGBB.pls 120.1 2005/08/19 16:51:30 mwasowic noship $ */
3 
4   P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
5 
6 PROCEDURE Initialize_Global(
7                                 x_msg_count     OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
8                                 x_msg_data      OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
9                                 x_ret_status IN OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
10   IS
11     l_temp_str     VARCHAR2(100);
12     l_msg_count    NUMBER := 0;
13   BEGIN
14     PA_DEBUG.Set_Curr_Function( p_function   => 'Initialize Global');
15     IF P_PA_DEBUG_MODE = 'Y' THEN
16             PA_DEBUG.g_err_stage := '50 : Entering PA_FORECAST_GLOBAL.Initialize_Global';
17             PA_DEBUG.Log_Message(p_message => PA_DEBUG.g_err_stage);
18     END IF;
19 
20  /* Initialize the error stack */
21     FND_MSG_PUB.initialize;
22     /*
23      * Populate the Global record for the WHO columns.
24      */
25 
26     G_who_columns.G_last_updated_by   := FND_GLOBAL.USER_ID;
27     G_who_columns.G_created_by        := FND_GLOBAL.USER_ID;
28     G_who_columns.G_creation_date     := SYSDATE;
29     G_who_columns.G_last_update_date  := G_who_columns.G_creation_date;
30     G_who_columns.G_last_update_login      := FND_GLOBAL.LOGIN_ID;
31     G_who_columns.G_program_application_id := FND_GLOBAL.PROG_APPL_ID;
32     G_who_columns.G_request_id := FND_GLOBAL.CONC_REQUEST_ID;
33     G_who_columns.G_program_id := FND_GLOBAL.CONC_PROGRAM_ID;
34 
35     IF P_PA_DEBUG_MODE = 'Y' THEN
36             PA_DEBUG.g_err_stage := '100 : Before Accessing FND_PROFILE values';
37             PA_DEBUG.Log_Message(p_message => PA_DEBUG.g_err_stage);
38     END IF;
39     x_msg_count  := 0;
40     x_ret_status := FND_API.G_RET_STS_SUCCESS;
41     IF  PA_FORECAST_GLOBAL.G_fcst_global_flag = 'Y' THEN
42       PA_DEBUG.Reset_Curr_Function;
43       RETURN;
44     END IF;
45 
46     PA_FORECAST_GLOBAL.G_fcst_proceed_flag := 'Y';
47 
48 
49     IF (FND_PROFILE.VALUE('PA_FORECAST_RESOURCE_LIST')) IS NOT NULL THEN
50       G_implementation_details.G_fcst_res_list := FND_PROFILE.VALUE('PA_FORECAST_RESOURCE_LIST');
51     ELSE
52       x_ret_status := FND_API.G_RET_STS_ERROR;
53       PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA',
54                             p_msg_name       => 'PA_FCST_NO_RES_LIST');
55       PA_FORECAST_GLOBAL.G_fcst_proceed_flag := 'N';
56       x_msg_count := x_msg_count + 1;
57     END IF;
58 
59     IF (FND_PROFILE.VALUE('PA_FORECASTING_PERIOD_TYPE')) IS NOT NULL THEN
60       G_implementation_details.G_fcst_period_type := FND_PROFILE.VALUE('PA_FORECASTING_PERIOD_TYPE');
61     ELSE
62       x_ret_status := FND_API.G_RET_STS_ERROR;
63       PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA',
64                             p_msg_name       => 'PA_FCST_NO_PD_TYPE');
65       PA_FORECAST_GLOBAL.G_fcst_proceed_flag := 'N';
66       x_msg_count := x_msg_count + 1;
67     END IF;
68 
69     IF G_implementation_details.G_fcst_period_type = 'PA' THEN
70        l_temp_str :=  'PA_FORECAST_DEF_BEM_PA';
71     ELSIF G_implementation_details.G_fcst_period_type = 'GL' THEN
72        l_temp_str :=  'PA_FORECAST_DEF_BEM_GL';
73     END IF;
74 
75       IF FND_PROFILE.VALUE(l_temp_str) IS NOT NULL THEN
76         G_implementation_details.G_fcst_def_bem := FND_PROFILE.VALUE(l_temp_str);
77       ELSE
78         x_ret_status := FND_API.G_RET_STS_ERROR;
79         PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA',
80                             p_msg_name       => 'PA_FCST_NO_BEM');
81         PA_FORECAST_GLOBAL.G_fcst_proceed_flag := 'N';
82         x_msg_count := x_msg_count + 1;
83       END IF;
84 
85     IF P_PA_DEBUG_MODE = 'Y' THEN
86             PA_DEBUG.g_err_stage := '150 : After Accessing FND_PROFILE values';
87             PA_DEBUG.Log_Message(p_message => PA_DEBUG.g_err_stage);
88     END IF;
89 
90 
91     BEGIN
92       SELECT JOB_COST_RATE_SCHEDULE_ID INTO  G_implementation_details.G_fcst_cost_rate_sch_id
93                  FROM PA_FORECASTING_OPTIONS
94         WHERE JOB_COST_RATE_SCHEDULE_ID IS NOT NULL;
95     EXCEPTION
96       WHEN NO_DATA_FOUND THEN
97       x_ret_status := FND_API.G_RET_STS_ERROR;
98       PA_UTILS.ADD_MESSAGE( p_app_short_name => 'PA',
99                             p_msg_name       => 'PA_FCST_NO_JOB_SCH_ID');
100       PA_FORECAST_GLOBAL.G_fcst_proceed_flag := 'N';
101       x_msg_count := x_msg_count + 1;
102       PA_DEBUG.Reset_Curr_Function;
103       RETURN;
104     END;
105 
106     IF P_PA_DEBUG_MODE = 'Y' THEN
107             PA_DEBUG.g_err_stage := '250 : After Selecting from PA_FORECASTING_OPTIONS';
108             PA_DEBUG.Log_Message(p_message => PA_DEBUG.g_err_stage);
109     END IF;
110 
111     IF x_msg_count = 0 THEN
112       PA_FORECAST_GLOBAL.G_fcst_global_flag  := 'Y';
113     END IF;
114 
115     IF P_PA_DEBUG_MODE = 'Y' THEN
116            PA_DEBUG.g_err_stage := '300 : Exiting PA_FORECAST_GLOBAL';
117            PA_DEBUG.Log_Message(p_message => PA_DEBUG.g_err_stage);
118     END IF;
119     PA_DEBUG.Reset_Curr_Function;
120   EXCEPTION
121     WHEN OTHERS THEN
122       x_ret_status := FND_API.G_RET_STS_UNEXP_ERROR;
123       RAISE;
124   END Initialize_Global;
125 
126 END PA_FORECAST_GLOBAL;