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