DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_CN_DFF_ASSIGNMENTS_PKG

Source


1 PACKAGE BODY JA_CN_DFF_ASSIGNMENTS_PKG AS
2   --$Header: JACNDFAB.pls 120.1.12000000.1 2007/08/13 14:09:30 qzhao noship $
3   --+=======================================================================+
4   --|               Copyright (c) 2006 Oracle Corporation                   |
5   --|                       Redwood Shores, CA, USA                         |
6   --|                         All rights reserved.                          |
7   --+=======================================================================+
8   --| FILENAME                                                              |
9   --|     JACNDFAB.pls                                                      |
10   --|                                                                       |
11   --| DESCRIPTION                                                           |
12   --|      This package provides table handers for                          |
13   --|      table JA_CN_DFF_ASSIGNMENTS, these handlers                      |
14   --|      will be called by 'DFF Assignments' form to operate data in table|
15   --|      JA_CN_DFF_ASSIGNMENTS                                            |
16   --|                                                                       |
17   --| PROCEDURE LIST                                                        |
18   --|      PROCEDURE Insert_Row                                             |
19   --|      PROCEDURE Update_Row                                             |
20   --|      PROCEDURE Lock_Row                                               |
21   --|                                                                       |
22   --| HISTORY                                                               |
23   --|     2006/03/01 Jackey Li       Created                                |
24   --+======================================================================*/
25 
26   G_MODULE_PREFIX VARCHAR2(50) := 'ja.pl/sql.JA_CN_DFF_ASSIGNMENTS_PKG';
27   --==========================================================================
28   --  PROCEDURE NAME:
29   --
30   --    Insert_Row                        Public
31   --
32   --  DESCRIPTION:
33   --
34   --    This procedure is to insert data that are passed in by parameters into
35   --    table JA_CN_DFF_ASSIGNMENTS to create a new record
36   --
37   --  PARAMETERS:
38   --      In:  p_application_id                 Application ID
39   --           p_dff_name                       Descriptive Flexfield Name
40   --           p_dff_title_code                 DFF title lookup code
41   --           p_context_code                   DFF context
42   --           p_attribute_column               DFF column
43   --           p_creation_date                  Creation date
44   --           p_created_by                     Identifier of user that creates
45   --                                             the record
46   --           p_last_update_date               Last update date of the record
47   --           p_last_updated_by                Last update by
48   --           p_last_update_login              Last update login
49   --
50   --   In Out: p_row_id                         Row id of a table record
51   --
52   --
53   --  DESIGN REFERENCES:
54   --    CNAO_DFF_ASSIGNMENT_FORM_TD.doc
55   --
56   --  CHANGE HISTORY:
57   --
58   --           01-MAR-2006  Jackey Li  created
59   --           16-MAy-2007  yanbo liu  changed
60   --           add chart_of_accounts_id column.
61   --===========================================================================
62   PROCEDURE Insert_Row(p_row_id            IN OUT NOCOPY VARCHAR2
63                       ,P_application_id    IN NUMBER
64                       ,p_dff_name          IN VARCHAR2
65                       ,p_dff_title_code    IN VARCHAR2
66                       ,p_context_code      IN VARCHAR2
67                       ,p_attribute_column  IN VARCHAR2
68                       ,p_creation_date     IN DATE
69                       ,p_created_by        IN NUMBER
70                       ,p_last_update_date  IN DATE
71                       ,p_last_updated_by   IN NUMBER
72                       ,p_last_update_login IN NUMBER
73                       ,p_chart_of_accounts_id In NUMBER
74                       ) IS
75 
76     l_procedure_name VARCHAR2(100) := 'Insert_Row';
77     l_dbg_level      NUMBER := FND_LOG.G_Current_Runtime_Level;
78     l_proc_level     NUMBER := FND_LOG.Level_Procedure;
79 
80     CURSOR C IS
81       SELECT ROWID
82         FROM JA_CN_DFF_ASSIGNMENTS
83        WHERE DFF_TITLE_CODE = p_dff_title_code;
84 
85   BEGIN
86 
87     --log for debug
88     IF (l_proc_level >= l_dbg_level) THEN
89       FND_LOG.STRING(l_proc_level,
90                      G_MODULE_PREFIX || '.' || l_procedure_name || '.begin',
91                      'Enter procedure');
92     END IF; --( l_proc_level >= l_dbg_level)
93 
94     --Insert data into table JA_CN_DFF_ASSIGNMENTS
95     INSERT INTO JA_CN_DFF_ASSIGNMENTS
96       (application_id
97       ,descriptive_flexfield_name
98       ,dff_title_code
99       ,context_code
100       ,attribute_column
101       ,creation_date
102       ,created_by
103       ,last_update_date
104       ,last_updated_by
105       ,last_update_login
106       ,chart_of_accounts_id
107       )
108     VALUES
109       (
110       p_application_id
111       ,p_dff_name
112       ,p_dff_title_code
113       ,p_context_code
114       ,p_attribute_column
115       ,p_creation_date
116       ,p_created_by
117       ,p_last_update_date
118       ,p_last_updated_by
119       ,p_last_update_login
120       ,p_chart_of_accounts_id
121      );
122 
123     --In case of insert failed, raise error
124 
125 
126 
127 
128     OPEN c;
129     FETCH c
130       INTO p_row_id;
131     IF (c%NOTFOUND) THEN
132       CLOSE c;
133       RAISE NO_DATA_FOUND;
134     END IF; --(c%NOTFOUND)
135     CLOSE C;
136 
137     --log for debug
138     IF (l_proc_level >= l_dbg_level) THEN
139       FND_LOG.STRING(l_proc_level,
140                      G_MODULE_PREFIX || '.' || l_procedure_name || '.end',
141                      'Exit procedure');
142     END IF; --( l_proc_level >= l_dbg_level)
143 
144   END Insert_Row;
145 
146   --==========================================================================
147   --  PROCEDURE NAME:
148   --
149   --    Update_Row                        Public
150   --
151   --  DESCRIPTION:
152   --
153   --    This procedure is used to update data in table JA_CN_DFF_ASSIGNMENTS
154   --    according to parameters passed in
155   --
156   --  PARAMETERS:
157   --      In:  p_application_id                 Application ID
158   --           p_dff_name                       Descriptive Flexfield Name
159   --           p_dff_title_code                 DFF title lookup code
160   --           p_context_code                   DFF context
161   --           p_attribute_column               DFF column
162   --           p_creation_date                  Creation date
163   --           p_created_by                     Identifier of user that creates
164   --                                             the record
165   --           p_last_update_date               Last update date of the record
166   --           p_last_updated_by                Last update by
167   --           p_last_update_login              Last update login
168   --
169   --  In Out:  p_row_id                         Row id of a table record
170   --
171   --
172   --  DESIGN REFERENCES:
173   --    CNAO_DFF_ASSIGNMENT_FORM_TD.doc
174   --
175   --  CHANGE HISTORY:
176   --
177   --           01-MAR-2006  Jackey Li  created
178   --           16-MAy-2007  yanbo liu  changed
179   --           add chart_of_accounts_id column.
180   --===========================================================================
181   PROCEDURE Update_Row(p_row_id            IN OUT NOCOPY VARCHAR2
182                       ,p_application_id    IN NUMBER
183                       ,p_dff_name          IN VARCHAR2
184                       ,p_dff_title_code    IN VARCHAR2
185                       ,p_context_code      IN VARCHAR2
186                       ,p_attribute_column  IN VARCHAR2
187                       ,p_creation_date     IN DATE
188                       ,p_created_by        IN NUMBER
189                       ,p_last_update_date  IN DATE
190                       ,p_last_updated_by   IN NUMBER
191                       ,p_last_update_login IN NUMBER
192                       ,p_chart_of_accounts_id In NUMBER) IS
193 
194     l_procedure_name VARCHAR2(100) := 'Update_Row';
195     l_dbg_level      NUMBER := FND_LOG.G_Current_Runtime_Level;
196     l_proc_level     NUMBER := FND_LOG.Level_Procedure;
197 
198   BEGIN
199 
200     --log for debug
201     IF (l_proc_level >= l_dbg_level) THEN
202       FND_LOG.STRING(l_proc_level,
203                      G_MODULE_PREFIX || '.' || l_procedure_name || '.begin',
204                      'Enter procedure');
205     END IF; --( l_proc_level >= l_dbg_level)
206 
207     --Update data on table JA_CN_DFF_ASSIGNMENTS
208     UPDATE JA_CN_DFF_ASSIGNMENTS
209        SET application_id             = p_application_id,
210            descriptive_flexfield_name = p_dff_name,
211            dff_title_code             = p_dff_title_code,
212            context_code               = p_context_code,
213            attribute_column           = p_attribute_column,
214            creation_date              = p_creation_date,
215            created_by                 = p_created_by,
216            last_update_date           = p_last_update_date,
217            last_updated_by            = p_last_updated_by,
218            last_update_login          = p_last_update_login,
219            chart_of_accounts_id       = p_chart_of_accounts_id
220      WHERE ROWID = p_row_id;
221 
222     --In case of update failed, raise error
223     IF (SQL%NOTFOUND) THEN
224       RAISE NO_DATA_FOUND;
225     END IF; --(SQL%NOTFOUND)
226 
227     --log for debug
228     IF (l_proc_level >= l_dbg_level) THEN
229       FND_LOG.STRING(l_proc_level,
230                      G_MODULE_PREFIX || '.' || l_procedure_name || '.end',
231                      'Exit procedure');
232     END IF; --( l_proc_level >= l_dbg_level)
233 
234   END Update_Row;
235 
236   --==========================================================================
237   --  PROCEDURE NAME:
238   --
239   --    Lock_Row                          Public
240   --
241   --  DESCRIPTION:
242   --
243   --    This procedure is used to implement lock on row level on table
244   --    JA_CN_DFF_ASSIGNMENTS
245   --
246   --  PARAMETERS:
247   --      In:  p_application_id                 Application ID
248   --           p_dff_name                       Descriptive Flexfield Name
249   --           p_dff_title_code                 DFF title lookup code
250   --           p_context_code                   DFF context
251   --           p_attribute_column               DFF column
252   --           p_creation_date                  Creation date
253   --           p_created_by                     Identifier of user that creates
254   --                                             the record
255   --           p_last_update_date               Last update date of the record
256   --           p_last_updated_by                Last update by
257   --           p_last_update_login              Last update login
258   --
259   --  In Out:  p_row_id                         Row id of a table record
260   --
261   --
262   --  DESIGN REFERENCES:
263   --    CNAO_DFF_ASSIGNMENT_FORM_TD.doc
264   --
265   --  CHANGE HISTORY:
266   --
267   --           01-MAR-2006  Jackey Li  created
268   --           16-MAy-2007  yanbo liu  changed
269   --           add chart_of_accounts_id column.
270   --===========================================================================
271   PROCEDURE Lock_Row(p_row_id            IN OUT NOCOPY VARCHAR2
272                     ,p_application_id    IN NUMBER
273                     ,p_dff_name          IN VARCHAR2
274                     ,p_dff_title_code    IN VARCHAR2
275                     ,p_context_code      IN VARCHAR2
276                     ,p_attribute_column  IN VARCHAR2
277                     ,p_creation_date     IN DATE
278                     ,p_created_by        IN NUMBER
279                     ,p_last_update_date  IN DATE
280                     ,p_last_updated_by   IN NUMBER
281                     ,p_last_update_login IN NUMBER
282                     ,p_chart_of_accounts_id In NUMBER) IS
283 
284     l_procedure_name VARCHAR2(100) := 'Lock_Row';
285     l_dbg_level      NUMBER := FND_LOG.G_Current_Runtime_Level;
286     l_proc_level     NUMBER := FND_LOG.Level_Procedure;
287 
288     CURSOR c IS
289       SELECT *
290         FROM JA_CN_DFF_ASSIGNMENTS
291        WHERE ROWID = p_row_id
292          FOR UPDATE OF dff_title_code NOWAIT;
293 
294     recinfo c%ROWTYPE;
295 
296   BEGIN
297 
298     --log for debug
299     IF (l_proc_level >= l_dbg_level) THEN
300       FND_LOG.STRING(l_proc_level,
301                      G_MODULE_PREFIX || '.' || l_procedure_name || '.begin',
302                      'Begin procedure');
303     END IF; --( l_proc_level >= l_dbg_level)
304 
305     IF p_dff_title_code IS NOT NULL THEN
306       --If a record has been deleted as form tries to excute dml operation
307       --on that record,then raise error to form
308       OPEN c;
309       FETCH c
310         INTO recinfo;
311       IF (c%NOTFOUND) THEN
312         CLOSE c;
313         FND_MESSAGE.Set_Name('FND',
314                              'FORM_RECORD_DELETED');
315         APP_EXCEPTION.Raise_Exception;
316       END IF; --(c%NOTFOUND)
317       CLOSE c;
318 
319       --To judge if a record has been changed by other programs as the form
320       --tries to execute DML operation on that record,if 'Yes', raise error,
321       --else the form will be able to do DML operation on the record.
322       IF ((recinfo.application_id = p_application_id) AND
323          (recinfo.chart_of_accounts_id = p_chart_of_accounts_id) AND
324          (rtrim(recinfo.descriptive_flexfield_name) = p_dff_name) AND
325          (recinfo.dff_title_code = p_dff_title_code) AND
326          ((rtrim(recinfo.context_code) = p_context_code) OR
327          ((rtrim(recinfo.context_code) IS NULL) AND
328          (p_context_code IS NULL))) AND
329          ((rtrim(recinfo.attribute_column) = p_attribute_column) OR
330          ((rtrim(recinfo.attribute_column) IS NULL) AND
331          (p_attribute_column IS NULL)))) THEN
332         RETURN;
333       ELSE
334         FND_MESSAGE.Set_Name('FND',
335                              'FORM_RECORD_CHANGED');
336         APP_EXCEPTION.Raise_Exception;
337       END IF; --((recinfo.ra_gl_date=p_ra_gl_date) ...
338     END IF; --IF p_dff_title_code IS NULL
339 
340     --log for debug
341     IF (l_proc_level >= l_dbg_level) THEN
342       FND_LOG.STRING(l_proc_level,
343                      G_MODULE_PREFIX || '.' || l_procedure_name || '.end',
344                      'Exit procedure');
345     END IF; --( l_proc_level >= l_dbg_level)
346   END Lock_Row;
347 
348 END JA_CN_DFF_ASSIGNMENTS_PKG;