[Home] [Help]
PACKAGE BODY: APPS.ZX_API_PRVDR_PUB
Source
1 PACKAGE BODY ZX_API_PRVDR_PUB AS
2 /* $Header: zxifprvdrsrvpubb.pls 120.11 2006/09/21 09:30:07 vchallur ship $ */
3 /* ======================================================================*
4 | Global Data Types |
5 * ======================================================================*/
6
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_API_PRVDR_PUB';
8 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
10 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
11 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
12 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
13 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
14 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
15 G_MODULE_NAME CONSTANT VARCHAR2(30) := 'ZX.PLSQL.ZX_API_PRVDR_PUB.';
16
17 G_SRVC_CATEGORY CONSTANT VARCHAR2(30) := 'PTNR_SRVC_INTGRTN';
18
19 PROCEDURE check_input_parameters (
20 p_srvc_prvdr_name IN VARCHAR2,
21 p_srvc_type_code IN VARCHAR2,
22 p_country_code IN VARCHAR2,
23 p_business_flow IN VARCHAR2,
24 p_error_msg_tbl IN OUT NOCOPY error_messages_tbl,
25 p_error_counter IN OUT NOCOPY NUMBER,
26 x_srvc_type_id OUT NOCOPY NUMBER,
27 x_api_owner_id OUT NOCOPY NUMBER,
28 x_return_status OUT NOCOPY VARCHAR2
29 ) IS
30 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_SRVC_REGISTRATION';
31 l_exists NUMBER;
32 l_combination_found BOOLEAN;
33 l_struct_num NUMBER;
34 l_delimiter VARCHAR2(1);
35 l_api_segments fnd_flex_key_api.segment_list;
36
37 BEGIN
38 /*Validate Service Provider name*/
39 BEGIN
40 IF p_srvc_prvdr_name is not null THEN
41 SELECT ptp.party_tax_profile_id
42 INTO x_api_owner_id
43 FROM HZ_PARTIES pty,
44 ZX_PARTY_TAX_PROFILE ptp
45 WHERE pty.party_name = p_srvc_prvdr_name
46 AND pty.party_id = ptp.party_id
47 AND ptp.provider_type_code in ('BOTH', 'SERVICE')
48 AND (ptp.party_tax_profile_id =1
49 OR ptp.party_tax_profile_id=2);
50 ELSE
51 fnd_message.set_name('ZX', 'ZX_SRVC_PROVIDER_REQUIRED');
52 p_error_msg_tbl(p_error_counter) := fnd_message.get;
53 x_return_status := FND_API.G_RET_STS_ERROR;
54 p_error_counter := p_error_counter+1;
55 END IF;
56
57 EXCEPTION
58 WHEN NO_DATA_FOUND THEN
59 fnd_message.set_name('ZX', 'ZX_SRVC_PROVIDER_REQUIRED');
60 p_error_msg_tbl(p_error_counter) := fnd_message.get;
61 x_return_status := FND_API.G_RET_STS_ERROR;
62 p_error_counter := p_error_counter+1;
63 END;
64
65 /*Validate Service type code*/
66 IF p_srvc_type_code is null THEN
67 fnd_message.set_name('ZX', 'ZX_SRVC_TYPE_CODE_REQD');
68 p_error_msg_tbl(p_error_counter) := fnd_message.get;
69 x_return_status := FND_API.G_RET_STS_ERROR;
70 p_error_counter := p_error_counter+1;
71 ELSIF p_srvc_type_code NOT IN ('CALCULATE_TAX','DOCUMENT_LEVEL_CHANGES','SYNCHRONIZE_FOR_TAX','COMMIT_FOR_TAX','IMPORT_EXEMPTIONS') THEN
72 fnd_message.set_name('ZX', 'ZX_SRVC_TYPE_CODE_REQD');
73 p_error_msg_tbl(p_error_counter) := fnd_message.get;
74 x_return_status := FND_API.G_RET_STS_ERROR;
75 p_error_counter := p_error_counter+1;
76 Else
77 select service_type_id
78 into x_srvc_type_id
79 from zx_service_types
80 where SERVICE_TYPE_CODE = p_srvc_type_code
81 and SERVICE_CATEGORY_CODE = G_SRVC_CATEGORY;
82 END IF;
83
84 /*Validate the country code*/
85 IF p_country_code is null THEN
86 fnd_message.set_name('ZX', 'ZX_COUNTRY_CODE_REQD');
87 p_error_msg_tbl(p_error_counter) := fnd_message.get;
88 x_return_status := FND_API.G_RET_STS_ERROR;
89 p_error_counter := p_error_counter+1;
90 ELSE
91 BEGIN
92 SELECT 1
93 INTO l_exists
94 FROM ZX_REGIMES_B
95 WHERE tax_regime_code = p_country_code;
96
97 EXCEPTION
98 WHEN NO_DATA_FOUND THEN
99 fnd_message.set_name('ZX', 'ZX_COUNTRY_CODE_REQD');
100 p_error_msg_tbl(p_error_counter) := fnd_message.get;
101 x_return_status := FND_API.G_RET_STS_ERROR;
102 p_error_counter := p_error_counter+1;
103 END ;
104 END IF;
105
106 /*Validate Business flow*/
107 IF p_business_flow is null THEN
108 fnd_message.set_name('ZX', 'ZX_BUSINESS_FLOW_REQUIRED');
109 p_error_msg_tbl(p_error_counter) := fnd_message.get;
110 x_return_status := FND_API.G_RET_STS_ERROR;
111 p_error_counter := p_error_counter+1;
112 ELSIF p_businesS_flow not in ('O2C', 'P2P') THEN
113 fnd_message.set_name('ZX', 'ZX_BUSINESS_FLOW_REQUIRED');
114 p_error_msg_tbl(p_error_counter) := fnd_message.get;
115 x_return_status := FND_API.G_RET_STS_ERROR;
116 p_error_counter := p_error_counter+1;
117 END IF;
118
119 END check_input_parameters;
120 /*
121 This API is used to maintain the tax partner service registration, for the given tax interface and business flow.
122 */
123
124 PROCEDURE create_srvc_registration (
125 p_api_version IN NUMBER,
126 x_error_msg_tbl OUT NOCOPY error_messages_tbl,
127 x_return_status OUT NOCOPY VARCHAR2,
128 p_srvc_prvdr_name IN VARCHAR2,
129 p_srvc_type_code IN VARCHAR2,
130 p_country_code IN VARCHAR2,
131 p_business_flow IN VARCHAR2,
132 p_package_name IN VARCHAR2,
133 p_procedure_name IN VARCHAR2
134 ) IS
135 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_SRVC_REGISTRATION';
136 l_exists NUMBER;
137 l_combination_found BOOLEAN;
138 l_context_flex_structure NUMBER;
139 l_delimiter VARCHAR2(1);
140 l_segments FND_FLEX_EXT.SegmentArray ;
141 l_dummy BOOLEAN;
142 l_flexfield VARCHAR2(2000);
143 l_error_counter NUMBER;
144 l_code_combination_id NUMBER;
145 l_api_owner_id NUMBER;
146 l_api_status VARCHAR2(30);
147 l_return_status VARCHAR2(30);
148 l_srvc_type_id NUMBER;
149
150 BEGIN
151 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
152 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
153 END IF;
154
155 /*--------------------------------------------------+
156 | Standard start of API savepoint |
157 +--------------------------------------------------*/
158 SAVEPOINT create_srvc_registration_pvt;
159
160 /*Set the return status to Success */
161 x_return_status := FND_API.G_RET_STS_SUCCESS;
162 l_error_counter := 1;
163 l_combination_found := TRUE;
164
165 /*Validate the input parameters*/
166 check_input_parameters(p_srvc_prvdr_name => p_srvc_prvdr_name,
167 p_srvc_type_code => p_srvc_type_code,
168 p_country_code => p_country_code,
169 p_business_flow => p_business_flow,
170 p_error_msg_tbl => x_error_msg_tbl,
171 p_error_counter => l_error_counter,
172 x_srvc_type_id => l_srvc_type_id,
173 x_api_owner_id => l_api_owner_id,
174 x_return_status => l_return_status
175 );
176
177 /*Validate package name*/
178 IF p_package_name is null THEN
179 fnd_message.set_name('ZX', 'ZX_PACKAGE_REQUIRED');
180 x_error_msg_tbl(l_error_counter) := fnd_message.get;
181 x_return_status := FND_API.G_RET_STS_ERROR;
182 l_error_counter := l_error_counter+1;
183 END IF;
184
185 /*Validate procedure name*/
186 IF p_procedure_name is null THEN
187 fnd_message.set_name('ZX', 'ZX_PROCEDURE_REQUIRED');
188 x_error_msg_tbl(l_error_counter) := fnd_message.get;
189 x_return_status := FND_API.G_RET_STS_ERROR;
190 l_error_counter := l_error_counter+1;
191 END IF;
192
193 /*Check if combination of business group and regime exists in zx_api_combinations*/
194 BEGIN
195 SELECT code_combination_id
196 INTO l_code_combination_id
197 FROM zx_api_code_combinations
198 WHERE segment_attribute1 = p_country_code
199 AND segment_attribute2 = p_business_flow;
200
201 EXCEPTION
202 WHEN NO_DATA_FOUND THEN
203 l_combination_found := FALSE;
204 END;
205
206 /*Check if service already registerd */
207 IF x_error_msg_tbl.COUNT = 0 THEN
208 IF l_combination_found THEN
209 BEGIN
210 SELECT 1
211 INTO l_exists
212 FROM zx_api_registrations reg,
213 zx_service_types srvc
214 WHERE reg.api_owner_id = l_api_owner_id
215 AND srvc.service_type_id = reg.service_type_id
216 AND srvc.service_type_code = p_srvc_type_code
217 AND context_ccid = l_code_combination_id;
218
219 IF l_exists = 1 THEN
220 fnd_message.set_name('ZX', 'ZX_SERVICE_RECORD_EXISTS');
221 x_error_msg_tbl(l_error_counter) := fnd_message.get;
222 x_return_status := FND_API.G_RET_STS_ERROR;
223 l_error_counter := l_error_counter+1;
224 END IF;
225
226 EXCEPTION
227 WHEN NO_DATA_FOUND THEN
228 null;
229 END;
230 ELSE /*create the combination*/
231 SELECT context_flex_structure_id
232 INTO l_context_flex_structure
233 FROM ZX_SERVICE_TYPES
234 WHERE service_type_code = p_srvc_type_code
235 AND service_category_code = G_SRVC_CATEGORY;
236
237 -- need to create ccid for the new tax_regime_code
238 ------------------------------------------------------------------
239 -- Find or generate the CCID for the new combination --
240 ------------------------------------------------------------------
241 /*For the 2 segments*/
242 l_segments(1) := p_country_code;
243 l_segments(2) := p_business_flow;
244
245 IF NOT (fnd_flex_ext.get_combination_id (application_short_name => 'ZX',
246 key_flex_code => 'ZX#',
247 structure_number => l_context_flex_structure,
248 validation_date => sysdate,
249 n_segments => 2,
250 segments => l_segments,
251 combination_id => l_code_combination_id
252 )) THEN
253
254 fnd_message.set_name ('ZX', 'ZX_PTNR_SRVC_CCID_NOT_FOUND'); -- Bug 5216009
255 x_error_msg_tbl(l_error_counter) := fnd_message.get;
256 x_return_status := FND_API.G_RET_STS_ERROR;
257 l_error_counter := l_error_counter+1;
258 END IF;
259 END IF; --create code combination
260
261 /*Create data in registrations*/
262 INSERT INTO ZX_API_REGISTRATIONS
263 (API_REGISTRATION_ID,
264 API_OWNER_ID,
265 PACKAGE_NAME,
266 PROCEDURE_NAME,
267 SERVICE_TYPE_ID,
268 CONTEXT_CCID,
269 CREATION_DATE,
270 CREATED_BY,
271 LAST_UPDATE_DATE,
272 LAST_UPDATED_BY,
273 LAST_UPDATE_LOGIN,
274 OBJECT_VERSION_NUMBER,
275 RECORD_TYPE_CODE)
276 VALUES
277 (ZX_API_REGISTRATIONS_S.nextval,
278 l_api_owner_id,
279 p_package_name,
280 p_procedure_name,
281 l_srvc_type_id,
282 l_code_combination_id,
283 sysdate,
284 FND_GLOBAL.user_id,
285 sysdate,
286 FND_GLOBAL.user_id,
287 FND_GLOBAL.user_id,
288 1,
289 'EBTAX_CREATED');
290
291 -- Check the status of the API owner.
292 BEGIN
293 SELECT status_code
294 INTO l_api_status
295 FROM ZX_API_OWNER_STATUSES
296 WHERE api_owner_id = l_api_owner_id
297 AND service_category_code = G_SRVC_CATEGORY;
298 EXCEPTION
299 WHEN no_data_found then
300 -- No entry found in the zx_api_owner_stratuses
301 -- Insert a record into zx_api_owner_statuses table.
302 l_api_status := 'NEW';
303 INSERT INTO ZX_API_OWNER_STATUSES
304 (api_owner_id
305 , service_category_code
306 , status_code
307 , creation_date
308 , created_by
309 , last_update_date
310 , last_updated_by
311 , last_update_login)
312 VALUES(l_api_owner_id
313 , G_SRVC_CATEGORY
314 , 'NEW'
315 , sysdate
316 , fnd_global.user_id
317 , sysdate
318 , fnd_global.user_id
319 , fnd_global.user_id);
323 IF l_api_status = 'DELETED' THEN
320 END;
321
322 /*Status record exists- update them*/
324 UPDATE ZX_API_OWNER_STATUSES
325 SET status_code = 'NEW'
326 WHERE api_owner_id = l_api_owner_id
327 AND service_category_code = G_SRVC_CATEGORY;
328 ELSIF l_api_status = 'GENERATED' THEN
329 UPDATE ZX_API_OWNER_STATUSES
330 SET status_code = 'MODIFIED'
331 WHERE api_owner_id = l_api_owner_id
332 AND service_category_code = G_SRVC_CATEGORY;
333 END IF;
334 END IF; --no errors in errors table
335
336 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
337 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
338 END IF;
339
340 EXCEPTION
341 WHEN OTHERS THEN
342 ROLLBACK TO create_srvc_registration_pvt;
343 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344 FND_MESSAGE.set_name('ZX','ZX_UNEXPECTED_ERROR');
345 x_error_msg_tbl(l_error_counter) := fnd_message.get;
346 l_error_counter := l_error_counter+1;
347 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
348 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
349 END IF;
350 END create_srvc_registration;
351
352
353 PROCEDURE delete_srvc_registration (
354 p_api_version IN NUMBER,
355 x_error_msg_tbl OUT NOCOPY error_messages_tbl,
356 x_return_status OUT NOCOPY VARCHAR2,
357 p_srvc_prvdr_name IN VARCHAR2,
358 p_srvc_type_code IN VARCHAR2,
359 p_country_code IN VARCHAR2,
360 p_business_flow IN VARCHAR2
361 ) IS
362 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_SRVC_REGISTRATION';
363 l_api_owner_id NUMBER;
364 l_error_counter NUMBER;
365 l_api_status VARCHAR2(30);
366 l_return_status VARCHAR2(30);
367 l_count NUMBER;
368 l_srvc_type_id NUMBER;
369 BEGIN
370 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
371 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
372 END IF;
373
374 /*--------------------------------------------------+
375 | Standard start of API savepoint |
376 +--------------------------------------------------*/
377 SAVEPOINT delete_srvc_registration_pvt;
378
379 /*Set the return status to Success */
380 x_return_status := FND_API.G_RET_STS_SUCCESS;
381 l_error_counter := 1;
382
383 check_input_parameters(p_srvc_prvdr_name => p_srvc_prvdr_name,
384 p_srvc_type_code => p_srvc_type_code,
385 p_country_code => p_country_code,
386 p_business_flow => p_business_flow,
387 p_error_msg_tbl => x_error_msg_tbl,
388 p_error_counter => l_error_counter,
389 x_srvc_type_id => l_srvc_type_id,
390 x_api_owner_id => l_api_owner_id,
391 x_return_status => l_return_status
392 );
393 /*Determine number of records to decide the status in zx_api_owner_statues*/
394 BEGIN
395 SELECT count(*)
396 INTO l_count
397 FROM ZX_API_REGISTRATIONS
398 WHERE api_owner_id = l_api_owner_id
399 AND service_type_id = l_srvc_type_id;
400
401 EXCEPTION
402 WHEN NO_DATA_FOUND THEN
403 fnd_message.set_name('ZX', 'ZX_SRVC_RECORD_NOT_EXISTS');
404 x_error_msg_tbl(l_error_counter) := fnd_message.get;
405 x_return_status := FND_API.G_RET_STS_ERROR;
406 l_error_counter := l_error_counter+1;
407 END;
408
409 DELETE from ZX_API_REGISTRATIONS
410 WHERE EXISTS (SELECT *
411 FROM zx_api_registrations reg,
412 zx_api_code_combinations cmbn,
413 zx_service_types srvc
414 WHERE reg.api_owner_id = l_api_owner_id
415 AND srvc.service_type_id = reg.service_type_id
416 AND srvc.service_type_code = p_srvc_type_code
417 AND cmbn.segment_attribute1 = p_country_code
418 AND cmbn.segment_attribute2 = p_business_flow
419 AND reg.context_ccid = cmbn.code_combination_id
420 );
421
422 /*Update the status back to zx_api_statuses table*/
423 IF x_error_msg_tbl.COUNT = 0 THEN
424 BEGIN
425 SELECT status_code
426 INTO l_api_status
427 FROM ZX_API_OWNER_STATUSES
428 WHERE api_owner_id = l_api_owner_id
429 AND service_category_code = G_SRVC_CATEGORY;
430
431 EXCEPTION
432 WHEN no_data_found then
433 null;
434 END;
435
436 IF l_count = 1 THEN
437 IF l_api_status in ('NEW','GENERATED','MODIFIED') THEN
438 UPDATE ZX_API_OWNER_STATUSES
439 SET status_code = 'DELETED'
440 WHERE api_owner_id = l_api_owner_id
441 AND service_category_code = G_SRVC_CATEGORY;
442 END IF;
443 ELSE
444 IF l_api_status = 'GENERATED' THEN
445 UPDATE ZX_API_OWNER_STATUSES
446 SET status_code = 'MODIFIED'
447 WHERE api_owner_id = l_api_owner_id
448 AND service_category_code = G_SRVC_CATEGORY;
449 END IF;
450 END IF;
451 END IF;
452
453 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
454 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
455 END IF;
456
460 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
457 EXCEPTION
458 WHEN OTHERS THEN
459 ROLLBACK TO insert_row_Pvt;
461 FND_MESSAGE.set_name('ZX','ZX_UNEXPECTED_ERROR');
462 x_error_msg_tbl(l_error_counter) := fnd_message.get;
463 l_error_counter := l_error_counter+1;
464 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
465 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
466 END IF;
467 END DELETE_SRVC_REGISTRATION;
468
469
470 PROCEDURE execute_srvc_plugin (
471 p_api_version IN NUMBER,
472 x_error_msg_tbl OUT NOCOPY error_messages_tbl,
473 x_return_status OUT NOCOPY VARCHAR2,
474 p_srvc_prvdr_name IN VARCHAR2
475 ) IS
476 l_api_name CONSTANT VARCHAR2(30) := 'EXECUTE_SRVC_PLUGIN';
477 l_api_owner_id NUMBER;
478 l_error_counter NUMBER;
479 l_request_id NUMBER;
480
481 BEGIN
482 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
483 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
484 END IF;
485
486 /*--------------------------------------------------+
487 | Standard start of API savepoint |
488 +--------------------------------------------------*/
489 SAVEPOINT execute_srvc_plugin_pvt;
490
491 /*Set the return status to Success */
492 x_return_status := FND_API.G_RET_STS_SUCCESS;
493
494 /*Validate Service Provider Name*/
495 BEGIN
496 IF p_srvc_prvdr_name is not null THEN
497 SELECT ptp.party_tax_profile_id
498 INTO l_api_owner_id
499 FROM HZ_PARTIES pty,
500 ZX_PARTY_TAX_PROFILE ptp
501 WHERE pty.party_name = p_srvc_prvdr_name
502 AND pty.party_id = ptp.party_id
503 AND ptp.provider_type_code in ('BOTH', 'SERVICE')
504 AND (ptp.party_tax_profile_id =1
505 OR ptp.party_tax_profile_id=2);
506 ELSE
507 fnd_message.set_name('ZX', 'ZX_SRVC_PROVIDER_REQUIRED');
508 x_error_msg_tbl(l_error_counter) := fnd_message.get;
509 x_return_status := FND_API.G_RET_STS_ERROR;
510 l_error_counter := l_error_counter+1;
511 END IF;
512
513 EXCEPTION
514 WHEN NO_DATA_FOUND THEN
515 fnd_message.set_name('ZX', 'ZX_SRVC_PROVIDER_REQUIRED');
516 x_error_msg_tbl(l_error_counter) := fnd_message.get;
517 x_return_status := FND_API.G_RET_STS_ERROR;
518 l_error_counter := l_error_counter+1;
519 END;
520
521 IF x_error_msg_tbl.COUNT = 0 THEN
522 l_request_id := fnd_request.submit_request
523 (
524 application => 'ZX',
525 program => 'ZXPTNRSRVCPLUGIN',
526 sub_request => false,
527 argument1 => G_SRVC_CATEGORY,
528 argument2 => l_api_owner_id);
529 commit;
530 END IF;
531
532 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
533 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
534 END IF;
535
536 EXCEPTION
537 WHEN OTHERS THEN
538 ROLLBACK TO execute_srvc_plugin_pvt;
539 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
540 fnd_message.set_name('ZX', 'ZX_UNEXPECTED_ERROR');
541 x_error_msg_tbl(l_error_counter) := fnd_message.get;
542 l_error_counter := l_error_counter+1;
543 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
544 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
545 END IF;
546
547 END execute_srvc_plugin;
548 END ZX_API_PRVDR_PUB;