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