DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBU_MES_BIN

Source


1 package body ibu_mes_bin as
2 /* $Header: ibuhmesb.pls 115.23 2002/11/05 20:23:21 ktma ship $ */
3 
4 -- ---------------------------------------------------------
5 -- Define global variables and types
6 -- ---------------------------------------------------------
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IBU_MES_BIN';
8 
9 type FilterData IS RECORD (
10            name  VARCHAR2(60) := '',
11            value VARCHAR2(300) := ''
12 );
13 type FilterDataList is table of FilterData;
14 
15 -- ---------------------------------------------------------
16 -- Define private functions/procedures
17 -- ---------------------------------------------------------
18 
19 procedure get_mes_filter (app_Id           NUMBER,
20                           filter_list out NOCOPY FilterDataList)
21          as
22 	        l_return_status    	    VARCHAR2(240);
23 	        l_api_version		    NUMBER;
24     	        l_init_msg_list	         VARCHAR2(240);
25     	        l_commit		         VARCHAR2(240);
26 
27     	        l_msg_count		         NUMBER;
28     	        l_msg_data		         VARCHAR2(2000);
29     	        l_err_msg		         VARCHAR2(240);
30 
31 	        l_profile_id		    NUMBER;
32 	        l_profile_name		    VARCHAR2(60);
33 	        l_profile_type		    VARCHAR2(30);
34 	        l_profile_attrib_tbl JTF_PERZ_PROFILE_PUB.PROFILE_ATTRIB_TBL_TYPE;
35 
36 	        l_application_id	         NUMBER;
37 
38 	        l_perz_data_id		    NUMBER;
39 	        l_perz_data_name          VARCHAR2(60);
40 	        l_perz_data_type	         VARCHAR2(30);
41 	        l_perz_data_desc	         VARCHAR2(240);
42 	        l_data_attrib_tbl	    JTF_PERZ_DATA_PUB.DATA_ATTRIB_TBL_TYPE ;
43 	        l_data_out_tbl	         JTF_PERZ_DATA_PUB.DATA_OUT_TBL_TYPE;
44 
45 	        out_perz_data_id	         NUMBER;
46 
47 	        out_perz_data_name        VARCHAR2(60);
48 	        out_perz_data_type	    VARCHAR2(30);
49 	        out_perz_data_desc	    VARCHAR2(240);
50 
51              data                      FilterData;
52 	        ind                       NUMBER := 1;
53 	    begin
54 
55 	       l_api_version	:= 1.0;
56     	       l_init_msg_list	:= FND_API.G_TRUE;
57 	       l_application_id	:= app_Id;
58 	       l_perz_data_name	:= 'IBU_A_CATEGORY';
59 	       l_profile_name	:= 'IBU_A_PROFILE00';
60 
61             JTF_PERZ_DATA_PVT.Get_Perz_Data
62             (
63 	            p_api_version_number	=>	l_api_version,
64   	            p_init_msg_list		=>	l_init_msg_list,
65 	            p_application_id       =>   l_application_id,
66 	            p_profile_id           => 	l_profile_id,
67 	            p_profile_name         => 	l_profile_name,
68 	            p_perz_data_id		=>	l_perz_data_id,
69 	            p_perz_data_name	     =>	l_perz_data_name,
70 	            p_perz_data_type	     =>	l_perz_data_type,
71 
72     	            x_perz_data_id         =>	out_perz_data_id,
73 	            x_perz_data_name       =>	out_perz_data_name,
74 	            x_perz_data_type	     =>	out_perz_data_type,
75 	            x_perz_data_desc	     =>	out_perz_data_desc,
76 	            x_data_attrib_tbl	     =>	l_data_attrib_tbl,
77 
78 	            x_return_status		=>	l_return_status,
79 	            x_msg_count		     =>	l_msg_count,
80 	            x_msg_data		     =>	l_msg_data
81             );
82 
83 
84 	       filter_list         := FilterDataList ();
85             FOR f_curr_row IN 1..l_data_attrib_tbl.count
86             LOOP
87 	         data.name  := l_data_attrib_tbl (f_curr_row).ATTRIBUTE_NAME;
88 		    /* dbms_output.put_line ('NAme=' || data.name); */
89 	         data.value := l_data_attrib_tbl (f_curr_row).ATTRIBUTE_VALUE;
90 
91 	         filter_list.extend ();
92 	         filter_list (ind) := data;
93               ind := ind + 1;
94             END LOOP;
95 end get_mes_filter;
96 
97 -----------------------------------------------------------
98 -- Return the close url
99 -- ---------------------------------------------------------
100 procedure get_close_url (bin_id NUMBER, url  out NOCOPY varchar2)
101    as
102      close_jsp    VARCHAR2(100);
103    begin
104      close_jsp := 'ibuhpage.jsp?close_binid=' || to_char(bin_id);
105      url := close_jsp;
106    end;
107 
108 
109 -----------------------------------------------------------
110 -- Define procedure for rendering name.
111 -- ---------------------------------------------------------
112 procedure  get_bin_name (p_api_version_number     IN   NUMBER,
113                  p_init_msg_list          IN   VARCHAR2  := FND_API.G_FALSE,
114                  p_commit       IN VARCHAR          := FND_API.G_FALSE,
115 			  p_bin_id       IN NUMBER,
116                  x_return_status          OUT  NOCOPY VARCHAR2,
117                  x_msg_count         OUT  NOCOPY NUMBER,
118                  x_msg_data          OUT  NOCOPY VARCHAR2,
119                  x_bin_name out NOCOPY VARCHAR2)
120 as
121     l_api_name     CONSTANT       VARCHAR2(30)   := 'Get_Bin_Name';
122     l_bin_info     IBU_Home_Page_PVT.Bin_Data_Type;
123     l_cat_id       NUMBER := null;
124 begin
125     x_return_status := FND_API.G_RET_STS_SUCCESS;
126     x_bin_name := '';
127 
128     -- get the bin info
129   IBU_Home_Page_PVT.get_bin_info(p_api_version_number => p_api_version_number,
130                p_init_msg_list => p_init_msg_list,
131                x_return_status => x_return_status,
132                x_msg_count => x_msg_count,
133                x_msg_data => x_msg_data,
134                p_bin_id   => p_bin_id,
135                x_bin_info => l_bin_info);
136 
137   IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
138       raise NO_DATA_FOUND;
139   END IF;
140 
141   l_cat_id := l_bin_info.MES_cat_ID;
142   if l_cat_id  is not null then
143     -- get the bin name from the view
144     SELECT channel_category_name
145     INTO   x_bin_name
146     FROM   amv_c_categories_vl
147     WHERE  channel_category_id=l_cat_id;
148   end if;
149 
150 EXCEPTION
151      WHEN OTHERS THEN
152           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
153           IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
154                FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
155           END IF;
156           FND_MSG_PUB.Count_And_Get
157           (
158                p_count => x_msg_count ,
159                p_data => x_msg_data
160           );
161           raise;
162 
163 end get_bin_name;
164 
165 -----------------------------------------------------------
166 -- Define procedure for email text.
167 -- ---------------------------------------------------------
168 procedure get_email_text(p_api_version_number     IN   NUMBER,
169                      p_init_msg_list          IN   VARCHAR2  := FND_API.G_FALSE,
170                      p_commit       IN VARCHAR          := FND_API.G_FALSE,
171                      p_user_id      IN NUMBER,
172                      p_lang_code    IN VARCHAR2,
173                      p_bin_id            IN   NUMBER,
174                      x_return_status          OUT  NOCOPY VARCHAR2,
175                      x_msg_count         OUT  NOCOPY NUMBER,
176                      x_msg_data          OUT  NOCOPY VARCHAR2,
177                      x_clob      out NOCOPY CLOB)
178 as
179     l_api_name     CONSTANT       VARCHAR2(30)   := 'Get_Email_Text';
180     l_api_version  CONSTANT       NUMBER         := 1.0;
181 
182     l_user_id NUMBER := IBU_Home_Page_PVT.get_user_id;
183     l_lang VARCHAR2(5) := IBU_Home_Page_PVT.get_lang_code;
184 
185     l_bin_name           VARCHAR2(80);
186     l_bin_info           IBU_Home_Page_PVT.Bin_Data_Type;
187     l_data               IBU_Home_Page_PVT.Filter_Data_Type;
188     l_filter_list        IBU_Home_Page_PVT.Filter_Data_List_Type;
189     l_filter_string      VARCHAR2(500);
190 
191     res_clob                      CLOB;
192     tmp_str                       VARCHAR(400);
193     res_str        VARCHAR2(1000);
194     amt            binary_integer;
195     location       integer;
196     batch_size     NUMBER := 5;
197     channel_title  VARCHAR2(500);
198     items_title    VARCHAR2(500);
199 
200     item_request_obj   AMV_CHANNEL_PVT.AMV_REQUEST_OBJ_TYPE;
201     item_return_obj    AMV_CHANNEL_PVT.AMV_RETURN_OBJ_TYPE;
202     items_array        AMV_CHANNEL_PVT.AMV_NUMBER_VARRAY_TYPE;
203 
204     cats_array         AMV_CATEGORY_PVT.AMV_CAT_HIERARCHY_VARRAY_TYPE;
205     channels_array     AMV_CATEGORY_PVT.AMV_CAT_HIERARCHY_VARRAY_TYPE;
206 
207     item_object        AMV_ITEM_PUB.AMV_ITEM_OBJ_TYPE;
208     item_file_array    AMV_ITEM_PUB.AMV_NUMBER_VARRAY_TYPE;
209     item_persp_array   AMV_ITEM_PUB.AMV_NAMEID_VARRAY_TYPE;
210     item_author_array  AMV_ITEM_PUB.AMV_CHAR_VARRAY_TYPE;
211     item_keyword_array AMV_ITEM_PUB.AMV_CHAR_VARRAY_TYPE;
212 
213     data               FilterData;
214     category_id        NUMBER := NULL;
215     s_filter_list      FilterDataList;
216     filter_list        FilterDataList;
217     newln              VARCHAR2(2) := fnd_global.newline();
218     no_items_fnd       VARCHAR2(1000);
219 
220 begin
221 
222      -- Initialize message list if p_init_msg_list is set to TRUE.
223      IF FND_API.to_Boolean( p_init_msg_list ) THEN
224           FND_MSG_PUB.initialize;
225      END IF;
226      --  Initialize API return status to success
227      x_return_status := FND_API.G_RET_STS_SUCCESS;
228 
229      -- API Body
230 
231      -- do validation
232      IF p_bin_id is NULL OR p_user_id is null THEN
233        x_return_status := FND_API.G_RET_STS_ERROR;
234        RETURN;
235      END IF;
236 
237      -- Get the bin name
238      get_bin_name(p_api_version_number => l_api_version,
239                p_init_msg_list => p_init_msg_list,
240                p_bin_id        => p_bin_id,
241                x_return_status => x_return_status,
242                x_msg_count => x_msg_count,
243                x_msg_data => x_msg_data,
244                x_bin_name => l_bin_name);
245      /* dbms_output.put_line ('bin_name=' || l_bin_name); */
246 
247      IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
248          FND_MESSAGE.SET_NAME('IBU','IBU_HOM_BINNAME_ERROR');
249          FND_MSG_PUB.Add;
250 	    RAISE FND_API.G_EXC_ERROR;
251      END IF;
252 
253      IBU_Home_Page_PVT.get_bin_info(p_api_version_number => l_api_version,
254                p_init_msg_list => p_init_msg_list,
255                x_return_status => x_return_status,
256                x_msg_count => x_msg_count,
257                x_msg_data => x_msg_data,
258                p_bin_id   => p_bin_id,
259                x_bin_info => l_bin_info);
260 
261      IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
262          FND_MESSAGE.SET_NAME('IBU','IBU_HOM_BININFO_ERROR');
263          FND_MSG_PUB.Add;
264 	    RAISE FND_API.G_EXC_ERROR;
265      END IF;
266 
267       category_id := l_bin_info.MES_cat_ID;
268    IF (category_id is NULL)
269    THEN
270          /* dbms_output.put_line('No Categories found='); */
271         x_return_status := FND_API.G_RET_STS_ERROR;
272         FND_MESSAGE.SET_NAME('IBU', 'IBU_HOM_NO_CAT_FOR_CNEWS');
273         FND_MSG_PUB.Add;
274 	   RAISE FND_API.G_EXC_ERROR;
275     END IF;
276 
277     IBU_Home_Page_PVT.get_filter_list(p_api_version => l_api_version,
278                   x_return_status => x_return_status,
279                   x_msg_count => x_msg_count,
280                   x_msg_data => x_msg_data,
281                   p_user_id  => l_user_id,
282                   p_bin_id  => p_bin_id,
283                   x_filter_list => l_filter_list,
284                   x_filter_string => l_filter_string);
285 
286     IF (NOT (x_return_status = FND_API.G_RET_STS_SUCCESS))
287         OR l_filter_string is null THEN
288     -- no filter criteria exist, so use hard coded default
289       x_return_status := FND_API.G_RET_STS_SUCCESS;
290       l_filter_string := 'end=3';
291     ELSE
292       FOR l_curr_row IN 1..l_filter_list.count()
293       LOOP
294           l_data.name  := l_filter_list (l_curr_row).name;
295           l_data.value := l_filter_list (l_curr_row).value;
296 
297           if l_data.name IS NOT NULL AND l_data.name like 'end' then
298             batch_size := to_number(l_data.value);
299             exit;
300           end if;
301       END LOOP;
302     END IF;
303 
304 
305     -- get the channels per category
306 
307     AMV_CATEGORY_GRP.Get_CatChildrenHierarchy(p_api_version => 1.0,
308                                               p_init_msg_list => 'T',
309                                               x_return_status => x_return_status,
310                                               x_msg_count => x_msg_count,
311                                               x_msg_data => x_msg_data,
312                                               p_check_login_user => 'F',
313                                               p_category_id => category_id,
314                                               x_category_hierarchy => cats_array);
315 
316     if (x_return_status = 'F')
317     THEN
318          /* dbms_output.put_line('No Items Found='); */
319          fnd_message.set_name('IBU', 'IBU_HOM_ITEMS_ERROR');
320          fnd_msg_pub.Add;
321 	    RAISE FND_API.G_EXC_ERROR;
322     END IF;
323 
324     ---------------------------------------------------------------------------
325     channel_title := IBU_HOME_PAGE_PVT.GET_AK_BIN_PROMPT('IBU_HOM_CNEWS_CHANNEL');
326     items_title := IBU_HOME_PAGE_PVT.GET_AK_BIN_PROMPT('IBU_HOM_CNEWS_ITEMS');
327 
328     dbms_lob.createtemporary(res_clob, TRUE, DBMS_LOB.SESSION);
329 
330     location := 1;
331 
332     -- now fill in the actual bin contents to clob
333     dbms_lob.createtemporary(res_clob, TRUE, DBMS_LOB.SESSION);
334 
335     tmp_str := l_bin_name;
336     dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
337     dbms_lob.writeappend(res_clob, length(newln), newln);
338 
339     for j IN 1 .. cats_array.count LOOP
340 
341     if ( cats_array(j).ID <> category_id)
342         THEN
343             -- get items per channel
344             AMV_CATEGORY_GRP.Get_ChannelsPerCategory(p_api_version => 1.0,
345                                                      p_init_msg_list => 'T',
346                                                      x_return_status => x_return_status,
347                                                      x_msg_count => x_msg_count,
348                                                      x_msg_data => x_msg_data,
349                                                      p_check_login_user => 'F',
350                                                      p_category_id => cats_array(j).ID,
351                                                      x_content_chan_array => channels_array);
352 
353             if (x_return_status = 'F')
354             THEN
355                 x_return_status := FND_API.G_RET_STS_SUCCESS;
356                 dbms_lob.writeappend(res_clob,length(newln), newln);
357                 tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
358                 dbms_lob.writeappend(res_clob,length(tmp_str), tmp_str);
359                 dbms_lob.writeappend(res_clob,length(newln), newln);
360                 exit;
361             END IF;
362 
363             item_request_obj.records_requested := batch_size;
364             item_request_obj.start_record_position := 1;
365             item_request_obj.return_total_count_flag := 'T';
366 
367             for k IN 1 .. channels_array.count LOOP
368 
369                   -- get items per channel
370                   dbms_lob.writeappend(res_clob, length(newln), newln);
371 
372                   /* dbms_output.put_line(channels_array(k).ID); */
373                   dbms_lob.writeappend(res_clob,length(channel_title),channel_title);
374                   dbms_lob.writeappend(res_clob, 2,': ');
375                   dbms_lob.writeappend(res_clob,length(channels_array(k).NAME),channels_array(k).NAME);
376                   dbms_lob.writeappend(res_clob, length(newln), newln);
377                   dbms_lob.writeappend(res_clob,length(items_title),items_title);
378                   dbms_lob.writeappend(res_clob,2,': ');
379 
380                   AMV_CHANNEL_GRP.Get_ItemsPerChannel(p_api_version => 1.0,
381                                                       p_init_msg_list => 'T',
382                                                       x_return_status => x_return_status,
383                                                       x_msg_count => x_msg_count,
384                                                       x_msg_data => x_msg_data,
385                                                       p_check_login_user => 'F',
386                                                       p_channel_id => channels_array(k).ID,
387                                                       p_subset_request_rec => item_request_obj,
388                                                       x_subset_return_rec => item_return_obj,
389                                                       x_document_id_array => items_array);
390 
391                   if (x_return_status = 'F')
392                   THEN
393                      x_return_status := FND_API.G_RET_STS_SUCCESS;
394                      dbms_lob.writeappend(res_clob,length(newln), newln);
395                      tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
396                      dbms_lob.writeappend(res_clob,length(tmp_str), tmp_str);
397                      dbms_lob.writeappend(res_clob,length(newln), newln);
398                      exit;
399                   END IF;
400 
401                   for m IN 1 .. items_array.COUNT LOOP
402 
403                       AMV_ITEM_PUB.get_item(p_api_version => 1.0,
404                                             p_init_msg_list => 'T',
405                                             x_return_status => x_return_status,
406                                             x_msg_count => x_msg_count,
407                                             x_msg_data => x_msg_data,
408                                             p_check_login_user => 'F',
409                                             p_item_id => items_array(m),
410                                             x_item_obj => item_object,
411                                             x_file_array => item_file_array,
412                                             x_persp_array => item_persp_array,
413                                             x_author_array => item_author_array,
414                                             x_keyword_array => item_keyword_array);
415 
416                        if (x_return_status = 'F')
417 
418                        THEN
419                           x_return_status := FND_API.G_RET_STS_SUCCESS;
420                           dbms_lob.writeappend(res_clob,length(newln), newln);
421                           tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
422                           dbms_lob.writeappend(res_clob,length(tmp_str), tmp_str);
423                           dbms_lob.writeappend(res_clob,length(newln), newln);
424                           exit;
425                        END IF;
426 
427                        /* dbms_output.put_line(item_object.item_name); */
428                        dbms_lob.writeappend(res_clob, length (item_object.item_name), item_object.item_name);
429                        dbms_lob.writeappend(res_clob, 2, ', ');
430 
431                    end loop;
432 
433                    dbms_lob.writeappend(res_clob, length(newln), newln);
434             end loop;
435 
436         END IF;
437 
438     end loop;
439     x_clob := res_clob;
440     dbms_lob.freetemporary(res_clob);
441 EXCEPTION
442      WHEN FND_API.G_EXC_ERROR THEN
443           FND_MSG_PUB.Count_And_Get
444                   (p_count => x_msg_count ,
445                    p_data => x_msg_data
446                   );
447 
448      WHEN OTHERS THEN
449           -- ROLLBACK TO Get_Filter;
450           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
451           IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
452                FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
453           END IF;
454           FND_MSG_PUB.Count_And_Get
455                (p_count => x_msg_count ,
456                 p_data => x_msg_data
457                );
458 
459 end get_email_text;
460 
461 -----------------------------------------------------------
462 -- Define procedure for rendering html.
463 -- ---------------------------------------------------------
464 procedure get_html (p_api_version_number     IN   NUMBER,
465                      p_init_msg_list         IN   VARCHAR2 := FND_API.G_FALSE,
466                      p_commit                IN   VARCHAR  := FND_API.G_FALSE,
467                      p_bin_id                IN   NUMBER,
468                      p_cookie_url            IN   VARCHAR2,
469                      x_return_status         OUT  NOCOPY VARCHAR2,
470                      x_msg_count             OUT  NOCOPY NUMBER,
471                      x_msg_data              OUT  NOCOPY VARCHAR2,
472                      x_clob                  out NOCOPY CLOB)
473 as
474     l_api_name     CONSTANT       VARCHAR2(30)   := 'Get_HTML';
475     l_api_version  CONSTANT       NUMBER         := 1.0;
476 
477     l_user_id NUMBER := IBU_Home_Page_PVT.get_user_id;
478     l_lang VARCHAR2(5) := IBU_Home_Page_PVT.get_lang_code;
479 
480     l_bin_name           VARCHAR2(80);
481     l_bin_info           IBU_Home_Page_PVT.Bin_Data_Type;
482     header_format        VARCHAR2(30) := 'tableSubHeaderCell';
483     cell_format          VARCHAR2(20) := 'tableDataCell';
484     tmp_str              VARCHAR2 (5000);
485     header_str		 VARCHAR2 (13000);
486     res_clob             CLOB;
487     newln                VARCHAR2(2) := fnd_global.newline ();
488     s_all_header_prompts IBU_HOME_PAGE_PVT.IBU_STR_ARR;
489 
490     l_data             IBU_Home_Page_PVT.Filter_Data_Type;
491     l_filter_list      IBU_Home_Page_PVT.Filter_Data_List_Type;
492     l_filter_string    VARCHAR2(500);
493 
494     l_edit_url    VARCHAR2(5000);
495     l_close_url   VARCHAR2(5000);
496     l_detail_url  VARCHAR2(5000);
497     l_more_url    VARCHAR2(1000);
498     l_go_url      VARCHAR2(1000);
499 
500     res_str        VARCHAR2(1000);
501     amt            binary_integer;
502     location       integer;
503     batch_size     NUMBER := 3;
504     channel_title  VARCHAR2(500);
505     urlformat_channel_name VARCHAR2(500):='';
506     channel_name   VARCHAR2 (500);
507     items_title    VARCHAR2(500);
508 
509     item_request_obj   AMV_CHANNEL_PVT.AMV_REQUEST_OBJ_TYPE;
510     item_return_obj    AMV_CHANNEL_PVT.AMV_RETURN_OBJ_TYPE;
511     items_array        AMV_CHANNEL_PVT.AMV_NUMBER_VARRAY_TYPE;
512 
513     cats_array         AMV_CATEGORY_PVT.AMV_CAT_HIERARCHY_VARRAY_TYPE;
514     channels_array     AMV_CATEGORY_PVT.AMV_CAT_HIERARCHY_VARRAY_TYPE;
515 
516     item_object        AMV_ITEM_PUB.AMV_ITEM_OBJ_TYPE;
517     item_file_array    AMV_ITEM_PUB.AMV_NUMBER_VARRAY_TYPE;
518     item_persp_array   AMV_ITEM_PUB.AMV_NAMEID_VARRAY_TYPE;
519     item_author_array  AMV_ITEM_PUB.AMV_CHAR_VARRAY_TYPE;
520     item_keyword_array AMV_ITEM_PUB.AMV_CHAR_VARRAY_TYPE;
521 
522     category_id        NUMBER := NULL;
523     no_items_fnd       VARCHAR2(1000);
524     DETAIL_URL         VARCHAR2(5000) := 'ibukmipc.jsp';
525     url                VARCHAR2(5000);
526 
527     no_items_exist     VARCHAR2(100) := FND_API.G_TRUE;
528 begin
529      -- Initialize message list if p_init_msg_list is set to TRUE.
530      IF FND_API.to_Boolean( p_init_msg_list ) THEN
531           FND_MSG_PUB.initialize;
532      END IF;
533      --  Initialize API return status to success
534      x_return_status := FND_API.G_RET_STS_SUCCESS;
535 
536      -- API Body
537 
538      -- do validation
539      IF p_bin_id is NULL THEN
540        x_return_status := FND_API.G_RET_STS_ERROR;
541        FND_MESSAGE.SET_NAME('IBU','IBU_HOM_BIN_ID_MISSING');
542        FND_MSG_PUB.Add;
543        RAISE FND_API.G_EXC_ERROR;
544      END IF;
545 
546   -- Get the bin name, the mandatory flag
547 
548   get_bin_name(p_api_version_number => l_api_version,
549                p_init_msg_list => p_init_msg_list,
550                p_bin_id        => p_bin_id,
551                x_return_status => x_return_status,
552                x_msg_count => x_msg_count,
553                x_msg_data => x_msg_data,
554                x_bin_name => l_bin_name);
555 
556   IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
557       FND_MESSAGE.SET_NAME('IBU','IBU_HOM_BINNAME_ERROR');
558       FND_MSG_PUB.Add;
559       RAISE FND_API.G_EXC_ERROR;
560   END IF;
561 
562   IBU_Home_Page_PVT.get_bin_info(p_api_version_number => l_api_version,
563                p_init_msg_list => p_init_msg_list,
564                x_return_status => x_return_status,
565                x_msg_count => x_msg_count,
566                x_msg_data => x_msg_data,
567                p_bin_id   => p_bin_id,
568                x_bin_info => l_bin_info);
569 
570   IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
571       FND_MESSAGE.SET_NAME('IBU','IBU_HOM_BININFO_ERROR');
572       FND_MSG_PUB.Add;
573       RAISE FND_API.G_EXC_ERROR;
574   END IF;
575 
576    category_id := l_bin_info.MES_cat_ID;
577    IF (category_id is NULL)
578    THEN
579          /* dbms_output.put_line('No Categories found=');*/
580         x_return_status := FND_API.G_RET_STS_ERROR;
581         FND_MESSAGE.SET_NAME('IBU', 'IBU_HOM_NO_CAT_FOR_CNEWS');
582         FND_MSG_PUB.Add;
583         RAISE FND_API.G_EXC_ERROR;
584     END IF;
585 
586   IBU_Home_Page_PVT.get_filter_list(p_api_version => l_api_version,
587                   x_return_status => x_return_status,
588                   x_msg_count => x_msg_count,
589                   x_msg_data => x_msg_data,
590                   p_user_id  => l_user_id,
591                   p_bin_id  => p_bin_id,
592                   x_filter_list => l_filter_list,
593                   x_filter_string => l_filter_string);
594 
595   IF (NOT (x_return_status = FND_API.G_RET_STS_SUCCESS))
596         OR l_filter_string is null THEN
597     -- no filter criteria exist, so use hard coded default
598     x_return_status := FND_API.G_RET_STS_SUCCESS;
599     l_filter_string := 'end=3';
600   ELSE
601     FOR l_curr_row IN 1..l_filter_list.count()
602     LOOP
603           l_data.name  := l_filter_list (l_curr_row).name;
604           l_data.value := l_filter_list (l_curr_row).value;
605 
606           if l_data.name IS NOT NULL AND l_data.name like 'end' then
607             batch_size := to_number(l_data.value);
608             exit;
609           end if;
610     END LOOP;
611   END IF;
612 
613   l_edit_url := IBU_Home_Page_PVT.get_edit_bin_url(p_bin_id, 'ibuhmesc.jsp', l_filter_string, p_cookie_url);
614 
615   if l_bin_info.mandatory_flag = FND_API.G_FALSE then
616     l_close_url := IBU_Home_Page_PVT.get_close_bin_url(p_bin_id, p_cookie_url);
617   else
618     l_close_url := null;
619   end if;
620 
621   -- now create the clob and store the bin html in
622   dbms_lob.createtemporary(res_clob, TRUE, DBMS_LOB.SESSION);
623 
624   -- store the bin header in clob, including bin name, edit and close button
625   tmp_str := '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
626   dbms_lob.writeappend(res_clob, length(tmp_str),tmp_str);
627   dbms_lob.writeappend(res_clob,4,'<tr>');
628   dbms_lob.writeappend(res_clob,length(newln), newln);
629   dbms_lob.writeappend(res_clob,4,'<td>');
630   dbms_lob.writeappend(res_clob,length(newln), newln);
631   header_str := IBU_Home_Page_PVT.get_bin_header_html (l_bin_name, null, l_edit_url, l_close_url);
632 
633   dbms_lob.writeappend(res_clob,length(header_str),header_str);
634   dbms_lob.writeappend(res_clob,length(newln), newln);
635   dbms_lob.writeappend(res_clob,5,'</tr>');
636   dbms_lob.writeappend(res_clob,length(newln), newln);
637   dbms_lob.writeappend(res_clob,5,'</td>');
638   dbms_lob.writeappend(res_clob,length(newln), newln);
639 
640     -- get the channels per category
641 
642     AMV_CATEGORY_GRP.Get_CatChildrenHierarchy(p_api_version => 1.0,
643                                               p_init_msg_list => 'T',
644                                               x_return_status => x_return_status,
645                                               x_msg_count => x_msg_count,
646                                               x_msg_data => x_msg_data,
647                                               p_check_login_user => 'F',
648                                               p_category_id => category_id,
649                                               x_category_hierarchy => cats_array);
650 
651     if (x_return_status = 'F')
652     THEN
653          /* dbms_output.put_line('No Items Found='); */
654          fnd_message.set_name('IBU', 'IBU_HOM_ITEMS_ERROR');
655          fnd_msg_pub.Add;
656          RAISE FND_API.G_EXC_ERROR;
657     END IF;
658 
659     ---------------------------------------------------------------------------
660     channel_title := IBU_HOME_PAGE_PVT.GET_AK_BIN_PROMPT('IBU_HOM_CNEWS_CHANNEL');
661     items_title := IBU_HOME_PAGE_PVT.GET_AK_BIN_PROMPT('IBU_HOM_CNEWS_ITEMS');
662 
663     /*  dbms_output.put_line('title=' || channel_title); */
664     /*  dbms_output.put_line('ititle=' || items_title);  */
665     -- dbms_lob.createtemporary(res_clob, TRUE, DBMS_LOB.SESSION);
666 
667     dbms_lob.writeappend(res_clob,length(newln), newln);
668     for j IN 1 .. cats_array.count LOOP
669 
670     if (cats_array(j).ID <> category_id)
671         THEN
672             -- get items per channel
673 
674             AMV_CATEGORY_GRP.Get_ChannelsPerCategory(p_api_version => 1.0,
675                                                      p_init_msg_list => 'T',
676                                                      x_return_status => x_return_status,
677                                                      x_msg_count => x_msg_count,
678                                                      x_msg_data => x_msg_data,
679                                                      p_check_login_user => 'F',
680                                                      p_category_id => cats_array(j).ID,
681                                                      x_content_chan_array => channels_array);
682 
683             if (x_return_status = 'F')
684             THEN
685                 /* dbms_output.put_line(' Items Error=');  */
686                 x_return_status := FND_API.G_RET_STS_SUCCESS;
687                 dbms_lob.writeappend(res_clob,6, '  <tr>');
688                 dbms_lob.writeappend(res_clob,length(newln), newln);
689                 dbms_lob.writeappend(res_clob,length(newln), newln);
690                 tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
691                 res_str := '    <td' || ' align="center" class="'
692                 || cell_format || '">'
693                 ||  tmp_str || ' </td>';
694                 dbms_lob.writeappend(res_clob,length(res_str), res_str);
695                 dbms_lob.writeappend(res_clob,length(newln), newln);
696                 dbms_lob.writeappend(res_clob,length(newln), newln);
697 
698                 dbms_lob.writeappend(res_clob,7, '  </tr>');
699                 dbms_lob.writeappend(res_clob, length(newln), newln);
700                 exit;
701             END IF;
702 
703             item_request_obj.records_requested := batch_size;
704             item_request_obj.start_record_position := 1;
705             item_request_obj.return_total_count_flag := 'T';
706 
707             for k IN 1 .. channels_array.count LOOP
708                  /* dbms_output.put_line('channel name=' || channels_array(k).NAME); */
709                  dbms_lob.writeappend(res_clob,4,'<tr>');
710                  tmp_str := '<td class="tableDataCell" colspan="3">';
711                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
712 
713               -- ujagarla - If there is no content, then we need to show a message
714               no_items_exist  := FND_API.G_FALSE;
715 
716 			  -- Start converting channel name to URL format
717 			  urlformat_channel_name := '';
718 			  channel_name:= channels_array(k).NAME;
719 			  for p in  1..LENGTH(channel_name) loop
720 				if (substr (channel_name, p, 1) = ' ') then
721 					urlformat_channel_name := urlformat_channel_name || '+';
722 				else
723 					urlformat_channel_name := urlformat_channel_name || substr (channel_name, p, 1);
724 				end if;
725 			  end loop;
726 
727                  url := 'ibukmipc.jsp?channelId=' ||channels_array(k).ID
728 ||'&' || 'channelName=' || urlformat_channel_name || '&' || p_cookie_url;
729                  tmp_str := '<a href=' || url || '>' || channels_array(k).NAME || '</a>';
730                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
731                  dbms_lob.writeappend(res_clob,length(newln),newln);
732                  tmp_str := '</td> </tr> <tr> </tr>';
733                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
734                  dbms_lob.writeappend(res_clob,length(newln),newln);
735 
736                  /* dbms_output.put_line('items in channel' || channels_array(k).NAME); */
737                   -- get items per channel
738 
739                   AMV_CHANNEL_GRP.Get_ItemsPerChannel(p_api_version => 1.0,
740                                                   p_init_msg_list => 'T',
741                                                       x_return_status => x_return_status,
742                                                       x_msg_count => x_msg_count,
743                                                       x_msg_data => x_msg_data,
744                                                       p_check_login_user => 'F',
745                                                       p_channel_id => channels_array(k).ID,
746                                                       p_subset_request_rec => item_request_obj,
747                                                       x_subset_return_rec => item_return_obj,
748                                                       x_document_id_array => items_array);
749 
750                   if (x_return_status = 'F')
751                   THEN
752                      /* dbms_output.put_line('No  Items for this chanel='); */
753                      x_return_status := FND_API.G_RET_STS_SUCCESS;
754                      dbms_lob.writeappend(res_clob,6, '  <tr>');
755                      dbms_lob.writeappend(res_clob,length(newln), newln);
756                      tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
757                      res_str := '    <td' || ' align="center" class="'
758                       || cell_format || '">'
759                       ||  tmp_str || ' </td>';
760                      dbms_lob.writeappend(res_clob,length(res_str), res_str);
761                      dbms_lob.writeappend(res_clob,length(newln), newln);
762 
763                      dbms_lob.writeappend(res_clob,7, '  </tr>');
764                      dbms_lob.writeappend(res_clob, length(newln), newln);
765                      exit;
766                   END IF;
767 
768                   for m IN 1 .. items_array.COUNT LOOP
769 
770                       AMV_ITEM_PUB.get_item(p_api_version => 1.0,
771                                             p_init_msg_list => 'T',
772                                             x_return_status => x_return_status,
773                                             x_msg_count => x_msg_count,
774                                             x_msg_data => x_msg_data,
775                                             p_check_login_user => 'F',
776                                             p_item_id => items_array(m),
777                                             x_item_obj => item_object,
778                                             x_file_array => item_file_array,
779                                             x_persp_array => item_persp_array,
780                                             x_author_array => item_author_array,
781                                             x_keyword_array => item_keyword_array);
782 
783                        if (x_return_status = 'F')
784                        THEN
785                            /* dbms_output.put_line('No  Items for this chanel=');*/
786                            x_return_status := FND_API.G_RET_STS_SUCCESS;
787                            dbms_lob.writeappend(res_clob,6, '  <tr>');
788                            dbms_lob.writeappend(res_clob,length(newln), newln);
789                            tmp_str := FND_MESSAGE.GET_STRING('IBU','IBU_HOM_ITEMS_ERROR');
790                            res_str := '    <td' || ' align="center" class="'
791                             || cell_format || '">'
792                             ||  tmp_str || ' </td>';
793                            dbms_lob.writeappend(res_clob,length(res_str), res_str);
794                            dbms_lob.writeappend(res_clob,length(newln), newln);
795                            dbms_lob.writeappend(res_clob,length(newln), newln);
796 
797                            dbms_lob.writeappend(res_clob,7, '  </tr>');
798                            dbms_lob.writeappend(res_clob, length(newln), newln);
799                            exit;
800                        END IF;
801 
802                        dbms_lob.writeappend(res_clob, 4,'<tr>');
803                        dbms_lob.writeappend(res_clob, length(newln),newln);
804 
805                        if (item_object.item_type like 'URL_ITEM') then
806                              -- tmp_str := '<td  class="binContentCell"><li><a href="http://' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
807                              if ( instr(item_object.url_string,'http://') =0  ) then
808                                tmp_str := '<td  class="binContentCell"><li><a href="http://' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
809                              else
810                                tmp_str := '<td  class="binContentCell"><li><a href="' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
811                              end if;
812 
813                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
814                              dbms_lob.writeappend(res_clob, length(newln), newln);
815 
816                        elsif item_object.item_type like 'FILE_ITEM' then
817                              tmp_str := '<td  class="binContentCell"><li><a href="ibuzbot.jsp?itemid=' || item_object.item_id || '" >' || item_object.item_name || '</a> </td>';
818                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
819                              dbms_lob.writeappend(res_clob, length(newln), newln);
820 
821                        else --MESSAGE_ITEM
822                              tmp_str := '<td  class="binContentCell"><li><a href="ibuzbot.jsp?itemid=' || item_object.item_id || '">' || item_object.item_name || '</a> </td>';
823                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
824                              dbms_lob.writeappend(res_clob, length(newln), newln);
825 
826                        end if;
827 				   tmp_str := '</tr> <tr> </tr>';
828                        dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
829                    end loop;
830             end loop;
831         END IF;
832 
833   end loop;
834 
835   --- ujagarla - begin==========================================================================================
836 
837             -- get items per channel - for top level category (bug fix : 2243802).
838             -- Channels that are attached to top level category are not retrieved.
839 
840             AMV_CATEGORY_GRP.Get_ChannelsPerCategory(p_api_version => 1.0,
841                                                      p_init_msg_list => 'T',
842                                                      x_return_status => x_return_status,
843                                                      x_msg_count => x_msg_count,
844                                                      x_msg_data => x_msg_data,
845                                                      p_check_login_user => 'F',
846                                                      p_category_id => category_id,
847                                                      p_include_subcats => FND_API.G_FALSE,
848                                                      x_content_chan_array => channels_array);
849 
850             if (x_return_status = 'F')
851             THEN
852                 /* dbms_output.put_line(' Items Error=');  */
853                 x_return_status := FND_API.G_RET_STS_SUCCESS;
854                 dbms_lob.writeappend(res_clob,6, '  <tr>');
855                 dbms_lob.writeappend(res_clob,length(newln), newln);
856                 dbms_lob.writeappend(res_clob,length(newln), newln);
857                 tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
858                 res_str := '    <td' || ' align="center" class="'
859                 || cell_format || '">'
860                 ||  tmp_str || ' </td>';
861                 dbms_lob.writeappend(res_clob,length(res_str), res_str);
862                 dbms_lob.writeappend(res_clob,length(newln), newln);
863                 dbms_lob.writeappend(res_clob,length(newln), newln);
864 
865                 dbms_lob.writeappend(res_clob,7, '  </tr>');
866                 dbms_lob.writeappend(res_clob, length(newln), newln);
867             END IF;
868 
869             item_request_obj.records_requested := batch_size;
870             item_request_obj.start_record_position := 1;
871             item_request_obj.return_total_count_flag := 'T';
872 
873             for k IN 1 .. channels_array.count LOOP
874                  /* dbms_output.put_line('channel name=' || channels_array(k).NAME); */
875                  dbms_lob.writeappend(res_clob,4,'<tr>');
876                  tmp_str := '<td class="tableDataCell" colspan="3">';
877                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
878 
879               -- ujagarla - If there is no content, then we need to show a message
880               no_items_exist  := FND_API.G_FALSE;
881 
882 			  -- Start converting channel name to URL format
883 			  urlformat_channel_name := '';
884 			  channel_name:= channels_array(k).NAME;
885 			  for p in  1..LENGTH(channel_name) loop
886 				if (substr (channel_name, p, 1) = ' ') then
887 					urlformat_channel_name := urlformat_channel_name || '+';
888 				else
889 					urlformat_channel_name := urlformat_channel_name || substr (channel_name, p, 1);
890 				end if;
891 			  end loop;
892 
893                  url := 'ibukmipc.jsp?channelId=' ||channels_array(k).ID
894 ||'&' || 'channelName=' || urlformat_channel_name || '&' || p_cookie_url;
895                  tmp_str := '<a href=' || url || '>' || channels_array(k).NAME || '</a>';
896                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
897                  dbms_lob.writeappend(res_clob,length(newln),newln);
898                  tmp_str := '</td> </tr> <tr> </tr>';
899                  dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
900                  dbms_lob.writeappend(res_clob,length(newln),newln);
901 
902                  /* dbms_output.put_line('items in channel' || channels_array(k).NAME); */
903                   -- get items per channel
904 
905                   AMV_CHANNEL_GRP.Get_ItemsPerChannel(p_api_version => 1.0,
906                                                   p_init_msg_list => 'T',
907                                                       x_return_status => x_return_status,
908                                                       x_msg_count => x_msg_count,
909                                                       x_msg_data => x_msg_data,
910                                                       p_check_login_user => 'F',
911                                                       p_channel_id => channels_array(k).ID,
912                                                       p_subset_request_rec => item_request_obj,
913                                                       x_subset_return_rec => item_return_obj,
914                                                       x_document_id_array => items_array);
915 
916                   if (x_return_status = 'F')
917                   THEN
918                      /* dbms_output.put_line('No  Items for this chanel='); */
919                      x_return_status := FND_API.G_RET_STS_SUCCESS;
920                      dbms_lob.writeappend(res_clob,6, '  <tr>');
921                      dbms_lob.writeappend(res_clob,length(newln), newln);
922                      tmp_str := FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_ITEMS_ERROR');
923                      res_str := '    <td' || ' align="center" class="'
924                       || cell_format || '">'
925                       ||  tmp_str || ' </td>';
926                      dbms_lob.writeappend(res_clob,length(res_str), res_str);
927                      dbms_lob.writeappend(res_clob,length(newln), newln);
928 
929                      dbms_lob.writeappend(res_clob,7, '  </tr>');
930                      dbms_lob.writeappend(res_clob, length(newln), newln);
931                      exit;
932                   END IF;
933 
934                   for m IN 1 .. items_array.COUNT LOOP
935 
936                       AMV_ITEM_PUB.get_item(p_api_version => 1.0,
937                                             p_init_msg_list => 'T',
938                                             x_return_status => x_return_status,
939                                             x_msg_count => x_msg_count,
940                                             x_msg_data => x_msg_data,
941                                             p_check_login_user => 'F',
942                                             p_item_id => items_array(m),
943                                             x_item_obj => item_object,
944                                             x_file_array => item_file_array,
945                                             x_persp_array => item_persp_array,
946                                             x_author_array => item_author_array,
947                                             x_keyword_array => item_keyword_array);
948 
949                        if (x_return_status = 'F')
950                        THEN
951                            /* dbms_output.put_line('No  Items for this chanel=');*/
952                            x_return_status := FND_API.G_RET_STS_SUCCESS;
953                            dbms_lob.writeappend(res_clob,6, '  <tr>');
954                            dbms_lob.writeappend(res_clob,length(newln), newln);
955                            tmp_str := FND_MESSAGE.GET_STRING('IBU','IBU_HOM_ITEMS_ERROR');
956                            res_str := '    <td' || ' align="center" class="'
957                             || cell_format || '">'
958                             ||  tmp_str || ' </td>';
959                            dbms_lob.writeappend(res_clob,length(res_str), res_str);
960                            dbms_lob.writeappend(res_clob,length(newln), newln);
961                            dbms_lob.writeappend(res_clob,length(newln), newln);
962 
963                            dbms_lob.writeappend(res_clob,7, '  </tr>');
964                            dbms_lob.writeappend(res_clob, length(newln), newln);
965                            exit;
966                        END IF;
967 
968                        dbms_lob.writeappend(res_clob, 4,'<tr>');
969                        dbms_lob.writeappend(res_clob, length(newln),newln);
970 
971                        if (item_object.item_type like 'URL_ITEM') then
972                              -- tmp_str := '<td  class="binContentCell"><li><a href="http://' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
973                              if ( instr(item_object.url_string,'http://') =0  ) then
974                                tmp_str := '<td  class="binContentCell"><li><a href="http://' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
975                              else
976                                tmp_str := '<td  class="binContentCell"><li><a href="' || item_object.url_string|| '" target="new">' || item_object.item_name || '</a> </td>';
977                              end if;
978 
979                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
980                              dbms_lob.writeappend(res_clob, length(newln), newln);
981 
982                        elsif item_object.item_type like 'FILE_ITEM' then
983                              tmp_str := '<td  class="binContentCell"><li><a href="ibuzbot.jsp?itemid=' || item_object.item_id || '" >' || item_object.item_name || '</a> </td>';
984                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
985                              dbms_lob.writeappend(res_clob, length(newln), newln);
986 
987                        else --MESSAGE_ITEM
988                              tmp_str := '<td  class="binContentCell"><li><a href="ibuzbot.jsp?itemid=' || item_object.item_id || '">' || item_object.item_name || '</a> </td>';
989                              dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
990                              dbms_lob.writeappend(res_clob, length(newln), newln);
991 
992                        end if;
993 				   tmp_str := '</tr> <tr> </tr>';
994                        dbms_lob.writeappend(res_clob, length(tmp_str), tmp_str);
995                    end loop; -- for m IN 1 .. items_array.COUNT LOOP
996             end loop; -- for k IN 1 .. channels_array.count LOOP
997 
998   -- ujagarla - end=============================================================================================
999 
1000     -- ujagarla - If no content exist, show message to the user.
1001       IF ( no_items_exist = FND_API.G_TRUE )THEN
1002         tmp_str := '<tr><td class="binContentCell">'
1003 		    || FND_MESSAGE.GET_STRING('IBU', 'IBU_HOM_NO_ITEMS_FOUND')
1004 			|| '</td></tr>';
1005         dbms_lob.writeappend(res_clob,length(tmp_str),tmp_str);
1006         dbms_lob.writeappend(res_clob,length(newln), newln);
1007       End If;
1008 
1009      -- Bin footer
1010      dbms_lob.writeappend(res_clob, 5, '</td>');
1011      dbms_lob.writeappend(res_clob,length(newln), newln);
1012      dbms_lob.writeappend(res_clob, 5, '</tr>');
1013      dbms_lob.writeappend(res_clob,length(newln), newln);
1014      dbms_lob.writeappend(res_clob, 8, '</table>');
1015      dbms_lob.writeappend(res_clob,length(newln), newln);
1016 
1017 
1018      /*dbms_lob.writeappend(res_clob, 8, '</table>');
1019      dbms_lob.writeappend(res_clob,length(newln), newln);
1020      dbms_lob.writeappend(res_clob, 5, '</td>');
1021      dbms_lob.writeappend(res_clob,length(newln), newln);
1022      dbms_lob.writeappend(res_clob, 5, '</tr>');
1023      dbms_lob.writeappend(res_clob,length(newln), newln);
1024 
1025      dbms_lob.writeappend(res_clob, 4, '<tr>');
1026      dbms_lob.writeappend(res_clob,length(newln), newln);
1027      -- chr(38) is special char for 'and'
1028      tmp_str := '<td colspan="3" height="15">' || CHR(38) || 'nbsp;</td>';
1029      dbms_lob.writeappend(res_clob,length(tmp_str), tmp_str);
1030      dbms_lob.writeappend(res_clob,length(newln), newln);
1031      dbms_lob.writeappend(res_clob, 5, '</tr>');
1032      dbms_lob.writeappend(res_clob,length(newln), newln);
1033      */
1034   x_clob := res_clob;
1035   dbms_lob.freetemporary(res_clob);
1036 
1037   -- End of API Body
1038      -- Standard check of p_commit.
1039      IF FND_API.To_Boolean( p_commit ) THEN
1040           COMMIT WORK;
1041      END IF;
1042      -- Standard call to get message count and if count is 1, get message info.
1043      FND_MSG_PUB.Count_And_Get
1044           (p_count => x_msg_count ,
1045            p_data => x_msg_data
1046           );
1047 EXCEPTION
1048      WHEN FND_API.G_EXC_ERROR THEN
1049           FND_MSG_PUB.Count_And_Get
1050                   (p_count => x_msg_count ,
1051                    p_data => x_msg_data
1052                   );
1053      WHEN OTHERS THEN
1054           -- ROLLBACK TO Get_Filter;
1055           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1056           IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1057                FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
1058           END IF;
1059           FND_MSG_PUB.Count_And_Get
1060                (p_count => x_msg_count ,
1061                 p_data => x_msg_data
1062                );
1063           raise;
1064 
1065   end get_html;
1066 
1067 end ibu_mes_bin;