[Home] [Help]
PACKAGE BODY: APPS.EC_APPLICATION_ADVICE_PUB
Source
1 PACKAGE BODY EC_Application_Advice_PUB AS
2 -- $Header: ECPADVOB.pls 120.2 2005/09/29 11:30:37 arsriniv ship $
3
4 PROCEDURE create_advice(
5 p_api_version_number IN NUMBER,
6 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
7 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
8 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
10 p_return_status OUT NOCOPY VARCHAR2,
11 p_msg_count OUT NOCOPY NUMBER,
12 p_msg_data OUT NOCOPY VARCHAR2,
13 p_communication_method IN VARCHAR2,
14 p_related_document_id IN VARCHAR2,
15 p_tp_header_id IN NUMBER,
16 p_tp_location_code IN VARCHAR2,
17 p_document_type IN VARCHAR2,
18 p_document_code IN VARCHAR2,
19 p_transaction_control1 IN VARCHAR2 default NULL,
20 p_transaction_control2 IN VARCHAR2 default NULL,
21 p_transaction_control3 IN VARCHAR2 default NULL,
22 p_entity_code IN VARCHAR2 default NULL,
23 p_entity_name IN VARCHAR2 default NULL,
24 p_entity_address1 IN VARCHAR2 default NULL,
25 p_entity_address2 IN VARCHAR2 default NULL,
26 p_entity_address3 IN VARCHAR2 default NULL,
27 p_entity_address4 IN VARCHAR2 default NULL,
28 p_entity_city IN VARCHAR2 default NULL,
29 p_entity_postal_code IN VARCHAR2 default NULL,
30 p_entity_country IN VARCHAR2 default NULL,
31 p_entity_state IN VARCHAR2 default NULL,
32 p_entity_province IN VARCHAR2 default NULL,
33 p_entity_county IN VARCHAR2 default NULL,
34 p_external_reference_1 IN VARCHAR2 default NULL,
35 p_external_reference_2 IN VARCHAR2 default NULL,
36 p_external_reference_3 IN VARCHAR2 default NULL,
37 p_external_reference_4 IN VARCHAR2 default NULL,
38 p_external_reference_5 IN VARCHAR2 default NULL,
39 p_external_reference_6 IN VARCHAR2 default NULL,
40 p_internal_reference_1 IN VARCHAR2 default NULL,
41 p_internal_reference_2 IN VARCHAR2 default NULL,
42 p_internal_reference_3 IN VARCHAR2 default NULL,
43 p_internal_reference_4 IN VARCHAR2 default NULL,
44 p_internal_reference_5 IN VARCHAR2 default NULL,
45 p_internal_reference_6 IN VARCHAR2 default NULL,
46 p_advice_header_id OUT NOCOPY NUMBER
47 )
48 IS
49 l_api_name CONSTANT VARCHAR2(30) := 'Create_Advice';
50 l_api_version_number CONSTANT NUMBER := 1.0;
51 l_return_status VARCHAR2(10);
52 l_tp_exists VARCHAR2(1):='N'; -- Bug 2593437
53
54 BEGIN
55
56 p_advice_header_id := -99; -- Bug 2593437
57
58 begin
59 select 'Y'
60 into l_tp_exists
61 from ece_tp_details
62 where document_id='ADVO'
63 and tp_header_id= p_tp_header_id;
64 exception
65 when others then
66 null;
67 end;
68
69 if l_tp_exists = 'Y' then -- Bug 2593437
70
71 -- Standard Start of API savepoint
72
73 SAVEPOINT Create_Advice_PVT;
74
75 -- Standard call to check for call compatibility.
76
77 if NOT FND_API.Compatible_API_Call
78 (
79 l_api_version_number,
80 p_api_version_number,
81 l_api_name,
82 G_PKG_NAME
83 )
84 then
85 raise FND_API.G_EXC_UNEXPECTED_ERROR;
86 end if;
87
88 -- Initialize message list if p_init_msg_list is set to TRUE.
89
90 if FND_API.to_Boolean( p_init_msg_list)
91 then
92 FND_MSG_PUB.initialize;
93 end if;
94
95 -- Initialize API return status to success
96
97 p_return_status := FND_API.G_RET_STS_SUCCESS;
98
99
100 select ece_advo_headers_s.nextval
101 into p_advice_header_id
102 from dual;
103
104 /*
105 EC_Trading_Partner_PVT.Get_TP_Location_Code(
106 p_api_version_number => 1.0,
107 p_return_status => l_return_status,
108 p_msg_count => l_msg_count,
109 p_msg_data => l_msg_data,
110 p_entity_address_id => p_entity_address_id,
111 p_info_type => p_entity_type,
112 p_location_code_ext => l_location_code_ext,
113 p_reference_ext1 => l_reference_ext1,
114 p_reference_ext2 => l_reference_ext2);
115
116 if l_location_code_ext is NULL
117 then
118 fnd_message.set_name('EC','EC_TP_NOT_DEFINED');
119 FND_MSG_PUB.Add;
120 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
121 -- c_error_msg := fnd_message.get;
122 else
123
124 */
125
126
127
128 insert into ECE_ADVO_HEADERS (
129 communication_method,
130 ADVICE_HEADER_ID,
131 DOCUMENT_TYPE,
132 DOCUMENT_CODE,
133 TP_HEADER_ID,
134 TP_LOCATION_CODE_EXT,
135 TP_CODE,
136 TP_NAME,
137 TP_ADDRESS1,
138 TP_ADDRESS2,
139 TP_ADDRESS3,
140 TP_ADDRESS4,
141 TP_CITY,
142 TP_POSTAL_CODE,
143 TP_COUNTRY,
144 TP_STATE,
145 TP_PROVINCE,
146 TP_COUNTY,
147 RELATED_DOCUMENT_ID,
148 EXTERNAL_REFERENCE1,
149 EXTERNAL_REFERENCE2,
150 EXTERNAL_REFERENCE3,
151 EXTERNAL_REFERENCE4,
152 EXTERNAL_REFERENCE5,
153 EXTERNAL_REFERENCE6,
154 INTERNAL_REFERENCE1,
155 INTERNAL_REFERENCE2,
156 INTERNAL_REFERENCE3,
157 INTERNAL_REFERENCE4,
158 INTERNAL_REFERENCE5,
159 INTERNAL_REFERENCE6,
160 TRANSACTION_CONTROL1,
161 TRANSACTION_CONTROL2,
162 TRANSACTION_CONTROL3)
163 values (
164 p_communication_method,
165 p_advice_header_id,
166 p_document_type,
167 p_document_code,
168 p_tp_header_id,
169 p_tp_location_code,
170 p_entity_code,
171 p_entity_name,
172 p_entity_address1,
173 p_entity_address2,
174 p_entity_address3,
175 p_entity_address4,
176 p_entity_city,
177 p_entity_postal_code,
178 p_entity_country,
179 p_entity_state,
180 p_entity_province,
181 p_entity_county,
182 p_related_document_id,
183 p_external_reference_1,
184 p_external_reference_2,
185 p_external_reference_3,
186 p_external_reference_4,
187 p_external_reference_5,
188 p_external_reference_6,
189 p_internal_reference_1,
190 p_internal_reference_2,
191 p_internal_reference_3,
192 p_internal_reference_4,
193 p_internal_reference_5,
194 p_internal_reference_6,
195 p_transaction_control1,
196 p_transaction_control2,
197 p_transaction_control3);
198
199
200
201 -- Both G_EXC_ERROR and G_EXC_UNEXPECTED_ERROR are handled in
202 -- the API exception handler.
203
204 if l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
205 then
206
207 -- Unexpected error, abort processing.
208
209 raise FND_API.G_EXC_UNEXPECTED_ERROR;
210
211 elsif l_return_status = FND_API.G_RET_STS_ERROR THEN
212
213 -- Error, abort processing
214
215 raise FND_API.G_EXC_ERROR;
216
217 end if;
218
219 -- Standard check of p_simulate and p_commit parameters
220
221 if FND_API.To_Boolean( p_simulate)
222 then
223 ROLLBACK to Create_Advice_PVT;
224
225 elsif FND_API.To_Boolean( p_commit)
226 then
227 commit work;
228 end if;
229
230 -- Standard call to get message count and if count is 1, get message info.
231
232 FND_MSG_PUB.Count_And_Get
233 (
234 p_count => p_msg_count,
235 p_data => p_msg_data
236 );
237
238 end if; -- Bug 2593437
239
240
241 EXCEPTION
242
243 WHEN FND_API.G_EXC_ERROR THEN
244
245 Rollback to Create_Advice_PVT;
246 p_return_status := FND_API.G_RET_STS_ERROR;
247
248 FND_MSG_PUB.Count_And_Get
249 (
250 p_count => p_msg_count,
251 p_data => p_msg_data
252 );
253
254 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
255
256 Rollback to Create_Advice_PVT;
257 p_return_status := FND_API.G_RET_STS_ERROR;
258
259 FND_MSG_PUB.Count_And_Get
260 (
261 p_count => p_msg_count,
262 p_data => p_msg_data
263 );
264
265 WHEN OTHERS THEN
266
267 Rollback to Create_Advice_PVT;
268 p_return_status := FND_API.G_RET_STS_ERROR;
269
270 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
271 then
272 FND_MSG_PUB.Add_Exc_Msg
273 (
274 G_FILE_NAME,
275 G_PKG_NAME,
276 l_api_name
277 );
278 end if;
279
280 FND_MSG_PUB.Count_And_Get
281 (
282 p_count => p_msg_count,
283 p_data => p_msg_data
284 );
285
286 end Create_Advice;
287
288
289
290
291
292 PROCEDURE create_advice_line(
293 p_api_version_number IN NUMBER,
294 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
295 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
296 p_commit IN VARCHAR2 := FND_API.G_FALSE,
297 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
298 p_return_status OUT NOCOPY VARCHAR2,
299 p_msg_count OUT NOCOPY NUMBER,
300 p_msg_data OUT NOCOPY VARCHAR2,
301 p_advice_header_id IN NUMBER,
302 p_advice_date_time IN DATE,
303 p_advice_status_code IN VARCHAR2,
304 p_external_reference_1 IN VARCHAR2 default NULL,
305 p_external_reference_2 IN VARCHAR2 default NULL,
306 p_external_reference_3 IN VARCHAR2 default NULL,
307 p_external_reference_4 IN VARCHAR2 default NULL,
308 p_external_reference_5 IN VARCHAR2 default NULL,
309 p_external_reference_6 IN VARCHAR2 default NULL,
310 p_internal_reference_1 IN VARCHAR2 default NULL,
311 p_internal_reference_2 IN VARCHAR2 default NULL,
312 p_internal_reference_3 IN VARCHAR2 default NULL,
313 p_internal_reference_4 IN VARCHAR2 default NULL,
314 p_internal_reference_5 IN VARCHAR2 default NULL,
315 p_internal_reference_6 IN VARCHAR2 default NULL,
316 p_advo_message_code IN VARCHAR2 default NULL,
317 p_advo_message_desc IN VARCHAR2 default NULL,
318 p_advo_data_bad IN VARCHAR2 default NULL,
319 p_advo_data_good IN VARCHAR2 default NULL
320 )
321 IS
322 l_api_name CONSTANT VARCHAR2(30) := 'Create_Advice_Line';
323 l_api_version_number CONSTANT NUMBER := 1.0;
324 l_return_status VARCHAR2(10);
325 l_document_exists VARCHAR2(1):='N'; -- Bug 2593437
326
327 BEGIN
328
329 begin -- Bug 2593437
330 select 'Y'
331 into l_document_exists
332 from ece_advo_headers
333 where advice_header_id=p_advice_header_id;
334 exception
335 when others then
336 null;
337 end;
338
339 if l_document_exists = 'Y' then -- Bug 2593437
340
341
342 -- Standard Start of API savepoint
343
344 SAVEPOINT Create_Advice_Line_PVT;
345
346 -- Standard call to check for call compatibility.
347
348 if NOT FND_API.Compatible_API_Call
349 (
350 l_api_version_number,
351 p_api_version_number,
352 l_api_name,
353 G_PKG_NAME
354 )
355 then
356 raise FND_API.G_EXC_UNEXPECTED_ERROR;
357 end if;
358
359 -- Initialize message list if p_init_msg_list is set to TRUE.
360
361 if FND_API.to_Boolean( p_init_msg_list)
362 then
363 FND_MSG_PUB.initialize;
364 end if;
365
366 -- Initialize API return status to success
367
368 p_return_status := FND_API.G_RET_STS_SUCCESS;
369
370
371 insert into ECE_ADVO_DETAILS(
372 ADVICE_DETAIL_ID ,
373 ADVICE_HEADER_ID ,
374 ADVO_DATE_TIME ,
375 ADVO_STATUS_CODE ,
376 EXTERNAL_REFERENCE1,
377 EXTERNAL_REFERENCE2,
378 EXTERNAL_REFERENCE3,
379 EXTERNAL_REFERENCE4,
380 EXTERNAL_REFERENCE5,
381 EXTERNAL_REFERENCE6,
382 INTERNAL_REFERENCE1,
383 INTERNAL_REFERENCE2,
384 INTERNAL_REFERENCE3,
385 INTERNAL_REFERENCE4,
386 INTERNAL_REFERENCE5,
387 INTERNAL_REFERENCE6,
388 ADVO_MESSAGE_CODE ,
389 ADVO_MESSAGE_DESC ,
390 ADVO_DATA_BAD ,
391 ADVO_DATA_GOOD)
392 values(
393 ece_advo_details_s.nextval,
394 p_advice_header_id ,
395 p_advice_date_time ,
396 p_advice_status_code ,
397 p_external_reference_1,
398 p_external_reference_2,
399 p_external_reference_3,
400 p_external_reference_4,
401 p_external_reference_5,
402 p_external_reference_6,
403 p_internal_reference_1,
404 p_internal_reference_2,
405 p_internal_reference_3,
406 p_internal_reference_4,
407 p_internal_reference_5,
408 p_internal_reference_6,
409 p_advo_message_code ,
410 p_advo_message_desc ,
411 p_advo_data_bad ,
412 p_advo_data_good);
413
414
415
416 -- Both G_EXC_ERROR and G_EXC_UNEXPECTED_ERROR are handled in
417 -- the API exception handler.
418
419 if l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
420 then
421
422 -- Unexpected error, abort processing.
423
424 raise FND_API.G_EXC_UNEXPECTED_ERROR;
425
426 elsif l_return_status = FND_API.G_RET_STS_ERROR THEN
427
428 -- Error, abort processing
429
430 raise FND_API.G_EXC_ERROR;
431
432 end if;
433
434 -- Standard check of p_simulate and p_commit parameters
435
436 if FND_API.To_Boolean( p_simulate)
437 then
438 ROLLBACK to Create_Advice_Line_PVT;
439
440 elsif FND_API.To_Boolean( p_commit)
441 then
442 commit work;
443 end if;
444
445 -- Standard call to get message count and if count is 1, get message info.
446
447 FND_MSG_PUB.Count_And_Get
448 (
449 p_count => p_msg_count,
450 p_data => p_msg_data
451 );
452
453 end if; -- Bug 2593437
454
455 EXCEPTION
456
457 WHEN FND_API.G_EXC_ERROR THEN
458
459 Rollback to Create_Advice_Line_PVT;
460 p_return_status := FND_API.G_RET_STS_ERROR;
461
462 FND_MSG_PUB.Count_And_Get
463 (
464 p_count => p_msg_count,
465 p_data => p_msg_data
466 );
467
468 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
469
470 Rollback to Create_Advice_Line_PVT;
471 p_return_status := FND_API.G_RET_STS_ERROR;
472
473 FND_MSG_PUB.Count_And_Get
474 (
475 p_count => p_msg_count,
476 p_data => p_msg_data
477 );
478
479 WHEN OTHERS THEN
480
481 Rollback to Create_Advice_Line_PVT;
482 p_return_status := FND_API.G_RET_STS_ERROR;
483
484 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
485 then
486 FND_MSG_PUB.Add_Exc_Msg
487 (
488 G_FILE_NAME,
489 G_PKG_NAME,
490 l_api_name
491 );
492 end if;
493
494 FND_MSG_PUB.Count_And_Get
495 (
496 p_count => p_msg_count,
497 p_data => p_msg_data
498 );
499
500 end Create_Advice_Line;
501
502
503
504 END;
505