[Home] [Help]
PACKAGE BODY: APPS.PAY_PRL_XML_UTILS
Source
1 PACKAGE BODY pay_prl_xml_utils AS
2 /* $Header: pyprxutl.pkb 120.0 2005/05/29 07:53 appldev noship $ */
3
4 --------------------------------------------------------------------------
5 -- --
6 -- Name : TWOCOLUMNAR --
7 -- Type : PROCEDURE --
8 -- Access : Public --
9 -- Description : This procedure creates the XML tag and its data --
10 -- Parameters : --
11 -- IN : p_type VARCHAR2 --
12 -- p_data tXMLTable --
13 -- p_count NUMBER --
14 -- p_xml_data CLOB --
15 -- --
16 -- OUT : N/A --
17 -- --
18 -- Change History : --
19 --------------------------------------------------------------------------
20 -- Rev# Date Userid Description --
21 --------------------------------------------------------------------------
22 -- 115.0 07-Apr-2005 pgongada Initial Version --
23 --------------------------------------------------------------------------
24 PROCEDURE twoColumnar(p_type IN VARCHAR2
25 ,p_data IN tXMLTable
26 ,p_count IN NUMBER
27 ,p_xml_data IN OUT NOCOPY CLOB)
28 IS
29 l_tag VARCHAR2(2000);
30 BEGIN
31 --
32 FOR i in 1..p_count
33 LOOP
34 --
35 IF p_data.exists(i) THEN
36 --
37 -- Start Main tag
38 l_tag := '<'||p_type||'>';
39 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
40 --
41 -- Put Description tag
42 l_tag := getTag('SEGMENT', p_data(i).Name);
43 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
44 --
45 -- Put amount tag
46 l_tag := getTag('VALUE', p_data(i).Value);
47 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
48 --
49 -- End Main tag
50 l_tag := '</'||p_type||'>';
51 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
52 --
53 END IF;
54 --
55 END LOOP;
56 --
57 END twoColumnar;
58
59 --------------------------------------------------------------------------
60 -- --
61 -- Name : MULTICOLUMNAR --
62 -- Type : PROCEDURE --
63 -- Access : Public --
64 -- Description : This procedure creates the XML tag and its data --
65 -- --
66 -- Parameters : --
67 -- IN : p_type VARCHAR2 --
68 -- p_data tXMLTable --
69 -- p_count NUMBER --
70 -- p_xml_data CLOB --
71 -- --
72 -- OUT : N/A --
73 -- --
74 -- Change History : --
75 --------------------------------------------------------------------------
76 -- Rev# Date Userid Description --
77 --------------------------------------------------------------------------
78 -- 115.0 05-Apr-2005 pgongada Initial Version --
79 --------------------------------------------------------------------------
80 --
81 PROCEDURE multiColumnar(p_type IN VARCHAR2
82 ,p_data IN tXMLTable
83 ,p_count IN NUMBER
84 ,p_xml_data IN OUT NOCOPY CLOB)
85 IS
86 l_tag VARCHAR2(2000);
87 BEGIN
88 --
89 l_tag := '<'||p_type||'>';
90 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
91
92 FOR i in 1..p_count
93 LOOP
94 --
95 IF p_data.exists(i) THEN
96 --
97 l_tag := getTag(p_data(i).Name, p_data(i).Value);
98 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
99 --
100 END IF;
101 --
102 END LOOP;
103 --
104 l_tag := '</'||p_type||'>';
105 dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
106 --
107 END multiColumnar;
108 --
109 --
110 --------------------------------------------------------------------------
111 -- --
112 -- Name : ENCODE_HTML_STRING --
113 -- Type : FUNCTION --
114 -- Access : Public --
115 -- Description : This function encodes the XML tag and its data --
116 -- Parameters : --
117 -- IN : p_value VARCHAR2 --
118 -- OUT : N/A --
119 -- --
120 -- Change History : --
121 --------------------------------------------------------------------------
122 -- Rev# Date Userid Description --
123 --------------------------------------------------------------------------
124 -- 115.0 08-Apr-2005 pgongada Initial Version --
125 --------------------------------------------------------------------------
126
127 FUNCTION encode_html_string(p_value IN VARCHAR2)
128 RETURN VARCHAR2
129 IS
130 TYPE html_rec IS RECORD
131 (html_char VARCHAR2(2)
132 ,encoded VARCHAR2(10)
133 );
134
135 TYPE html_char_tab IS TABLE OF html_rec INDEX BY binary_integer;
136
137 char_list html_char_tab;
138 i NUMBER;
139 l_value VARCHAR2(1000);
140 begin
141 IF p_value IS NULL then
142 RETURN null;
143 END IF;
144
145 char_list(0).html_char:='&';
146 char_list(0).encoded:='&';
147
148 char_list(1).html_char:='>';
149 char_list(1).encoded:='>';
150
151 char_list(2).html_char:='<';
152 char_list(2).encoded:='<';
153
154 i:=0;
155 l_value := p_value;
156 while(i<char_list.count())
157 LOOP
158 l_value:=replace(l_value,char_list(i).html_char,char_list(i).encoded);
159 i:=i+1;
160 END LOOP;
161
162 RETURN l_value;
163
164 END encode_html_string;
165
166 --
167 --------------------------------------------------------------------------
168 -- --
169 -- Name : GETTAG --
170 -- Type : FUNCTION --
171 -- Access : Public --
172 -- Description : This function creates the XML tag and its data --
173 -- Parameters : --
174 -- IN : p_tag_name VARCHAR2 --
175 -- p_tag_value VARCHAR2 --
176 -- OUT : N/A --
177 -- --
178 -- Change History : --
179 --------------------------------------------------------------------------
180 -- Rev# Date Userid Description --
181 --------------------------------------------------------------------------
182 -- 115.0 05-Apr-2005 pgongada Initial Version --
183 --------------------------------------------------------------------------
184 --
185 FUNCTION getTag(p_tag_name IN VARCHAR2
186 ,p_tag_value IN VARCHAR2)
187 RETURN VARCHAR2
188 IS
189 l_tag_value VARCHAR2(2000);
190 BEGIN
191
192 IF p_tag_value IS NULL THEN
193 RETURN '<' || p_tag_name || ' />';
194 ELSE
195 l_tag_value := encode_html_string(p_tag_value);
196 RETURN '<'||p_tag_name||'>'||l_tag_value||'</'||p_tag_name||'>';
197 END IF;
198 --
199 END getTag;
200
201 END pay_prl_xml_utils;