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 2005/06/15 17:16:11 appldev  $ */
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,
33 x_msg_count out NOCOPY NUMBER,
34 x_msg_data out NOCOPY VARCHAR2
35 )
36 is
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(50);
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_work_request_type_id => p_work_request_rec.work_request_type_id,
95            p_maintenance_object_type => p_work_request_rec.maintenance_object_type,
96            p_maintenance_object_id => p_work_request_rec.maintenance_object_id,
97 	   p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
98            p_attribute_category => p_work_request_rec.attribute_category,
99 	   p_attribute1 => p_work_request_rec.attribute1,
100 	   p_attribute2 => p_work_request_rec.attribute2,
101 	   p_attribute3 => p_work_request_rec.attribute3,
102 	   p_attribute4 => p_work_request_rec.attribute4,
103 	   p_attribute5 => p_work_request_rec.attribute5,
104 	   p_attribute6 => p_work_request_rec.attribute6,
105 	   p_attribute7 => p_work_request_rec.attribute7,
106 	   p_attribute8 => p_work_request_rec.attribute8,
107 	   p_attribute9 => p_work_request_rec.attribute9,
108 	   p_attribute10 => p_work_request_rec.attribute10,
109 	   p_attribute11 => p_work_request_rec.attribute11,
110 	   p_attribute12 => p_work_request_rec.attribute12,
111 	   p_attribute13 => p_work_request_rec.attribute13,
112 	   p_attribute14 => p_work_request_rec.attribute14,
113 	   p_attribute15 => p_work_request_rec.attribute15,
114 	   p_created_for => p_work_request_rec.created_for,
115 	   p_phone_number => p_work_request_rec.phone_number,
116 	   p_email => p_work_request_rec.e_mail,
117 	   p_contact_preference => p_work_request_rec.contact_preference,
118   	   p_notify_originator => p_work_request_rec.notify_originator,
119            x_return_flag => l_return_flag,
120            x_return_status => l_return_status,
121            x_msg_count => l_msg_count,
122            x_msg_data => l_msg_data
123     );
124 
125 
126     l_stmt_num := 40;
127 
128     IF l_return_flag THEN
129 
130             IF p_mode = 'CREATE' THEN
131 
132                  WIP_EAM_WORKREQUEST_PVT.create_and_approve (
133                       p_api_version => p_api_version,
134                       p_init_msg_list => p_init_msg_list,
135                       p_commit => p_commit,
136                       p_validation_level => p_validation_level,
137                       p_org_id => p_work_request_rec.organization_id,
138                       p_asset_group_id => p_work_request_rec.asset_group,
139                       p_asset_number => p_work_request_rec.asset_number,
140                       p_priority_id => p_work_request_rec.work_request_priority_id,
141                       p_request_by_date => p_work_request_rec.expected_resolution_date,
142                       p_request_log => p_request_log,
143                       p_owning_dept_id => p_work_request_rec.work_request_owning_dept,
144                       p_user_id => p_user_id,
145                       p_work_request_type_id => p_work_request_rec.work_request_type_id,
146                       p_maintenance_object_type => p_work_request_rec.maintenance_object_type,
147            		p_maintenance_object_id => p_work_request_rec.maintenance_object_id,
148 		      p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
149                       p_expected_resolution_date => p_work_request_rec.expected_resolution_date,
150                       p_created_for => p_work_request_rec.created_for,
151                       p_phone_number => p_work_request_rec.phone_number,
152                       p_email         => p_work_request_rec.e_mail,
153 		      p_contact_preference => p_work_request_rec.contact_preference,
154 		      p_notify_originator => p_work_request_rec.notify_originator,
155 		      p_attribute_category => p_work_request_rec.attribute_category,
156 		      p_attribute1 => p_work_request_rec.attribute1,
157 		      p_attribute2  => p_work_request_rec.attribute2,
158 		      p_attribute3  => p_work_request_rec.attribute3,
159 		      p_attribute4  => p_work_request_rec.attribute4,
160 		      p_attribute5  => p_work_request_rec.attribute5,
161 		      p_attribute6  => p_work_request_rec.attribute6,
162 		      p_attribute7  => p_work_request_rec.attribute7,
163 		      p_attribute8   => p_work_request_rec.attribute8,
164 		      p_attribute9  => p_work_request_rec.attribute9,
165 		      p_attribute10  => p_work_request_rec.attribute10,
166 		      p_attribute11  => p_work_request_rec.attribute11,
167 		      p_attribute12  => p_work_request_rec.attribute12,
168 		      p_attribute13  => p_work_request_rec.attribute13,
169 		      p_attribute14  => p_work_request_rec.attribute14,
170   		      p_attribute15 => p_work_request_rec.attribute15,
171                       x_work_request_id => l_request_id,
172                       x_resultout	=> l_resultout,
173                       x_error_message	=> l_error_message,
174                       x_return_status => l_return_status,
175                       x_msg_count => l_msg_count,
176                       x_msg_data => l_msg_data
177                 );
178                  x_work_request_id := l_request_id;
179 
180             ELSIF p_mode = 'UPDATE' THEN
181 
182                   /*WIP_EAM_WORKREQUEST_PVT.update_work_request (
183                       p_api_version => p_api_version,
184                       p_init_msg_list => p_init_msg_list,
185                       p_commit => p_commit,
186                       p_validation_level => p_validation_level,
187                       p_org_id => decode(p_work_request_rec.organization_id,null,organization_id,p_work_request_rec.organization_id),
188                       p_asset_group_id => decode(p_work_request_rec.asset_group,null,asset_group,p_work_request_rec.asset_group),
189                       p_asset_number => decode(p_work_request_rec.asset_number,asset_number,p_work_request_rec.asset_number),
190                       p_request_id => p_work_request_rec.work_request_id,
191                       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),
192                       p_priority_id => decode(p_work_request_rec.work_request_priority_id,null,work_request_priority_id,p_work_request_rec.priority_id),
193                       p_request_by_date => decode(p_work_request_rec.expected_resolution_date,null,expected_resolution_date,p_work_request_rec.expected_resolution_date),
194                       p_request_log => decode(p_request_log,null,description,p_request_log),
195                       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),
196                       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),
197                       p_created_for => decode(p_work_request_rec.created_for,null,created_for,p_work_request_rec.created_for),
198 		      p_phone_number => decode(p_work_request_rec.phone_number,null,p_phone_number,p_work_request_rec.phone_number),
199 		      p_email => decode(p_work_request_rec.e_mail,null,e_mail,p_work_request_rec.e_mail),
200 		      p_contact_preference => decode(p_work_request_rec.contact_preference,null,contact_preference,p_work_request_rec.contact_preference),
201 		      p_notify_originator => decode(p_work_request_rec.notify_originator,null,notify_originator,p_work_request_rec.notify_originator),
202 		      p_attribute_category => decode(p_work_request_rec.attribute_category,null,attribute_category,p_work_request_rec.attribute_category),
203 		      p_attribute1 => decode(p_work_request_rec.attribute1, NULL, ATTRIBUTE1, p_work_request_rec.attribute1),
204 		      p_attribute2 => decode(p_work_request_rec.attribute2, NULL, ATTRIBUTE2, p_work_request_rec.attribute2),
205 		      p_attribute3 => decode(p_work_request_rec.attribute3, NULL, ATTRIBUTE3, p_work_request_rec.attribute3),
206 		      p_attribute4 => decode(p_work_request_rec.attribute4, NULL, ATTRIBUTE4, p_work_request_rec.attribute4),
207 		      p_attribute5 => decode(p_work_request_rec.attribute5, NULL, ATTRIBUTE5, p_work_request_rec.attribute5),
208 		      p_attribute6 => decode(p_work_request_rec.attribute6, NULL, ATTRIBUTE6, p_work_request_rec.attribute6),
209 		      p_attribute7 => decode(p_work_request_rec.attribute7, NULL, ATTRIBUTE7, p_work_request_rec.attribute7),
210 		      p_attribute8 => decode(p_work_request_rec.attribute8, NULL, ATTRIBUTE8, p_work_request_rec.attribute8),
211 		      p_attribute9 => decode(p_work_request_rec.attribute9, NULL, ATTRIBUTE9, p_work_request_rec.attribute9),
212 		      p_attribute10 => decode(p_work_request_rec.attribute10, NULL, ATTRIBUTE10, p_work_request_rec.attribute10),
213 		      p_attribute11 => decode(p_work_request_rec.attribute11, NULL, ATTRIBUTE11, p_work_request_rec.attribute11),
214 		      p_attribute12 => decode(p_work_request_rec.attribute12, NULL, ATTRIBUTE12, p_work_request_rec.attribute12),
215 		      p_attribute13 => decode(p_work_request_rec.attribute13, NULL, ATTRIBUTE13, p_work_request_rec.attribute13),
216 		      p_attribute14 => decode(p_work_request_rec.attribute14, NULL, ATTRIBUTE14, p_work_request_rec.attribute14),
217   		      p_attribute15 => decode(p_work_request_rec.attribute15, NULL, ATTRIBUTE15, p_work_request_rec.attribute15),
218                       x_return_status => l_return_status,
219                       x_msg_count => l_msg_count,
220                       x_msg_data => l_msg_data
221                 );*/
222                 WIP_EAM_WORKREQUEST_PVT.update_work_request (
223 		                      p_api_version => p_api_version,
224 		                      p_init_msg_list => p_init_msg_list,
225 		                      p_commit => p_commit,
226 		                      p_validation_level => p_validation_level,
227 		                      p_org_id => p_work_request_rec.organization_id,
228 		                      p_asset_group_id => p_work_request_rec.asset_group,
229 		                      p_asset_number => p_work_request_rec.asset_number,
230 		                      p_request_id => p_work_request_rec.work_request_id,
231 		                      p_status_id => p_work_request_rec.work_request_status_id,
232 		                      p_priority_id => p_work_request_rec.work_request_priority_id,
233 		                      p_request_by_date => p_work_request_rec.expected_resolution_date,
234 		                      p_request_log => p_request_log,
235 		                      p_work_request_type_id => p_work_request_rec.work_request_type_id,
236 				      p_eam_linear_id => p_work_request_rec.eam_linear_location_id,
237 		                      p_owning_dept_id => p_work_request_rec.work_request_owning_dept,
238 		                      p_created_for => p_work_request_rec.created_for,
239 				      p_phone_number => p_work_request_rec.phone_number,
240 				      p_email => p_work_request_rec.e_mail,
241 				      p_contact_preference => p_work_request_rec.contact_preference,
242 				      p_notify_originator => p_work_request_rec.notify_originator,
243 				      p_attribute_category => p_work_request_rec.attribute_category,
244 				      p_attribute1 => p_work_request_rec.attribute1,
245 				      p_attribute2 => p_work_request_rec.attribute2,
246 				      p_attribute3 => p_work_request_rec.attribute3,
247 				      p_attribute4 => p_work_request_rec.attribute4,
248 				      p_attribute5 => p_work_request_rec.attribute5,
249 				      p_attribute6 => p_work_request_rec.attribute6,
250 				      p_attribute7 => p_work_request_rec.attribute7,
251 				      p_attribute8 => p_work_request_rec.attribute8,
252 				      p_attribute9 => p_work_request_rec.attribute9,
253 				      p_attribute10 => p_work_request_rec.attribute10,
254 				      p_attribute11 => p_work_request_rec.attribute11,
255 				      p_attribute12 => p_work_request_rec.attribute12,
256 				      p_attribute13 => p_work_request_rec.attribute13,
257 				      p_attribute14 => p_work_request_rec.attribute14,
258 		  		      p_attribute15 => p_work_request_rec.attribute15,
259 		  		      p_from_public_api => 'Y',
260 		                      x_return_status => l_return_status,
261 		                      x_msg_count => l_msg_count,
262 		                      x_msg_data => l_msg_data
263                 );
264                 x_work_request_id := p_work_request_rec.work_request_id;
265 
266             END IF;
267 
268             x_msg_count := l_msg_count;
269             x_msg_data := l_msg_data;
270           ELSE
271             x_msg_count := l_msg_count;
272             x_msg_data := l_msg_data;
273           END IF;
274 
275           -- raise an error flag if any of the called procedures fails
276           IF l_return_status = 'E' THEN
277                 RAISE FND_API.g_exc_error;
278           ELSIF l_return_status = 'U' THEN
279                 RAISE FND_API.g_exc_unexpected_error;
280           END IF;
281 
282           IF fnd_api.to_boolean(p_commit) THEN
283                 COMMIT WORK;
284           END IF;
285 
286 EXCEPTION
287     WHEN fnd_api.g_exc_error THEN
288          ROLLBACK TO work_request_import_pvt;
289          x_return_status := fnd_api.g_ret_sts_error;
290          fnd_msg_pub.count_and_get(
291             p_encoded => fnd_api.g_false
292            ,p_count => x_msg_count
293            ,p_data => x_msg_data);
294     WHEN fnd_api.g_exc_unexpected_error THEN
295          ROLLBACK TO work_request_import_pvt;
296          x_return_status := fnd_api.g_ret_sts_unexp_error;
297          fnd_msg_pub.count_and_get(
298             p_encoded => fnd_api.g_false
299            ,p_count => x_msg_count
300            ,p_data => x_msg_data);
301     WHEN OTHERS THEN
302          ROLLBACK TO work_request_import_pvt;
303          x_return_status := fnd_api.g_ret_sts_unexp_error;
304          IF fnd_msg_pub.check_msg_level(
305                fnd_msg_pub.g_msg_lvl_unexp_error) THEN
306             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name||'('||l_stmt_num||')');
307          END IF;
308          fnd_msg_pub.count_and_get(
309             p_encoded => fnd_api.g_false
310            ,p_count => x_msg_count
311            ,p_data => x_msg_data);
312 
313 end work_request_import;
314 
315 end;