DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_EVENT_CLASS_PREDECS_F_PKG

Source


1 PACKAGE BODY xla_event_class_predecs_f_pkg AS
2 /* $Header: xlatbecp.pkb 120.1 2005/04/20 20:19:56 dcshah noship $ */
3 /*======================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
7 +=======================================================================+
8 | PACKAGE NAME                                                          |
9 |    xla_event_class_predecs_f_pkg                                           |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_event_class_predecs                        |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    05/22/01     Dimple Shah    Created                                |
16 |                                                                       |
17 +======================================================================*/
18 
19 
20 
21 /*======================================================================+
22 |                                                                       |
23 |  Procedure insert_row                                                 |
24 |                                                                       |
25 +======================================================================*/
26 PROCEDURE insert_row
27   (x_rowid                            IN OUT NOCOPY VARCHAR2
28   ,x_application_id                   IN NUMBER
29   ,x_event_class_code                 IN VARCHAR2
30   ,x_prior_event_class_code           IN VARCHAR2
31   ,x_creation_date                    IN DATE
32   ,x_created_by                       IN NUMBER
33   ,x_last_update_date                 IN DATE
34   ,x_last_updated_by                  IN NUMBER
35   ,x_last_update_login                IN NUMBER)
36 
37 IS
38 
39 CURSOR c IS
40 SELECT rowid
41 FROM   xla_event_class_predecs
42 WHERE  application_id                   = x_application_id
43   AND  event_class_code                 = x_event_class_code
44   AND  prior_event_class_code           = x_prior_event_class_code;
45 
46 BEGIN
47 xla_utility_pkg.trace('> .insert_row'                    ,20);
48 
49 INSERT INTO xla_event_class_predecs
50 (creation_date
51 ,created_by
52 ,application_id
53 ,event_class_code
54 ,prior_event_class_code
55 ,object_version_number
56 ,last_update_date
57 ,last_updated_by
58 ,last_update_login)
59 VALUES
60 (x_creation_date
61 ,x_created_by
62 ,x_application_id
63 ,x_event_class_code
64 ,x_prior_event_class_code
65 ,1
66 ,x_last_update_date
67 ,x_last_updated_by
68 ,x_last_update_login)
69 ;
70 
71 OPEN c;
72 FETCH c INTO x_rowid;
73 
74 IF (c%NOTFOUND) THEN
75    CLOSE c;
76    RAISE NO_DATA_FOUND;
77 END IF;
78 CLOSE c;
79 
80 xla_utility_pkg.trace('< .insert_row'                    ,20);
81 END insert_row;
82 
83 /*======================================================================+
84 |                                                                       |
85 |  Procedure delete_row                                                 |
86 |                                                                       |
87 +======================================================================*/
88 PROCEDURE delete_row
89   (x_application_id                   IN NUMBER
90   ,x_event_class_code                 IN VARCHAR2
91   ,x_prior_event_class_code           IN VARCHAR2)
92 
93 IS
94 
95 BEGIN
96 xla_utility_pkg.trace('> .delete_row'                    ,20);
97 DELETE FROM xla_event_class_predecs
98 WHERE application_id                   = x_application_id
99   AND event_class_code                 = x_event_class_code
100   AND prior_event_class_code           = x_prior_event_class_code;
101 
102 IF (SQL%NOTFOUND) THEN
103    RAISE NO_DATA_FOUND;
104 END IF;
105 
106 xla_utility_pkg.trace('< .delete_row'                    ,20);
107 END delete_row;
108 
109 /*======================================================================+
110 |                                                                       |
111 |  Procedure lock_row                                                   |
112 |                                                                       |
113 +======================================================================*/
114 PROCEDURE lock_row
115   (x_rowid                            IN OUT NOCOPY VARCHAR2
116   ,x_application_id                   IN NUMBER
117   ,x_event_class_code                 IN VARCHAR2
118   ,x_prior_event_class_code           IN VARCHAR2)
119 
120 IS
121 
122 CURSOR c IS
123 SELECT application_id
124       ,event_class_code
125       ,prior_event_class_code
126 FROM   xla_event_class_predecs
127 WHERE  application_id                   = x_application_id
128   AND  event_class_code                 = x_event_class_code
129   AND  prior_event_class_code           = x_prior_event_class_code
130 FOR UPDATE OF application_id NOWAIT;
131 
132 recinfo              c%ROWTYPE;
133 
134 BEGIN
135 xla_utility_pkg.trace('> .lock_row'                      ,20);
136 
137 OPEN c;
138 FETCH c INTO recinfo;
139 
140 IF (c%NOTFOUND) THEN
141    CLOSE c;
142    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
143    app_exception.raise_exception;
144 END IF;
145 CLOSE c;
146 
147 IF ( (recinfo.application_id                    = x_application_id)
148  AND (recinfo.event_class_code                  = x_event_class_code)
149  AND (recinfo.prior_event_class_code            = x_prior_event_class_code)
150                    ) THEN
151    null;
152 ELSE
153    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
154    app_exception.raise_exception;
155 END IF;
156 
157 xla_utility_pkg.trace('< .lock_row'                      ,20);
158 RETURN;
159 
160 END lock_row;
161 
162 /*======================================================================+
163 |                                                                       |
164 |  Procedure load_row                                                   |
165 |                                                                       |
166 +======================================================================*/
167 PROCEDURE load_row
168   (p_application_short_name           IN VARCHAR2
169   ,p_event_class_code                 IN VARCHAR2
170   ,p_prior_event_class_code           IN VARCHAR2
171   ,p_owner                            IN VARCHAR2
172   ,p_last_update_date                 IN VARCHAR2)
173 IS
174 
175   l_view_application_id   number(38);
176   l_flex_application_id   number(38);
177   l_application_id        number(38);
178   l_flex_value_set_id     number(38);
179   l_rowid                ROWID;
180   l_exist                 VARCHAR2(1);
181   f_luby                  number(38);  -- entity owner in file
182   f_ludate                date;        -- entity update date in file
183   db_luby                 number(38);  -- entity owner in db
184   db_ludate               date;        -- entity update date in db
185 
186   CURSOR c_appl
187   IS
188   SELECT application_id
189     FROM fnd_application
190    WHERE application_short_name = p_application_short_name;
191 
192 BEGIN
193 
194    OPEN c_appl;
195    FETCH c_appl
196     INTO l_application_id;
197    CLOSE c_appl;
198 
199   -- Translate owner to file_last_updated_by
200   f_luby := fnd_load_util.owner_id(p_owner);
201 
202   -- Translate char last_update_date to date
203   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
204 
205   BEGIN
206 
207      SELECT last_updated_by, last_update_date
208        INTO db_luby, db_ludate
209        FROM xla_event_class_predecs
210       WHERE application_id   = l_application_id
211         AND event_class_code = p_event_class_code
212         AND prior_event_class_code = p_prior_event_class_code;
213 
214   EXCEPTION
215 
216     WHEN NO_DATA_FOUND THEN
217        xla_event_class_predecs_f_pkg.insert_row
218          (x_rowid                => l_rowid
219          ,x_application_id       => l_application_id
220          ,x_event_class_code     => p_event_class_code
221          ,x_prior_event_class_code  => p_prior_event_class_code
222          ,x_creation_date        => f_ludate
223          ,x_created_by           => f_luby
224          ,x_last_update_date     => f_ludate
225          ,x_last_updated_by      => f_luby
226          ,x_last_update_login    => 0);
227 
228   END;
229 
230 EXCEPTION
231    WHEN NO_DATA_FOUND THEN
232       null;
233    WHEN OTHERS THEN
234    xla_exceptions_pkg.raise_message
235       (p_location   => 'xla_event_class_predecs_f_pkg.load_row');
236 
237 END load_row;
238 
239 end xla_event_class_predecs_f_pkg;