DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_IN_XML_UTILS

Source


1 PACKAGE BODY pay_in_xml_utils AS
2 /* $Header: pyinxutl.pkb 120.2 2006/05/27 18:33:39 statkar noship $ */
3 g_package          CONSTANT VARCHAR2(100) := 'pay_in_xml_utils.';
4 g_debug            BOOLEAN ;
5   --------------------------------------------------------------------------
6   --                                                                      --
7   -- Name           : MULTICOLUMNAR	                                  --
8   -- Type           : PROCEDURE                                           --
9   -- Access         : Public                                              --
10   -- Description    : This procedure creates the XML tag and its data     --
11   --									  --
12   -- Parameters     :                                                     --
13   --             IN : p_type			VARCHAR2                  --
14   --                  p_data			tXMLTable                 --
15   --                  p_count			NUMBER                    --
16   --                  p_xml_data	        CLOB	                  --
17   --                                                                      --
18   --            OUT : N/A                                                 --
19   --                                                                      --
20   -- Change History :                                                     --
21   --------------------------------------------------------------------------
22   -- Rev#  Date           Userid    Description                           --
23   --------------------------------------------------------------------------
24   -- 115.0 01-Jan-2005    aaagawra   Initial Version                      --
25   --------------------------------------------------------------------------
26   --
27   PROCEDURE multiColumnar(p_type  IN VARCHAR2
28                          ,p_data  IN tXMLTable
29                          ,p_count IN NUMBER
30 		         ,p_xml_data IN OUT NOCOPY CLOB)
31   IS
32     l_tag         VARCHAR2(2000);
33     l_procedure   VARCHAR2(250);
34     l_message     VARCHAR2(250);
35 
36 BEGIN
37    g_debug     := hr_utility.debug_enabled;
38    l_procedure := g_package ||'multiColumnar';
39    pay_in_utils.set_location(g_debug,'Entering: '||l_procedure,10);
40    IF (g_debug)
41    THEN
42         pay_in_utils.trace('**************************************************','********************');
43         pay_in_utils.trace('p_type :',p_type);
44         pay_in_utils.trace('p_count :',p_count);
45         pay_in_utils.trace('**************************************************','********************');
46    END IF;
47 
48   --
49      l_tag := '<'||p_type||'>';
50      dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
51 
52      FOR i in 1..p_count
53      LOOP
54      --
55         IF p_data.exists(i) THEN
56         --
57           l_tag := getTag(p_data(i).Name, p_data(i).Value);
58           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
59         --
60         END IF;
61      --
62      END LOOP;
63      --
64      l_tag := '</'||p_type||'>';
65      dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
66      pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 50);
67   --
68   END multiColumnar;
69 
70   --------------------------------------------------------------------------
71   --                                                                      --
72   -- Name           : TWOCOLUMNAR	                                  --
73   -- Type           : PROCEDURE                                           --
74   -- Access         : Public                                              --
75   -- Description    : This procedure creates the XML tag and its data     --
76   -- Parameters     :                                                     --
77   --             IN : p_type			VARCHAR2                  --
78   --                  p_data			tXMLTable                 --
79   --                  p_count			NUMBER                    --
80   --                  p_xml_data	        CLOB	                  --
81   --                                                                      --
82   --            OUT : N/A                                                 --
83   --                                                                      --
84   -- Change History :                                                     --
85   --------------------------------------------------------------------------
86   -- Rev#  Date           Userid    Description                           --
87   --------------------------------------------------------------------------
88   -- 115.0 01-Jan-2005    aaagawra   Initial Version                      --
89   --------------------------------------------------------------------------
90   PROCEDURE twoColumnar(p_type  IN VARCHAR2
91                        ,p_data  IN tXMLTable
92                        ,p_count IN NUMBER
93 		       ,p_xml_data IN OUT NOCOPY CLOB)
94   IS
95      l_tag VARCHAR2(2000);
96      l_procedure   VARCHAR2(250);
97      l_message     VARCHAR2(250);
98 
99 BEGIN
100    g_debug     := hr_utility.debug_enabled;
101    l_procedure := g_package ||'twoColumnar';
102    pay_in_utils.set_location(g_debug,'Entering: '||l_procedure,10);
103    IF (g_debug)
104    THEN
105         pay_in_utils.trace('**************************************************','********************');
106         pay_in_utils.trace('p_type :',p_type);
107         pay_in_utils.trace('p_count :',p_count);
108         pay_in_utils.trace('**************************************************','********************');
109    END IF;
110 
111   --
112      FOR i in 1..p_count
113      LOOP
114      --
115         IF p_data.exists(i) THEN
116         --
117           -- Start Main tag
118           l_tag := '<'||p_type||'>';
119           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
120 	  --
121         -- Put Description tag
122           l_tag := getTag('c_description', p_data(i).Name);
123           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
124 	--
125         -- Put amount tag
126           l_tag := getTag('c_amount', p_data(i).Value);
127           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
128 	--
129         -- End Main tag
130           l_tag := '</'||p_type||'>';
131           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
132         --
133         END IF;
134      --
135      END LOOP;
136      pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 50);
137   --
138   END twoColumnar;
139   --------------------------------------------------------------------------
140   --                                                                      --
141   -- Name           : ENCODE_HTML_STRING                                  --
142   -- Type           : FUNCTION                                            --
143   -- Access         : Public                                              --
144   -- Description    : This function encodes the XML tag and its data      --
145   -- Parameters     :                                                     --
146   --             IN : p_value		VARCHAR2	                  --
147   --            OUT : N/A                                                 --
148   --                                                                      --
149   -- Change History :                                                     --
150   --------------------------------------------------------------------------
151   -- Rev#  Date           Userid    Description                           --
152   --------------------------------------------------------------------------
153   -- 115.0 01-Jan-2005    aaagawra   Initial Version                      --
154   --------------------------------------------------------------------------
155 
156   FUNCTION encode_html_string(p_value IN VARCHAR2)
157   RETURN VARCHAR2
158   IS
159     TYPE html_rec IS RECORD
160            (html_char VARCHAR2(2)
161 	   ,encoded   VARCHAR2(10)
162 	   );
163 
164     TYPE html_char_tab IS TABLE OF  html_rec INDEX BY binary_integer;
165 
166     char_list html_char_tab;
167     i  NUMBER;
168     l_value VARCHAR2(1000);
169     l_procedure   VARCHAR2(250);
170     l_message     VARCHAR2(250);
171 
172 BEGIN
173    g_debug     := hr_utility.debug_enabled;
174    l_procedure := g_package ||'encode_html_string';
175    pay_in_utils.set_location(g_debug,'Entering: '||l_procedure,10);
176    IF (g_debug)
177    THEN
178         pay_in_utils.trace('**************************************************','********************');
179         pay_in_utils.trace('p_value :',p_value);
180         pay_in_utils.trace('**************************************************','********************');
181    END IF;
182 
183    IF p_value IS NULL then
184       pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 30);
185       RETURN null;
186    END IF;
187 
188    char_list(0).html_char:='&';
189    char_list(0).encoded:='&';
190 
191    char_list(1).html_char:='>';
192    char_list(1).encoded:='>';
193 
194    char_list(2).html_char:='<';
195    char_list(2).encoded:='<';
196 
197    i:=0;
198    l_value := p_value;
199    while(i<char_list.count())
200    LOOP
201        l_value:=replace(l_value,char_list(i).html_char,char_list(i).encoded);
202        i:=i+1;
203    END LOOP;
204    pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 50);
205 
206   RETURN l_value;
207   END encode_html_string;
208   --------------------------------------------------------------------------
209   --                                                                      --
210   -- Name           : GETTAG		                                  --
211   -- Type           : FUNCTION                                            --
212   -- Access         : Public                                              --
213   -- Description    : This function creates the XML tag and its data      --
214   -- Parameters     :                                                     --
215   --             IN : p_tag_name	VARCHAR2	                  --
216   --                  p_tag_value	VARCHAR2		          --
217   --            OUT : N/A                                                 --
218   --                                                                      --
219   -- Change History :                                                     --
220   --------------------------------------------------------------------------
221   -- Rev#  Date           Userid    Description                           --
222   --------------------------------------------------------------------------
223   -- 115.0 01-Jan-2005    aaagawra   Initial Version                      --
224   --------------------------------------------------------------------------
225   --
226   FUNCTION getTag(p_tag_name  IN VARCHAR2
227                  ,p_tag_value IN VARCHAR2)
228   RETURN VARCHAR2
229   IS
230    l_tag_value VARCHAR2(2000);
231    l_procedure   VARCHAR2(250);
232    l_message     VARCHAR2(250);
233 
234 BEGIN
235    g_debug     := hr_utility.debug_enabled;
236    l_procedure := g_package ||'getTag';
237    pay_in_utils.set_location(g_debug,'Entering: '||l_procedure,10);
238    IF (g_debug)
239    THEN
240         pay_in_utils.trace('**************************************************','********************');
241         pay_in_utils.trace('p_tag_name :',p_tag_name);
242         pay_in_utils.trace('p_tag_value :',p_tag_value);
243         pay_in_utils.trace('**************************************************','********************');
244    END IF;
245   --
246      l_tag_value:=nvl(encode_html_string(p_tag_value),' ');
247   --Return Tag
248   pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 50);
249   return '<'||p_tag_name||'>'||l_tag_value||'</'||p_tag_name||'>';
250 --
251 END getTag;
252 
253 END pay_in_xml_utils;