[Home] [Help]
PACKAGE BODY: APPS.IEX_SEND_FFM_PVT
Source
1 PACKAGE BODY IEX_SEND_FFM_PVT as
2 /* $Header: iexvffmb.pls 120.4 2004/10/28 20:30:24 clchang ship $ */
3 -- Start of Comments
4 -- Package name : IEX_SEND_FFM_PVT
5 -- Purpose : Calling Fulfillement
6 -- NOTE :
7 -- History :
8 -- 03/20/2001 CLCHANG Created.
9 -- END of Comments
10
11
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'IEX_SEND_FFM_PVT';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iexvffmb.pls';
14
15
16
17 -- Validation
18 -- **************************
19 --PG_DEBUG NUMBER(2) := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
20 PG_DEBUG NUMBER ;
21
22 PROCEDURE Validate_Media_Type
23 (
24 P_Init_Msg_List IN VARCHAR2 ,
25 P_Content_Tbl IN IEX_SEND_FFM_PVT.CONTENT_TBL_TYPE,
26 X_Return_Status OUT NOCOPY VARCHAR2,
27 X_Msg_Count OUT NOCOPY NUMBER,
28 X_Msg_Data OUT NOCOPY VARCHAR2
29 )
30 IS
31 l_api_name CONSTANT VARCHAR2(30) := 'Validate Media_Type';
32 l_Content_tbl IEX_SEND_FFM_PVT.CONTENT_TBL_TYPE ;
33 l_content_id NUMBER;
34 l_media_type VARCHAR2(30);
35 l_email VARCHAR2(1000) ;
36 l_printer VARCHAR2(1000) ;
37 l_file_path VARCHAR2(1000) ;
38 l_fax VARCHAR2(1000) ;
39 l_msg_count NUMBER ;
40 l_msg_data VARCHAR2(1000);
41 l_return_status VARCHAR2(1000);
42 l_Cnt NUMBER;
43 errmsg VARCHAR2(32767);
44
45 BEGIN
46
47 l_content_tbl := p_content_tbl;
48
49 -- Initialize message list IF p_init_msg_list is set to TRUE.
50 IF FND_API.to_Boolean( p_init_msg_list )
51 THEN
52 FND_MSG_PUB.initialize;
53 END IF;
54
55 -- Initialize API return status to SUCCESS
56 x_return_status := FND_API.G_RET_STS_SUCCESS;
57
58 -- Debug Message
59 iex_dunning_pvt.WriteLog('iexvffmb.pls:Validate Media Type');
60
61 l_Cnt := l_content_tbl.count;
62 iex_dunning_pvt.WriteLog('iexvffmb.pls:l_cnt='||l_cnt);
63 for i in 1..l_cnt loop
64 iex_dunning_pvt.WriteLog('Validate_Media_Type: i:'||i );
65 l_media_type := l_content_tbl(i).media_type;
66 l_email := l_content_tbl(i).email;
67 l_printer := l_content_tbl(i).printer;
68 l_file_path := l_content_tbl(i).file_path;
69 l_fax := l_content_tbl(i).fax;
70 iex_dunning_pvt.WriteLog('Validate_Media_Type: media_type:'||l_media_type );
71 iex_dunning_pvt.WriteLog('Validate_Media_Type: email:'||l_email );
72 iex_dunning_pvt.WriteLog('Validate_Media_Type: printer:'||l_printer );
73 iex_dunning_pvt.WriteLog('Validate_Media_Type: fax:'||l_fax );
74 --
75 if (l_media_type = 'EMAIL' and l_email is null) OR
76 (l_media_type = 'PRINTER' and l_printer is null) OR
77 (l_media_type = 'FAX' and l_fax is null) OR
78 (l_media_type = 'FILE' and l_file_path is null)
79 then
80 --dbms_output.put_line('found!');
81 iex_dunning_pvt.WriteLog('Validate_Media_Type: no media type');
82 -- IF PG_DEBUG < 10 THEN
83 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
84 IEX_DEBUG_PUB.LogMessage('Validate_Media_Type: ' || 'iexvffmb.pls:missing media_type');
85 END IF;
86 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
87 FND_MESSAGE.Set_Token ('INFO', ' no media_type');
88 FND_MSG_PUB.Add;
89 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
90 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
91 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
92 P_Procedure_name => 'IEX_SEND_FFM_PVT.VALIDATE_MEDIA_TYPE',
93 P_MESSAGE => 'NO MEDIA_TYPE'); */
94 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
95 raise FND_API.G_EXC_ERROR;
96 end if;
97 end loop;
98
99
100 FND_MSG_PUB.Count_And_Get
101 ( p_count => x_msg_count,
102 p_data => x_msg_data );
103
104 EXCEPTION
105 WHEN FND_API.G_EXC_ERROR THEN
106 x_return_status := FND_API.G_RET_STS_ERROR;
107 FND_MSG_PUB.Count_And_Get
108 ( p_count => x_msg_count,
109 p_data => x_msg_data
110 );
111 iex_dunning_pvt.WriteLog('iexvffmb:Validate:Exc Exception');
112 errmsg := SQLERRM;
113 iex_dunning_pvt.WriteLog('iexvffmb:Validate:error='||errmsg);
114
115 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
116 x_return_status := FND_API.G_RET_STS_ERROR;
117 FND_MSG_PUB.Count_And_Get
118 ( p_count => x_msg_count,
119 p_data => x_msg_data
120 );
121 iex_dunning_pvt.WriteLog('iexvffmb:Validate:UnExc Exception');
122 errmsg := SQLERRM;
123 iex_dunning_pvt.WriteLog('iexvffmb:Validate:error='||errmsg);
124
125 WHEN OTHERS THEN
126 x_return_status := FND_API.G_RET_STS_ERROR;
127 FND_MSG_PUB.Count_And_Get
128 ( p_count => x_msg_count,
129 p_data => x_msg_data
130 );
131 iex_dunning_pvt.WriteLog('iexvffmb:Validate:Other Exception');
132 errmsg := SQLERRM;
133 iex_dunning_pvt.WriteLog('iexvffmb:Validate:error='||errmsg);
134
135
136 END Validate_MEDIA_TYPE;
137
138
139
140
141 -- Calling FFM APIs
142 -- **************************
143
144 PROCEDURE Send_FFM(
145 P_Api_Version_Number IN NUMBER,
146 P_Init_Msg_List IN VARCHAR2 ,
147 P_Commit IN VARCHAR2 ,
148 P_Content_NM IN VARCHAR2,
149 P_User_id IN NUMBER,
150 P_Server_id IN NUMBER,
151 P_Party_id IN NUMBER,
152 P_Subject IN VARCHAR2,
153 P_Content_tbl IN IEX_SEND_FFM_PVT.CONTENT_TBL_TYPE,
154 p_bind_var IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
155 p_bind_var_type IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
156 p_bind_val IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
157 --p_bind_cnt_tbl IN IEX_SEND_FFM_PVT.BIND_CNT_TBL,
158 /*
159 P_Content_ID IN NUMBER,
160 P_Media_Type IN VARCHAR2,
161 P_Request_Type IN VARCHAR2,
162 P_User_Note IN VARCHAR2,
163 P_Document_Type IN VARCHAR2,
164 P_Email IN VARCHAR2,
165 P_Printer IN VARCHAR2,
166 P_File_Path IN VARCHAR2,
167 P_Fax IN VARCHAR2,
168 */
169 X_Request_ID OUT NOCOPY NUMBER,
170 X_Return_Status OUT NOCOPY VARCHAR2,
171 X_Msg_Count OUT NOCOPY NUMBER,
172 X_Msg_Data OUT NOCOPY VARCHAR2
173 )
174 IS
175
176 l_api_name CONSTANT VARCHAR2(30) := 'IEXVFFMB';
177 l_api_version NUMBER := 1.0;
178 l_commit VARCHAR2(5) ;
179 --
180 l_Content_tbl IEX_SEND_FFM_PVT.CONTENT_TBL_TYPE ;
181 l_content_id NUMBER;
182 l_media_type VARCHAR2(30);
183 l_request_type VARCHAR2(30);
184 l_user_note VARCHAR2(1000);
185 l_document_type VARCHAR2(100);
186 l_bind_var JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
187 l_bind_var_type JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
188 l_bind_val JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
189 --l_bind_cnt_tbl IEX_SEND_FFM_PVT.BIND_CNT_TBL := p_bind_cnt_tbl;
190 --l_bind_cnt NUMBER;
191 --l_bind_total NUMBER;
192 l_email VARCHAR2(1000) ;
193 l_printer VARCHAR2(1000) ;
194 l_file_path VARCHAR2(1000) ;
195 l_fax VARCHAR2(1000) ;
196 --
197 l_content_nm NUMBER ;
198 l_party_id NUMBER ;
199 l_user_id NUMBER ;
200 l_server_id NUMBER ;
201 l_subject VARCHAR2(1000) ;
202 --
203 l_request_id NUMBER ;
204 l_msg_count NUMBER ;
205 l_msg_data VARCHAR2(1000);
206 l_return_status VARCHAR2(1000);
207 l_one_content_xml VARCHAR2(1000);
208 l_content_xml VARCHAR2(32767);
209
210 BEGIN
211
212 -- Standard Start of API savepoint
213 SAVEPOINT SEND_FFM_PUB;
214
215 l_content_tbl := p_content_tbl;
216 l_content_nm := TO_NUMBER(p_content_nm);
217 l_party_id := p_party_id;
218 l_user_id := p_user_id;
219 l_server_id := p_server_id;
220 l_subject := p_subject;
221
222 -- Standard call to check for call compatibility.
223 IF NOT FND_API.Compatible_API_Call ( l_api_version,
224 p_api_version_number,
225 l_api_name,
226 G_PKG_NAME )
227 THEN
228 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
229 END IF;
230
231 -- Initialize message list IF p_init_msg_list is set to TRUE.
232 IF FND_API.to_Boolean( p_init_msg_list )
233 THEN
234 FND_MSG_PUB.initialize;
235 END IF;
236
237
238 -- Debug Message
239 -- IF PG_DEBUG < 10 THEN
240 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
241 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM');
242 END IF;
243
244
245 -- Initialize API return status to SUCCESS
246 x_return_status := FND_API.G_RET_STS_SUCCESS;
247
248 --
249 -- API body
250 --
251
252 -- ******************************************************************
253 -- Validate Environment
254 -- ******************************************************************
255 /*
256 IF FND_GLOBAL.User_Id IS NULL
257 THEN
258 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
259 THEN
260 AS_UTILITY_PVT.Set_Message(
261 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
262 p_msg_name => 'UT_CANNOT_GET_PROFILE_VALUE',
263 p_token1 => 'PROFILE',
264 p_token1_value => 'USER_ID');
265
266 END IF;
267 RAISE FND_API.G_EXC_ERROR;
268 END IF;
269 */
270
271 -- Debug message
272
273 -- Invoke validation procedures
274 --- Validate Data
275 Validate_Media_Type
276 (
277 p_Init_Msg_List => p_init_msg_list,
278 p_content_tbl => l_content_tbl,
279 x_return_status => l_return_status,
280 x_msg_count => l_msg_count,
281 x_msg_data => l_msg_data
282 );
283
284 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
285 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
286 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
287 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
288 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
289 P_MESSAGE => 'NO MEDIA_TYPE'); */
290 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
291 -- IF PG_DEBUG < 10 THEN
292 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
293 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM : NO MEDIA_TYPE');
294 END IF;
295 x_msg_count := l_msg_count;
296 x_msg_data := l_msg_data;
297 RAISE FND_API.G_EXC_ERROR;
298 END IF;
299
300 -- Debug message
301 -- IF PG_DEBUG < 10 THEN
302 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
303 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Start Request');
304 END IF;
305
306 -- Start the fulfillment request. The output request_id must be passed
307 -- to all subsequent calls made for this request.
308 JTF_FM_REQUEST_GRP.STart_Request
309 (
310 p_api_version => l_api_version,
311 x_return_status => l_return_status,
312 x_msg_count => l_msg_count,
313 x_msg_data => l_msg_data,
314 x_request_id => l_request_id
315 );
316
317 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
318 --dbms_output.put_line('no request id');
319 --FND_MESSAGE.Set_Name('IEX', 'IEX_NO_REQUEST_ID');
320 --FND_MSG_PUB.ADD;
321 --msg
322 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
323 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
324 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
325 P_Procedure_name => 'IEX_SEND_FFM_PVT.VALIDATE_MEDIA_TYPE',
326 P_MESSAGE => 'ERROR To Start_Request;'); */
327 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
328 x_msg_count := l_msg_count;
329 x_msg_data := l_msg_data;
330 -- IF PG_DEBUG < 10 THEN
331 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
332 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: no request id');
333 END IF;
334 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
335 FND_MESSAGE.Set_Token ('INFO', 'not get request_id');
336 FND_MSG_PUB.Add;
337 RAISE FND_API.G_EXC_ERROR;
338 END IF;
339
340
341
342 -- IF PG_DEBUG < 10 THEN
343 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
344 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: RequestId='||l_request_id);
345 END IF;
346 -- IF PG_DEBUG < 10 THEN
347 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
348 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Get XML');
349 END IF;
350
351 /*===========================================================
352 content_id here is item_id in db
353 we need to make sure the item_id has file_id in fnd_lobs
354 see the following query condition
355 from jtf_amv_items_vl fm,
356 jtf_fm_amv_attach_vl fm2,
357 fnd_lobs fnd
358 where fm.application_id = 695 <our application_id>
359 and fm.item_id = fm2.ATTACHMENT_USED_BY_ID
360 and fnd.file_id = fm2.file_id
361 order by fm.content_type_id, fm.item_id
362 ==========================================================*/
363 /*===========================================================
364 DATA is for Collateral - Content_type_id=10;
365 QUERY is for MasterDoc(Cover Letter) - Content_type_id=20;
366 ===========================================================*/
367
368 -- This call gets the XML string for the content(Master Document) with
369 -- the parameters as defined above;
370 -- Only one Content_XML for one Request;
371
372 --l_bind_total := 0; -- total bind_var for this request
373 for i in 1..l_content_nm loop
374
375 BEGIN
376 l_content_id := l_content_tbl(i).content_id;
377 l_request_type := l_content_tbl(i).request_type;
378 l_media_type := l_content_tbl(i).media_type;
379 l_document_type := l_content_tbl(i).document_type;
380 --
381 l_user_note := l_content_tbl(i).user_note;
382 l_email := l_content_tbl(i).email;
383 l_printer := l_content_tbl(i).printer;
384 l_file_path := l_content_tbl(i).file_path;
385 l_fax := l_content_tbl(i).fax;
386 --
387 -- IF PG_DEBUG < 10 THEN
388 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
389 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Content_id:'||l_content_id);
390 END IF;
391
392 -- support multi bind variables for each content;
393 -- 11.5.7 enhancement
394 -- l_bind_var := p_bind_var;
395 -- so the whole set of p_bind_var will pass to each contect;
396 -- suppose ffm engine will choose the matched bind var based on the contect query;
397 --dbms_output.put_line('in iexvffmb:'||p_bind_var.count ||';'||p_bind_var(1)||';'||p_bind_Val(1)||';'||p_bind_var_type(1) );
398 --
399 -- it's for the oldest test;
400 /*
401 l_bind_cnt := l_bind_cnt_tbl(i);
402 dbms_output.put_line(i || ';bind_cnt=' || l_bind_cnt);
403 if l_bind_cnt > 0 then
404 for j in 1..l_bind_cnt loop
405 l_bind_var(j) := p_bind_var(l_bind_total+j);
406 l_bind_var_type(j) := p_bind_var_type(l_bind_total+j);
407 l_bind_val(j) := p_bind_val(l_bind_total+j);
408 end loop;
409 end if;
410 */
411 --
412 -- for 11.5.6
413 -- only support one bind variable for each content;
414 /*
415 l_bind_var(1) := p_bind_var(i);
416 l_bind_var_type(1) := p_bind_var_type(i);
417 l_bind_val(1) := p_bind_val(i);
418 */
419 --
420 EXCEPTION
421 WHEN NO_DATA_FOUND THEN
422 -- it's possible that l_content_nm is wrong!
423 --dbms_output.put_line('no data found!');
424 --FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
425 --FND_MSG_PUB.Add;
426 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
427 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
428 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
429 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
430 P_MESSAGE => 'ERROR To GET_CONTENT;NO_DATA_FOUND;'); */
431 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
432 -- IF PG_DEBUG < 10 THEN
433 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
434 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: no data found');
435 END IF;
436 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
437 FND_MESSAGE.Set_Token ('INFO', 'error to get_Content:no_data_found');
438 FND_MSG_PUB.Add;
439 RAISE FND_API.G_EXC_ERROR;
440 WHEN OTHERS THEN
441 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
442 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
443 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
444 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
445 P_MESSAGE => 'ERROR To GET_CONTENT;'); */
446 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
447 -- IF PG_DEBUG < 10 THEN
448 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
449 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM:error to get_content');
450 END IF;
451 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
452 FND_MESSAGE.Set_Token ('INFO', 'error to get_content');
453 FND_MSG_PUB.Add;
454 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
455 END;
456
457 -- IF PG_DEBUG < 10 THEN
458 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
459 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM:Get Content XML');
460 END IF;
461
462 JTF_FM_REQUEST_GRP.Get_Content_XML (
463 p_api_version => l_api_version,
464 p_content_id => l_content_id,
465 --p_content_nm => l_content_nm,
466 p_document_type => l_document_type,
467 p_media_type => l_media_type,
468 p_printer => l_printer,
469 p_email => l_email,
470 p_file_path => l_file_path,
471 p_fax => l_fax,
472 p_user_note => l_user_note,
473 p_content_type => l_request_type,
474 p_bind_var => p_bind_var, --l_bind_var,
475 p_bind_val => p_bind_val, --l_bind_val,
476 p_bind_var_type => p_bind_var_type, --l_bind_var_type,
477 p_request_id => l_request_id,
478 x_return_status => l_return_status,
479 x_msg_count => l_msg_count,
480 x_msg_data => l_msg_data,
481 x_content_xml => l_one_content_xml );
482
483
484 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
485 --DBMS_OUTPUT.PUT_LINE('Message Data: '||l_msg_data);
486 --msg
487 -- IF PG_DEBUG < 10 THEN
488 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
489 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM:Error to Get Content XML');
490 END IF;
491 --
492 x_msg_data := l_msg_data;
493 x_msg_count := l_msg_count;
494 --
495 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
496 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
497 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
498 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
499 P_MESSAGE => 'ERROR To GET_XML;');
500
501 IEX_CONC_REQUEST_MSG_PKG.Log_Error(
502 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
503 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
504 P_MESSAGE => 'ERROR REQUEST_ID:'|| l_request_id
505 || ' l_msg_data= ' || l_msg_data); */
506 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
507
508 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
509 FND_MESSAGE.Set_Token ('INFO', 'error to get_content_XML');
510 FND_MSG_PUB.Add;
511
512 RAISE FND_API.G_EXC_ERROR;
513 END IF;
514
515 --clchang added for bug 3807829 08/04/2004
516 --keep the content xml to trace
517 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
518 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: XML='||l_one_content_xml);
519 END IF;
520 --end clchang added for bug 3807829 08/04/2004
521
522 --l_bind_total := l_bind_total + l_bind_cnt;
523 -- Only one content_xml for one request
524 l_content_xml := l_content_xml || l_one_content_xml;
525
526 --dbms_output.put_line(i||':get xml status=' ||l_return_status);
527 -- IF PG_DEBUG < 10 THEN
528 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
529 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Get One Content XML!');
530 END IF;
531
532 END LOOP;
533
534 -- IF PG_DEBUG < 10 THEN
535 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
536 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Get all Content XML!');
537 END IF;
538
539
540 -- Debug Message
541 --dbms_output.put_line('summit request...');
542 -- IF PG_DEBUG < 10 THEN
543 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
544 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Submit Request');
545 END IF;
546
547 -- Submit the fulfillment request
548 JTF_FM_REQUEST_GRP.Submit_Request
549 ( p_api_version => l_api_version,
550 p_commit => l_commit,
551 x_return_status => l_return_status,
552 x_msg_count => l_msg_count,
553 x_msg_data => l_msg_data,
554 p_subject => l_subject,
555 p_party_id => l_party_id,
556 p_user_id => l_user_id,
557 p_server_id => l_server_id,
558 p_queue_response => FND_API.G_TRUE,
559 p_content_xml => l_content_xml,
560 p_request_id => l_request_id );
561
562 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
563 --msg
564 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
565 /* IEX_CONC_REQUEST_MSG_PKG.Log_Error(
566 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
567 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
568 P_MESSAGE => 'ERROR To SUBMIT_REQUEST;');
569
570 IEX_CONC_REQUEST_MSG_PKG.Log_Error(
571 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
572 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
573 P_MESSAGE => 'ERROR REQUEST_ID:'|| l_request_id ||
574 ' l_msg_data= ' || l_msg_data); */
575 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
576
577 -- IF PG_DEBUG < 10 THEN
578 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
579 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Error to Submit Request');
580 END IF;
581 --
582 x_msg_data := l_msg_data;
583 x_msg_count := l_msg_count;
584 FND_MESSAGE.Set_Name('IEX', 'API_FAIL_SEND_FFM');
585 FND_MESSAGE.Set_Token ('INFO', 'error to submit_request');
586 FND_MSG_PUB.Add;
587 RAISE FND_API.G_EXC_ERROR;
588 END IF;
589
590
591 x_request_id := l_request_id;
592 --msg
593 -- Begin - Andre Araujo - 09/30/2004- Remove obsolete logging
594 /*
595 IEX_CONC_REQUEST_MSG_PKG.Log_Error(
596 P_Concurrent_Request_ID => FND_GLOBAL.CONC_REQUEST_ID,
597 P_Procedure_name => 'IEX_SEND_FFM_PVT.SEND_FFM',
598 P_MESSAGE => 'REQUEST_ID:'|| l_request_id); */
599 -- End - Andre Araujo - 09/30/2004- Remove obsolete logging
600 -- IF PG_DEBUG < 10 THEN
601 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
602 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Submit Request! request_id='||l_request_id);
603 END IF;
604
605 --
606 -- END of API body
607 --
608
609 -- Standard check for p_commit
610 IF FND_API.to_Boolean( p_commit )
611 THEN
612 COMMIT WORK;
613 END IF;
614
615 -- Debug Message
616
617 -- Standard call to get message count and IF count is 1, get message info.
618 FND_MSG_PUB.Count_And_Get
619 ( p_count => x_msg_count,
620 p_data => x_msg_data );
621
622 EXCEPTION
623 WHEN FND_API.G_EXC_ERROR THEN
624 -- IF PG_DEBUG < 10 THEN
625 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
626 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Exc_Error:'|| SQLERRM);
627 END IF;
628 ROLLBACK TO SEND_FFM_PUB;
629 x_return_status := FND_API.G_RET_STS_ERROR;
630 FND_MSG_PUB.Count_And_Get
631 ( p_count => x_msg_count,
632 p_data => x_msg_data
633 );
634
635 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
636 -- IF PG_DEBUG < 10 THEN
637 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
638 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: UnExc_Error:'||SQLERRM);
639 END IF;
640 ROLLBACK TO SEND_FFM_PUB;
641 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
642 FND_MSG_PUB.Count_And_Get
643 ( p_count => x_msg_count,
644 p_data => x_msg_data
645 );
646
647 WHEN OTHERS THEN
648 -- IF PG_DEBUG < 10 THEN
649 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
650 IEX_DEBUG_PUB.LogMessage('iexvffmb.pls:SEND_FFM: Other_Error:'||SQLERRM);
651 END IF;
652 ROLLBACK TO SEND_FFM_PUB;
653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654 FND_MSG_PUB.Count_And_Get
655 ( p_count => x_msg_count,
656 p_data => x_msg_data
657 );
658
659 END Send_FFM;
660
661
662 BEGIN
663 PG_DEBUG := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
664
665 END IEX_SEND_FFM_PVT;