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