DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_DOS_SOURCES_PKG

Source


1 PACKAGE BODY igi_dos_sources_pkg AS
2 /* $Header: igidosqb.pls 120.5.12000000.2 2007/06/14 05:42:15 pshivara ship $ */
3 
4 l_debug_level   number := FND_LOG.G_CURRENT_RUNTIME_LEVEL ;
5 
6 l_state_level   number := FND_LOG.LEVEL_STATEMENT ;
7 l_proc_level    number := FND_LOG.LEVEL_PROCEDURE ;
8 l_event_level   number := FND_LOG.LEVEL_EVENT ;
9 l_excep_level   number := FND_LOG.LEVEL_EXCEPTION ;
10 l_error_level   number := FND_LOG.LEVEL_ERROR ;
11 l_unexp_level   number := FND_LOG.LEVEL_UNEXPECTED ;
12 
13   l_rowid VARCHAR2(25);
14   old_references igi_dos_sources%ROWTYPE;
15   new_references igi_dos_sources%ROWTYPE;
16 
17   PROCEDURE set_column_values (
18     p_action                            IN     VARCHAR2,
19     x_rowid                             IN     VARCHAR2     ,
20     x_dossier_id                        IN     NUMBER       ,
21     x_source_id                         IN     NUMBER       ,
22     x_sob_id                            IN     NUMBER       ,
23     x_coa_id                            IN     NUMBER       ,
24     x_segment25_low                     IN     VARCHAR2     ,
25     x_budget                            IN     VARCHAR2     ,
26     x_line_num                          IN     NUMBER       ,
27     x_budget_entity_id                  IN     NUMBER       ,
28     x_budget_entity_name                IN     VARCHAR2     ,
29     x_segment1_low                      IN     VARCHAR2     ,
30     x_segment1_high                     IN     VARCHAR2     ,
31     x_segment2_low                      IN     VARCHAR2     ,
32     x_segment2_high                     IN     VARCHAR2     ,
33     x_segment3_low                      IN     VARCHAR2     ,
34     x_segment3_high                     IN     VARCHAR2     ,
35     x_segment4_low                      IN     VARCHAR2     ,
36     x_segment4_high                     IN     VARCHAR2     ,
37     x_segment5_low                      IN     VARCHAR2     ,
38     x_segment5_high                     IN     VARCHAR2     ,
39     x_segment6_low                      IN     VARCHAR2     ,
40     x_segment6_high                     IN     VARCHAR2     ,
41     x_segment7_high                     IN     VARCHAR2     ,
42     x_segment7_low                      IN     VARCHAR2     ,
43     x_segment8_high                     IN     VARCHAR2     ,
44     x_segment8_low                      IN     VARCHAR2     ,
45     x_segment9_high                     IN     VARCHAR2     ,
46     x_segment9_low                      IN     VARCHAR2     ,
47     x_segment10_high                    IN     VARCHAR2     ,
48     x_segment10_low                     IN     VARCHAR2     ,
49     x_segment11_high                    IN     VARCHAR2     ,
50     x_segment11_low                     IN     VARCHAR2     ,
51     x_segment12_high                    IN     VARCHAR2     ,
52     x_segment12_low                     IN     VARCHAR2     ,
53     x_segment13_high                    IN     VARCHAR2     ,
54     x_segment13_low                     IN     VARCHAR2     ,
55     x_segment14_high                    IN     VARCHAR2     ,
56     x_segment14_low                     IN     VARCHAR2     ,
57     x_segment15_high                    IN     VARCHAR2     ,
58     x_segment15_low                     IN     VARCHAR2     ,
59     x_segment16_high                    IN     VARCHAR2     ,
60     x_segment16_low                     IN     VARCHAR2     ,
61     x_segment17_high                    IN     VARCHAR2     ,
62     x_segment17_low                     IN     VARCHAR2     ,
63     x_segment18_high                    IN     VARCHAR2     ,
64     x_segment18_low                     IN     VARCHAR2     ,
65     x_segment19_high                    IN     VARCHAR2     ,
66     x_segment19_low                     IN     VARCHAR2     ,
67     x_segment20_high                    IN     VARCHAR2     ,
68     x_segment20_low                     IN     VARCHAR2     ,
69     x_segment21_high                    IN     VARCHAR2     ,
70     x_segment21_low                     IN     VARCHAR2     ,
71     x_segment22_high                    IN     VARCHAR2     ,
72     x_segment22_low                     IN     VARCHAR2     ,
73     x_segment23_high                    IN     VARCHAR2     ,
74     x_segment23_low                     IN     VARCHAR2     ,
75     x_segment24_high                    IN     VARCHAR2     ,
76     x_segment24_low                     IN     VARCHAR2     ,
77     x_segment25_high                    IN     VARCHAR2     ,
78     x_segment26_low                     IN     VARCHAR2     ,
79     x_segment26_high                    IN     VARCHAR2     ,
80     x_segment27_low                     IN     VARCHAR2     ,
81     x_segment27_high                    IN     VARCHAR2     ,
82     x_segment28_low                     IN     VARCHAR2     ,
83     x_segment28_high                    IN     VARCHAR2     ,
84     x_segment29_low                     IN     VARCHAR2     ,
85     x_segment29_high                    IN     VARCHAR2     ,
86     x_segment30_low                     IN     VARCHAR2     ,
87     x_segment30_high                    IN     VARCHAR2     ,
88     x_segments_low_ccid                 IN     NUMBER       ,
89     x_segments_high_ccid                IN     NUMBER       ,
90     x_segments_low_ccid_desc            IN     VARCHAR2     ,
91     x_segments_high_ccid_desc           IN     VARCHAR2     ,
92     x_budget_version_id                 IN     NUMBER       ,
93     x_period_name                       IN     VARCHAR2     ,
94     x_creation_date                     IN     DATE         ,
95     x_created_by                        IN     NUMBER       ,
96     x_last_update_date                  IN     DATE         ,
97     x_last_updated_by                   IN     NUMBER       ,
98     x_last_update_login                 IN     NUMBER
99   ) AS
100   /*
101   ||  Created By : [email protected]
102   ||  Created On : 18-APR-2002
103   ||  Purpose : Initialises the Old and New references for the columns of the table.
104   ||  Known limitations, enhancements or remarks :
105   ||  Change History :
106   ||  Who             When            What
107   ||  (reverse chronological order - newest change first)
108   */
109 
110     CURSOR cur_old_ref_values IS
111       SELECT   *
112       FROM     igi_dos_sources
113       WHERE    rowid = x_rowid;
114 
115   BEGIN
116 
117     l_rowid := x_rowid;
118 
119     -- Code for setting the Old and New Reference Values.
120     -- Populate Old Values.
121     OPEN cur_old_ref_values;
122     FETCH cur_old_ref_values INTO old_references;
123     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
124       CLOSE cur_old_ref_values;
125       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
126 -- bug 3199481, start block
127       IF (l_unexp_level >= l_debug_level) THEN
128          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.set_column_values.Msg1',FALSE);
129       END IF;
130 -- bug 3199481, end block
131       app_exception.raise_exception;
132       RETURN;
133     END IF;
134     CLOSE cur_old_ref_values;
135 
136     -- Populate New Values.
137     new_references.dossier_id                        := x_dossier_id;
138     new_references.source_id                         := x_source_id;
139     new_references.sob_id                            := x_sob_id;
140     new_references.coa_id                            := x_coa_id;
141     new_references.segment25_low                     := x_segment25_low;
142     new_references.budget                            := x_budget;
143     new_references.line_num                          := x_line_num;
144     new_references.budget_entity_id                  := x_budget_entity_id;
145     new_references.budget_entity_name                := x_budget_entity_name;
146     new_references.segment1_low                      := x_segment1_low;
147     new_references.segment1_high                     := x_segment1_high;
148     new_references.segment2_low                      := x_segment2_low;
149     new_references.segment2_high                     := x_segment2_high;
150     new_references.segment3_low                      := x_segment3_low;
151     new_references.segment3_high                     := x_segment3_high;
152     new_references.segment4_low                      := x_segment4_low;
153     new_references.segment4_high                     := x_segment4_high;
154     new_references.segment5_low                      := x_segment5_low;
155     new_references.segment5_high                     := x_segment5_high;
156     new_references.segment6_low                      := x_segment6_low;
157     new_references.segment6_high                     := x_segment6_high;
158     new_references.segment7_high                     := x_segment7_high;
159     new_references.segment7_low                      := x_segment7_low;
160     new_references.segment8_high                     := x_segment8_high;
161     new_references.segment8_low                      := x_segment8_low;
162     new_references.segment9_high                     := x_segment9_high;
163     new_references.segment9_low                      := x_segment9_low;
164     new_references.segment10_high                    := x_segment10_high;
165     new_references.segment10_low                     := x_segment10_low;
166     new_references.segment11_high                    := x_segment11_high;
167     new_references.segment11_low                     := x_segment11_low;
168     new_references.segment12_high                    := x_segment12_high;
169     new_references.segment12_low                     := x_segment12_low;
170     new_references.segment13_high                    := x_segment13_high;
171     new_references.segment13_low                     := x_segment13_low;
172     new_references.segment14_high                    := x_segment14_high;
173     new_references.segment14_low                     := x_segment14_low;
174     new_references.segment15_high                    := x_segment15_high;
175     new_references.segment15_low                     := x_segment15_low;
176     new_references.segment16_high                    := x_segment16_high;
177     new_references.segment16_low                     := x_segment16_low;
178     new_references.segment17_high                    := x_segment17_high;
179     new_references.segment17_low                     := x_segment17_low;
180     new_references.segment18_high                    := x_segment18_high;
181     new_references.segment18_low                     := x_segment18_low;
182     new_references.segment19_high                    := x_segment19_high;
183     new_references.segment19_low                     := x_segment19_low;
184     new_references.segment20_high                    := x_segment20_high;
185     new_references.segment20_low                     := x_segment20_low;
186     new_references.segment21_high                    := x_segment21_high;
187     new_references.segment21_low                     := x_segment21_low;
188     new_references.segment22_high                    := x_segment22_high;
189     new_references.segment22_low                     := x_segment22_low;
190     new_references.segment23_high                    := x_segment23_high;
191     new_references.segment23_low                     := x_segment23_low;
192     new_references.segment24_high                    := x_segment24_high;
193     new_references.segment24_low                     := x_segment24_low;
194     new_references.segment25_high                    := x_segment25_high;
195     new_references.segment26_low                     := x_segment26_low;
196     new_references.segment26_high                    := x_segment26_high;
197     new_references.segment27_low                     := x_segment27_low;
198     new_references.segment27_high                    := x_segment27_high;
199     new_references.segment28_low                     := x_segment28_low;
200     new_references.segment28_high                    := x_segment28_high;
201     new_references.segment29_low                     := x_segment29_low;
202     new_references.segment29_high                    := x_segment29_high;
203     new_references.segment30_low                     := x_segment30_low;
204     new_references.segment30_high                    := x_segment30_high;
205     new_references.segments_low_ccid                 := x_segments_low_ccid;
206     new_references.segments_high_ccid                := x_segments_high_ccid;
207     new_references.segments_low_ccid_desc            := x_segments_low_ccid_desc;
208     new_references.segments_high_ccid_desc           := x_segments_high_ccid_desc;
209     new_references.budget_version_id                 := x_budget_version_id;
210     new_references.period_name                       := x_period_name;
211 
212     IF (p_action = 'UPDATE') THEN
213       new_references.creation_date                   := old_references.creation_date;
214       new_references.created_by                      := old_references.created_by;
215     ELSE
216       new_references.creation_date                   := x_creation_date;
217       new_references.created_by                      := x_created_by;
218     END IF;
219 
220     new_references.last_update_date                  := x_last_update_date;
221     new_references.last_updated_by                   := x_last_updated_by;
222     new_references.last_update_login                 := x_last_update_login;
223 
224   END set_column_values;
225 
226 
227   PROCEDURE check_parent_existance AS
228   /*
229   ||  Created By : [email protected]
230   ||  Created On : 18-APR-2002
231   ||  Purpose : Checks for the existance of Parent records.
232   ||  Known limitations, enhancements or remarks :
233   ||  Change History :
234   ||  Who             When            What
235   ||  (reverse chronological order - newest change first)
236   */
237   BEGIN
238 
239     IF (((old_references.dossier_id = new_references.dossier_id)) OR
240         ((new_references.dossier_id IS NULL))) THEN
241       NULL;
242     ELSIF NOT igi_dos_doc_types_pkg.get_pk_for_validation (
243                 new_references.dossier_id
244               ) THEN
245       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
246 -- bug 3199481, start block
247       IF (l_unexp_level >= l_debug_level) THEN
248          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.check_parent_existance.Msg1',FALSE);
249       END IF;
250 -- bug 3199481, end block
251       app_exception.raise_exception;
252     END IF;
253 
254   END check_parent_existance;
255 
256 
257   PROCEDURE check_child_existance AS
258   /*
259   ||  Created By : [email protected]
260   ||  Created On : 18-APR-2002
261   ||  Purpose : Checks for the existance of Child records.
262   ||  Known limitations, enhancements or remarks :
263   ||  Change History :
264   ||  Who             When            What
265   ||  (reverse chronological order - newest change first)
266   */
267   BEGIN
268 
269     igi_dos_destinations_pkg.get_fk_igi_dos_sources (
270       old_references.source_id
271     );
272 
273 
274     igi_dos_source_usages_pkg.get_fk_igi_dos_sources (
275       old_references.source_id
276     );
277 
278   END check_child_existance;
279 
280 
281   FUNCTION get_pk_for_validation (
282     x_source_id                         IN     NUMBER
283   ) RETURN BOOLEAN AS
284   /*
285   ||  Created By : [email protected]
286   ||  Created On : 18-APR-2002
287   ||  Purpose : Validates the Primary Key of the table.
288   ||  Known limitations, enhancements or remarks :
289   ||  Change History :
290   ||  Who             When            What
291   ||  (reverse chronological order - newest change first)
292   */
293     CURSOR cur_rowid IS
294       SELECT   rowid
295       FROM     igi_dos_sources
296       WHERE    source_id = x_source_id
297       FOR UPDATE NOWAIT;
298 
299     lv_rowid cur_rowid%RowType;
300 
301   BEGIN
302 
303     OPEN cur_rowid;
304     FETCH cur_rowid INTO lv_rowid;
305     IF (cur_rowid%FOUND) THEN
306       CLOSE cur_rowid;
307       RETURN(TRUE);
308     ELSE
309       CLOSE cur_rowid;
310       RETURN(FALSE);
311     END IF;
312 
313   END get_pk_for_validation;
314 
315 
316   PROCEDURE get_fk_igi_dos_doc_types (
317     x_dossier_id                        IN     NUMBER
318   ) AS
319   /*
320   ||  Created By : [email protected]
321   ||  Created On : 18-APR-2002
322   ||  Purpose : Validates the Foreign Keys for the table.
323   ||  Known limitations, enhancements or remarks :
324   ||  Change History :
325   ||  Who             When            What
326   ||  (reverse chronological order - newest change first)
327   */
328     CURSOR cur_rowid IS
329       SELECT   rowid
330       FROM     igi_dos_sources
331       WHERE   ((dossier_id = x_dossier_id));
332 
333     lv_rowid cur_rowid%RowType;
334 
335   BEGIN
336 
337     OPEN cur_rowid;
338     FETCH cur_rowid INTO lv_rowid;
339     IF (cur_rowid%FOUND) THEN
340       CLOSE cur_rowid;
341       fnd_message.set_name ('FND', 'FND-CANNOT DELETE MASTER');
342 -- bug 3199481, start block
343       IF (l_unexp_level >= l_debug_level) THEN
344          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.get_fk_igi_dos_doc_types.Msg1',FALSE);
345       END IF;
346 -- bug 3199481, end block
347       app_exception.raise_exception;
348       RETURN;
349     END IF;
350     CLOSE cur_rowid;
351 
352   END get_fk_igi_dos_doc_types;
353 
354 
355   PROCEDURE before_dml (
356     p_action                            IN     VARCHAR2,
357     x_rowid                             IN     VARCHAR2     ,
358     x_dossier_id                        IN     NUMBER       ,
359     x_source_id                         IN     NUMBER       ,
360     x_sob_id                            IN     NUMBER       ,
361     x_coa_id                            IN     NUMBER       ,
362     x_segment25_low                     IN     VARCHAR2     ,
363     x_budget                            IN     VARCHAR2     ,
364     x_line_num                          IN     NUMBER       ,
365     x_budget_entity_id                  IN     NUMBER       ,
366     x_budget_entity_name                IN     VARCHAR2     ,
367     x_segment1_low                      IN     VARCHAR2     ,
368     x_segment1_high                     IN     VARCHAR2     ,
369     x_segment2_low                      IN     VARCHAR2     ,
370     x_segment2_high                     IN     VARCHAR2     ,
371     x_segment3_low                      IN     VARCHAR2     ,
372     x_segment3_high                     IN     VARCHAR2     ,
373     x_segment4_low                      IN     VARCHAR2     ,
374     x_segment4_high                     IN     VARCHAR2     ,
375     x_segment5_low                      IN     VARCHAR2     ,
376     x_segment5_high                     IN     VARCHAR2     ,
377     x_segment6_low                      IN     VARCHAR2     ,
378     x_segment6_high                     IN     VARCHAR2     ,
379     x_segment7_high                     IN     VARCHAR2     ,
380     x_segment7_low                      IN     VARCHAR2     ,
381     x_segment8_high                     IN     VARCHAR2     ,
382     x_segment8_low                      IN     VARCHAR2     ,
383     x_segment9_high                     IN     VARCHAR2     ,
384     x_segment9_low                      IN     VARCHAR2     ,
385     x_segment10_high                    IN     VARCHAR2     ,
386     x_segment10_low                     IN     VARCHAR2     ,
387     x_segment11_high                    IN     VARCHAR2     ,
388     x_segment11_low                     IN     VARCHAR2     ,
389     x_segment12_high                    IN     VARCHAR2     ,
390     x_segment12_low                     IN     VARCHAR2     ,
391     x_segment13_high                    IN     VARCHAR2     ,
392     x_segment13_low                     IN     VARCHAR2     ,
393     x_segment14_high                    IN     VARCHAR2     ,
394     x_segment14_low                     IN     VARCHAR2     ,
395     x_segment15_high                    IN     VARCHAR2     ,
396     x_segment15_low                     IN     VARCHAR2     ,
397     x_segment16_high                    IN     VARCHAR2     ,
398     x_segment16_low                     IN     VARCHAR2     ,
399     x_segment17_high                    IN     VARCHAR2     ,
400     x_segment17_low                     IN     VARCHAR2     ,
401     x_segment18_high                    IN     VARCHAR2     ,
402     x_segment18_low                     IN     VARCHAR2     ,
403     x_segment19_high                    IN     VARCHAR2     ,
404     x_segment19_low                     IN     VARCHAR2     ,
405     x_segment20_high                    IN     VARCHAR2     ,
406     x_segment20_low                     IN     VARCHAR2     ,
407     x_segment21_high                    IN     VARCHAR2     ,
408     x_segment21_low                     IN     VARCHAR2     ,
409     x_segment22_high                    IN     VARCHAR2     ,
410     x_segment22_low                     IN     VARCHAR2     ,
411     x_segment23_high                    IN     VARCHAR2     ,
412     x_segment23_low                     IN     VARCHAR2     ,
413     x_segment24_high                    IN     VARCHAR2     ,
414     x_segment24_low                     IN     VARCHAR2     ,
415     x_segment25_high                    IN     VARCHAR2     ,
416     x_segment26_low                     IN     VARCHAR2     ,
417     x_segment26_high                    IN     VARCHAR2     ,
418     x_segment27_low                     IN     VARCHAR2     ,
419     x_segment27_high                    IN     VARCHAR2     ,
420     x_segment28_low                     IN     VARCHAR2     ,
421     x_segment28_high                    IN     VARCHAR2     ,
422     x_segment29_low                     IN     VARCHAR2     ,
423     x_segment29_high                    IN     VARCHAR2     ,
424     x_segment30_low                     IN     VARCHAR2     ,
425     x_segment30_high                    IN     VARCHAR2     ,
426     x_segments_low_ccid                 IN     NUMBER       ,
427     x_segments_high_ccid                IN     NUMBER       ,
428     x_segments_low_ccid_desc            IN     VARCHAR2     ,
429     x_segments_high_ccid_desc           IN     VARCHAR2     ,
430     x_budget_version_id                 IN     NUMBER       ,
431     x_period_name                       IN     VARCHAR2     ,
432     x_creation_date                     IN     DATE         ,
433     x_created_by                        IN     NUMBER       ,
434     x_last_update_date                  IN     DATE         ,
435     x_last_updated_by                   IN     NUMBER       ,
436     x_last_update_login                 IN     NUMBER
437   ) AS
438   /*
439   ||  Created By : [email protected]
440   ||  Created On : 18-APR-2002
441   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
442   ||            Trigger Handlers for the table, before any DML operation.
443   ||  Known limitations, enhancements or remarks :
444   ||  Change History :
445   ||  Who             When            What
446   ||  (reverse chronological order - newest change first)
447   */
448   BEGIN
449 
450     set_column_values (
451       p_action,
452       x_rowid,
453       x_dossier_id,
454       x_source_id,
455       x_sob_id,
456       x_coa_id,
457       x_segment25_low,
458       x_budget,
459       x_line_num,
460       x_budget_entity_id,
461       x_budget_entity_name,
462       x_segment1_low,
463       x_segment1_high,
464       x_segment2_low,
465       x_segment2_high,
466       x_segment3_low,
467       x_segment3_high,
468       x_segment4_low,
469       x_segment4_high,
470       x_segment5_low,
471       x_segment5_high,
472       x_segment6_low,
473       x_segment6_high,
474       x_segment7_high,
475       x_segment7_low,
476       x_segment8_high,
477       x_segment8_low,
478       x_segment9_high,
479       x_segment9_low,
480       x_segment10_high,
481       x_segment10_low,
482       x_segment11_high,
483       x_segment11_low,
484       x_segment12_high,
485       x_segment12_low,
486       x_segment13_high,
487       x_segment13_low,
488       x_segment14_high,
489       x_segment14_low,
490       x_segment15_high,
491       x_segment15_low,
492       x_segment16_high,
493       x_segment16_low,
494       x_segment17_high,
495       x_segment17_low,
496       x_segment18_high,
497       x_segment18_low,
498       x_segment19_high,
499       x_segment19_low,
500       x_segment20_high,
501       x_segment20_low,
502       x_segment21_high,
503       x_segment21_low,
504       x_segment22_high,
505       x_segment22_low,
506       x_segment23_high,
507       x_segment23_low,
508       x_segment24_high,
509       x_segment24_low,
510       x_segment25_high,
511       x_segment26_low,
512       x_segment26_high,
513       x_segment27_low,
514       x_segment27_high,
515       x_segment28_low,
516       x_segment28_high,
517       x_segment29_low,
518       x_segment29_high,
519       x_segment30_low,
520       x_segment30_high,
521       x_segments_low_ccid,
522       x_segments_high_ccid,
523       x_segments_low_ccid_desc,
524       x_segments_high_ccid_desc,
525       x_budget_version_id,
526       x_period_name,
527       x_creation_date,
528       x_created_by,
529       x_last_update_date,
530       x_last_updated_by,
531       x_last_update_login
532     );
533 
534     IF (p_action = 'INSERT') THEN
535       -- Call all the procedures related to Before Insert.
536       IF ( get_pk_for_validation(
537              new_references.source_id
538            )
539          ) THEN
540         fnd_message.set_name('FND','FORM_DUPLICATE_KEY_IN_INDEX');
541 -- bug 3199481, start block
542         IF (l_unexp_level >= l_debug_level) THEN
543            FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.before_dml.Msg1',FALSE);
544         END IF;
545 -- bug 3199481, end block
546         app_exception.raise_exception;
547       END IF;
548       check_parent_existance;
549     ELSIF (p_action = 'UPDATE') THEN
550       -- Call all the procedures related to Before Update.
551       check_parent_existance;
552     ELSIF (p_action = 'DELETE') THEN
553       -- Call all the procedures related to Before Delete.
554       check_child_existance;
555     ELSIF (p_action = 'VALIDATE_INSERT') THEN
556       -- Call all the procedures related to Before Insert.
557       IF ( get_pk_for_validation (
558              new_references.source_id
559            )
560          ) THEN
561         fnd_message.set_name('FND','FORM_DUPLICATE_KEY_IN_INDEX');
562 -- bug 3199481, start block
563         IF (l_unexp_level >= l_debug_level) THEN
564            FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.before_dml.Msg1',FALSE);
565         END IF;
566 -- bug 3199481, end block
567         app_exception.raise_exception;
568       END IF;
569     ELSIF (p_action = 'VALIDATE_DELETE') THEN
570       check_child_existance;
571     END IF;
572 
573   END before_dml;
574 
575 
576   PROCEDURE insert_row (
577     x_rowid                             IN OUT NOCOPY VARCHAR2,
578     x_dossier_id                        IN     NUMBER,
579     x_source_id                         IN OUT NOCOPY NUMBER,
580     x_sob_id                            IN     NUMBER,
581     x_coa_id                            IN     NUMBER,
582     x_segment25_low                     IN     VARCHAR2,
583     x_budget                            IN     VARCHAR2,
584     x_line_num                          IN     NUMBER,
585     x_budget_entity_id                  IN     NUMBER,
586     x_budget_entity_name                IN     VARCHAR2,
587     x_segment1_low                      IN     VARCHAR2,
588     x_segment1_high                     IN     VARCHAR2,
589     x_segment2_low                      IN     VARCHAR2,
590     x_segment2_high                     IN     VARCHAR2,
591     x_segment3_low                      IN     VARCHAR2,
592     x_segment3_high                     IN     VARCHAR2,
593     x_segment4_low                      IN     VARCHAR2,
594     x_segment4_high                     IN     VARCHAR2,
595     x_segment5_low                      IN     VARCHAR2,
596     x_segment5_high                     IN     VARCHAR2,
597     x_segment6_low                      IN     VARCHAR2,
598     x_segment6_high                     IN     VARCHAR2,
599     x_segment7_high                     IN     VARCHAR2,
600     x_segment7_low                      IN     VARCHAR2,
601     x_segment8_high                     IN     VARCHAR2,
602     x_segment8_low                      IN     VARCHAR2,
603     x_segment9_high                     IN     VARCHAR2,
604     x_segment9_low                      IN     VARCHAR2,
605     x_segment10_high                    IN     VARCHAR2,
606     x_segment10_low                     IN     VARCHAR2,
607     x_segment11_high                    IN     VARCHAR2,
608     x_segment11_low                     IN     VARCHAR2,
609     x_segment12_high                    IN     VARCHAR2,
610     x_segment12_low                     IN     VARCHAR2,
611     x_segment13_high                    IN     VARCHAR2,
612     x_segment13_low                     IN     VARCHAR2,
613     x_segment14_high                    IN     VARCHAR2,
614     x_segment14_low                     IN     VARCHAR2,
615     x_segment15_high                    IN     VARCHAR2,
616     x_segment15_low                     IN     VARCHAR2,
617     x_segment16_high                    IN     VARCHAR2,
618     x_segment16_low                     IN     VARCHAR2,
619     x_segment17_high                    IN     VARCHAR2,
620     x_segment17_low                     IN     VARCHAR2,
621     x_segment18_high                    IN     VARCHAR2,
622     x_segment18_low                     IN     VARCHAR2,
623     x_segment19_high                    IN     VARCHAR2,
624     x_segment19_low                     IN     VARCHAR2,
625     x_segment20_high                    IN     VARCHAR2,
626     x_segment20_low                     IN     VARCHAR2,
627     x_segment21_high                    IN     VARCHAR2,
628     x_segment21_low                     IN     VARCHAR2,
629     x_segment22_high                    IN     VARCHAR2,
630     x_segment22_low                     IN     VARCHAR2,
631     x_segment23_high                    IN     VARCHAR2,
632     x_segment23_low                     IN     VARCHAR2,
633     x_segment24_high                    IN     VARCHAR2,
634     x_segment24_low                     IN     VARCHAR2,
635     x_segment25_high                    IN     VARCHAR2,
636     x_segment26_low                     IN     VARCHAR2,
637     x_segment26_high                    IN     VARCHAR2,
638     x_segment27_low                     IN     VARCHAR2,
639     x_segment27_high                    IN     VARCHAR2,
640     x_segment28_low                     IN     VARCHAR2,
641     x_segment28_high                    IN     VARCHAR2,
642     x_segment29_low                     IN     VARCHAR2,
643     x_segment29_high                    IN     VARCHAR2,
644     x_segment30_low                     IN     VARCHAR2,
645     x_segment30_high                    IN     VARCHAR2,
646     x_segments_low_ccid                 IN     NUMBER,
647     x_segments_high_ccid                IN     NUMBER,
648     x_segments_low_ccid_desc            IN     VARCHAR2,
649     x_segments_high_ccid_desc           IN     VARCHAR2,
650     x_budget_version_id                 IN     NUMBER,
651     x_period_name                       IN     VARCHAR2,
652     x_mode                              IN     VARCHAR2 ) AS
653   /*
654   ||  Created By : [email protected]
655   ||  Created On : 18-APR-2002
656   ||  Purpose : Handles the INSERT DML logic for the table.
657   ||  Known limitations, enhancements or remarks :
658   ||  Change History :
659   ||  Who             When            What
660   ||  (reverse chronological order - newest change first)
661   */
662     CURSOR c IS
663       SELECT   rowid
664       FROM     igi_dos_sources
665       WHERE    source_id                         = x_source_id;
666 
667     x_last_update_date           DATE;
668     x_last_updated_by            NUMBER;
669     x_last_update_login          NUMBER;
670 
671   BEGIN
672 
673     x_last_update_date := SYSDATE;
674     IF (x_mode = 'I') THEN
675       x_last_updated_by := 1;
676       x_last_update_login := 0;
677     ELSIF (x_mode = 'R') THEN
678       x_last_updated_by := fnd_global.user_id;
679       IF (x_last_updated_by IS NULL) THEN
680         x_last_updated_by := -1;
681       END IF;
682       x_last_update_login := fnd_global.login_id;
683       IF (x_last_update_login IS NULL) THEN
684         x_last_update_login := -1;
685       END IF;
686     ELSE
687       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
688 -- bug 3199481, start block
689       IF (l_unexp_level >= l_debug_level) THEN
690          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.insert_row.Msg1',FALSE);
691       END IF;
692 -- bug 3199481, end block
693       app_exception.raise_exception;
694     END IF;
695 
696     SELECT    igi_dos_sources_s.NEXTVAL
697     INTO      x_source_id
698     FROM      dual;
699 
700     before_dml(
701       p_action                            => 'INSERT',
702       x_rowid                             => x_rowid,
703       x_dossier_id                        => x_dossier_id,
704       x_source_id                         => x_source_id,
705       x_sob_id                            => x_sob_id,
706       x_coa_id                            => x_coa_id,
707       x_segment25_low                     => x_segment25_low,
708       x_budget                            => x_budget,
709       x_line_num                          => x_line_num,
710       x_budget_entity_id                  => x_budget_entity_id,
711       x_budget_entity_name                => x_budget_entity_name,
712       x_segment1_low                      => x_segment1_low,
713       x_segment1_high                     => x_segment1_high,
714       x_segment2_low                      => x_segment2_low,
715       x_segment2_high                     => x_segment2_high,
716       x_segment3_low                      => x_segment3_low,
717       x_segment3_high                     => x_segment3_high,
718       x_segment4_low                      => x_segment4_low,
719       x_segment4_high                     => x_segment4_high,
720       x_segment5_low                      => x_segment5_low,
721       x_segment5_high                     => x_segment5_high,
722       x_segment6_low                      => x_segment6_low,
723       x_segment6_high                     => x_segment6_high,
724       x_segment7_high                     => x_segment7_high,
725       x_segment7_low                      => x_segment7_low,
726       x_segment8_high                     => x_segment8_high,
727       x_segment8_low                      => x_segment8_low,
728       x_segment9_high                     => x_segment9_high,
729       x_segment9_low                      => x_segment9_low,
730       x_segment10_high                    => x_segment10_high,
731       x_segment10_low                     => x_segment10_low,
732       x_segment11_high                    => x_segment11_high,
733       x_segment11_low                     => x_segment11_low,
734       x_segment12_high                    => x_segment12_high,
735       x_segment12_low                     => x_segment12_low,
736       x_segment13_high                    => x_segment13_high,
737       x_segment13_low                     => x_segment13_low,
738       x_segment14_high                    => x_segment14_high,
739       x_segment14_low                     => x_segment14_low,
740       x_segment15_high                    => x_segment15_high,
741       x_segment15_low                     => x_segment15_low,
742       x_segment16_high                    => x_segment16_high,
743       x_segment16_low                     => x_segment16_low,
744       x_segment17_high                    => x_segment17_high,
745       x_segment17_low                     => x_segment17_low,
746       x_segment18_high                    => x_segment18_high,
747       x_segment18_low                     => x_segment18_low,
748       x_segment19_high                    => x_segment19_high,
749       x_segment19_low                     => x_segment19_low,
750       x_segment20_high                    => x_segment20_high,
751       x_segment20_low                     => x_segment20_low,
752       x_segment21_high                    => x_segment21_high,
753       x_segment21_low                     => x_segment21_low,
754       x_segment22_high                    => x_segment22_high,
755       x_segment22_low                     => x_segment22_low,
756       x_segment23_high                    => x_segment23_high,
757       x_segment23_low                     => x_segment23_low,
758       x_segment24_high                    => x_segment24_high,
759       x_segment24_low                     => x_segment24_low,
760       x_segment25_high                    => x_segment25_high,
761       x_segment26_low                     => x_segment26_low,
762       x_segment26_high                    => x_segment26_high,
763       x_segment27_low                     => x_segment27_low,
764       x_segment27_high                    => x_segment27_high,
765       x_segment28_low                     => x_segment28_low,
766       x_segment28_high                    => x_segment28_high,
767       x_segment29_low                     => x_segment29_low,
768       x_segment29_high                    => x_segment29_high,
769       x_segment30_low                     => x_segment30_low,
770       x_segment30_high                    => x_segment30_high,
771       x_segments_low_ccid                 => x_segments_low_ccid,
772       x_segments_high_ccid                => x_segments_high_ccid,
773       x_segments_low_ccid_desc            => x_segments_low_ccid_desc,
774       x_segments_high_ccid_desc           => x_segments_high_ccid_desc,
775       x_budget_version_id                 => x_budget_version_id,
776       x_period_name                       => x_period_name,
777       x_creation_date                     => x_last_update_date,
778       x_created_by                        => x_last_updated_by,
779       x_last_update_date                  => x_last_update_date,
780       x_last_updated_by                   => x_last_updated_by,
781       x_last_update_login                 => x_last_update_login
782     );
783 
784     INSERT INTO igi_dos_sources (
785       dossier_id,
786       source_id,
787       sob_id,
788       coa_id,
789       segment25_low,
790       budget,
791       line_num,
792       budget_entity_id,
793       budget_entity_name,
794       segment1_low,
795       segment1_high,
796       segment2_low,
797       segment2_high,
798       segment3_low,
799       segment3_high,
800       segment4_low,
801       segment4_high,
802       segment5_low,
803       segment5_high,
804       segment6_low,
805       segment6_high,
806       segment7_high,
807       segment7_low,
808       segment8_high,
809       segment8_low,
810       segment9_high,
811       segment9_low,
812       segment10_high,
813       segment10_low,
814       segment11_high,
815       segment11_low,
816       segment12_high,
817       segment12_low,
818       segment13_high,
819       segment13_low,
820       segment14_high,
821       segment14_low,
822       segment15_high,
823       segment15_low,
824       segment16_high,
825       segment16_low,
826       segment17_high,
827       segment17_low,
828       segment18_high,
829       segment18_low,
830       segment19_high,
831       segment19_low,
832       segment20_high,
833       segment20_low,
834       segment21_high,
835       segment21_low,
836       segment22_high,
837       segment22_low,
838       segment23_high,
839       segment23_low,
840       segment24_high,
841       segment24_low,
842       segment25_high,
843       segment26_low,
844       segment26_high,
845       segment27_low,
846       segment27_high,
847       segment28_low,
848       segment28_high,
849       segment29_low,
850       segment29_high,
851       segment30_low,
852       segment30_high,
853       segments_low_ccid,
854       segments_high_ccid,
855       segments_low_ccid_desc,
856       segments_high_ccid_desc,
857       budget_version_id,
858       period_name,
859       creation_date,
860       created_by,
861       last_update_date,
862       last_updated_by,
863       last_update_login
864     ) VALUES (
865       new_references.dossier_id,
866       new_references.source_id,
867       new_references.sob_id,
868       new_references.coa_id,
869       new_references.segment25_low,
870       new_references.budget,
871       new_references.line_num,
872       new_references.budget_entity_id,
873       new_references.budget_entity_name,
874       new_references.segment1_low,
875       new_references.segment1_high,
876       new_references.segment2_low,
877       new_references.segment2_high,
878       new_references.segment3_low,
879       new_references.segment3_high,
880       new_references.segment4_low,
881       new_references.segment4_high,
882       new_references.segment5_low,
883       new_references.segment5_high,
884       new_references.segment6_low,
885       new_references.segment6_high,
886       new_references.segment7_high,
887       new_references.segment7_low,
888       new_references.segment8_high,
889       new_references.segment8_low,
890       new_references.segment9_high,
891       new_references.segment9_low,
892       new_references.segment10_high,
893       new_references.segment10_low,
894       new_references.segment11_high,
895       new_references.segment11_low,
896       new_references.segment12_high,
897       new_references.segment12_low,
898       new_references.segment13_high,
899       new_references.segment13_low,
900       new_references.segment14_high,
901       new_references.segment14_low,
902       new_references.segment15_high,
903       new_references.segment15_low,
904       new_references.segment16_high,
905       new_references.segment16_low,
906       new_references.segment17_high,
907       new_references.segment17_low,
908       new_references.segment18_high,
909       new_references.segment18_low,
910       new_references.segment19_high,
911       new_references.segment19_low,
912       new_references.segment20_high,
913       new_references.segment20_low,
914       new_references.segment21_high,
915       new_references.segment21_low,
916       new_references.segment22_high,
917       new_references.segment22_low,
918       new_references.segment23_high,
919       new_references.segment23_low,
920       new_references.segment24_high,
921       new_references.segment24_low,
922       new_references.segment25_high,
923       new_references.segment26_low,
924       new_references.segment26_high,
925       new_references.segment27_low,
926       new_references.segment27_high,
927       new_references.segment28_low,
928       new_references.segment28_high,
929       new_references.segment29_low,
930       new_references.segment29_high,
931       new_references.segment30_low,
932       new_references.segment30_high,
933       new_references.segments_low_ccid,
934       new_references.segments_high_ccid,
935       new_references.segments_low_ccid_desc,
936       new_references.segments_high_ccid_desc,
937       new_references.budget_version_id,
938       new_references.period_name,
939       x_last_update_date,
940       x_last_updated_by,
941       x_last_update_date,
942       x_last_updated_by,
943       x_last_update_login
944     );
945 
946     OPEN c;
947     FETCH c INTO x_rowid;
948     IF (c%NOTFOUND) THEN
949       CLOSE c;
950       RAISE NO_DATA_FOUND;
951     END IF;
952     CLOSE c;
953 
954   END insert_row;
955 
956 
957   PROCEDURE lock_row (
958     x_rowid                             IN     VARCHAR2,
959     x_dossier_id                        IN     NUMBER,
960     x_source_id                         IN     NUMBER,
961     x_sob_id                            IN     NUMBER,
962     x_coa_id                            IN     NUMBER,
963     x_segment25_low                     IN     VARCHAR2,
964     x_budget                            IN     VARCHAR2,
965     x_line_num                          IN     NUMBER,
966     x_budget_entity_id                  IN     NUMBER,
967     x_budget_entity_name                IN     VARCHAR2,
968     x_segment1_low                      IN     VARCHAR2,
969     x_segment1_high                     IN     VARCHAR2,
970     x_segment2_low                      IN     VARCHAR2,
971     x_segment2_high                     IN     VARCHAR2,
972     x_segment3_low                      IN     VARCHAR2,
973     x_segment3_high                     IN     VARCHAR2,
974     x_segment4_low                      IN     VARCHAR2,
975     x_segment4_high                     IN     VARCHAR2,
976     x_segment5_low                      IN     VARCHAR2,
977     x_segment5_high                     IN     VARCHAR2,
978     x_segment6_low                      IN     VARCHAR2,
979     x_segment6_high                     IN     VARCHAR2,
980     x_segment7_high                     IN     VARCHAR2,
981     x_segment7_low                      IN     VARCHAR2,
982     x_segment8_high                     IN     VARCHAR2,
983     x_segment8_low                      IN     VARCHAR2,
984     x_segment9_high                     IN     VARCHAR2,
985     x_segment9_low                      IN     VARCHAR2,
986     x_segment10_high                    IN     VARCHAR2,
987     x_segment10_low                     IN     VARCHAR2,
988     x_segment11_high                    IN     VARCHAR2,
989     x_segment11_low                     IN     VARCHAR2,
990     x_segment12_high                    IN     VARCHAR2,
991     x_segment12_low                     IN     VARCHAR2,
992     x_segment13_high                    IN     VARCHAR2,
993     x_segment13_low                     IN     VARCHAR2,
994     x_segment14_high                    IN     VARCHAR2,
995     x_segment14_low                     IN     VARCHAR2,
996     x_segment15_high                    IN     VARCHAR2,
997     x_segment15_low                     IN     VARCHAR2,
998     x_segment16_high                    IN     VARCHAR2,
999     x_segment16_low                     IN     VARCHAR2,
1000     x_segment17_high                    IN     VARCHAR2,
1001     x_segment17_low                     IN     VARCHAR2,
1002     x_segment18_high                    IN     VARCHAR2,
1003     x_segment18_low                     IN     VARCHAR2,
1004     x_segment19_high                    IN     VARCHAR2,
1005     x_segment19_low                     IN     VARCHAR2,
1006     x_segment20_high                    IN     VARCHAR2,
1007     x_segment20_low                     IN     VARCHAR2,
1008     x_segment21_high                    IN     VARCHAR2,
1009     x_segment21_low                     IN     VARCHAR2,
1010     x_segment22_high                    IN     VARCHAR2,
1011     x_segment22_low                     IN     VARCHAR2,
1012     x_segment23_high                    IN     VARCHAR2,
1013     x_segment23_low                     IN     VARCHAR2,
1014     x_segment24_high                    IN     VARCHAR2,
1015     x_segment24_low                     IN     VARCHAR2,
1016     x_segment25_high                    IN     VARCHAR2,
1017     x_segment26_low                     IN     VARCHAR2,
1018     x_segment26_high                    IN     VARCHAR2,
1019     x_segment27_low                     IN     VARCHAR2,
1020     x_segment27_high                    IN     VARCHAR2,
1021     x_segment28_low                     IN     VARCHAR2,
1022     x_segment28_high                    IN     VARCHAR2,
1023     x_segment29_low                     IN     VARCHAR2,
1024     x_segment29_high                    IN     VARCHAR2,
1025     x_segment30_low                     IN     VARCHAR2,
1026     x_segment30_high                    IN     VARCHAR2,
1027     x_segments_low_ccid                 IN     NUMBER,
1028     x_segments_high_ccid                IN     NUMBER,
1029     x_segments_low_ccid_desc            IN     VARCHAR2,
1030     x_segments_high_ccid_desc           IN     VARCHAR2,
1031     x_budget_version_id                 IN     NUMBER,
1032     x_period_name                       IN     VARCHAR2
1033   ) AS
1034   /*
1035   ||  Created By : [email protected]
1036   ||  Created On : 18-APR-2002
1037   ||  Purpose : Handles the LOCK mechanism for the table.
1038   ||  Known limitations, enhancements or remarks :
1039   ||  Change History :
1040   ||  Who             When            What
1041   ||  (reverse chronological order - newest change first)
1042   */
1043     CURSOR c1 IS
1044       SELECT
1045         dossier_id,
1046         sob_id,
1047         coa_id,
1048         segment25_low,
1049         budget,
1050         line_num,
1051         budget_entity_id,
1052         budget_entity_name,
1053         segment1_low,
1054         segment1_high,
1055         segment2_low,
1056         segment2_high,
1057         segment3_low,
1058         segment3_high,
1059         segment4_low,
1060         segment4_high,
1061         segment5_low,
1062         segment5_high,
1063         segment6_low,
1064         segment6_high,
1065         segment7_high,
1066         segment7_low,
1067         segment8_high,
1068         segment8_low,
1069         segment9_high,
1070         segment9_low,
1071         segment10_high,
1072         segment10_low,
1073         segment11_high,
1074         segment11_low,
1075         segment12_high,
1076         segment12_low,
1077         segment13_high,
1078         segment13_low,
1079         segment14_high,
1080         segment14_low,
1081         segment15_high,
1082         segment15_low,
1083         segment16_high,
1084         segment16_low,
1085         segment17_high,
1086         segment17_low,
1087         segment18_high,
1088         segment18_low,
1089         segment19_high,
1090         segment19_low,
1091         segment20_high,
1092         segment20_low,
1093         segment21_high,
1094         segment21_low,
1095         segment22_high,
1096         segment22_low,
1097         segment23_high,
1098         segment23_low,
1099         segment24_high,
1100         segment24_low,
1101         segment25_high,
1102         segment26_low,
1103         segment26_high,
1104         segment27_low,
1105         segment27_high,
1106         segment28_low,
1107         segment28_high,
1108         segment29_low,
1109         segment29_high,
1110         segment30_low,
1111         segment30_high,
1112         segments_low_ccid,
1113         segments_high_ccid,
1114         segments_low_ccid_desc,
1115         segments_high_ccid_desc,
1116         budget_version_id,
1117         period_name
1118       FROM  igi_dos_sources
1119       WHERE rowid = x_rowid
1120       FOR UPDATE NOWAIT;
1121 
1122     tlinfo c1%ROWTYPE;
1123 
1124   BEGIN
1125 
1126     OPEN c1;
1127     FETCH c1 INTO tlinfo;
1128     IF (c1%notfound) THEN
1129       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
1130 -- bug 3199481, start block
1131       IF (l_unexp_level >= l_debug_level) THEN
1132          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.lock_row.Msg1',FALSE);
1133       END IF;
1134 -- bug 3199481, end block
1135       CLOSE c1;
1136       app_exception.raise_exception;
1137       RETURN;
1138     END IF;
1139     CLOSE c1;
1140 
1141     IF (
1142         (tlinfo.dossier_id = x_dossier_id)
1143         AND (tlinfo.sob_id = x_sob_id)
1144         AND (tlinfo.coa_id = x_coa_id)
1145         AND ((tlinfo.segment25_low = x_segment25_low) OR ((tlinfo.segment25_low IS NULL) AND (X_segment25_low IS NULL)))
1146         AND ((tlinfo.budget = x_budget) OR ((tlinfo.budget IS NULL) AND (X_budget IS NULL)))
1147         AND ((tlinfo.line_num = x_line_num) OR ((tlinfo.line_num IS NULL) AND (X_line_num IS NULL)))
1148         AND ((tlinfo.budget_entity_id = x_budget_entity_id) OR ((tlinfo.budget_entity_id IS NULL) AND (X_budget_entity_id IS NULL)))
1149         AND ((tlinfo.budget_entity_name = x_budget_entity_name) OR ((tlinfo.budget_entity_name IS NULL) AND (X_budget_entity_name IS NULL)))
1150         AND ((tlinfo.segment1_low = x_segment1_low) OR ((tlinfo.segment1_low IS NULL) AND (X_segment1_low IS NULL)))
1151         AND ((tlinfo.segment1_high = x_segment1_high) OR ((tlinfo.segment1_high IS NULL) AND (X_segment1_high IS NULL)))
1152         AND ((tlinfo.segment2_low = x_segment2_low) OR ((tlinfo.segment2_low IS NULL) AND (X_segment2_low IS NULL)))
1153         AND ((tlinfo.segment2_high = x_segment2_high) OR ((tlinfo.segment2_high IS NULL) AND (X_segment2_high IS NULL)))
1154         AND ((tlinfo.segment3_low = x_segment3_low) OR ((tlinfo.segment3_low IS NULL) AND (X_segment3_low IS NULL)))
1155         AND ((tlinfo.segment3_high = x_segment3_high) OR ((tlinfo.segment3_high IS NULL) AND (X_segment3_high IS NULL)))
1156         AND ((tlinfo.segment4_low = x_segment4_low) OR ((tlinfo.segment4_low IS NULL) AND (X_segment4_low IS NULL)))
1157         AND ((tlinfo.segment4_high = x_segment4_high) OR ((tlinfo.segment4_high IS NULL) AND (X_segment4_high IS NULL)))
1158         AND ((tlinfo.segment5_low = x_segment5_low) OR ((tlinfo.segment5_low IS NULL) AND (X_segment5_low IS NULL)))
1159         AND ((tlinfo.segment5_high = x_segment5_high) OR ((tlinfo.segment5_high IS NULL) AND (X_segment5_high IS NULL)))
1160         AND ((tlinfo.segment6_low = x_segment6_low) OR ((tlinfo.segment6_low IS NULL) AND (X_segment6_low IS NULL)))
1161         AND ((tlinfo.segment6_high = x_segment6_high) OR ((tlinfo.segment6_high IS NULL) AND (X_segment6_high IS NULL)))
1162         AND ((tlinfo.segment7_high = x_segment7_high) OR ((tlinfo.segment7_high IS NULL) AND (X_segment7_high IS NULL)))
1163         AND ((tlinfo.segment7_low = x_segment7_low) OR ((tlinfo.segment7_low IS NULL) AND (X_segment7_low IS NULL)))
1164         AND ((tlinfo.segment8_high = x_segment8_high) OR ((tlinfo.segment8_high IS NULL) AND (X_segment8_high IS NULL)))
1165         AND ((tlinfo.segment8_low = x_segment8_low) OR ((tlinfo.segment8_low IS NULL) AND (X_segment8_low IS NULL)))
1166         AND ((tlinfo.segment9_high = x_segment9_high) OR ((tlinfo.segment9_high IS NULL) AND (X_segment9_high IS NULL)))
1167         AND ((tlinfo.segment9_low = x_segment9_low) OR ((tlinfo.segment9_low IS NULL) AND (X_segment9_low IS NULL)))
1168         AND ((tlinfo.segment10_high = x_segment10_high) OR ((tlinfo.segment10_high IS NULL) AND (X_segment10_high IS NULL)))
1169         AND ((tlinfo.segment10_low = x_segment10_low) OR ((tlinfo.segment10_low IS NULL) AND (X_segment10_low IS NULL)))
1170         AND ((tlinfo.segment11_high = x_segment11_high) OR ((tlinfo.segment11_high IS NULL) AND (X_segment11_high IS NULL)))
1171         AND ((tlinfo.segment11_low = x_segment11_low) OR ((tlinfo.segment11_low IS NULL) AND (X_segment11_low IS NULL)))
1172         AND ((tlinfo.segment12_high = x_segment12_high) OR ((tlinfo.segment12_high IS NULL) AND (X_segment12_high IS NULL)))
1173         AND ((tlinfo.segment12_low = x_segment12_low) OR ((tlinfo.segment12_low IS NULL) AND (X_segment12_low IS NULL)))
1174         AND ((tlinfo.segment13_high = x_segment13_high) OR ((tlinfo.segment13_high IS NULL) AND (X_segment13_high IS NULL)))
1175         AND ((tlinfo.segment13_low = x_segment13_low) OR ((tlinfo.segment13_low IS NULL) AND (X_segment13_low IS NULL)))
1176         AND ((tlinfo.segment14_high = x_segment14_high) OR ((tlinfo.segment14_high IS NULL) AND (X_segment14_high IS NULL)))
1177         AND ((tlinfo.segment14_low = x_segment14_low) OR ((tlinfo.segment14_low IS NULL) AND (X_segment14_low IS NULL)))
1178         AND ((tlinfo.segment15_high = x_segment15_high) OR ((tlinfo.segment15_high IS NULL) AND (X_segment15_high IS NULL)))
1179         AND ((tlinfo.segment15_low = x_segment15_low) OR ((tlinfo.segment15_low IS NULL) AND (X_segment15_low IS NULL)))
1180         AND ((tlinfo.segment16_high = x_segment16_high) OR ((tlinfo.segment16_high IS NULL) AND (X_segment16_high IS NULL)))
1181         AND ((tlinfo.segment16_low = x_segment16_low) OR ((tlinfo.segment16_low IS NULL) AND (X_segment16_low IS NULL)))
1182         AND ((tlinfo.segment17_high = x_segment17_high) OR ((tlinfo.segment17_high IS NULL) AND (X_segment17_high IS NULL)))
1183         AND ((tlinfo.segment17_low = x_segment17_low) OR ((tlinfo.segment17_low IS NULL) AND (X_segment17_low IS NULL)))
1184         AND ((tlinfo.segment18_high = x_segment18_high) OR ((tlinfo.segment18_high IS NULL) AND (X_segment18_high IS NULL)))
1185         AND ((tlinfo.segment18_low = x_segment18_low) OR ((tlinfo.segment18_low IS NULL) AND (X_segment18_low IS NULL)))
1186         AND ((tlinfo.segment19_high = x_segment19_high) OR ((tlinfo.segment19_high IS NULL) AND (X_segment19_high IS NULL)))
1187         AND ((tlinfo.segment19_low = x_segment19_low) OR ((tlinfo.segment19_low IS NULL) AND (X_segment19_low IS NULL)))
1188         AND ((tlinfo.segment20_high = x_segment20_high) OR ((tlinfo.segment20_high IS NULL) AND (X_segment20_high IS NULL)))
1189         AND ((tlinfo.segment20_low = x_segment20_low) OR ((tlinfo.segment20_low IS NULL) AND (X_segment20_low IS NULL)))
1190         AND ((tlinfo.segment21_high = x_segment21_high) OR ((tlinfo.segment21_high IS NULL) AND (X_segment21_high IS NULL)))
1191         AND ((tlinfo.segment21_low = x_segment21_low) OR ((tlinfo.segment21_low IS NULL) AND (X_segment21_low IS NULL)))
1192         AND ((tlinfo.segment22_high = x_segment22_high) OR ((tlinfo.segment22_high IS NULL) AND (X_segment22_high IS NULL)))
1193         AND ((tlinfo.segment22_low = x_segment22_low) OR ((tlinfo.segment22_low IS NULL) AND (X_segment22_low IS NULL)))
1194         AND ((tlinfo.segment23_high = x_segment23_high) OR ((tlinfo.segment23_high IS NULL) AND (X_segment23_high IS NULL)))
1195         AND ((tlinfo.segment23_low = x_segment23_low) OR ((tlinfo.segment23_low IS NULL) AND (X_segment23_low IS NULL)))
1196         AND ((tlinfo.segment24_high = x_segment24_high) OR ((tlinfo.segment24_high IS NULL) AND (X_segment24_high IS NULL)))
1197         AND ((tlinfo.segment24_low = x_segment24_low) OR ((tlinfo.segment24_low IS NULL) AND (X_segment24_low IS NULL)))
1198         AND ((tlinfo.segment25_high = x_segment25_high) OR ((tlinfo.segment25_high IS NULL) AND (X_segment25_high IS NULL)))
1199         AND ((tlinfo.segment26_low = x_segment26_low) OR ((tlinfo.segment26_low IS NULL) AND (X_segment26_low IS NULL)))
1200         AND ((tlinfo.segment26_high = x_segment26_high) OR ((tlinfo.segment26_high IS NULL) AND (X_segment26_high IS NULL)))
1201         AND ((tlinfo.segment27_low = x_segment27_low) OR ((tlinfo.segment27_low IS NULL) AND (X_segment27_low IS NULL)))
1202         AND ((tlinfo.segment27_high = x_segment27_high) OR ((tlinfo.segment27_high IS NULL) AND (X_segment27_high IS NULL)))
1203         AND ((tlinfo.segment28_low = x_segment28_low) OR ((tlinfo.segment28_low IS NULL) AND (X_segment28_low IS NULL)))
1204         AND ((tlinfo.segment28_high = x_segment28_high) OR ((tlinfo.segment28_high IS NULL) AND (X_segment28_high IS NULL)))
1205         AND ((tlinfo.segment29_low = x_segment29_low) OR ((tlinfo.segment29_low IS NULL) AND (X_segment29_low IS NULL)))
1206         AND ((tlinfo.segment29_high = x_segment29_high) OR ((tlinfo.segment29_high IS NULL) AND (X_segment29_high IS NULL)))
1207         AND ((tlinfo.segment30_low = x_segment30_low) OR ((tlinfo.segment30_low IS NULL) AND (X_segment30_low IS NULL)))
1208         AND ((tlinfo.segment30_high = x_segment30_high) OR ((tlinfo.segment30_high IS NULL) AND (X_segment30_high IS NULL)))
1209         AND ((tlinfo.segments_low_ccid = x_segments_low_ccid) OR ((tlinfo.segments_low_ccid IS NULL) AND (X_segments_low_ccid IS NULL)))
1210         AND ((tlinfo.segments_high_ccid = x_segments_high_ccid) OR ((tlinfo.segments_high_ccid IS NULL) AND (X_segments_high_ccid IS NULL)))
1211         AND ((tlinfo.segments_low_ccid_desc = x_segments_low_ccid_desc) OR ((tlinfo.segments_low_ccid_desc IS NULL) AND (X_segments_low_ccid_desc IS NULL)))
1212         AND ((tlinfo.segments_high_ccid_desc = x_segments_high_ccid_desc) OR ((tlinfo.segments_high_ccid_desc IS NULL) AND (X_segments_high_ccid_desc IS NULL)))
1213         AND ((tlinfo.budget_version_id = x_budget_version_id) OR ((tlinfo.budget_version_id IS NULL) AND (X_budget_version_id IS NULL)))
1214         AND ((tlinfo.period_name = x_period_name) OR ((tlinfo.period_name IS NULL) AND (X_period_name IS NULL)))
1215        ) THEN
1216       NULL;
1217     ELSE
1218       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1219 -- bug 3199481, start block
1220       IF (l_unexp_level >= l_debug_level) THEN
1221          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.lock_row.Msg2',FALSE);
1222       END IF;
1223 -- bug 3199481, end block
1224       app_exception.raise_exception;
1225     END IF;
1226 
1227     RETURN;
1228 
1229   END lock_row;
1230 
1231 
1232   PROCEDURE update_row (
1233     x_rowid                             IN     VARCHAR2,
1234     x_dossier_id                        IN     NUMBER,
1235     x_source_id                         IN     NUMBER,
1236     x_sob_id                            IN     NUMBER,
1237     x_coa_id                            IN     NUMBER,
1238     x_segment25_low                     IN     VARCHAR2,
1239     x_budget                            IN     VARCHAR2,
1240     x_line_num                          IN     NUMBER,
1241     x_budget_entity_id                  IN     NUMBER,
1242     x_budget_entity_name                IN     VARCHAR2,
1243     x_segment1_low                      IN     VARCHAR2,
1244     x_segment1_high                     IN     VARCHAR2,
1245     x_segment2_low                      IN     VARCHAR2,
1246     x_segment2_high                     IN     VARCHAR2,
1247     x_segment3_low                      IN     VARCHAR2,
1248     x_segment3_high                     IN     VARCHAR2,
1249     x_segment4_low                      IN     VARCHAR2,
1250     x_segment4_high                     IN     VARCHAR2,
1251     x_segment5_low                      IN     VARCHAR2,
1252     x_segment5_high                     IN     VARCHAR2,
1253     x_segment6_low                      IN     VARCHAR2,
1254     x_segment6_high                     IN     VARCHAR2,
1255     x_segment7_high                     IN     VARCHAR2,
1256     x_segment7_low                      IN     VARCHAR2,
1257     x_segment8_high                     IN     VARCHAR2,
1258     x_segment8_low                      IN     VARCHAR2,
1259     x_segment9_high                     IN     VARCHAR2,
1260     x_segment9_low                      IN     VARCHAR2,
1261     x_segment10_high                    IN     VARCHAR2,
1262     x_segment10_low                     IN     VARCHAR2,
1263     x_segment11_high                    IN     VARCHAR2,
1264     x_segment11_low                     IN     VARCHAR2,
1265     x_segment12_high                    IN     VARCHAR2,
1266     x_segment12_low                     IN     VARCHAR2,
1267     x_segment13_high                    IN     VARCHAR2,
1268     x_segment13_low                     IN     VARCHAR2,
1269     x_segment14_high                    IN     VARCHAR2,
1270     x_segment14_low                     IN     VARCHAR2,
1271     x_segment15_high                    IN     VARCHAR2,
1272     x_segment15_low                     IN     VARCHAR2,
1273     x_segment16_high                    IN     VARCHAR2,
1274     x_segment16_low                     IN     VARCHAR2,
1275     x_segment17_high                    IN     VARCHAR2,
1276     x_segment17_low                     IN     VARCHAR2,
1277     x_segment18_high                    IN     VARCHAR2,
1278     x_segment18_low                     IN     VARCHAR2,
1279     x_segment19_high                    IN     VARCHAR2,
1280     x_segment19_low                     IN     VARCHAR2,
1281     x_segment20_high                    IN     VARCHAR2,
1282     x_segment20_low                     IN     VARCHAR2,
1283     x_segment21_high                    IN     VARCHAR2,
1284     x_segment21_low                     IN     VARCHAR2,
1285     x_segment22_high                    IN     VARCHAR2,
1286     x_segment22_low                     IN     VARCHAR2,
1287     x_segment23_high                    IN     VARCHAR2,
1288     x_segment23_low                     IN     VARCHAR2,
1289     x_segment24_high                    IN     VARCHAR2,
1290     x_segment24_low                     IN     VARCHAR2,
1291     x_segment25_high                    IN     VARCHAR2,
1292     x_segment26_low                     IN     VARCHAR2,
1293     x_segment26_high                    IN     VARCHAR2,
1294     x_segment27_low                     IN     VARCHAR2,
1295     x_segment27_high                    IN     VARCHAR2,
1296     x_segment28_low                     IN     VARCHAR2,
1297     x_segment28_high                    IN     VARCHAR2,
1298     x_segment29_low                     IN     VARCHAR2,
1299     x_segment29_high                    IN     VARCHAR2,
1300     x_segment30_low                     IN     VARCHAR2,
1301     x_segment30_high                    IN     VARCHAR2,
1302     x_segments_low_ccid                 IN     NUMBER,
1303     x_segments_high_ccid                IN     NUMBER,
1304     x_segments_low_ccid_desc            IN     VARCHAR2,
1305     x_segments_high_ccid_desc           IN     VARCHAR2,
1306     x_budget_version_id                 IN     NUMBER,
1307     x_period_name                       IN     VARCHAR2,
1308     x_mode                              IN     VARCHAR2 ) AS
1309   /*
1310   ||  Created By : [email protected]
1311   ||  Created On : 18-APR-2002
1312   ||  Purpose : Handles the UPDATE DML logic for the table.
1313   ||  Known limitations, enhancements or remarks :
1314   ||  Change History :
1315   ||  Who             When            What
1316   ||  (reverse chronological order - newest change first)
1317   */
1318     x_last_update_date           DATE ;
1319     x_last_updated_by            NUMBER;
1320     x_last_update_login          NUMBER;
1321 
1322   BEGIN
1323 
1324     x_last_update_date := SYSDATE;
1325     IF (X_MODE = 'I') THEN
1326       x_last_updated_by := 1;
1327       x_last_update_login := 0;
1328     ELSIF (x_mode = 'R') THEN
1329       x_last_updated_by := fnd_global.user_id;
1330       IF x_last_updated_by IS NULL THEN
1331         x_last_updated_by := -1;
1332       END IF;
1333       x_last_update_login := fnd_global.login_id;
1334       IF (x_last_update_login IS NULL) THEN
1335         x_last_update_login := -1;
1336       END IF;
1337     ELSE
1338       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
1339 -- bug 3199481, start block
1340       IF (l_unexp_level >= l_debug_level) THEN
1341          FND_LOG.MESSAGE(l_unexp_level, 'igi.plsql.igi_dos_sources_pkg.update_row.Msg1',FALSE);
1342       END IF;
1343 -- bug 3199481, end block
1344       app_exception.raise_exception;
1345     END IF;
1346 
1347     before_dml(
1348       p_action                            => 'UPDATE',
1349       x_rowid                             => x_rowid,
1350       x_dossier_id                        => x_dossier_id,
1351       x_source_id                         => x_source_id,
1352       x_sob_id                            => x_sob_id,
1353       x_coa_id                            => x_coa_id,
1354       x_segment25_low                     => x_segment25_low,
1355       x_budget                            => x_budget,
1356       x_line_num                          => x_line_num,
1357       x_budget_entity_id                  => x_budget_entity_id,
1358       x_budget_entity_name                => x_budget_entity_name,
1359       x_segment1_low                      => x_segment1_low,
1360       x_segment1_high                     => x_segment1_high,
1361       x_segment2_low                      => x_segment2_low,
1362       x_segment2_high                     => x_segment2_high,
1363       x_segment3_low                      => x_segment3_low,
1364       x_segment3_high                     => x_segment3_high,
1365       x_segment4_low                      => x_segment4_low,
1366       x_segment4_high                     => x_segment4_high,
1367       x_segment5_low                      => x_segment5_low,
1368       x_segment5_high                     => x_segment5_high,
1369       x_segment6_low                      => x_segment6_low,
1370       x_segment6_high                     => x_segment6_high,
1371       x_segment7_high                     => x_segment7_high,
1372       x_segment7_low                      => x_segment7_low,
1373       x_segment8_high                     => x_segment8_high,
1374       x_segment8_low                      => x_segment8_low,
1375       x_segment9_high                     => x_segment9_high,
1376       x_segment9_low                      => x_segment9_low,
1377       x_segment10_high                    => x_segment10_high,
1378       x_segment10_low                     => x_segment10_low,
1379       x_segment11_high                    => x_segment11_high,
1380       x_segment11_low                     => x_segment11_low,
1381       x_segment12_high                    => x_segment12_high,
1382       x_segment12_low                     => x_segment12_low,
1383       x_segment13_high                    => x_segment13_high,
1384       x_segment13_low                     => x_segment13_low,
1385       x_segment14_high                    => x_segment14_high,
1386       x_segment14_low                     => x_segment14_low,
1387       x_segment15_high                    => x_segment15_high,
1388       x_segment15_low                     => x_segment15_low,
1389       x_segment16_high                    => x_segment16_high,
1390       x_segment16_low                     => x_segment16_low,
1391       x_segment17_high                    => x_segment17_high,
1392       x_segment17_low                     => x_segment17_low,
1393       x_segment18_high                    => x_segment18_high,
1394       x_segment18_low                     => x_segment18_low,
1395       x_segment19_high                    => x_segment19_high,
1396       x_segment19_low                     => x_segment19_low,
1397       x_segment20_high                    => x_segment20_high,
1398       x_segment20_low                     => x_segment20_low,
1399       x_segment21_high                    => x_segment21_high,
1400       x_segment21_low                     => x_segment21_low,
1401       x_segment22_high                    => x_segment22_high,
1402       x_segment22_low                     => x_segment22_low,
1403       x_segment23_high                    => x_segment23_high,
1404       x_segment23_low                     => x_segment23_low,
1405       x_segment24_high                    => x_segment24_high,
1406       x_segment24_low                     => x_segment24_low,
1407       x_segment25_high                    => x_segment25_high,
1408       x_segment26_low                     => x_segment26_low,
1409       x_segment26_high                    => x_segment26_high,
1410       x_segment27_low                     => x_segment27_low,
1411       x_segment27_high                    => x_segment27_high,
1412       x_segment28_low                     => x_segment28_low,
1413       x_segment28_high                    => x_segment28_high,
1414       x_segment29_low                     => x_segment29_low,
1415       x_segment29_high                    => x_segment29_high,
1416       x_segment30_low                     => x_segment30_low,
1417       x_segment30_high                    => x_segment30_high,
1418       x_segments_low_ccid                 => x_segments_low_ccid,
1419       x_segments_high_ccid                => x_segments_high_ccid,
1420       x_segments_low_ccid_desc            => x_segments_low_ccid_desc,
1421       x_segments_high_ccid_desc           => x_segments_high_ccid_desc,
1422       x_budget_version_id                 => x_budget_version_id,
1423       x_period_name                       => x_period_name,
1424       x_creation_date                     => x_last_update_date,
1425       x_created_by                        => x_last_updated_by,
1426       x_last_update_date                  => x_last_update_date,
1427       x_last_updated_by                   => x_last_updated_by,
1428       x_last_update_login                 => x_last_update_login
1429     );
1430 
1431     UPDATE igi_dos_sources
1432       SET
1433         dossier_id                        = new_references.dossier_id,
1434         sob_id                            = new_references.sob_id,
1435         coa_id                            = new_references.coa_id,
1436         segment25_low                     = new_references.segment25_low,
1437         budget                            = new_references.budget,
1438         line_num                          = new_references.line_num,
1439         budget_entity_id                  = new_references.budget_entity_id,
1440         budget_entity_name                = new_references.budget_entity_name,
1441         segment1_low                      = new_references.segment1_low,
1442         segment1_high                     = new_references.segment1_high,
1443         segment2_low                      = new_references.segment2_low,
1444         segment2_high                     = new_references.segment2_high,
1445         segment3_low                      = new_references.segment3_low,
1446         segment3_high                     = new_references.segment3_high,
1447         segment4_low                      = new_references.segment4_low,
1448         segment4_high                     = new_references.segment4_high,
1449         segment5_low                      = new_references.segment5_low,
1450         segment5_high                     = new_references.segment5_high,
1451         segment6_low                      = new_references.segment6_low,
1452         segment6_high                     = new_references.segment6_high,
1453         segment7_high                     = new_references.segment7_high,
1454         segment7_low                      = new_references.segment7_low,
1455         segment8_high                     = new_references.segment8_high,
1456         segment8_low                      = new_references.segment8_low,
1457         segment9_high                     = new_references.segment9_high,
1458         segment9_low                      = new_references.segment9_low,
1459         segment10_high                    = new_references.segment10_high,
1460         segment10_low                     = new_references.segment10_low,
1461         segment11_high                    = new_references.segment11_high,
1462         segment11_low                     = new_references.segment11_low,
1463         segment12_high                    = new_references.segment12_high,
1464         segment12_low                     = new_references.segment12_low,
1465         segment13_high                    = new_references.segment13_high,
1466         segment13_low                     = new_references.segment13_low,
1467         segment14_high                    = new_references.segment14_high,
1468         segment14_low                     = new_references.segment14_low,
1469         segment15_high                    = new_references.segment15_high,
1470         segment15_low                     = new_references.segment15_low,
1471         segment16_high                    = new_references.segment16_high,
1472         segment16_low                     = new_references.segment16_low,
1473         segment17_high                    = new_references.segment17_high,
1474         segment17_low                     = new_references.segment17_low,
1475         segment18_high                    = new_references.segment18_high,
1476         segment18_low                     = new_references.segment18_low,
1477         segment19_high                    = new_references.segment19_high,
1478         segment19_low                     = new_references.segment19_low,
1479         segment20_high                    = new_references.segment20_high,
1480         segment20_low                     = new_references.segment20_low,
1481         segment21_high                    = new_references.segment21_high,
1482         segment21_low                     = new_references.segment21_low,
1483         segment22_high                    = new_references.segment22_high,
1484         segment22_low                     = new_references.segment22_low,
1485         segment23_high                    = new_references.segment23_high,
1486         segment23_low                     = new_references.segment23_low,
1487         segment24_high                    = new_references.segment24_high,
1488         segment24_low                     = new_references.segment24_low,
1489         segment25_high                    = new_references.segment25_high,
1490         segment26_low                     = new_references.segment26_low,
1491         segment26_high                    = new_references.segment26_high,
1492         segment27_low                     = new_references.segment27_low,
1493         segment27_high                    = new_references.segment27_high,
1494         segment28_low                     = new_references.segment28_low,
1495         segment28_high                    = new_references.segment28_high,
1496         segment29_low                     = new_references.segment29_low,
1497         segment29_high                    = new_references.segment29_high,
1498         segment30_low                     = new_references.segment30_low,
1499         segment30_high                    = new_references.segment30_high,
1500         segments_low_ccid                 = new_references.segments_low_ccid,
1501         segments_high_ccid                = new_references.segments_high_ccid,
1502         segments_low_ccid_desc            = new_references.segments_low_ccid_desc,
1503         segments_high_ccid_desc           = new_references.segments_high_ccid_desc,
1504         budget_version_id                 = new_references.budget_version_id,
1505         period_name                       = new_references.period_name,
1506         last_update_date                  = x_last_update_date,
1507         last_updated_by                   = x_last_updated_by,
1508         last_update_login                 = x_last_update_login
1509       WHERE rowid = x_rowid;
1510 
1511     IF (SQL%NOTFOUND) THEN
1512       RAISE NO_DATA_FOUND;
1513     END IF;
1514 
1515   END update_row;
1516 
1517 
1518   PROCEDURE add_row (
1519     x_rowid                             IN OUT NOCOPY VARCHAR2,
1520     x_dossier_id                        IN     NUMBER,
1521     x_source_id                         IN OUT NOCOPY NUMBER,
1522     x_sob_id                            IN     NUMBER,
1523     x_coa_id                            IN     NUMBER,
1524     x_segment25_low                     IN     VARCHAR2,
1525     x_budget                            IN     VARCHAR2,
1526     x_line_num                          IN     NUMBER,
1527     x_budget_entity_id                  IN     NUMBER,
1528     x_budget_entity_name                IN     VARCHAR2,
1529     x_segment1_low                      IN     VARCHAR2,
1530     x_segment1_high                     IN     VARCHAR2,
1531     x_segment2_low                      IN     VARCHAR2,
1532     x_segment2_high                     IN     VARCHAR2,
1533     x_segment3_low                      IN     VARCHAR2,
1534     x_segment3_high                     IN     VARCHAR2,
1535     x_segment4_low                      IN     VARCHAR2,
1536     x_segment4_high                     IN     VARCHAR2,
1537     x_segment5_low                      IN     VARCHAR2,
1538     x_segment5_high                     IN     VARCHAR2,
1539     x_segment6_low                      IN     VARCHAR2,
1540     x_segment6_high                     IN     VARCHAR2,
1541     x_segment7_high                     IN     VARCHAR2,
1542     x_segment7_low                      IN     VARCHAR2,
1543     x_segment8_high                     IN     VARCHAR2,
1544     x_segment8_low                      IN     VARCHAR2,
1545     x_segment9_high                     IN     VARCHAR2,
1546     x_segment9_low                      IN     VARCHAR2,
1547     x_segment10_high                    IN     VARCHAR2,
1548     x_segment10_low                     IN     VARCHAR2,
1549     x_segment11_high                    IN     VARCHAR2,
1550     x_segment11_low                     IN     VARCHAR2,
1551     x_segment12_high                    IN     VARCHAR2,
1552     x_segment12_low                     IN     VARCHAR2,
1553     x_segment13_high                    IN     VARCHAR2,
1554     x_segment13_low                     IN     VARCHAR2,
1555     x_segment14_high                    IN     VARCHAR2,
1556     x_segment14_low                     IN     VARCHAR2,
1557     x_segment15_high                    IN     VARCHAR2,
1558     x_segment15_low                     IN     VARCHAR2,
1559     x_segment16_high                    IN     VARCHAR2,
1560     x_segment16_low                     IN     VARCHAR2,
1561     x_segment17_high                    IN     VARCHAR2,
1562     x_segment17_low                     IN     VARCHAR2,
1563     x_segment18_high                    IN     VARCHAR2,
1564     x_segment18_low                     IN     VARCHAR2,
1565     x_segment19_high                    IN     VARCHAR2,
1566     x_segment19_low                     IN     VARCHAR2,
1567     x_segment20_high                    IN     VARCHAR2,
1568     x_segment20_low                     IN     VARCHAR2,
1569     x_segment21_high                    IN     VARCHAR2,
1570     x_segment21_low                     IN     VARCHAR2,
1571     x_segment22_high                    IN     VARCHAR2,
1572     x_segment22_low                     IN     VARCHAR2,
1573     x_segment23_high                    IN     VARCHAR2,
1574     x_segment23_low                     IN     VARCHAR2,
1575     x_segment24_high                    IN     VARCHAR2,
1576     x_segment24_low                     IN     VARCHAR2,
1577     x_segment25_high                    IN     VARCHAR2,
1578     x_segment26_low                     IN     VARCHAR2,
1579     x_segment26_high                    IN     VARCHAR2,
1580     x_segment27_low                     IN     VARCHAR2,
1581     x_segment27_high                    IN     VARCHAR2,
1582     x_segment28_low                     IN     VARCHAR2,
1583     x_segment28_high                    IN     VARCHAR2,
1584     x_segment29_low                     IN     VARCHAR2,
1585     x_segment29_high                    IN     VARCHAR2,
1586     x_segment30_low                     IN     VARCHAR2,
1587     x_segment30_high                    IN     VARCHAR2,
1588     x_segments_low_ccid                 IN     NUMBER,
1589     x_segments_high_ccid                IN     NUMBER,
1590     x_segments_low_ccid_desc            IN     VARCHAR2,
1591     x_segments_high_ccid_desc           IN     VARCHAR2,
1592     x_budget_version_id                 IN     NUMBER,
1593     x_period_name                       IN     VARCHAR2,
1594     x_mode                              IN     VARCHAR2 ) AS
1595   /*
1596   ||  Created By : [email protected]
1597   ||  Created On : 18-APR-2002
1598   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
1599   ||  Known limitations, enhancements or remarks :
1600   ||  Change History :
1601   ||  Who             When            What
1602   ||  (reverse chronological order - newest change first)
1603   */
1604     CURSOR c1 IS
1605       SELECT   rowid
1606       FROM     igi_dos_sources
1607       WHERE    source_id                         = x_source_id;
1608 
1609   BEGIN
1610 
1611     OPEN c1;
1612     FETCH c1 INTO x_rowid;
1613     IF (c1%NOTFOUND) THEN
1614       CLOSE c1;
1615 
1616       insert_row (
1617         x_rowid,
1618         x_dossier_id,
1619         x_source_id,
1620         x_sob_id,
1621         x_coa_id,
1622         x_segment25_low,
1623         x_budget,
1624         x_line_num,
1625         x_budget_entity_id,
1626         x_budget_entity_name,
1627         x_segment1_low,
1628         x_segment1_high,
1629         x_segment2_low,
1630         x_segment2_high,
1631         x_segment3_low,
1632         x_segment3_high,
1633         x_segment4_low,
1634         x_segment4_high,
1635         x_segment5_low,
1636         x_segment5_high,
1637         x_segment6_low,
1638         x_segment6_high,
1639         x_segment7_high,
1640         x_segment7_low,
1641         x_segment8_high,
1642         x_segment8_low,
1643         x_segment9_high,
1644         x_segment9_low,
1645         x_segment10_high,
1646         x_segment10_low,
1647         x_segment11_high,
1648         x_segment11_low,
1649         x_segment12_high,
1650         x_segment12_low,
1651         x_segment13_high,
1652         x_segment13_low,
1653         x_segment14_high,
1654         x_segment14_low,
1655         x_segment15_high,
1656         x_segment15_low,
1657         x_segment16_high,
1658         x_segment16_low,
1659         x_segment17_high,
1660         x_segment17_low,
1661         x_segment18_high,
1662         x_segment18_low,
1663         x_segment19_high,
1664         x_segment19_low,
1665         x_segment20_high,
1666         x_segment20_low,
1667         x_segment21_high,
1668         x_segment21_low,
1669         x_segment22_high,
1670         x_segment22_low,
1671         x_segment23_high,
1672         x_segment23_low,
1673         x_segment24_high,
1674         x_segment24_low,
1675         x_segment25_high,
1676         x_segment26_low,
1677         x_segment26_high,
1678         x_segment27_low,
1679         x_segment27_high,
1680         x_segment28_low,
1681         x_segment28_high,
1682         x_segment29_low,
1683         x_segment29_high,
1684         x_segment30_low,
1685         x_segment30_high,
1686         x_segments_low_ccid,
1687         x_segments_high_ccid,
1688         x_segments_low_ccid_desc,
1689         x_segments_high_ccid_desc,
1690         x_budget_version_id,
1691         x_period_name,
1692         x_mode
1693       );
1694       RETURN;
1695     END IF;
1696     CLOSE c1;
1697 
1698     update_row (
1699       x_rowid,
1700       x_dossier_id,
1701       x_source_id,
1702       x_sob_id,
1703       x_coa_id,
1704       x_segment25_low,
1705       x_budget,
1706       x_line_num,
1707       x_budget_entity_id,
1708       x_budget_entity_name,
1709       x_segment1_low,
1710       x_segment1_high,
1711       x_segment2_low,
1712       x_segment2_high,
1713       x_segment3_low,
1714       x_segment3_high,
1715       x_segment4_low,
1716       x_segment4_high,
1717       x_segment5_low,
1718       x_segment5_high,
1719       x_segment6_low,
1720       x_segment6_high,
1721       x_segment7_high,
1722       x_segment7_low,
1723       x_segment8_high,
1724       x_segment8_low,
1725       x_segment9_high,
1726       x_segment9_low,
1727       x_segment10_high,
1728       x_segment10_low,
1729       x_segment11_high,
1730       x_segment11_low,
1731       x_segment12_high,
1732       x_segment12_low,
1733       x_segment13_high,
1734       x_segment13_low,
1735       x_segment14_high,
1736       x_segment14_low,
1737       x_segment15_high,
1738       x_segment15_low,
1739       x_segment16_high,
1740       x_segment16_low,
1741       x_segment17_high,
1742       x_segment17_low,
1743       x_segment18_high,
1744       x_segment18_low,
1745       x_segment19_high,
1746       x_segment19_low,
1747       x_segment20_high,
1748       x_segment20_low,
1749       x_segment21_high,
1750       x_segment21_low,
1751       x_segment22_high,
1752       x_segment22_low,
1753       x_segment23_high,
1754       x_segment23_low,
1755       x_segment24_high,
1756       x_segment24_low,
1757       x_segment25_high,
1758       x_segment26_low,
1759       x_segment26_high,
1760       x_segment27_low,
1761       x_segment27_high,
1762       x_segment28_low,
1763       x_segment28_high,
1764       x_segment29_low,
1765       x_segment29_high,
1766       x_segment30_low,
1767       x_segment30_high,
1768       x_segments_low_ccid,
1769       x_segments_high_ccid,
1770       x_segments_low_ccid_desc,
1771       x_segments_high_ccid_desc,
1772       x_budget_version_id,
1773       x_period_name,
1774       x_mode
1775     );
1776 
1777   END add_row;
1778 
1779 
1780   PROCEDURE delete_row (
1781     x_rowid IN VARCHAR2
1782   ) AS
1783   /*
1784   ||  Created By : [email protected]
1785   ||  Created On : 18-APR-2002
1786   ||  Purpose : Handles the DELETE DML logic for the table.
1787   ||  Known limitations, enhancements or remarks :
1788   ||  Change History :
1789   ||  Who             When            What
1790   ||  (reverse chronological order - newest change first)
1791   */
1792   BEGIN
1793 
1794     before_dml (
1795       p_action => 'DELETE',
1796       x_rowid => x_rowid
1797     );
1798 
1799     DELETE FROM igi_dos_sources
1800     WHERE rowid = x_rowid;
1801 
1802     IF (SQL%NOTFOUND) THEN
1803       RAISE NO_DATA_FOUND;
1804     END IF;
1805 
1806   END delete_row;
1807 
1808 
1809 END igi_dos_sources_pkg;