DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_INTERFACE_CONTROL_PKG

Source


1 PACKAGE BODY gl_interface_control_pkg AS
2 /* $Header: glijictb.pls 120.8 2005/06/17 23:21:53 djogg ship $ */
3 
4 --
5 -- PUBLIC FUNCTIONS
6 --
7 
8   FUNCTION get_unique_id RETURN NUMBER IS
9     new_id number;
10   BEGIN
11     SELECT gl_interface_control_s.NEXTVAL
12     INTO new_id
13     FROM dual;
14 
15     return(new_id);
16   END get_unique_id;
17 
18   FUNCTION get_unique_run_id RETURN NUMBER IS
19     new_id number;
20   BEGIN
21     SELECT gl_journal_import_s.NEXTVAL
22     INTO new_id
23     FROM dual;
24 
25     return(new_id);
26   END get_unique_run_id;
27 
28   PROCEDURE check_unique(x_interface_run_id    NUMBER,
29 			 x_user_je_source_name VARCHAR2,
30 			 x_je_source_name      VARCHAR2,
31 			 x_ledger_id	       NUMBER,
32 			 x_group_id            NUMBER DEFAULT NULL,
33                          row_id                VARCHAR2) IS
34     CURSOR chk_duplicates is
35       SELECT 'Duplicate'
36       FROM   GL_INTERFACE_CONTROL ic
37       WHERE  ic.interface_run_id  = x_interface_run_id
38       AND    ic.je_source_name    = x_je_source_name
39       AND    ic.set_of_books_id   = x_ledger_id
40       AND    nvl(ic.group_id,-1)  = nvl(x_group_id, -1)
41       AND    (   row_id is null
42               OR ic.rowid <> row_id);
43     dummy VARCHAR2(100);
44   BEGIN
45     OPEN chk_duplicates;
46     FETCH chk_duplicates INTO dummy;
47 
48     IF chk_duplicates%FOUND THEN
49       CLOSE chk_duplicates;
50       IF (x_group_id IS NULL) THEN
51         fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JI_SOURCE');
52       ELSE
53         fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JI_SOURCE_COMBO');
54       END IF;
55       app_exception.raise_exception;
56     END IF;
57 
58     CLOSE chk_duplicates;
59 
60   EXCEPTION
61     WHEN app_exceptions.application_exception THEN
62       RAISE;
63     WHEN OTHERS THEN
64       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
65       fnd_message.set_token('PROCEDURE',
66                             'gl_interface_pkg.check_unique');
67       RAISE;
68   END check_unique;
69 
70   FUNCTION used_in_alternate_table(
71              x_int_je_source_name VARCHAR2) RETURN VARCHAR2 IS
72     CURSOR chk_usage is
73       SELECT 'Other table'
74       FROM   GL_JE_SOURCES s, GL_INTERFACE_CONTROL ic
75       WHERE  (    (    s.user_je_source_name = x_int_je_source_name
76                    AND s.import_using_key_flag = 'N')
77                OR (    s.je_source_key = x_int_je_source_name
78                    AND s.import_using_key_flag = 'Y'))
79       AND    ic.je_source_name     = s.je_source_name
80       AND    ic.status            <> 'S'
81       AND    nvl(upper(ic.interface_table_name), 'GL_INTERFACE')
82                <> 'GL_INTERFACE';
83     dummy VARCHAR2(100);
84   BEGIN
85     OPEN chk_usage;
86     FETCH chk_usage INTO dummy;
87 
88     IF chk_usage%FOUND THEN
89       CLOSE chk_usage;
90       RETURN('Y');
91     ELSE
92       CLOSE chk_usage;
93       RETURN('N');
94     END IF;
95 
96   EXCEPTION
97     WHEN app_exceptions.application_exception THEN
98       RAISE;
99     WHEN OTHERS THEN
100       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
101       fnd_message.set_token('PROCEDURE',
102                        'gl_interface_control_pkg.used_in_alternate_table');
103       RAISE;
104   END used_in_alternate_table;
105 
106   FUNCTION get_interface_table(
107              x_int_je_source_name VARCHAR2,
108              x_group_id            NUMBER) RETURN VARCHAR2 IS
109     CURSOR get_table is
110       SELECT interface_table_name
111       FROM   GL_JE_SOURCES s, GL_INTERFACE_CONTROL ic
112       WHERE  (    (    s.user_je_source_name = x_int_je_source_name
113                    AND s.import_using_key_flag = 'N')
114                OR (    s.je_source_key = x_int_je_source_name
115                    AND s.import_using_key_flag = 'Y'))
116       AND    ic.je_source_name     = s.je_source_name
117       AND    ic.group_id           = x_group_id
118       AND    ic.status            <> 'S';
119     itable VARCHAR2(30);
120   BEGIN
121 
122     OPEN get_table;
123     FETCH get_table INTO itable;
124 
125     IF get_table%FOUND THEN
126       CLOSE get_table;
127       RETURN(itable);
128     ELSE
129       CLOSE get_table;
130       RETURN('GL_INTERFACE');
131     END IF;
132 
133   EXCEPTION
134     WHEN app_exceptions.application_exception THEN
135       RAISE;
136     WHEN OTHERS THEN
137       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
138       fnd_message.set_token('PROCEDURE',
139                        'gl_interface_control_pkg.get_interface_table');
140       RAISE;
141   END get_interface_table;
142 
143   PROCEDURE insert_row(xinterface_run_id NUMBER,
144 		       xje_source_name   VARCHAR2,
145                        xledger_id        NUMBER,
146                        xgroup_id         NUMBER,
147 		       xpacket_id	 NUMBER DEFAULT NULL) IS
148     CURSOR C IS
149            SELECT rowid
150            FROM gl_interface_control
151            WHERE interface_run_id  = xinterface_run_id
152 	   AND   je_source_name    = xje_source_name
153            AND   set_of_books_id   = xledger_id
154            AND   nvl(group_id, -1) = nvl(xgroup_id, -1);
155 
156     X_Rowid VARCHAR2(18);
157   BEGIN
158 
159     -- Do the insert
160     INSERT INTO gl_interface_control(
161       interface_run_id,
162       je_source_name,
163       set_of_books_id,
164       group_id,
165       status,
166       packet_id
167     ) VALUES (
168       xinterface_run_id,
169       xje_source_name,
170       xledger_id,
171       xgroup_id,
172       'S',
173       xpacket_id
174     );
175 
176     OPEN C;
177     FETCH C INTO X_Rowid;
178     if (C%NOTFOUND) then
179       CLOSE C;
180       RAISE NO_DATA_FOUND;
181     end if;
182     CLOSE C;
183   END insert_row;
184 
185 END gl_interface_control_pkg;