DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_DEFAS_ACCESS_DETAILS_PKG

Source


1 PACKAGE BODY gl_defas_access_details_pkg AS
2 /* $Header: glistddb.pls 120.16 2006/04/10 21:28:48 cma ship $ */
3 
4   PROCEDURE get_query_component( X_Object_Type         VARCHAR2,
5                                  X_Id_Column    IN OUT NOCOPY VARCHAR2,
6                                  X_Name_Column  IN OUT NOCOPY VARCHAR2,
7                                  X_Desc_Column  IN OUT NOCOPY VARCHAR2,
8                                  X_Where_Clause IN OUT NOCOPY VARCHAR2,
9                                  X_Table_Name   IN OUT NOCOPY VARCHAR2)IS
10   BEGIN
11     X_Name_Column := 'NAME ';
12     X_Desc_Column := 'DESCRIPTION ';
13     X_Where_Clause := '';
14     IF(X_Object_Type = 'GL_DAS_FSG_ROW_SET')THEN
15        X_Id_Column := 'to_char(AXIS_SET_ID) ';
16        X_Table_Name := 'RG_REPORT_AXIS_SETS ';
17        X_Where_Clause := 'WHERE AXIS_SET_TYPE = ''R''';
18     ELSIF(X_Object_Type = 'GL_DAS_FSG_COLUMN_SET')THEN
19        X_Id_Column := 'to_char(AXIS_SET_ID) ';
20        X_Table_Name := 'RG_REPORT_AXIS_SETS ';
21        X_Where_Clause := 'WHERE AXIS_SET_TYPE = ''C''';
22     ELSIF(X_Object_Type = 'GL_DAS_FSG_CONTENT_SET')THEN
23        X_Id_Column := 'to_char(CONTENT_SET_ID) ';
24        X_Table_Name := 'RG_REPORT_CONTENT_SETS ';
25     ELSIF(X_Object_Type = 'GL_DAS_FSG_ROW_ORDER')THEN
26        X_Id_Column := 'to_char(ROW_ORDER_ID)';
27        X_Table_Name := 'RG_ROW_ORDERS';
28     ELSIF(X_Object_Type = 'GL_DAS_FSG_REPORT')THEN
29        X_Id_Column := 'to_char(REPORT_ID) ';
30        X_Table_Name := 'RG_REPORTS ';
31     ELSIF(X_Object_Type = 'GL_DAS_FSG_REPORT_SET')THEN
32        X_Id_Column := 'to_char(REPORT_SET_ID)';
33        X_Table_Name := 'RG_REPORT_SETS ';
34     ELSIF(X_Object_Type = 'GL_DAS_MASSALLOCATION')THEN
35        X_Id_Column := 'to_char(ALLOCATION_BATCH_ID) ';
36        X_Table_Name := 'GL_ALLOC_BATCHES ';
37        X_Where_Clause := 'WHERE ACTUAL_FLAG IN (''A'',''E'')';
38     ELSIF(X_Object_Type = 'GL_DAS_MASSBUDGET')THEN
39        X_Id_Column := 'to_char(ALLOCATION_BATCH_ID) ';
40        X_Table_Name := 'GL_ALLOC_BATCHES ';
41        X_Where_Clause := 'WHERE ACTUAL_FLAG = ''B''';
42     ELSIF(X_Object_Type = 'GL_DAS_RECURRING_JOURNAL')THEN
43        X_Id_Column := 'to_char(RECURRING_BATCH_ID) ';
44        X_Table_Name := 'GL_RECURRING_BATCHES ';
45        X_Where_Clause := 'WHERE BUDGET_FLAG = ''N''';
46     ELSIF(X_Object_Type = 'GL_DAS_BUDGET_FORMULA')THEN
47        X_Id_Column := 'to_char(RECURRING_BATCH_ID) ';
48        X_Table_Name := 'GL_RECURRING_BATCHES ';
49        X_Where_Clause := 'WHERE BUDGET_FLAG = ''Y''';
50     ELSIF(X_Object_Type = 'GL_DAS_CALENDAR')THEN
51        X_Name_Column := 'PERIOD_SET_NAME';
52        X_Id_Column := 'PERIOD_SET_NAME';
53        X_Table_Name := 'GL_PERIOD_SETS';
54     ELSIF(X_Object_Type = 'GL_DAS_AUTOPOST_SET')THEN
55        X_Name_Column := 'AUTOPOST_SET_NAME';
56        X_Id_Column := 'to_char(AUTOPOST_SET_ID)';
57        X_Table_Name := 'GL_AUTOMATIC_POSTING_SETS';
58     ELSIF(X_Object_Type = 'GL_DAS_TRANS_CAL')THEN
59        X_Id_Column := 'to_char(TRANSACTION_CALENDAR_ID)';
60        X_Table_Name := 'GL_TRANSACTION_CALENDAR';
61     ELSIF(X_Object_Type = 'GL_DAS_RATE_TYPES')THEN
62        X_Name_Column := 'USER_CONVERSION_TYPE';
63        X_Id_Column := 'CONVERSION_TYPE';
64        X_Table_Name := 'GL_DAILY_CONVERSION_TYPES';
65     ELSIF (X_Object_Type = 'GL_DAS_REVALUATION')THEN
66        X_Id_Column := 'to_char(REVALUATION_ID)';
67        X_Table_Name := 'GL_REVALUATIONS';
68     ELSIF(X_Object_Type = 'GL_DAS_AUTO_ALLOC_SETS')THEN
69        X_Name_Column := 'ALLOCATION_SET_NAME';
70        X_Id_Column := 'to_char(ALLOCATION_SET_ID)';
71        X_Table_Name := 'GL_AUTO_ALLOC_SETS';
72     ELSIF(X_Object_Type = 'GL_DAS_BUDGET_ORG')THEN
73        X_Id_Column := 'to_char(BUDGET_ENTITY_ID)';
74        X_Table_Name := 'GL_BUDGET_ENTITIES';
75     ELSIF(X_Object_Type = 'GL_DAS_COA_MAPPING')THEN
76        X_Id_Column := 'to_char(COA_MAPPING_ID)';
77        X_Table_Name := 'GL_COA_MAPPINGS';
78     ELSIF(X_Object_Type = 'GL_DAS_AUTOREVERSE_SET')THEN
79        X_Name_Column := 'CRITERIA_SET_NAME';
80        X_Id_Column := 'to_char(CRITERIA_SET_ID)';
81        X_Desc_Column :='CRITERIA_SET_DESC';
82        X_Table_Name := 'GL_AUTOREV_CRITERIA_SETS';
83     ELSIF(X_Object_Type = 'GL_DAS_ELIMINATION_SET')THEN
84        X_Id_Column := 'to_char(ELIMINATION_SET_ID)';
85        X_Table_Name := 'GL_ELIMINATION_SETS';
86     ELSIF(X_Object_Type = 'GL_DAS_CONSOLIDATION')THEN
87        X_Id_Column := 'to_char(CONSOLIDATION_ID)';
88        X_Table_Name := 'GL_CONSOLIDATION';
89     ELSIF(X_Object_Type = 'GL_DAS_CONSOLIDATION_SET')THEN
90        X_Id_Column := 'to_char(CONSOLIDATION_SET_ID)';
91        X_Table_Name := 'GL_CONSOLIDATION_SETS';
92     END IF;
93 
94     IF(X_Where_Clause IS NULL)THEN
95        X_Where_Clause := ' WHERE SECURITY_FLAG = ''Y''';
96     ELSE
97        X_Where_Clause := X_Where_Clause||' AND SECURITY_FLAG = ''Y''';
98     END IF;
99 
100   END get_query_component;
101 
102   FUNCTION get_object_name( X_Obj_Type VARCHAR2,
103                             X_Obj_Key  VARCHAR2) RETURN VARCHAR2 IS
104     id_column    VARCHAR2(50);
105     name_column  VARCHAR2(30);
106     desc_column  VARCHAR2(30);
107     table_name   VARCHAR2(60);
108     where_clause VARCHAR2(5000);
109     query_stat   VARCHAR2(5000);
110     name_val     VARCHAR2(30);
111     c            NUMBER;
112     ignore       NUMBER;
113     object_name  VARCHAR2(240);
114   BEGIN
115     GET_QUERY_COMPONENT(
116                X_Object_Type          => X_Obj_Type,
117                X_Id_Column            => id_column,
118                X_Name_Column          => name_column,
119                X_Desc_Column          => desc_column,
120                X_Table_Name           => table_name,
121                X_Where_Clause         => where_clause);
122     query_stat := 'SELECT '||name_column||' FROM '||table_name||
123                   ' WHERE '||id_column||'= :1';
124     c := dbms_sql.open_cursor;
125     dbms_sql.parse(c,query_stat,dbms_sql.native);
126     dbms_sql.bind_variable(c, ':1', X_Obj_Key );
127     dbms_sql.define_column(c,1,name_val,30);
128     ignore := dbms_sql.execute(c);
129     LOOP
130       IF(dbms_sql.fetch_rows(c)>0)THEN
131          dbms_sql.column_value(c,1,name_val);
132          object_name := name_val;
133       ELSE
134          EXIT;
135       END IF;
136     END LOOP;
137     RETURN object_name;
138   END get_object_name;
139 
140 
141   FUNCTION get_object_key(  X_Obj_Type VARCHAR2,
142                             X_Obj_Name  VARCHAR2) RETURN VARCHAR2 IS
143     id_column    VARCHAR2(50);
144     name_column  VARCHAR2(30);
145     desc_column  VARCHAR2(30);
146     table_name   VARCHAR2(60);
150     c            NUMBER;
147     where_clause VARCHAR2(5000);
148     query_stat   VARCHAR2(5000);
149     name_val     VARCHAR2(30);
151     ignore       NUMBER;
152     object_key  VARCHAR2(100);
153   BEGIN
154     GET_QUERY_COMPONENT(
155                X_Object_Type          => X_Obj_Type,
156                X_Id_Column            => id_column,
157                X_Name_Column          => name_column,
158                X_Desc_Column          => desc_column,
159                X_Table_Name           => table_name,
160                X_Where_Clause         => where_clause);
161     query_stat := 'SELECT '||id_column||' FROM '||table_name||
162                   ' WHERE '||name_column||'= :1';
163     c := dbms_sql.open_cursor;
164     dbms_sql.parse(c,query_stat,dbms_sql.native);
165     dbms_sql.bind_variable(c, ':1', X_Obj_Name);
166     dbms_sql.define_column(c,1,name_val,30);
167     ignore := dbms_sql.execute(c);
168     LOOP
169       IF(dbms_sql.fetch_rows(c)>0)THEN
170          dbms_sql.column_value(c,1,name_val);
171          object_key := name_val;
172       ELSE
173          EXIT;
174       END IF;
175     END LOOP;
176     RETURN object_key;
177   END get_object_key;
178 
179   PROCEDURE secure_object (X_Obj_Type VARCHAR2,
180                            X_Obj_Key  VARCHAR2) IS
181     id_column    VARCHAR2(50);
182     name_column  VARCHAR2(30);
183     desc_column  VARCHAR2(30);
184     table_name   VARCHAR2(60);
185     where_clause VARCHAR2(5000);
186     query_stat   VARCHAR2(5000);
187     update_stat  VARCHAR2(5000);
188     securityFlag VARCHAR2(1);
189     c            NUMBER;
190     ignore       NUMBER;
191     rowid        VARCHAR2(1000);
192     defasId      NUMBER(15);
193     luser_id     NUMBER;
194     llogin_id    NUMBER;
195     CURSOR super_defas IS
196     select definition_access_set_id
197     from gl_defas_access_sets
198     where definition_access_set = 'SUPER_USER_DEFAS';
199 
200   BEGIN
201     GET_QUERY_COMPONENT(
202                X_Object_Type          => X_Obj_Type,
203                X_Id_Column            => id_column,
204                X_Name_Column          => name_column,
205                X_Desc_Column          => desc_column,
206                X_Table_Name           => table_name,
207                X_Where_Clause         => where_clause);
208     query_stat := 'SELECT security_flag FROM '||table_name||
209 		  ' WHERE to_char('||id_column||')= :1';
210     c := dbms_sql.open_cursor;
211     dbms_sql.parse(c,query_stat,dbms_sql.native);
212     dbms_sql.bind_variable(c, ':1', X_Obj_Key);
213     dbms_sql.define_column(c,1,securityFlag,1);
214     ignore := dbms_sql.execute(c);
215     LOOP
216       IF(dbms_sql.fetch_rows(c)>0)THEN
217          dbms_sql.column_value(c,1,securityFlag);
218       ELSE
219          EXIT;
220       END IF;
221     END LOOP;
222 
223     luser_id := FND_GLOBAL.User_Id;
224     llogin_id := FND_GLOBAL.Login_Id;
225     IF(securityFlag = 'N') THEN
226        update_stat := 'UPDATE '||table_name||' SET security_flag = ''Y'''||
227                       ' WHERE to_char('||id_column||')= :1';
228        c := dbms_sql.open_cursor;
229        dbms_sql.parse(c,update_stat,dbms_sql.native);
230        dbms_sql.bind_variable(c, ':1', X_Obj_Key);
231        ignore := dbms_sql.execute(c);
232 
233        OPEN super_defas;
234        FETCH super_defas INTO defasId;
235        if (super_defas%NOTFOUND) then
236           CLOSE super_defas;
237           RAISE NO_DATA_FOUND;
238        end if;
239        CLOSE super_defas;
240 
241        Insert_Row(rowid,
242 	  	  defasId,
243 		  X_Obj_Type,
244 		  X_Obj_Key,
245 		  'Y',
246 		  'Y',
247 		  'Y',
248 		  luser_id,
249 		  llogin_id,
250  		  sysdate,
251 		  'I',
252 		  NULL,
253 		  NULL,
254 		  NULL,
255 		  NULL,
256 		  NULL,
257 		  NULL,
258 		  NULL,
259 		  NULL,
260 		  NULL,
261 		  NULL,
262 		  NULL,
263 		  NULL,
264 		  NULL,
265 		  NULL,
266 		  NULL,
267 		  NULL,
268 		  NULL);
269 
270     END IF;
271   END secure_object;
272 
273   PROCEDURE Insert_Row(
274                        X_Rowid              IN OUT NOCOPY VARCHAR2,
275                        X_Definition_Access_Set_Id  NUMBER,
279                        X_Use_Access_Flag            VARCHAR2,
276                        X_Object_Type               VARCHAR2,
277                        X_Object_Key                VARCHAR2,
278                        X_View_Access_Flag          VARCHAR2,
280                        X_Modify_Access_Flag        VARCHAR2,
281                        X_User_Id                   NUMBER,
282                        X_Login_Id                  NUMBER,
283                        X_Date                      DATE,
284                        X_Status_Code               VARCHAR2 DEFAULT NULL,
285                        X_Context                   VARCHAR2 DEFAULT NULL,
286                        X_Attribute1                VARCHAR2 DEFAULT NULL,
287                        X_Attribute2                VARCHAR2 DEFAULT NULL,
288                        X_Attribute3                VARCHAR2 DEFAULT NULL,
289                        X_Attribute4                VARCHAR2 DEFAULT NULL,
290                        X_Attribute5                VARCHAR2 DEFAULT NULL,
291                        X_Attribute6                VARCHAR2 DEFAULT NULL,
292                        X_Attribute7                VARCHAR2 DEFAULT NULL,
293                        X_Attribute8                VARCHAR2 DEFAULT NULL,
294                        X_Attribute9                VARCHAR2 DEFAULT NULL,
295                        X_Attribute10               VARCHAR2 DEFAULT NULL,
296                        X_Attribute11               VARCHAR2 DEFAULT NULL,
297                        X_Attribute12               VARCHAR2 DEFAULT NULL,
298                        X_Attribute13               VARCHAR2 DEFAULT NULL,
299                        X_Attribute14               VARCHAR2 DEFAULT NULL,
300                        X_Attribute15               VARCHAR2 DEFAULT NULL,
301                        X_Request_Id                NUMBER)IS
302 
303      CURSOR C IS
304        SELECT rowid
305        FROM gl_defas_assignments
306        WHERE definition_access_set_id = X_Definition_Access_Set_Id
307        AND   object_type = X_Object_Type
308        AND   object_key = X_Object_Key;
309   BEGIN
310      INSERT INTO gl_defas_assignments
311      (definition_access_set_id,
312       object_type,
313       object_key,
314       view_access_flag,
315       use_access_flag,
316       modify_access_flag,
317       last_update_date,
318       last_updated_by,
322       status_code,
319       creation_date,
320       created_by,
321       last_update_login,
323       context,
324       attribute1,
325       attribute2,
326       attribute3,
327       attribute4,
328       attribute5,
329       attribute6,
330       attribute7,
331       attribute8,
332       attribute9,
333       attribute10,
334       attribute11,
335       attribute12,
336       attribute13,
337       attribute14,
338       attribute15,
339       request_id)
340      VALUES
341      (X_Definition_Access_Set_Id,
342       X_Object_Type,
343       X_Object_Key,
344       X_View_Access_Flag,
345       X_Use_Access_Flag,
346       X_Modify_Access_Flag,
347       X_Date,
348       X_User_Id,
349       X_Date,
350       X_User_Id,
351       X_Login_Id,
352       X_Status_Code,
353       X_Context,
354       X_Attribute1,
355       X_Attribute2,
356       X_Attribute3,
357       X_Attribute4,
358       X_Attribute5,
362       X_Attribute9,
359       X_Attribute6,
360       X_Attribute7,
361       X_Attribute8,
363       X_Attribute10,
364       X_Attribute11,
365       X_Attribute12,
366       X_Attribute13,
367       X_Attribute14,
368       X_Attribute15,
369       X_Request_Id);
370 
371      OPEN C;
372      FETCH C INTO X_Rowid;
373      if (C%NOTFOUND) then
374        CLOSE C;
375        RAISE NO_DATA_FOUND;
376      end if;
377      CLOSE C;
378   END Insert_Row;
379 
380   PROCEDURE Update_Row(
381                        X_Rowid              IN OUT NOCOPY VARCHAR2,
382                        X_View_Access_Flag          VARCHAR2,
383                        X_Use_Access_Flag            VARCHAR2,
384                        X_Modify_Access_Flag        VARCHAR2,
385                        X_Last_Update_Date          DATE,
386                        X_Last_Updated_By           NUMBER,
387                        X_Last_Update_Login         NUMBER,
388                        X_Request_Id                NUMBER,
389                        X_Status_Code               VARCHAR2,
390                        X_Context                   VARCHAR2 DEFAULT NULL,
391                        X_Attribute1                VARCHAR2 DEFAULT NULL,
392                        X_Attribute2                VARCHAR2 DEFAULT NULL,
393                        X_Attribute3                VARCHAR2 DEFAULT NULL,
394                        X_Attribute4                VARCHAR2 DEFAULT NULL,
395                        X_Attribute5                VARCHAR2 DEFAULT NULL,
396                        X_Attribute6                VARCHAR2 DEFAULT NULL,
397                        X_Attribute7                VARCHAR2 DEFAULT NULL,
398                        X_Attribute8                VARCHAR2 DEFAULT NULL,
399                        X_Attribute9                VARCHAR2 DEFAULT NULL,
400                        X_Attribute10               VARCHAR2 DEFAULT NULL,
401                        X_Attribute11               VARCHAR2 DEFAULT NULL,
402                        X_Attribute12               VARCHAR2 DEFAULT NULL,
403                        X_Attribute13               VARCHAR2 DEFAULT NULL,
404                        X_Attribute14               VARCHAR2 DEFAULT NULL,
405                        X_Attribute15               VARCHAR2 DEFAULT NULL) IS
406   BEGIN
407   UPDATE gl_defas_assignments
408   SET view_access_flag = X_View_Access_Flag,
409       use_access_flag = X_Use_Access_Flag,
410       modify_access_flag = X_Modify_Access_Flag,
411       last_update_date = X_Last_Update_Date,
412       last_updated_by = X_Last_Updated_By,
413       last_update_login = X_Last_Update_Login,
414       request_id = X_Request_Id,
415       status_code = X_Status_Code,
416       context = X_Context,
417       attribute1 = X_Attribute1,
418       attribute2 = X_Attribute2,
419       attribute3 = X_Attribute3,
420       attribute4 = X_Attribute4,
421       attribute5 = X_Attribute5,
422       attribute6 = X_Attribute6,
423       attribute7 = X_Attribute7,
424       attribute8 = X_Attribute8,
425       attribute9 = X_Attribute9,
426       attribute10 = X_Attribute10,
427       attribute11 = X_Attribute11,
428       attribute12 = X_Attribute12,
429       attribute13 = X_Attribute13,
430       attribute14 = X_Attribute14,
431       attribute15 = X_Attribute15
432   WHERE rowid = X_Rowid;
433 
434   if (SQL%NOTFOUND) then
435       Raise NO_DATA_FOUND;
436   end if;
437 
438   END Update_Row;
439 
440 
441   PROCEDURE Lock_Row(
442                        X_Rowid              IN OUT NOCOPY VARCHAR2,
443                        X_Definition_Access_Set_Id  NUMBER,
444                        X_Object_Type               VARCHAR2,
445                        X_Object_Key                VARCHAR2,
446                        X_View_Access_Flag          VARCHAR2,
447                        X_Use_Access_Flag            VARCHAR2,
448                        X_Modify_Access_Flag        VARCHAR2,
449                        X_Last_Update_Date          DATE,
450                        X_Last_Updated_By           NUMBER,
451                        X_Creation_Date             DATE,
452                        X_Created_By                NUMBER,
453                        X_Last_Update_Login         NUMBER,
454                        X_Status_Code               VARCHAR2 DEFAULT NULL,
455                        X_Context                   VARCHAR2 DEFAULT NULL,
456                        X_Attribute1                VARCHAR2 DEFAULT NULL,
457                        X_Attribute2                VARCHAR2 DEFAULT NULL,
458                        X_Attribute3                VARCHAR2 DEFAULT NULL,
459                        X_Attribute4                VARCHAR2 DEFAULT NULL,
460                        X_Attribute5                VARCHAR2 DEFAULT NULL,
461                        X_Attribute6                VARCHAR2 DEFAULT NULL,
462                        X_Attribute7                VARCHAR2 DEFAULT NULL,
463                        X_Attribute8                VARCHAR2 DEFAULT NULL,
464                        X_Attribute9                VARCHAR2 DEFAULT NULL,
465                        X_Attribute10               VARCHAR2 DEFAULT NULL,
466                        X_Attribute11               VARCHAR2 DEFAULT NULL,
467                        X_Attribute12               VARCHAR2 DEFAULT NULL,
468                        X_Attribute13               VARCHAR2 DEFAULT NULL,
469                        X_Attribute14               VARCHAR2 DEFAULT NULL,
470                        X_Attribute15               VARCHAR2 DEFAULT NULL,
471                        X_Request_Id                NUMBER )IS
472      CURSOR C IS
473        SELECT *
474        FROM gl_defas_assignments
475        WHERE rowid = X_Rowid
476        FOR UPDATE of Definition_Access_Set_Id NOWAIT;
477      Recinfo C%ROWTYPE;
478      l_request_id     NUMBER(15);
479      l_call_status    BOOLEAN;
483      l_dstatus        VARCHAR2(30);
480      l_rphase         VARCHAR2(80);
481      l_rstatus        VARCHAR2(80);
482      l_dphase         VARCHAR2(30);
484      l_message        VARCHAR2(240);
485   BEGIN
486      IF(X_Request_Id IS NOT NULL) THEN
487         l_request_id := X_Request_Id;
488         l_call_status :=
489         FND_CONCURRENT.GET_REQUEST_STATUS(request_id     => l_request_id,
490                                           appl_shortname => 'SQLGL',
491                                           program        => 'GL',
492                                           phase          => l_rphase,
493                                           status         => l_rstatus,
494                                           dev_phase      => l_dphase,
495                                           dev_status     => l_dstatus,
496                                           message        => l_message);
497 
498         IF (l_dphase = 'RUNNING') THEN
499             FND_MESSAGE.Set_Name('GL', 'GL_LEDGER_RECORD_PROC_BY_FLAT');
500             APP_EXCEPTION.Raise_Exception;
501         END IF;
502      END IF;
503 
504      OPEN C;
505      FETCH C INTO Recinfo;
506      if (C%NOTFOUND) then
507         CLOSE C;
508         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
509         APP_EXCEPTION.RAISE_EXCEPTION;
510      end if;
511      CLOSE C;
512      if (
513            (   (Recinfo.definition_access_set_id = X_Definition_Access_Set_Id)
514             OR (    (Recinfo.definition_access_set_id IS NULL)
515                 AND (X_Definition_Access_Set_Id IS NULL)))
516        AND (   (Recinfo.object_type = X_Object_Type)
517             OR (    (Recinfo.object_type IS NULL)
518                 AND (X_Object_Type IS NULL)))
519        AND (   (Recinfo.object_key = X_Object_Key)
520             OR (    (Recinfo.object_key IS NULL)
521                 AND (X_Object_Key IS NULL)))
522        AND (   (Recinfo.view_access_flag = X_View_Access_Flag)
523             OR (    (Recinfo.view_access_flag IS NULL)
524                 AND (X_View_Access_Flag IS NULL)))
525        AND (   (Recinfo.use_access_flag = X_Use_Access_Flag)
526             OR (    (Recinfo.use_access_flag IS NULL)
527                 AND (X_Use_Access_Flag IS NULL)))
528        AND (   (Recinfo.modify_access_flag = X_Modify_Access_Flag)
529             OR (    (Recinfo.modify_access_flag IS NULL)
530                 AND (X_Modify_Access_Flag IS NULL)))
531        AND (   (Recinfo.last_update_date = X_Last_Update_Date)
532             OR (    (Recinfo.last_update_date IS NULL)
533                 AND (X_Last_Update_Date IS NULL)))
534        AND (   (Recinfo.last_updated_by = X_Last_Updated_By)
535             OR (    (Recinfo.last_updated_by IS NULL)
536                 AND (X_Last_Updated_By IS NULL)))
537        AND (   (Recinfo.creation_date = X_Creation_Date)
538             OR (    (Recinfo.creation_date is NULL)
539                 AND (X_Creation_Date IS NULL)))
540        AND (   (Recinfo.created_by = X_Created_By)
541             OR (    (Recinfo.created_by IS NULL)
542                 AND (X_Created_By IS NULL)))
543        AND (   (Recinfo.last_update_login = X_Last_Update_Login)
544             OR (    (Recinfo.last_update_login IS NULL)
545                 AND (X_Last_Update_Login IS NULL)))
546        AND (   (Recinfo.status_code = X_Status_Code)
547             OR (    (Recinfo.status_code IS NULL)
548                 AND (X_Status_Code IS NULL)))
549        AND (   (Recinfo.context = X_Context)
550             OR (    (Recinfo.context IS NULL)
551                 AND (X_Context IS NULL)))
552        AND (   (Recinfo.attribute1 = X_Attribute1)
553             OR (    (Recinfo.attribute1 IS NULL)
554                 AND (X_Attribute1 IS NULL)))
555        AND (   (Recinfo.attribute2 = X_Attribute2)
556             OR (    (Recinfo.attribute2 IS NULL)
557                 AND (X_Attribute2 IS NULL)))
558        AND (   (Recinfo.attribute3 = X_Attribute3)
559             OR (    (Recinfo.attribute3 IS NULL)
560                 AND (X_Attribute3 IS NULL)))
561        AND (   (Recinfo.attribute4 = X_Attribute4)
562             OR (    (Recinfo.attribute4 IS NULL)
563                 AND (X_Attribute4 IS NULL)))
564        AND (   (Recinfo.attribute5 = X_Attribute5)
565             OR (    (Recinfo.attribute5 IS NULL)
566                 AND (X_Attribute5 IS NULL)))
567        AND (   (Recinfo.attribute6 = X_Attribute6)
568             OR (    (Recinfo.attribute6 IS NULL)
569                 AND (X_Attribute6 IS NULL)))
570        AND (   (Recinfo.attribute7 = X_Attribute7)
571             OR (    (Recinfo.attribute7 IS NULL)
572                 AND (X_Attribute7 IS NULL)))
573        AND (   (Recinfo.attribute8 = X_Attribute8)
574             OR (    (Recinfo.attribute8 IS NULL)
575                 AND (X_Attribute8 IS NULL)))
576        AND (   (Recinfo.attribute9 = X_Attribute9)
577             OR (    (Recinfo.attribute9 IS NULL)
578                 AND (X_Attribute9 IS NULL)))
579        AND (   (Recinfo.attribute10 = X_Attribute10)
580             OR (    (Recinfo.attribute10 IS NULL)
581                 AND (X_Attribute10 IS NULL)))
582        AND (   (Recinfo.attribute11 = X_Attribute11)
583             OR (    (Recinfo.attribute11 IS NULL)
584                 AND (X_Attribute11 IS NULL)))
585        AND (   (Recinfo.attribute12 = X_Attribute12)
586             OR (    (Recinfo.attribute12 IS NULL)
587                 AND (X_Attribute12 IS NULL)))
588        AND (   (Recinfo.attribute13 = X_Attribute13)
589             OR (    (Recinfo.attribute13 IS NULL)
590                 AND (X_Attribute13 IS NULL)))
591        AND (   (Recinfo.attribute14 = X_Attribute14)
592             OR (    (Recinfo.attribute14 IS NULL)
593                 AND (X_Attribute14 IS NULL)))
594        AND (   (Recinfo.attribute15 = X_Attribute15)
595             OR (    (Recinfo.attribute15 IS NULL)
599                     AND (X_Request_Id IS NULL)))
596                 AND (X_Attribute15 IS NULL)))
597        AND (   (Recinfo.request_id =  X_Request_Id)
598                 OR (    (Recinfo.request_id IS NULL)
600     ) then
601        return;
602     else
603        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
604        APP_EXCEPTION.RAISE_EXCEPTION;
605     end if;
606   END Lock_Row;
607 
608   PROCEDURE Delete_Row(X_Rowid       VARCHAR2,
609                        X_Status_Code VARCHAR2) IS
610   BEGIN
611     if( X_Status_Code = 'D') then
612        UPDATE GL_DEFAS_ASSIGNMENTS
613        SET status_code = 'D'
614        WHERE rowid = X_Rowid;
615     else
616        DELETE FROM gl_defas_assignments
617        WHERE rowid = X_Rowid;
618     end if;
619 
620     if SQL%NOTFOUND then
621       RAISE NO_DATA_FOUND;
622     end if;
623   END Delete_Row;
624 
625   PROCEDURE check_unique_name(X_Definition_Access_Set_Id  NUMBER,
626                             X_Object_Type  VARCHAR2,
627                             X_Object_Key   VARCHAR2 ) IS
628 
629     CURSOR c_dup IS
630       SELECT 'Duplicate'
631       FROM   GL_DEFAS_ASSIGNMENTS a
632       WHERE  a.object_type = X_Object_Type
633       AND    a.object_key = X_Object_Key
634       AND    a.definition_access_set_id = X_Definition_Access_Set_Id
635       AND    (a.status_code <> 'D' or a.status_code is null);
636 
637     dummy VARCHAR2(100);
638 
639   BEGIN
640     OPEN  c_dup;
641     FETCH c_dup INTO dummy;
642 
643     IF c_dup%FOUND THEN
644       CLOSE c_dup;
645       fnd_message.set_name( 'SQLGL', 'GL_DEFAS_ASSIGN_DUPLICATE' );
646       app_exception.raise_exception;
647     END IF;
648 
649     CLOSE c_dup;
650 
651   EXCEPTION
652     WHEN app_exceptions.application_exception THEN
653       RAISE;
654     WHEN OTHERS THEN
655       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
656       fnd_message.set_token('PROCEDURE',
657         'GL_DEFAS_ACCESS_DETAILS_PKG.check_unique_name');
658       RAISE;
659   END check_unique_name;
660 
661 FUNCTION submit_conc_request RETURN NUMBER
662 IS
663 result         NUMBER :=-1;
664 BEGIN
665     -- Submit the request to run Rate Change concurrent program
666     result     := FND_REQUEST.submit_request (
667                             'SQLGL','GLDASF','','',FALSE,
668                   	    'OA','Y',chr(0),
669                             '','','','','','','',
670                             '','','','','','','','','','',
671                             '','','','','','','','','','',
672                             '','','','','','','','','','',
673                             '','','','','','','','','','',
674                             '','','','','','','','','','',
675                             '','','','','','','','','','',
676                             '','','','','','','','','','',
677                             '','','','','','','','','','',
678                             '','','','','','','','','','');
679 
680     return(result);
681 
682 END submit_conc_request;
683 
684 
685 END gl_defas_access_details_pkg;