DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_EAM_WORKREQUEST_PUB

Source


1 PACKAGE BODY WIP_EAM_WORKREQUEST_PUB AS
2 /* $Header: WIPPWRPB.pls 120.1.12020000.2 2012/07/18 07:47:28 ankohli ship $ */
3  -- Start of comments
4  -- API name : WIP_EAM_WORKREQUEST_PUB
5  -- Type     : Public
6  -- Function :
7  -- Pre-reqs : None.
8  -- Parameters  :
9  -- OUT      x_return_status   OUT   VARCHAR2(1)
10  --          x_msg_count       OUT   NUMBER
11  --          x_msg_data        OUT   VARCHAR2(2000)
12  --
13  -- Version  Current version 1.0  Himal Karmacharya
14  --
15  -- Notes    : Note text
16  --
17  -- End of comments
18 
19 
20 G_PKG_NAME CONSTANT VARCHAR2(30) :='WIP_EAM_WORKREQUEST_PUB';
21 procedure work_request_import
22 (
23 p_api_version in NUMBER := 1.0,
24 p_init_msg_list in VARCHAR2 := FND_API.G_FALSE,
25 p_commit in VARCHAR2 := FND_API.G_TRUE,
26 p_validation_level in NUMBER := FND_API.G_VALID_LEVEL_FULL,
27 p_mode in VARCHAR2,
28 p_work_request_rec in WIP_EAM_WORK_REQUESTS%ROWTYPE,
29 p_request_log in VARCHAR2,
30 p_user_id in NUMBER,
31 x_work_request_id out NOCOPY NUMBER,
32 x_return_status out NOCOPY VARCHAR2,
36 is
33 x_msg_count out NOCOPY NUMBER,
34 x_msg_data out NOCOPY VARCHAR2
35 )
37 
38 l_stmt_num NUMBER := 0;
39 
40 l_return_flag BOOLEAN;
41 l_return_status VARCHAR2(50);
42 l_msg_count NUMBER;
43 l_msg_data VARCHAR2(200); --bug 14049495
44 l_request_id NUMBER;
45 l_status_id NUMBER;
46 
47 l_api_version constant number := 1.0;
48 l_api_name constant varchar2(30) := 'work_request_import';
49 l_calling_function varchar2(50);
50 l_error_message VARCHAR2(200);
51 l_resultout VARCHAR2(1);
52 
53 BEGIN
54     -- Standard Start of API savepoint
55     SAVEPOINT work_request_import_pvt;
56 
57     l_stmt_num := 10;
58 
59     -- Standard call to check for call compatibility.
60     IF NOT fnd_api.compatible_api_call(
61             l_api_version
62            ,p_api_version
63            ,l_api_name
64            ,g_pkg_name) THEN
65          RAISE fnd_api.g_exc_unexpected_error;
66     END IF;
67 
68     l_stmt_num := 20;
69 
70     -- Initialize message list if p_init_msg_list is set to TRUE.
71     IF fnd_api.to_boolean(p_init_msg_list) THEN
72          fnd_msg_pub.initialize;
73     END IF;
74 
75     l_stmt_num := 30;
76 
77     --  Initialize API return status to success
78     x_return_status := fnd_api.g_ret_sts_success;
79 
80     -- call validate api
81     WIP_EAM_WORKREQUEST_PVT.validate_work_request (
82            p_api_version => p_api_version,
83            p_init_msg_list => p_init_msg_list,
84            p_mode => p_mode,
85            p_org_id => p_work_request_rec.organization_id,
86            p_request_id => p_work_request_rec.work_request_id,
87            p_asset_group_id => p_work_request_rec.asset_group,
88            p_asset_number => p_work_request_rec.asset_number,
89            p_priority_id => p_work_request_rec.work_request_priority_id,
90            p_status_id => p_work_request_rec.work_request_status_id,
91            p_request_by_date => p_work_request_rec.expected_resolution_date,
92            p_request_log => p_request_log,
93            p_owning_dept_id => p_work_request_rec.work_request_owning_dept,
94            p_user_id => p_user_id,
95            p_work_request_type_id => p_work_request_rec.work_request_type_id,
96            p_maintenance_object_type => p_work_request_rec.maintenance_object_type,
97            p_maintenance_object_id => p_work_request_rec.maintenance_object_id,
98 	   p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
99            p_attribute_category => p_work_request_rec.attribute_category,
100 	   p_attribute1 => p_work_request_rec.attribute1,
101 	   p_attribute2 => p_work_request_rec.attribute2,
102 	   p_attribute3 => p_work_request_rec.attribute3,
103 	   p_attribute4 => p_work_request_rec.attribute4,
104 	   p_attribute5 => p_work_request_rec.attribute5,
105 	   p_attribute6 => p_work_request_rec.attribute6,
106 	   p_attribute7 => p_work_request_rec.attribute7,
107 	   p_attribute8 => p_work_request_rec.attribute8,
108 	   p_attribute9 => p_work_request_rec.attribute9,
109 	   p_attribute10 => p_work_request_rec.attribute10,
110 	   p_attribute11 => p_work_request_rec.attribute11,
111 	   p_attribute12 => p_work_request_rec.attribute12,
112 	   p_attribute13 => p_work_request_rec.attribute13,
113 	   p_attribute14 => p_work_request_rec.attribute14,
114 	   p_attribute15 => p_work_request_rec.attribute15,
115 	   p_created_for => p_work_request_rec.created_for,
116 	   p_phone_number => p_work_request_rec.phone_number,
117 	   p_email => p_work_request_rec.e_mail,
118 	   p_contact_preference => p_work_request_rec.contact_preference,
119   	   p_notify_originator => p_work_request_rec.notify_originator,
120            x_return_flag => l_return_flag,
121            x_return_status => l_return_status,
122            x_msg_count => l_msg_count,
123            x_msg_data => l_msg_data
124     );
125 
126 
127     l_stmt_num := 40;
128 
129     IF l_return_flag THEN
130 
131             IF p_mode = 'CREATE' THEN
132 
133                  WIP_EAM_WORKREQUEST_PVT.create_and_approve (
134                       p_api_version => p_api_version,
135                       p_init_msg_list => p_init_msg_list,
136                       p_commit => p_commit,
137                       p_validation_level => p_validation_level,
138                       p_org_id => p_work_request_rec.organization_id,
139                       p_asset_group_id => p_work_request_rec.asset_group,
140                       p_asset_number => p_work_request_rec.asset_number,
141                       p_priority_id => p_work_request_rec.work_request_priority_id,
142                       p_request_by_date => p_work_request_rec.expected_resolution_date,
143                       p_request_log => p_request_log,
144                       p_owning_dept_id => p_work_request_rec.work_request_owning_dept,
145                       p_user_id => p_user_id,
146                       p_work_request_type_id => p_work_request_rec.work_request_type_id,
147                       p_maintenance_object_type => p_work_request_rec.maintenance_object_type,
148            		p_maintenance_object_id => p_work_request_rec.maintenance_object_id,
149 		      p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
150                       p_expected_resolution_date => p_work_request_rec.expected_resolution_date,
151                       p_created_for => p_work_request_rec.created_for,
152                       p_phone_number => p_work_request_rec.phone_number,
153                       p_email         => p_work_request_rec.e_mail,
154 		      p_contact_preference => p_work_request_rec.contact_preference,
158 		      p_attribute2  => p_work_request_rec.attribute2,
155 		      p_notify_originator => p_work_request_rec.notify_originator,
156 		      p_attribute_category => p_work_request_rec.attribute_category,
157 		      p_attribute1 => p_work_request_rec.attribute1,
159 		      p_attribute3  => p_work_request_rec.attribute3,
160 		      p_attribute4  => p_work_request_rec.attribute4,
161 		      p_attribute5  => p_work_request_rec.attribute5,
162 		      p_attribute6  => p_work_request_rec.attribute6,
163 		      p_attribute7  => p_work_request_rec.attribute7,
164 		      p_attribute8   => p_work_request_rec.attribute8,
165 		      p_attribute9  => p_work_request_rec.attribute9,
166 		      p_attribute10  => p_work_request_rec.attribute10,
167 		      p_attribute11  => p_work_request_rec.attribute11,
168 		      p_attribute12  => p_work_request_rec.attribute12,
169 		      p_attribute13  => p_work_request_rec.attribute13,
170 		      p_attribute14  => p_work_request_rec.attribute14,
171   		      p_attribute15 => p_work_request_rec.attribute15,
172                       x_work_request_id => l_request_id,
173                       x_resultout	=> l_resultout,
174                       x_error_message	=> l_error_message,
175                       x_return_status => l_return_status,
176                       x_msg_count => l_msg_count,
177                       x_msg_data => l_msg_data
178                 );
179                  x_work_request_id := l_request_id;
180 
181             ELSIF p_mode = 'UPDATE' THEN
182 
183                   /*WIP_EAM_WORKREQUEST_PVT.update_work_request (
184                       p_api_version => p_api_version,
185                       p_init_msg_list => p_init_msg_list,
186                       p_commit => p_commit,
187                       p_validation_level => p_validation_level,
188                       p_org_id => decode(p_work_request_rec.organization_id,null,organization_id,p_work_request_rec.organization_id),
189                       p_asset_group_id => decode(p_work_request_rec.asset_group,null,asset_group,p_work_request_rec.asset_group),
190                       p_asset_number => decode(p_work_request_rec.asset_number,asset_number,p_work_request_rec.asset_number),
191                       p_request_id => p_work_request_rec.work_request_id,
192                       p_status_id => decode(p_work_request_rec.work_request_status_id,null,work_request_status_id,p_work_request_rec.work_request_status_id),
193                       p_priority_id => decode(p_work_request_rec.work_request_priority_id,null,work_request_priority_id,p_work_request_rec.priority_id),
194                       p_request_by_date => decode(p_work_request_rec.expected_resolution_date,null,expected_resolution_date,p_work_request_rec.expected_resolution_date),
195                       p_request_log => decode(p_request_log,null,description,p_request_log),
196                       p_work_request_type_id => decode(p_work_request_rec.work_request_type_id,null,work_request_type_id,p_work_request_rec.work_request_type_id),
197                       p_owning_dept_id => decode(p_work_request_rec.work_request_owning_dept,null,work_request_owning_dept,p_work_request_rec.work_request_owning_dept),
198                       p_created_for => decode(p_work_request_rec.created_for,null,created_for,p_work_request_rec.created_for),
199 		      p_phone_number => decode(p_work_request_rec.phone_number,null,p_phone_number,p_work_request_rec.phone_number),
200 		      p_email => decode(p_work_request_rec.e_mail,null,e_mail,p_work_request_rec.e_mail),
201 		      p_contact_preference => decode(p_work_request_rec.contact_preference,null,contact_preference,p_work_request_rec.contact_preference),
202 		      p_notify_originator => decode(p_work_request_rec.notify_originator,null,notify_originator,p_work_request_rec.notify_originator),
203 		      p_attribute_category => decode(p_work_request_rec.attribute_category,null,attribute_category,p_work_request_rec.attribute_category),
204 		      p_attribute1 => decode(p_work_request_rec.attribute1, NULL, ATTRIBUTE1, p_work_request_rec.attribute1),
205 		      p_attribute2 => decode(p_work_request_rec.attribute2, NULL, ATTRIBUTE2, p_work_request_rec.attribute2),
206 		      p_attribute3 => decode(p_work_request_rec.attribute3, NULL, ATTRIBUTE3, p_work_request_rec.attribute3),
207 		      p_attribute4 => decode(p_work_request_rec.attribute4, NULL, ATTRIBUTE4, p_work_request_rec.attribute4),
208 		      p_attribute5 => decode(p_work_request_rec.attribute5, NULL, ATTRIBUTE5, p_work_request_rec.attribute5),
209 		      p_attribute6 => decode(p_work_request_rec.attribute6, NULL, ATTRIBUTE6, p_work_request_rec.attribute6),
210 		      p_attribute7 => decode(p_work_request_rec.attribute7, NULL, ATTRIBUTE7, p_work_request_rec.attribute7),
211 		      p_attribute8 => decode(p_work_request_rec.attribute8, NULL, ATTRIBUTE8, p_work_request_rec.attribute8),
212 		      p_attribute9 => decode(p_work_request_rec.attribute9, NULL, ATTRIBUTE9, p_work_request_rec.attribute9),
213 		      p_attribute10 => decode(p_work_request_rec.attribute10, NULL, ATTRIBUTE10, p_work_request_rec.attribute10),
214 		      p_attribute11 => decode(p_work_request_rec.attribute11, NULL, ATTRIBUTE11, p_work_request_rec.attribute11),
215 		      p_attribute12 => decode(p_work_request_rec.attribute12, NULL, ATTRIBUTE12, p_work_request_rec.attribute12),
216 		      p_attribute13 => decode(p_work_request_rec.attribute13, NULL, ATTRIBUTE13, p_work_request_rec.attribute13),
217 		      p_attribute14 => decode(p_work_request_rec.attribute14, NULL, ATTRIBUTE14, p_work_request_rec.attribute14),
218   		      p_attribute15 => decode(p_work_request_rec.attribute15, NULL, ATTRIBUTE15, p_work_request_rec.attribute15),
219                       x_return_status => l_return_status,
220                       x_msg_count => l_msg_count,
221                       x_msg_data => l_msg_data
222                 );*/
223                 WIP_EAM_WORKREQUEST_PVT.update_work_request (
224 		                      p_api_version => p_api_version,
225 		                      p_init_msg_list => p_init_msg_list,
226 		                      p_commit => p_commit,
227 		                      p_validation_level => p_validation_level,
228 		                      p_org_id => p_work_request_rec.organization_id,
229 		                      p_asset_group_id => p_work_request_rec.asset_group,
230 		                      p_asset_number => p_work_request_rec.asset_number,
231 		                      p_request_id => p_work_request_rec.work_request_id,
232 		                      p_status_id => p_work_request_rec.work_request_status_id,
233 		                      p_priority_id => p_work_request_rec.work_request_priority_id,
234 		                      p_request_by_date => p_work_request_rec.expected_resolution_date,
235 		                      p_request_log => p_request_log,
236 		                      p_work_request_type_id => p_work_request_rec.work_request_type_id,
237 				      p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
238 		                      p_owning_dept_id => p_work_request_rec.work_request_owning_dept,
239                           p_user_id => p_user_id,
240 		                      p_created_for => p_work_request_rec.created_for,
241 				      p_phone_number => p_work_request_rec.phone_number,
242 				      p_email => p_work_request_rec.e_mail,
243 				      p_contact_preference => p_work_request_rec.contact_preference,
244 				      p_notify_originator => p_work_request_rec.notify_originator,
245 				      p_attribute_category => p_work_request_rec.attribute_category,
246 				      p_attribute1 => p_work_request_rec.attribute1,
247 				      p_attribute2 => p_work_request_rec.attribute2,
248 				      p_attribute3 => p_work_request_rec.attribute3,
249 				      p_attribute4 => p_work_request_rec.attribute4,
250 				      p_attribute5 => p_work_request_rec.attribute5,
251 				      p_attribute6 => p_work_request_rec.attribute6,
252 				      p_attribute7 => p_work_request_rec.attribute7,
253 				      p_attribute8 => p_work_request_rec.attribute8,
254 				      p_attribute9 => p_work_request_rec.attribute9,
255 				      p_attribute10 => p_work_request_rec.attribute10,
256 				      p_attribute11 => p_work_request_rec.attribute11,
257 				      p_attribute12 => p_work_request_rec.attribute12,
258 				      p_attribute13 => p_work_request_rec.attribute13,
259 				      p_attribute14 => p_work_request_rec.attribute14,
260 		  		      p_attribute15 => p_work_request_rec.attribute15,
261 		  		      p_from_public_api => 'Y',
262 		                      x_return_status => l_return_status,
263 		                      x_msg_count => l_msg_count,
264 		                      x_msg_data => l_msg_data
265                 );
266                 x_work_request_id := p_work_request_rec.work_request_id;
267 
268             END IF;
269 
270             x_msg_count := l_msg_count;
271             x_msg_data := l_msg_data;
272           ELSE
273             x_msg_count := l_msg_count;
274             x_msg_data := l_msg_data;
275           END IF;
276 
277           -- raise an error flag if any of the called procedures fails
278           IF l_return_status = 'E' THEN
279                 RAISE FND_API.g_exc_error;
280           ELSIF l_return_status = 'U' THEN
281                 RAISE FND_API.g_exc_unexpected_error;
282           END IF;
283 
284           IF fnd_api.to_boolean(p_commit) THEN
285                 COMMIT WORK;
286           END IF;
287 
288 EXCEPTION
289     WHEN fnd_api.g_exc_error THEN
290          ROLLBACK TO work_request_import_pvt;
291          x_return_status := fnd_api.g_ret_sts_error;
292          fnd_msg_pub.count_and_get(
293             p_encoded => fnd_api.g_false
294            ,p_count => x_msg_count
295            ,p_data => x_msg_data);
296     WHEN fnd_api.g_exc_unexpected_error THEN
297          ROLLBACK TO work_request_import_pvt;
298          x_return_status := fnd_api.g_ret_sts_unexp_error;
299          fnd_msg_pub.count_and_get(
300             p_encoded => fnd_api.g_false
301            ,p_count => x_msg_count
302            ,p_data => x_msg_data);
303     WHEN OTHERS THEN
304          ROLLBACK TO work_request_import_pvt;
305          x_return_status := fnd_api.g_ret_sts_unexp_error;
306          IF fnd_msg_pub.check_msg_level(
307                fnd_msg_pub.g_msg_lvl_unexp_error) THEN
308             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name||'('||l_stmt_num||')');
309          END IF;
310          fnd_msg_pub.count_and_get(
311             p_encoded => fnd_api.g_false
312            ,p_count => x_msg_count
313            ,p_data => x_msg_data);
314 
315 end work_request_import;
316 
317 end;