DBA Data[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;