[Home] [Help]
PACKAGE BODY: APPS.XLA_ENTITY_TYPES_PKG
Source
1 PACKAGE BODY xla_entity_types_pkg AS
2 /* $Header: xlaamdee.pkb 120.4 2004/11/20 01:10:35 wychan ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_entity_types_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Entity Types Package |
13 | |
14 | HISTORY |
15 | 01-May-01 Dimple Shah Created |
16 | |
17 +======================================================================*/
18
19 /*======================================================================+
20 | |
21 | Public Function |
22 | |
23 | event_classes_exist |
24 | |
25 | Returns true if the source is being used |
26 | |
27 +======================================================================*/
28 FUNCTION event_classes_exist
29 (p_event IN VARCHAR2
30 ,p_application_id IN NUMBER
31 ,p_entity_code IN VARCHAR2)
32 RETURN BOOLEAN
33
34 IS
35
36 --
37 -- Private variables
38 --
39 l_count NUMBER(30) := 0;
40
41 --
42 -- Cursor declarations
43 --
44 CURSOR check_event_classes
45 IS
46 SELECT count(1)
47 FROM xla_event_classes_vl
48 WHERE application_id = p_application_id
49 AND entity_code = p_entity_code;
50
51 CURSOR check_enabled_event_classes
52 IS
53 SELECT count(1)
54 FROM xla_event_classes_vl
55 WHERE application_id = p_application_id
56 AND entity_code = p_entity_code
57 AND enabled_flag = 'Y';
58
59 BEGIN
60 xla_utility_pkg.trace('> xla_entity_types_pkg.event_classes_exist' , 10);
61
62 xla_utility_pkg.trace('event = '||p_event, 20);
63 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
64 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
65
66 IF p_event = 'DELETE' THEN
67
68 OPEN check_event_classes;
69 FETCH check_event_classes
70 INTO l_count;
71 CLOSE check_event_classes;
72
73 IF l_count > 0 THEN
74 RETURN TRUE;
75 END IF;
76
77 ELSIF p_event = 'DISABLE' THEN
78
79 OPEN check_enabled_event_classes;
80 FETCH check_enabled_event_classes
81 INTO l_count;
82 CLOSE check_enabled_event_classes;
83
84 IF l_count > 0 THEN
85 RETURN TRUE;
86 END IF;
87
88 END IF;
89
90 xla_utility_pkg.trace('< xla_entity_types_pkg.event_classes_exist' , 10);
91 RETURN FALSE;
92
93 EXCEPTION
94 WHEN xla_exceptions_pkg.application_exception THEN
95 RAISE;
96 WHEN OTHERS THEN
97 xla_exceptions_pkg.raise_message
98 (p_location => 'xla_entity_types_pkg.event_classes_exist');
99
100 END event_classes_exist;
101
102 /*======================================================================+
103 | |
104 | Public Procedure |
105 | |
106 | delete_entity_details |
107 | |
108 | Deletes all details of the entity |
109 | |
110 +======================================================================*/
111
112 PROCEDURE delete_entity_details
113 (p_application_id IN NUMBER
114 ,p_entity_code IN VARCHAR2)
115 IS
116
117 BEGIN
118
119 xla_utility_pkg.trace('> xla_entity_types_pkg.delete_entity_details' , 10);
120
121 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
122 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
123
124 DELETE
125 FROM xla_entity_id_mappings
126 WHERE application_id = p_application_id
127 AND entity_code = p_entity_code;
128
129 xla_utility_pkg.trace('< xla_entity_types_pkg.delete_entity_details' , 10);
130
131 EXCEPTION
132 WHEN xla_exceptions_pkg.application_exception THEN
133 RAISE;
134 WHEN OTHERS THEN
135 xla_exceptions_pkg.raise_message
136 (p_location => 'xla_entity_types_pkg.delete_entity_details');
137
138 END delete_entity_details;
139
140 /*======================================================================+
141 | |
142 | Public Function |
143 | |
144 | uncompile_definitions |
145 | |
146 | Returns true if all the product rules for the entity are uncompiled |
147 | |
148 +======================================================================*/
149
150 FUNCTION uncompile_definitions
151 (p_application_id IN NUMBER
152 ,p_entity_code IN VARCHAR2
153 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
154 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
155 ,x_event_class_name IN OUT NOCOPY VARCHAR2
156 ,x_event_type_name IN OUT NOCOPY VARCHAR2
157 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
158 RETURN BOOLEAN
159 IS
160
161 l_return BOOLEAN := TRUE;
162 l_exist VARCHAR2(1);
163
164 l_application_name varchar2(240) := null;
165 l_product_rule_name varchar2(80) := null;
166 l_product_rule_type varchar2(80) := null;
167 l_event_class_name varchar2(80) := null;
168 l_event_type_name varchar2(80) := null;
169 l_locking_status_flag varchar2(1) := null;
170
171 -- Retrive any event class/type assignment of an AAD that is either
172 -- being locked or validating
173 CURSOR c_locked_aads IS
174 SELECT xpa.entity_code, xpa.event_class_code, xpa.event_type_code,
175 xpa.product_rule_type_code, xpa.product_rule_code,
176 xpa.amb_context_code, xpa.locking_status_flag
177 FROM xla_prod_acct_headers xpa
178 WHERE xpa.application_id = p_application_id
179 AND xpa.entity_code = p_entity_code
180 AND (xpa.validation_status_code NOT IN ('E', 'Y', 'N') OR
181 xpa.locking_status_flag = 'Y');
182
183 l_locked_aad c_locked_aads%rowtype;
184
185 BEGIN
186
187 xla_utility_pkg.trace('> xla_entity_types_pkg.uncompile_definitions' , 10);
188
189 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
190 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
191
192 OPEN c_locked_aads;
193 FETCH c_locked_aads INTO l_locked_aad;
194 IF (c_locked_aads%FOUND) THEN
195
196 xla_validations_pkg.get_product_rule_info
197 (p_application_id => p_application_id
198 ,p_amb_context_code => l_locked_aad.amb_context_code
199 ,p_product_rule_type_code => l_locked_aad.product_rule_type_code
200 ,p_product_rule_code => l_locked_aad.product_rule_code
201 ,p_application_name => l_application_name
202 ,p_product_rule_name => l_product_rule_name
203 ,p_product_rule_type => l_product_rule_type);
204
205 xla_validations_pkg.get_event_class_info
206 (p_application_id => p_application_id
207 ,p_entity_code => l_locked_aad.entity_code
208 ,p_event_class_code => l_locked_aad.event_class_code
209 ,p_event_class_name => l_event_class_name);
210
211 xla_validations_pkg.get_event_type_info
212 (p_application_id => p_application_id
213 ,p_entity_code => l_locked_aad.entity_code
214 ,p_event_class_code => l_locked_aad.event_class_code
215 ,p_event_type_code => l_locked_aad.event_type_code
216 ,p_event_type_name => l_event_type_name);
217
218 l_locking_status_flag := l_locked_aad.locking_status_flag;
219
220 l_return := FALSE;
221 ELSE
222
223 UPDATE xla_line_definitions_b xld
224 SET validation_status_code = 'N'
225 WHERE xld.application_id = p_application_id
226 AND xld.event_class_code IN (SELECT event_class_code
227 FROM xla_event_classes_b
228 WHERE entity_code = p_entity_code)
229 AND xld.validation_status_code <> 'N';
230
231 UPDATE xla_prod_acct_headers xpa
232 SET validation_status_code = 'N'
233 WHERE xpa.application_id = p_application_id
234 AND xpa.entity_code = p_entity_code
235 AND xpa.validation_status_code <> 'N';
236
237 UPDATE xla_product_rules_b xpr
238 SET compile_status_code = 'N'
239 WHERE xpr.application_id = p_application_id
240 AND xpr.compile_status_code <> 'N'
241 AND (xpr.amb_context_code
242 ,xpr.product_rule_type_code
243 ,xpr.product_rule_code) IN
244 (SELECT xpa.amb_context_code
245 ,xpa.product_rule_type_code
246 ,xpa.product_rule_code
247 FROM xla_prod_acct_headers xpa
248 WHERE xpa.application_id = p_application_id
249 AND xpa.entity_code = p_entity_code);
250
251 l_return := TRUE;
252 END IF;
253 CLOSE c_locked_aads;
254
255 x_product_rule_name := l_product_rule_name;
256 x_product_rule_type := l_product_rule_type;
257 x_event_class_name := l_event_class_name;
258 x_event_type_name := l_event_type_name;
259 x_locking_status_flag := l_locking_status_flag;
260
261 xla_utility_pkg.trace('< xla_entity_types_pkg.uncompile_definitions' , 10);
262
263 return l_return;
264
265 EXCEPTION
266 WHEN xla_exceptions_pkg.application_exception THEN
267 IF c_locked_aads%ISOPEN THEN
268 CLOSE c_locked_aads;
269 END IF;
270 RAISE;
271 WHEN OTHERS THEN
272 IF c_locked_aads%ISOPEN THEN
273 CLOSE c_locked_aads;
274 END IF;
275
276 xla_exceptions_pkg.raise_message
277 (p_location => 'xla_entity_types_pkg.uncompile_definitions');
278
279 END uncompile_definitions ;
280
281 END xla_entity_types_pkg;