[Home] [Help]
PACKAGE BODY: APPS.XLA_LINE_DEFN_ADR_ASSGNS_F_PVT
Source
1 PACKAGE BODY xla_line_defn_adr_assgns_f_pvt AS
2 /* $Header: xlathlad.pkb 120.8 2005/06/14 00:54:30 wychan ship $ */
3
4 --=============================================================================
5 -- *********** Local Trace Routine **********
6 --=============================================================================
7 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
8 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
9 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
10 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
11 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
12 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
13
14 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
15 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_line_defn_adr_assgns_f_pvt';
16
17 g_log_level NUMBER;
18 g_log_enabled BOOLEAN;
19
20 PROCEDURE trace
21 (p_msg IN VARCHAR2
22 ,p_level IN NUMBER
23 ,p_module IN VARCHAR2)
24 IS
25 l_log_module VARCHAR2(255);
26 BEGIN
27
28 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
29 fnd_log.message(p_level, p_module);
30 ELSIF p_level >= g_log_level THEN
31 fnd_log.string(p_level, p_module, p_msg);
32 END IF;
33
34 EXCEPTION
35
36 WHEN xla_exceptions_pkg.application_exception THEN
37 RAISE;
38
39 WHEN OTHERS THEN
40 xla_exceptions_pkg.raise_message
41 (p_location => 'xla_line_defn_adr_assgns_f_pvt.trace');
42 END trace;
43
44
45
46 /*======================================================================+
47 | |
48 | Procedure insert_row |
49 | |
50 +======================================================================*/
51 PROCEDURE insert_row
52 (x_rowid IN OUT NOCOPY VARCHAR2
53 ,x_application_id IN NUMBER
54 ,x_amb_context_code IN VARCHAR2
55 ,x_event_class_code IN VARCHAR2
56 ,x_event_type_code IN VARCHAR2
57 ,x_line_definition_owner_code IN VARCHAR2
58 ,x_line_definition_code IN VARCHAR2
59 ,x_accounting_line_type_code IN VARCHAR2
60 ,x_accounting_line_code IN VARCHAR2
61 ,x_flexfield_segment_code IN VARCHAR2
62 ,x_inherit_adr_flag IN VARCHAR2
63 ,x_segment_rule_appl_id IN NUMBER
64 ,x_segment_rule_type_code IN VARCHAR2
65 ,x_segment_rule_code IN VARCHAR2
66 ,x_side_code IN VARCHAR2
67 ,x_creation_date IN DATE
68 ,x_created_by IN NUMBER
69 ,x_last_update_date IN DATE
70 ,x_last_updated_by IN NUMBER
71 ,x_last_update_login IN NUMBER)
72
73 IS
74
75 CURSOR c IS
76 SELECT rowid
77 FROM xla_line_defn_adr_assgns
78 WHERE application_id = x_application_id
79 AND amb_context_code = x_amb_context_code
80 AND event_class_code = x_event_class_code
81 AND event_type_code = x_event_type_code
82 AND line_definition_owner_code = x_line_definition_owner_code
83 AND line_definition_code = x_line_definition_code
84 AND accounting_line_type_code = x_accounting_line_type_code
85 AND accounting_line_code = x_accounting_line_code
86 AND flexfield_segment_code = x_flexfield_segment_code
87 AND side_code = x_side_code
88 ;
89
90 l_log_module VARCHAR2(240);
91 BEGIN
92
93 IF g_log_enabled THEN
94 l_log_module := C_DEFAULT_MODULE||'.insert_row';
95 END IF;
96
97 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98 trace(p_msg => 'BEGIN of procedure insert_row',
99 p_module => l_log_module,
100 p_level => C_LEVEL_PROCEDURE);
101 END IF;
102
103 INSERT INTO xla_line_defn_adr_assgns
104 (creation_date
105 ,created_by
106 ,application_id
107 ,amb_context_code
108 ,event_class_code
109 ,event_type_code
110 ,line_definition_owner_code
111 ,line_definition_code
112 ,accounting_line_type_code
113 ,accounting_line_code
114 ,flexfield_segment_code
115 ,inherit_adr_flag
116 ,adr_version_num
117 ,segment_rule_appl_id
118 ,segment_rule_type_code
119 ,segment_rule_code
120 ,side_code
121 ,object_version_number
122 ,last_update_date
123 ,last_updated_by
124 ,last_update_login)
125 VALUES
126 (x_creation_date
127 ,x_created_by
128 ,x_application_id
129 ,x_amb_context_code
130 ,x_event_class_code
131 ,x_event_type_code
132 ,x_line_definition_owner_code
133 ,x_line_definition_code
134 ,x_accounting_line_type_code
135 ,x_accounting_line_code
136 ,x_flexfield_segment_code
137 ,x_inherit_adr_flag
138 ,0
139 ,x_segment_rule_appl_id
140 ,x_segment_rule_type_code
141 ,x_segment_rule_code
142 ,x_side_code
143 ,1
144 ,x_last_update_date
145 ,x_last_updated_by
146 ,x_last_update_login)
147 ;
148
149 OPEN c;
150 FETCH c INTO x_rowid;
151
152 IF (c%NOTFOUND) THEN
153 CLOSE c;
154 RAISE NO_DATA_FOUND;
155 END IF;
156 CLOSE c;
157
158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159 trace(p_msg => 'END of procedure insert_row',
160 p_module => l_log_module,
161 p_level => C_LEVEL_PROCEDURE);
162 END IF;
163
164 END insert_row;
165
166 /*======================================================================+
167 | |
168 | Procedure lock_row |
169 | |
170 +======================================================================*/
171 PROCEDURE lock_row
172 (x_application_id IN NUMBER
173 ,x_amb_context_code IN VARCHAR2
174 ,x_event_class_code IN VARCHAR2
175 ,x_event_type_code IN VARCHAR2
176 ,x_line_definition_owner_code IN VARCHAR2
177 ,x_line_definition_code IN VARCHAR2
178 ,x_accounting_line_type_code IN VARCHAR2
179 ,x_accounting_line_code IN VARCHAR2
180 ,x_flexfield_segment_code IN VARCHAR2
181 ,x_inherit_adr_flag IN VARCHAR2
182 ,x_segment_rule_appl_id IN NUMBER
183 ,x_segment_rule_type_code IN VARCHAR2
184 ,x_segment_rule_code IN VARCHAR2
185 ,x_side_code IN VARCHAR2)
186
187 IS
188
189 CURSOR c IS
190 SELECT inherit_adr_flag
191 ,segment_rule_appl_id
192 ,segment_rule_type_code
193 ,segment_rule_code
194 , side_code
195 FROM xla_line_defn_adr_assgns
196 WHERE application_id = x_application_id
197 AND amb_context_code = x_amb_context_code
198 AND event_class_code = x_event_class_code
199 AND event_type_code = x_event_type_code
200 AND line_definition_owner_code = x_line_definition_owner_code
201 AND line_definition_code = x_line_definition_code
202 AND accounting_line_type_code = x_accounting_line_type_code
203 AND accounting_line_code = x_accounting_line_code
204 AND flexfield_segment_code = x_flexfield_segment_code
205 AND side_code = x_side_code
206 FOR UPDATE OF application_id NOWAIT;
207
208 recinfo c%ROWTYPE;
209
210 l_log_module VARCHAR2(240);
211 BEGIN
212
213 IF g_log_enabled THEN
214 l_log_module := C_DEFAULT_MODULE||'.lock_row';
215 END IF;
216
217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
218 trace(p_msg => 'BEGIN of procedure lock_row',
219 p_module => l_log_module,
220 p_level => C_LEVEL_PROCEDURE);
221 END IF;
222
223 OPEN c;
224 FETCH c INTO recinfo;
225
226 IF (c%NOTFOUND) THEN
227 CLOSE c;
228 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
229 app_exception.raise_exception;
230 END IF;
231 CLOSE c;
232
233 IF ( (recinfo.inherit_adr_flag = x_inherit_adr_flag)
234 AND ((recinfo.segment_rule_appl_id = x_segment_rule_appl_id)
235 OR ((recinfo.segment_rule_appl_id IS NULL)
236 AND (x_segment_rule_appl_id IS NULL)))
237 AND ((recinfo.segment_rule_type_code = x_segment_rule_type_code)
238 OR ((recinfo.segment_rule_type_code IS NULL)
239 AND (x_segment_rule_type_code IS NULL)))
240 AND ((recinfo.segment_rule_code = x_segment_rule_code)
241 OR ((recinfo.segment_rule_code IS NULL)
242 AND (x_segment_rule_code IS NULL)))
243 AND (recinfo.side_code = x_side_code)
244 ) THEN
245 NULL;
246 ELSE
247 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
248 app_exception.raise_exception;
249 END IF;
250
251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
252 trace(p_msg => 'END of procedure lock_row',
253 p_module => l_log_module,
254 p_level => C_LEVEL_PROCEDURE);
255 END IF;
256
257 END lock_row;
258
259 /*======================================================================+
260 | |
261 | Procedure update_row |
262 | |
263 +======================================================================*/
264 PROCEDURE update_row
265 (x_application_id IN NUMBER
266 ,x_amb_context_code IN VARCHAR2
267 ,x_event_class_code IN VARCHAR2
268 ,x_event_type_code IN VARCHAR2
269 ,x_line_definition_owner_code IN VARCHAR2
270 ,x_line_definition_code IN VARCHAR2
271 ,x_accounting_line_type_code IN VARCHAR2
272 ,x_accounting_line_code IN VARCHAR2
273 ,x_flexfield_segment_code IN VARCHAR2
274 ,x_inherit_adr_flag IN VARCHAR2
275 ,x_segment_rule_appl_id IN NUMBER
276 ,x_segment_rule_type_code IN VARCHAR2
277 ,x_segment_rule_code IN VARCHAR2
278 ,x_side_code IN VARCHAR2
279 ,x_last_update_date IN DATE
280 ,x_last_updated_by IN NUMBER
281 ,x_last_update_login IN NUMBER)
282 IS
283
284 l_log_module VARCHAR2(240);
285 BEGIN
286
287 IF g_log_enabled THEN
288 l_log_module := C_DEFAULT_MODULE||'.update_row';
289 END IF;
290
291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
292 trace(p_msg => 'BEGIN of procedure update_row',
293 p_module => l_log_module,
294 p_level => C_LEVEL_PROCEDURE);
295 END IF;
296
297 UPDATE xla_line_defn_adr_assgns
298 SET
299 last_update_date = x_last_update_date
300 ,inherit_adr_flag = x_inherit_adr_flag
301 ,segment_rule_appl_id = x_segment_rule_appl_id
302 ,segment_rule_type_code = x_segment_rule_type_code
303 ,segment_rule_code = x_segment_rule_code
304 ,object_version_number = object_version_number+1
305 ,last_updated_by = x_last_updated_by
306 ,last_update_login = x_last_update_login
307 WHERE application_id = x_application_id
308 AND amb_context_code = x_amb_context_code
309 AND event_class_code = x_event_class_code
310 AND event_type_code = x_event_type_code
311 AND line_definition_owner_code = x_line_definition_owner_code
312 AND line_definition_code = x_line_definition_code
313 AND accounting_line_type_code = x_accounting_line_type_code
314 AND accounting_line_code = x_accounting_line_code
315 AND flexfield_segment_code = x_flexfield_segment_code
316 AND side_code = x_side_code;
317
318 IF (SQL%NOTFOUND) THEN
319 RAISE NO_DATA_FOUND;
320 END IF;
321
322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
323 trace(p_msg => 'END of procedure update_row',
324 p_module => l_log_module,
325 p_level => C_LEVEL_PROCEDURE);
326 END IF;
327
328 END update_row;
329
330 /*======================================================================+
331 | |
332 | Procedure delete_row |
333 | |
334 +======================================================================*/
335 PROCEDURE delete_row
336 (x_application_id IN NUMBER
337 ,x_amb_context_code IN VARCHAR2
338 ,x_event_class_code IN VARCHAR2
339 ,x_event_type_code IN VARCHAR2
340 ,x_line_definition_owner_code IN VARCHAR2
341 ,x_line_definition_code IN VARCHAR2
342 ,x_accounting_line_type_code IN VARCHAR2
343 ,x_accounting_line_code IN VARCHAR2
344 ,x_flexfield_segment_code IN VARCHAR2
345 ,x_side_code IN VARCHAR2)
346
347 IS
348
349 l_log_module VARCHAR2(240);
350 BEGIN
351
352 IF g_log_enabled THEN
353 l_log_module := C_DEFAULT_MODULE||'.delete_row';
354 END IF;
355
356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
357 trace(p_msg => 'BEGIN of procedure delete_row',
358 p_module => l_log_module,
359 p_level => C_LEVEL_PROCEDURE);
360 END IF;
361
362 DELETE FROM xla_line_defn_adr_assgns
363 WHERE application_id = x_application_id
364 AND amb_context_code = x_amb_context_code
365 AND event_class_code = x_event_class_code
366 AND event_type_code = x_event_type_code
367 AND line_definition_owner_code = x_line_definition_owner_code
368 AND line_definition_code = x_line_definition_code
369 AND accounting_line_type_code = x_accounting_line_type_code
370 AND accounting_line_code = x_accounting_line_code
371 AND flexfield_segment_code = x_flexfield_segment_code
372 AND side_code = x_side_code;
373
374 IF (SQL%NOTFOUND) THEN
375 RAISE NO_DATA_FOUND;
376 END IF;
377
378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
379 trace(p_msg => 'END of procedure delete_row',
380 p_module => l_log_module,
381 p_level => C_LEVEL_PROCEDURE);
382 END IF;
383
384 END delete_row;
385
386 --=============================================================================
387 --
388 -- Following code is executed when the package body is referenced for the first
389 -- time
390 --
391 --=============================================================================
392 BEGIN
393 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
394 g_log_enabled := fnd_log.test
395 (log_level => g_log_level
396 ,module => C_DEFAULT_MODULE);
397
398 IF NOT g_log_enabled THEN
399 g_log_level := C_LEVEL_LOG_DISABLED;
400 END IF;
401
402 END xla_line_defn_adr_assgns_f_pvt;