[Home] [Help]
PACKAGE BODY: APPS.PA_R_PROJECT_RESOURCES_PUB
Source
1 PACKAGE BODY PA_R_PROJECT_RESOURCES_PUB
2 -- $Header: PARCPRPB.pls 120.3.12010000.2 2008/11/16 17:50:58 kjai ship $
3 AS
4
5 G_PKG_NAME VARCHAR2(30) := 'PA_R_PROJECT_RESOURCES_PUB';
6
7 P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
8
9 PROCEDURE CREATE_RESOURCE(
10 P_API_VERSION IN NUMBER,
11 P_INIT_MSG_LIST IN VARCHAR2 DEFAULT NULL,
12 P_COMMIT IN VARCHAR2 DEFAULT NULL,
13 P_VALIDATE_ONLY IN VARCHAR2 DEFAULT NULL,
14 P_MAX_MSG_COUNT IN NUMBER DEFAULT NULL,
15 P_INTERNAL IN VARCHAR2 DEFAULT 'Y',
16 P_PERSON_ID IN PA_RESOURCE_TXN_ATTRIBUTES.PERSON_ID%TYPE DEFAULT NULL,
17 P_INDIVIDUAL IN VARCHAR2 DEFAULT 'N',
18 P_CHECK_RESOURCE IN VARCHAR2 DEFAULT 'N',
19 P_SCHEDULED_MEMBER_FLAG IN VARCHAR2 DEFAULT 'Y',
20 P_RESOURCE_TYPE IN JTF_RS_RESOURCE_EXTNS.CATEGORY%TYPE DEFAULT NULL,
21 P_PARTY_ID IN PA_RESOURCE_TXN_ATTRIBUTES.PARTY_ID%TYPE DEFAULT NULL,
22 P_FROM_EMP_NUM IN VARCHAR2 DEFAULT NULL,
23 P_TO_EMP_NUM IN VARCHAR2 DEFAULT NULL,
24 P_ORGANIZATION_ID IN NUMBER DEFAULT NULL,
25 P_REFRESH IN VARCHAR2 DEFAULT 'Y',
26 P_PULL_TERM_RES IN VARCHAR2 DEFAULT 'N',
27 P_TERM_RANGE_DATE IN DATE DEFAULT NULL,
28 P_PERSON_TYPE IN VARCHAR2 DEFAULT 'ALL',
29 P_START_DATE IN DATE DEFAULT NULL, -- Bug 5337454
30 -- Added parameters for PJR Resource Pull Enhancements - Bug 5130414
31 P_SELECTION_OPTION IN VARCHAR2 DEFAULT NULL,
32 P_ORG_STR_VERSION_ID IN NUMBER DEFAULT NULL,
33 P_START_ORGANIZATION_ID IN NUMBER DEFAULT NULL,
34 -- End of parameters added for PJR Resource Pull Enhancements - Bug 5130414
35 X_RETURN_STATUS OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
36 X_MSG_COUNT OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
37 X_MSG_DATA OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
38 X_RESOURCE_ID OUT NOCOPY PA_RESOURCES.RESOURCE_ID%TYPE) --File.Sql.39 bug 4440895
39 IS
40 L_API_VERSION CONSTANT NUMBER := 1.0;
41 L_API_NAME CONSTANT VARCHAR2(30) := 'CREATE_RESOURCE';
42 L_INTERNAL VARCHAR2(1) := P_INTERNAL;
43 L_PERSON_ID NUMBER := P_PERSON_ID;
44 L_INDIVIDUAL VARCHAR2(1) := P_INDIVIDUAL ;
45 L_RESOURCE_TYPE JTF_RS_RESOURCE_EXTNS.CATEGORY%TYPE := P_RESOURCE_TYPE;
46 L_INIT_MSG_LIST VARCHAR2(10) := P_INIT_MSG_LIST;
47 L_COMMIT VARCHAR2(10) := P_COMMIT;
48 L_VALIDATE_ONLY VARCHAR2(10) := P_VALIDATE_ONLY;
49 L_MAX_MSG_COUNT NUMBER := P_MAX_MSG_COUNT;
50 l_msg_index_out NUMBER;
51 l_msg_count NUMBER;
52 l_msg_data VARCHAR2(2000);
53 l_data VARCHAR2(2000);
54 l_return_status VARCHAR2(1);
55
56 l_debug_mode VARCHAR2(20) := 'N';
57
58 BEGIN
59
60 --For bug 4345198
61 IF p_debug_mode = 'Y' THEN
62 -- Initialize the Error Stack
63 PA_DEBUG.init_err_stack('PA_R_PROJECT_RESOURCES_PUB.Create_Resource');
64 END IF;
65
66 -- only for the concurrent program (l_individual = N)
67 -- that we check for the debug mode
68 -- if not, just leave the default value as N for individual pull
69 IF (l_individual = 'N') THEN
70 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
71 l_debug_mode := NVL(l_debug_mode, 'N');
72 END IF;
73
74 IF p_debug_mode = 'Y' THEN --For bug 4345198
75 pa_debug.set_process('PLSQL','LOG',l_debug_mode);
76 END IF;
77
78 IF P_INIT_MSG_LIST IS NULL THEN
79 L_INIT_MSG_LIST := FND_API.G_FALSE;
80 END IF;
81
82 IF P_COMMIT IS NULL THEN
83 L_COMMIT := FND_API.G_TRUE;
84 END IF;
85
86 IF P_VALIDATE_ONLY IS NULL THEN
87 L_VALIDATE_ONLY := FND_API.G_FALSE;
88 END IF;
89
90 IF P_MAX_MSG_COUNT IS NULL THEN
91 L_MAX_MSG_COUNT := FND_API.G_MISS_NUM;
92 END IF;
93
94 IF (l_commit = FND_API.G_TRUE) THEN
95 SAVEPOINT res_pub_create_resource;
96 END IF;
97
98 If L_RESOURCE_TYPE IS NULL THEN
99 L_RESOURCE_TYPE := 'EMPLOYEE';
100 End If;
101
102 X_RETURN_STATUS := fnd_api.g_ret_sts_success;
103
104 IF fnd_api.to_boolean(L_INIT_MSG_LIST) THEN
105 fnd_msg_pub.initialize;
106 END IF;
107
108 IF NOT fnd_api.compatible_api_call(L_API_VERSION, P_API_VERSION, L_API_NAME, G_PKG_NAME)
109 THEN
110 RAISE fnd_api.g_exc_error;
111 END IF;
112
113 IF ((L_INTERNAL is null) or (L_INDIVIDUAL is null) or (L_RESOURCE_TYPE is null)) THEN
114 --dbms_output.put_line('Internal Flag or Individual Flag or Resource Type cannot be null');
115 PA_UTILS.Add_Message( p_app_short_name => 'PA'
116 ,p_msg_name => 'PA_RS_PUBLIC_PARAMETERS_NULL');
117 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
118 RAISE fnd_api.g_exc_error;
119 END IF;
120
121 ---Call the Private Procedure
122 --dbms_output.put_line('Calling Private Procedure PA_R_PROJECT_RESOURCES_PVT.CREATE_RESOURCE ');
123 IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
124 pa_debug.g_err_stage := 'Log: Calling private API - Create_Resource'; --For bug 4345198
125 pa_debug.write_file('CREATE_RESOURCE: ' || 'LOG',pa_debug.g_err_stage);
126 END IF;
127
128 PA_R_PROJECT_RESOURCES_PVT.CREATE_RESOURCE (
129 P_COMMIT => L_COMMIT,
130 P_VALIDATE_ONLY => L_VALIDATE_ONLY,
131 P_INTERNAL => L_INTERNAL,
132 P_PERSON_ID => L_PERSON_ID,
133 P_INDIVIDUAL => L_INDIVIDUAL,
134 P_CHECK_RESOURCE => P_CHECK_RESOURCE,
135 P_SCHEDULED_MEMBER_FLAG => P_SCHEDULED_MEMBER_FLAG,
136 P_RESOURCE_TYPE => L_RESOURCE_TYPE,
137 P_PARTY_ID => P_PARTY_ID,
138 P_FROM_EMP_NUM => P_FROM_EMP_NUM,
139 P_TO_EMP_NUM => P_TO_EMP_NUM,
140 P_ORGANIZATION_ID => P_ORGANIZATION_ID,
141 P_REFRESH => P_REFRESH,
142 P_PULL_TERM_RES => P_PULL_TERM_RES,
143 P_TERM_RANGE_DATE => P_TERM_RANGE_DATE,
144 P_PERSON_TYPE => P_PERSON_TYPE,
145 P_START_DATE => P_START_DATE, -- Bug 5337454
146 -- Added parameters for PJR Resource Pull Enhancements - Bug 5130414
147 P_SELECTION_OPTION => P_SELECTION_OPTION,
148 P_ORG_STR_VERSION_ID => P_ORG_STR_VERSION_ID,
149 P_START_ORGANIZATION_ID => P_START_ORGANIZATION_ID,
150 -- End of parameters added for PJR Resource Pull Enhancements - Bug 5130414
151 X_RETURN_STATUS => L_RETURN_STATUS,
152 X_RESOURCE_ID => X_RESOURCE_ID );
153 --dbms_output.put_line('after private X_RETURN STATUS ' || x_return_status);
154
155 IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
156 pa_debug.g_err_stage := 'Log: After private API - Create_Resource'; --For bug 4345198
157 pa_debug.write_file('CREATE_RESOURCE: ' || 'LOG',pa_debug.g_err_stage);
158 END IF;
159
160 IF fnd_api.to_boolean(l_commit) THEN
161 COMMIT WORK;
162 END IF;
163
164 x_return_status := L_RETURN_STATUS;
165 l_msg_count := FND_MSG_PUB.Count_Msg;
166
167 --dbms_output.put_line('MSG COUNT '||l_msg_count);
168
169 IF l_msg_count = 1 THEN
170
171 pa_interface_utils_pub.get_messages(
172 p_encoded => FND_API.G_FALSE -- FND_API.G_TRUE : Bug 7369682 : To get translated message
173 ,p_msg_index => 1
174 ,p_msg_count => l_msg_count
175 ,p_msg_data => x_msg_data
176 ,p_data => x_msg_data -- l_data : Bug 7369682 : Message is returned by p_data, Not p_msg_data
177 ,p_msg_index_out => l_msg_index_out);
178
179 x_msg_count := l_msg_count;
180 --dbms_output.put_line('X_RETURN STATUS ' || x_return_status);
181 ELSE
182 x_msg_count := l_msg_count;
183 END IF;
184
185 IF P_DEBUG_MODE = 'Y' THEN --For bug 4345198
186 --Reset the error stack when returning to the calling program
187 PA_DEBUG.Reset_Err_Stack;
188 END IF;
189
190
191 EXCEPTION
192 WHEN fnd_api.g_exc_error THEN
193 IF (p_commit = FND_API.G_TRUE) THEN
194 ROLLBACK TO res_pub_create_resource;
195 END IF;
196 -- Set the exception Message and the stack
197 FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_R_PROJECT_RESOURCES_PUB'
198 ,p_procedure_name => 'CREATE_RESOURCE');
199 x_return_status := FND_API.G_RET_STS_ERROR ;
200
201 WHEN OTHERS THEN
202 --DBMS_OUTPUT.put_line (' =============== ');
203 --DBMS_OUTPUT.put_line (' Raised Others in Create Resource Public');
204 --DBMS_OUTPUT.put_line (SQLCODE || SQLERRM);
205
206 IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
207 pa_debug.write_file('LOG','*****Public API - Create_Resource exception: Others*****');
208 pa_debug.write_file('CREATE_RESOURCE: ' || 'LOG', SQLERRM);
209 pa_debug.write_file('CREATE_RESOURCE: ' || 'LOG',pa_debug.g_err_stack);
210 pa_debug.write_file('CREATE_RESOURCE: ' || 'LOG',pa_debug.g_err_stage);
211 END IF;
212
213 IF (p_commit = FND_API.G_TRUE) THEN
214 ROLLBACK TO res_pub_create_resource;
215 END IF;
216
217 -- Set the exception Message and the stack
218 FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_R_PROJECT_RESOURCES_PUB'
219 ,p_procedure_name => 'CREATE_RESOURCE');
220 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
221 RAISE;
222
223 END CREATE_RESOURCE;
224
225
226 END PA_R_PROJECT_RESOURCES_PUB;