[Home] [Help]
PACKAGE BODY: APPS.JL_BR_SPED_PUB
Source
1 PACKAGE BODY JL_BR_SPED_PUB AS
2 /* $Header: jlspedpb.pls 120.3 2010/10/05 13:05:05 abuissa noship $ */
3
4 -- Global Constant variable for holding Package Name
5
6 G_PKG_NAME CONSTANT VARCHAR2(20):= 'JL_BR_SPED_PUB';
7
8 -- Declare VARRAY
9
10 TYPE token_array IS TABLE OF VARCHAR2(25) INDEX BY binary_integer;
11 TYPE value_for_token IS TABLE OF VARCHAR2(25) INDEX BY binary_integer;
12
13
14 -- Function REPLACE_TOKEN for replacing tokens with actual value
15
16 FUNCTION REPLACE_TOKEN(
17 msg IN VARCHAR2,
18 tokens IN token_array,
19 tokenValues IN value_for_token) RETURN VARCHAR2 IS
20
21 message VARCHAR2(1000);
22
23 BEGIN
24 message := msg;
25 FOR iNtex IN tokens.FIRST .. tokens.LAST LOOP
26 message := replace(message,tokens(iNtex),tokenValues(iNtex));
27 END LOOP;
28
29 RETURN message;
30
31 END REPLACE_TOKEN;
32
33 -- UPDATE_ATTRIBUTES Procedure - To update the attributes
34
35 PROCEDURE UPDATE_ATTRIBUTES (
36 P_API_VERSION IN NUMBER DEFAULT 1.0,
37 P_COMMIT IN VARCHAR2 DEFAULT FND_API.G_FALSE,
38 P_CUSTOMER_TRX_ID IN NUMBER,
39 P_ELECT_INV_WEB_ADDRESS IN VARCHAR2,
40 P_ELECT_INV_STATUS IN VARCHAR2,
41 P_ELECT_INV_ACCESS_KEY IN VARCHAR2,
42 P_ELECT_INV_PROTOCOL IN VARCHAR2,
43 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
44 X_MSG_DATA OUT NOCOPY VARCHAR2)
45
46 IS
47 PRAGMA AUTONOMOUS_TRANSACTION; --bug 10171220
48
49 -- Declaration part
50
51 CURSOR C_EXT IS
52 SELECT COUNT(*) as cnt FROM JL_BR_CUSTOMER_TRX_EXTS
53 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
54
55 CURSOR C_TRX IS
56 SELECT 'Yes' as isExist
57 FROM JL_BR_CUSTOMER_TRX_EXTS
58 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID
59 AND ELECTRONIC_INV_STATUS IN ('2','7');
60
61 CURSOR C_CUST_TRX_EXIST IS
62 SELECT 'Yes' as isExist FROM RA_CUSTOMER_TRX_ALL
63 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
64
65 CURSOR C_VALID_EI_STATUS IS
66 SELECT 'Yes' as isExist FROM FND_LOOKUPS
67 WHERE LOOKUP_TYPE = 'JLBR_EI_STATUS'
68 AND LOOKUP_CODE = P_ELECT_INV_STATUS;
69
70 l_count NUMBER;
71 isExist VARCHAR2(5) := 'No';
72 l_api_name VARCHAR2(30) := 'UPDATES_ATTRIBUTES';
73 l_api_version NUMBER := 1.0;
74 inv_status_final EXCEPTION;
75 invalid_cust_trx_id EXCEPTION;
76 invalid_ei_status EXCEPTION;
77 incompatible_apiversion EXCEPTION;
78 invalid_commit_param EXCEPTION;
79 invalid_apiversion EXCEPTION;
80
81 tok_arr token_array;
82 val_for_token value_for_token;
83
84 BEGIN
85
86 X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
87
88 -- Standard call to check for call compatibility
89
90 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, P_API_VERSION, l_api_name, G_PKG_NAME) THEN
91 tok_arr(1) := '&'||'CURR_VER_NUM';
92 tok_arr(2) := '&'||'API_NAME';
93 tok_arr(3) := '&'||'PKG_NAME';
94 tok_arr(4) := '&'||'CALLER_VER_NUM';
95 val_for_token(1) := l_api_version;
96 val_for_token(2) := l_api_name;
97 val_for_token(3) := G_PKG_NAME;
98 val_for_token(4) := P_API_VERSION;
99 IF TRUNC(l_api_version) > TRUNC(P_API_VERSION) THEN
100 RAISE incompatible_apiversion;
101 ELSE
102 RAISE invalid_apiversion;
103 END IF;
104 END IF;
105
106
107 FOR cust_trx_exist_rec IN C_CUST_TRX_EXIST LOOP
108 isExist := cust_trx_exist_rec.isExist;
109 END LOOP;
110
111 /* If Valid customer Trx ID is passed */
112 IF isExist = 'Yes' THEN
113
114 isExist := 'No'; -- Reinitializing the var
115
116 FOR ei_status_rec IN C_VALID_EI_STATUS LOOP
117 isExist := ei_status_rec.isExist;
118 END LOOP;
119
120 /* If Valid Electronic Invoice Staus is passed */
121 IF isExist = 'Yes' THEN
122 FOR ext_rec IN C_EXT LOOP
123 l_count := ext_rec.cnt;
124 END LOOP;
125
126 IF l_count = 0 THEN
127 -- Create an entry in JL_BR_CUSTOMER_TRX_EXTS table
128 INSERT INTO JL_BR_CUSTOMER_TRX_EXTS(
129 CUSTOMER_TRX_ID,
130 ELECTRONIC_INV_WEB_ADDRESS,
131 ELECTRONIC_INV_STATUS,
132 ELECTRONIC_INV_ACCESS_KEY,
133 ELECTRONIC_INV_PROTOCOL,
134 LAST_UPDATE_DATE,
135 LAST_UPDATED_BY,
136 LAST_UPDATE_LOGIN,
137 CREATED_BY,
138 CREATION_DATE)
139 VALUES (
140 P_CUSTOMER_TRX_ID,
141 P_ELECT_INV_WEB_ADDRESS,
142 P_ELECT_INV_STATUS,
143 P_ELECT_INV_ACCESS_KEY,
144 P_ELECT_INV_PROTOCOL,
145 SYSDATE,
146 -1,
147 -1,
148 -1,
149 SYSDATE);
150 ELSE
151
152 -- Bug 8780811
153 If p_elect_inv_status <> '4' Then
154 FOR trx_rec IN C_TRX LOOP
155 RAISE inv_status_final;
156 END LOOP;
157 End If;
158 -- Bug 8780811
159
160 UPDATE JL_BR_CUSTOMER_TRX_EXTS
161 SET ELECTRONIC_INV_WEB_ADDRESS = P_ELECT_INV_WEB_ADDRESS,
162 ELECTRONIC_INV_STATUS = P_ELECT_INV_STATUS,
163 ELECTRONIC_INV_ACCESS_KEY = P_ELECT_INV_ACCESS_KEY,
164 ELECTRONIC_INV_PROTOCOL = P_ELECT_INV_PROTOCOL,
165 LAST_UPDATE_DATE = SYSDATE,
166 LAST_UPDATED_BY = -1,
167 LAST_UPDATE_LOGIN = -1
168 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
169
170 END IF;
171
172 IF P_ELECT_INV_STATUS IN ('2','7') THEN
173 UPDATE AR_PAYMENT_SCHEDULES_ALL
174 SET SELECTED_FOR_RECEIPT_BATCH_ID = NULL
175 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
176 END IF;
177
178
179 BEGIN
180 IF FND_API.TO_BOOLEAN(P_COMMIT) THEN
181 COMMIT;
182 ELSE
183 ROLLBACK;
184 END IF;
185 EXCEPTION
186 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
187 RAISE invalid_commit_param;
188 END;
189
190
191 ELSE /* If Invalid Electronic Invoice Status is passed */
192 tok_arr(1) := '&'||'INV_STATUS';
193 val_for_token(1) := P_ELECT_INV_STATUS;
194 RAISE invalid_ei_status;
195 END IF;
196 ELSE /* If Invalid customer Trx ID is passed */
197 tok_arr(1) := '&'||'TRX_ID';
198 val_for_token(1) := P_CUSTOMER_TRX_ID;
199 RAISE invalid_cust_trx_id;
200 END IF;
201
202 EXCEPTION
203
204 WHEN invalid_apiversion THEN
205 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
206 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INVALID_VER_NUM',NULL);
207 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
208
209 WHEN incompatible_apiversion THEN
210 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
211 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INCOMPATIBLE_API_CALL',NULL);
212 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
213
214 WHEN invalid_cust_trx_id THEN
215 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
216 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INVALID_CUST_TRX_ID',NULL);
217 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
218
219 WHEN invalid_ei_status THEN
220 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
221 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INVALID_EI_STATUS',NULL);
222 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
223
224 WHEN inv_status_final THEN
225 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
226 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_EI_FINALIZED',NULL);
227
228 WHEN invalid_commit_param THEN
229 ROLLBACK;
230 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
231 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_API_COMMIT',NULL);
232
233 WHEN OTHERS THEN
234 ROLLBACK;
235 tok_arr(1) := 'ERRMSG';
236 val_for_token(1) := SQLERRM;
237 X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
238 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_API_ERROR',NULL);
239 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
240
241 END UPDATE_ATTRIBUTES;
242
243 -- INSERT_LOG Procedure - To insert the log
244
245 PROCEDURE INSERT_LOG (
246 P_API_VERSION IN NUMBER DEFAULT 1.0,
247 P_COMMIT IN VARCHAR2 DEFAULT FND_API.G_FALSE,
248 P_CUSTOMER_TRX_ID IN NUMBER,
249 P_OCCURRENCE_DATE IN DATE,
250 P_ELECT_INV_STATUS IN VARCHAR2,
251 P_MESSAGE_TEXT IN VARCHAR2,
252 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
253 X_MSG_DATA OUT NOCOPY VARCHAR2)
254
255 IS
256 PRAGMA AUTONOMOUS_TRANSACTION; --bug 10171220
257
258 -- Declaration part
259
260 CURSOR C_INV_STATUS IS
261 SELECT ELECTRONIC_INV_STATUS
262 FROM JL_BR_CUSTOMER_TRX_EXTS
263 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
264
265 CURSOR C_CUST_TRX_EXIST IS
266 SELECT 'Yes' as isExist FROM RA_CUSTOMER_TRX_ALL
267 WHERE CUSTOMER_TRX_ID = P_CUSTOMER_TRX_ID;
268
269 CURSOR C_VALID_EI_STATUS IS
270 SELECT 'Yes' as isExist FROM FND_LOOKUPS
271 WHERE LOOKUP_TYPE = 'JLBR_EI_STATUS'
272 AND LOOKUP_CODE = P_ELECT_INV_STATUS;
273
274 l_api_name VARCHAR2(30) := 'INSERT_LOG';
275 l_api_version NUMBER := 1.0;
276 isExist VARCHAR2(5) :='No';
277 inv_status_differs EXCEPTION;
278 invalid_cust_trx_id EXCEPTION;
279 invalid_ei_status EXCEPTION;
280 incompatible_apiversion EXCEPTION;
281 invalid_commit_param EXCEPTION;
282 invalid_apiversion EXCEPTION;
283
284 tok_arr token_array;
285 val_for_token value_for_token;
286
287 BEGIN
288
289 X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
290
291 -- Standard call to check for call compatibility
292
293 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, P_API_VERSION, l_api_name, G_PKG_NAME) THEN
294 tok_arr(1) := '&'||'CURR_VER_NUM';
295 tok_arr(2) := '&'||'API_NAME';
296 tok_arr(3) := '&'||'PKG_NAME';
297 tok_arr(4) := '&'||'CALLER_VER_NUM';
298 val_for_token(1) := l_api_version;
299 val_for_token(2) := l_api_name;
300 val_for_token(3) := G_PKG_NAME;
301 val_for_token(4) := P_API_VERSION;
302 IF TRUNC(l_api_version) > TRUNC(P_API_VERSION) THEN
303 RAISE incompatible_apiversion;
304 ELSE
305 RAISE invalid_apiversion;
306 END IF;
307 END IF;
308
309
310 FOR cust_trx_exist_rec IN C_CUST_TRX_EXIST LOOP
311 isExist := cust_trx_exist_rec.isExist;
312 END LOOP;
313
314 /* If Valid customer Trx ID is passed */
315 IF isExist = 'Yes' THEN
316
317 isExist := 'No'; -- Reinitializing the var
318
319 FOR ei_status_rec IN C_VALID_EI_STATUS LOOP
320 isExist := ei_status_rec.isExist;
321 END LOOP;
322
323 /* If Valid Electronic Invoice Staus is passed */
324 IF isExist = 'Yes' THEN
325
326 FOR inv_status_rec IN C_INV_STATUS LOOP
327 IF inv_status_rec.ELECTRONIC_INV_STATUS <> P_ELECT_INV_STATUS THEN
328 RAISE inv_status_differs;
329 END IF;
330 END LOOP;
331
332
333 -- Create an entry in JL_BR_EILOG table
334 INSERT INTO JL_BR_EILOG (
335 OCCURRENCE_ID,
336 OCCURRENCE_DATE,
337 CUSTOMER_TRX_ID,
338 ELECTRONIC_INV_STATUS,
339 MESSAGE_TXT,
340 LAST_UPDATE_DATE,
341 LAST_UPDATED_BY,
342 LAST_UPDATE_LOGIN,
343 CREATION_DATE,
344 CREATED_BY)
345 VALUES
346 (JL_BR_EILOG_S.NEXTVAL,
347 P_OCCURRENCE_DATE,
348 P_CUSTOMER_TRX_ID,
349 P_ELECT_INV_STATUS,
350 P_MESSAGE_TEXT,
351 SYSDATE,
352 -1,
353 -1,
354 SYSDATE,
355 -1);
356
357 BEGIN
358 IF FND_API.TO_BOOLEAN(P_COMMIT) THEN
359 COMMIT;
360 ELSE
361 ROLLBACK;
362 END IF;
363 EXCEPTION
364 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
365 RAISE invalid_commit_param;
366 END;
367
368 ELSE /* If Invalid Electronic Invoice Status is passed */
369 tok_arr(1) := '&'||'INV_STATUS';
370 val_for_token(1) := P_ELECT_INV_STATUS;
371 RAISE invalid_ei_status;
372 END IF;
373 ELSE /* If Invalid customer Trx ID is passed */
374 tok_arr(1) := '&'||'TRX_ID';
375 val_for_token(1) := P_CUSTOMER_TRX_ID;
376 RAISE invalid_cust_trx_id;
377 END IF;
378
379
380 EXCEPTION
381
382 WHEN invalid_apiversion THEN
383 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
384 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INVALID_VER_NUM',NULL);
385 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
386
387 WHEN incompatible_apiversion THEN
388 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
389 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INCOMPATIBLE_API_CALL',NULL);
390 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
391
392 WHEN invalid_cust_trx_id THEN
393 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
394 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INVALID_CUST_TRX_ID',NULL);
395 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
396
397 WHEN invalid_ei_status THEN
398 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
399 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INVALID_EI_STATUS',NULL);
400 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
401
402 WHEN inv_status_differs THEN
403 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
404 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INV_STATUS_DIFFERS',NULL);
405
406 WHEN invalid_commit_param THEN
407 ROLLBACK;
408 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
409 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_API_COMMIT',NULL);
410
411 WHEN OTHERS THEN
412 ROLLBACK;
413 tok_arr(0) := 'ERRMSG';
414 val_for_token(0) := SQLERRM;
415 X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
416 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_API_ERROR',NULL);
417 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
418
419 END INSERT_LOG;
420
421
422 -- GET_IBGE_CODES Procedure - To retrieve IBGE code for a given Location
423
424 PROCEDURE GET_IBGE_CODES (
425 P_API_VERSION IN NUMBER DEFAULT 1.0,
426 P_LOCATION_ID IN NUMBER ,
427 X_STATE_CODE OUT NOCOPY VARCHAR2,
428 X_CITY_CODE OUT NOCOPY VARCHAR2,
429 X_CENTRAL_BANK_CODE OUT NOCOPY VARCHAR2,
430 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
431 X_MSG_DATA OUT NOCOPY VARCHAR2)
432
433 IS
434
435 -- Declaration part
436
437 CURSOR get_state_code IS
438 SELECT
439 identifier_value state
440 FROM
441 hz_geography_identifiers geo_ident,
442 hz_geo_name_references geo_ref,
443 hz_locations loc
444 WHERE
445 loc.location_id = P_LOCATION_ID
446 and loc.location_id = geo_ref.location_id
447 and geo_ref.geography_type = 'STATE'
448 and geo_ident.identifier_subtype = 'IBGE'
449 and geo_ident.geography_id = geo_ref.geography_id
450 and geo_ident.geography_type = 'STATE';
451
452
453 CURSOR get_city_code IS
454 SELECT
455 identifier_value city
456 FROM
457 hz_geography_identifiers geo_ident,
458 hz_geo_name_references geo_ref,
459 hz_locations loc
460 WHERE
461 loc.location_id = P_LOCATION_ID
462 and loc.location_id = geo_ref.location_id
463 and geo_ref.geography_type = 'CITY'
464 and geo_ident.identifier_subtype = 'IBGE'
465 and geo_ident.geography_id = geo_ref.geography_id
466 and geo_ident.geography_type = 'CITY';
467
468 CURSOR get_bank_code IS
469 SELECT meaning
470 FROM FND_LOOKUPS
471 WHERE lookup_type = 'JLBR_CBANK_COUNTRY_CODES'
472 and lookup_code = (SELECT country
473 FROM hz_locations
474 WHERE location_id = P_LOCATION_ID);
475
476 CURSOR c_valid_location IS
477 SELECT
478 'Yes' as isexist
479 FROM HZ_LOCATIONS
480 WHERE
481 location_id = P_LOCATION_ID;
482
483
484 l_api_name VARCHAR2(30) := 'GET_IBGE_CODES';
485 l_api_version NUMBER := 1.0;
486 isExist VARCHAR2(5) := 'No';
487 invalid_loc_id EXCEPTION;
488 incompatible_apiversion EXCEPTION;
489 invalid_apiversion EXCEPTION;
490 l_state_col varchar2(30);
491 l_city_col varchar2(30);
492
493 tok_arr token_array;
494 val_for_token value_for_token;
495
496 BEGIN
497
498 X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
499
500 -- Standard call to check for call compatibility
501
502 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, P_API_VERSION, l_api_name, G_PKG_NAME) THEN
503 tok_arr(1) := '&'||'CURR_VER_NUM';
504 tok_arr(2) := '&'||'API_NAME';
505 tok_arr(3) := '&'||'PKG_NAME';
506 tok_arr(4) := '&'||'CALLER_VER_NUM';
507 val_for_token(1) := l_api_version;
508 val_for_token(2) := l_api_name;
509 val_for_token(3) := G_PKG_NAME;
510 val_for_token(4) := P_API_VERSION;
511 IF TRUNC(l_api_version) > TRUNC(P_API_VERSION) THEN
512 RAISE incompatible_apiversion;
513 ELSE
514 RAISE invalid_apiversion;
515 END IF;
516 END IF;
517
518
519 FOR location_rec IN c_valid_location LOOP
520 isExist := location_rec.isExist;
521 END LOOP;
522
523 /* If Valid Location ID is passed */
524 IF isExist = 'Yes' THEN
525
526 -- get state code
527 FOR c_state_code_rec IN get_state_code LOOP
528 X_STATE_CODE := c_state_code_rec.state;
529 END LOOP;
530
531 -- get city code
532
533 FOR c_city_code_rec IN get_city_code LOOP
534 X_CITY_CODE := c_city_code_rec.city;
535 END LOOP;
536
537 -- get bank code
538 FOR c_bank_code_rec IN get_bank_code LOOP
539 X_CENTRAL_BANK_CODE := c_bank_code_rec.meaning;
540 END LOOP;
541
542 ELSE
543 tok_arr(1) := '&'||'LOC_ID';
544 val_for_token(1) := P_LOCATION_ID;
545 RAISE invalid_loc_id;
546 END IF;
547
548 EXCEPTION
549
550 WHEN invalid_apiversion THEN
551 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
552 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INVALID_VER_NUM',NULL);
553 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
554
555 WHEN incompatible_apiversion THEN
556 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
557 X_MSG_DATA := FND_MESSAGE.GET_STRING('FND','FND_AS_INCOMPATIBLE_API_CALL',NULL);
558 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
559
560 WHEN invalid_loc_id THEN
561 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
562 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_INVALID_LOC_ID',NULL);
563 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
564
565 WHEN OTHERS THEN
566 ROLLBACK;
567 tok_arr(1) := 'ERRMSG';
568 val_for_token(1) := SQLERRM;
569 X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
570 X_MSG_DATA := FND_MESSAGE.GET_STRING('JL','JL_BR_API_ERROR',NULL);
571 X_MSG_DATA := REPLACE_TOKEN(X_MSG_DATA,tok_arr,val_for_token);
572
573 END GET_IBGE_CODES;
574
575 END JL_BR_SPED_PUB;