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.18 2011/06/02 04:42:17 skotakar 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     dbms_sql.close_cursor(c);---Added for bug 8526480
138     RETURN object_name;
139   END get_object_name;
140 
141 
142   FUNCTION get_object_key(  X_Obj_Type VARCHAR2,
143                             X_Obj_Name  VARCHAR2) RETURN VARCHAR2 IS
144     id_column    VARCHAR2(50);
145     name_column  VARCHAR2(30);
146     desc_column  VARCHAR2(30);
147     table_name   VARCHAR2(60);
148     where_clause VARCHAR2(5000);
149     query_stat   VARCHAR2(5000);
150     name_val     VARCHAR2(30);
151     c            NUMBER;
152     ignore       NUMBER;
153     object_key  VARCHAR2(100);
154   BEGIN
155     GET_QUERY_COMPONENT(
156                X_Object_Type          => X_Obj_Type,
157                X_Id_Column            => id_column,
158                X_Name_Column          => name_column,
159                X_Desc_Column          => desc_column,
160                X_Table_Name           => table_name,
161                X_Where_Clause         => where_clause);
162     query_stat := 'SELECT '||id_column||' FROM '||table_name||
163                   ' WHERE '||name_column||'= :1';
164     c := dbms_sql.open_cursor;
165     dbms_sql.parse(c,query_stat,dbms_sql.native);
166     dbms_sql.bind_variable(c, ':1', X_Obj_Name);
167     dbms_sql.define_column(c,1,name_val,30);
168     ignore := dbms_sql.execute(c);
169     LOOP
170       IF(dbms_sql.fetch_rows(c)>0)THEN
171          dbms_sql.column_value(c,1,name_val);
172          object_key := name_val;
173       ELSE
174          EXIT;
175       END IF;
176     END LOOP;
177     dbms_sql.close_cursor(c);---Added for bug 8526480
178     RETURN object_key;
179   END get_object_key;
180 
181   PROCEDURE secure_object (X_Obj_Type VARCHAR2,
182                            X_Obj_Key  VARCHAR2) IS
183     id_column    VARCHAR2(50);
184     name_column  VARCHAR2(30);
185     desc_column  VARCHAR2(30);
186     table_name   VARCHAR2(60);
187     where_clause VARCHAR2(5000);
188     query_stat   VARCHAR2(5000);
189     update_stat  VARCHAR2(5000);
190     securityFlag VARCHAR2(1);
191     c            NUMBER;
192     ignore       NUMBER;
193     rowid        VARCHAR2(1000);
194     defasId      NUMBER(15);
195     luser_id     NUMBER;
196     llogin_id    NUMBER;
197     CURSOR super_defas IS
198     select definition_access_set_id
199     from gl_defas_access_sets
200     where definition_access_set = 'SUPER_USER_DEFAS';
201 
202   BEGIN
203     GET_QUERY_COMPONENT(
204                X_Object_Type          => X_Obj_Type,
205                X_Id_Column            => id_column,
206                X_Name_Column          => name_column,
207                X_Desc_Column          => desc_column,
208                X_Table_Name           => table_name,
209                X_Where_Clause         => where_clause);
210     query_stat := 'SELECT security_flag FROM '||table_name||
211 		  ' WHERE to_char('||id_column||')= :1';
212     c := dbms_sql.open_cursor;
213     dbms_sql.parse(c,query_stat,dbms_sql.native);
214     dbms_sql.bind_variable(c, ':1', X_Obj_Key);
215     dbms_sql.define_column(c,1,securityFlag,1);
216     ignore := dbms_sql.execute(c);
217     LOOP
218       IF(dbms_sql.fetch_rows(c)>0)THEN
219          dbms_sql.column_value(c,1,securityFlag);
220       ELSE
221          EXIT;
222       END IF;
223     END LOOP;
224 
225     dbms_sql.close_cursor(c);---Added for bug 8526480
226 
227     luser_id := FND_GLOBAL.User_Id;
228     llogin_id := FND_GLOBAL.Login_Id;
229     IF(securityFlag = 'N') THEN
230        update_stat := 'UPDATE '||table_name||' SET security_flag = ''Y'''||
231                       ' WHERE to_char('||id_column||')= :1';
232        c := dbms_sql.open_cursor;
233        dbms_sql.parse(c,update_stat,dbms_sql.native);
234        dbms_sql.bind_variable(c, ':1', X_Obj_Key);
235        ignore := dbms_sql.execute(c);
236 
237        OPEN super_defas;
238        FETCH super_defas INTO defasId;
239        if (super_defas%NOTFOUND) then
240           CLOSE super_defas;
241           RAISE NO_DATA_FOUND;
242        end if;
243        CLOSE super_defas;
244 
245        Insert_Row(rowid,
246 	  	  defasId,
247 		  X_Obj_Type,
248 		  X_Obj_Key,
249 		  'Y',
250 		  'Y',
251 		  'Y',
252 		  luser_id,
253 		  llogin_id,
254  		  sysdate,
255 		  'I',
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 		  NULL,
270 		  NULL,
271 		  NULL,
272 		  NULL);
273 
274     END IF;
275     dbms_sql.close_cursor(c);---Added for bug 8526480
276   END secure_object;
277 
278   PROCEDURE Insert_Row(
279                        X_Rowid              IN OUT NOCOPY VARCHAR2,
280                        X_Definition_Access_Set_Id  NUMBER,
281                        X_Object_Type               VARCHAR2,
282                        X_Object_Key                VARCHAR2,
283                        X_View_Access_Flag          VARCHAR2,
284                        X_Use_Access_Flag            VARCHAR2,
285                        X_Modify_Access_Flag        VARCHAR2,
286                        X_User_Id                   NUMBER,
287                        X_Login_Id                  NUMBER,
288                        X_Date                      DATE,
289                        X_Status_Code               VARCHAR2 DEFAULT NULL,
290                        X_Context                   VARCHAR2 DEFAULT NULL,
291                        X_Attribute1                VARCHAR2 DEFAULT NULL,
292                        X_Attribute2                VARCHAR2 DEFAULT NULL,
293                        X_Attribute3                VARCHAR2 DEFAULT NULL,
294                        X_Attribute4                VARCHAR2 DEFAULT NULL,
295                        X_Attribute5                VARCHAR2 DEFAULT NULL,
296                        X_Attribute6                VARCHAR2 DEFAULT NULL,
297                        X_Attribute7                VARCHAR2 DEFAULT NULL,
298                        X_Attribute8                VARCHAR2 DEFAULT NULL,
299                        X_Attribute9                VARCHAR2 DEFAULT NULL,
300                        X_Attribute10               VARCHAR2 DEFAULT NULL,
301                        X_Attribute11               VARCHAR2 DEFAULT NULL,
302                        X_Attribute12               VARCHAR2 DEFAULT NULL,
303                        X_Attribute13               VARCHAR2 DEFAULT NULL,
304                        X_Attribute14               VARCHAR2 DEFAULT NULL,
305                        X_Attribute15               VARCHAR2 DEFAULT NULL,
306                        X_Request_Id                NUMBER)IS
307 
308      CURSOR C IS
309        SELECT rowid
310        FROM gl_defas_assignments
311        WHERE definition_access_set_id = X_Definition_Access_Set_Id
312        AND   object_type = X_Object_Type
313        AND   object_key = X_Object_Key;
314   BEGIN
315      INSERT INTO gl_defas_assignments
316      (definition_access_set_id,
317       object_type,
318       object_key,
319       view_access_flag,
320       use_access_flag,
321       modify_access_flag,
322       last_update_date,
323       last_updated_by,
324       creation_date,
325       created_by,
326       last_update_login,
327       status_code,
328       context,
329       attribute1,
330       attribute2,
331       attribute3,
332       attribute4,
333       attribute5,
334       attribute6,
335       attribute7,
336       attribute8,
337       attribute9,
338       attribute10,
339       attribute11,
340       attribute12,
341       attribute13,
342       attribute14,
343       attribute15,
344       request_id)
345      VALUES
346      (X_Definition_Access_Set_Id,
347       X_Object_Type,
348       X_Object_Key,
349       X_View_Access_Flag,
350       X_Use_Access_Flag,
351       X_Modify_Access_Flag,
352       X_Date,
353       X_User_Id,
354       X_Date,
355       X_User_Id,
356       X_Login_Id,
357       X_Status_Code,
358       X_Context,
359       X_Attribute1,
360       X_Attribute2,
361       X_Attribute3,
362       X_Attribute4,
363       X_Attribute5,
364       X_Attribute6,
365       X_Attribute7,
366       X_Attribute8,
367       X_Attribute9,
368       X_Attribute10,
369       X_Attribute11,
370       X_Attribute12,
371       X_Attribute13,
372       X_Attribute14,
373       X_Attribute15,
374       X_Request_Id);
375 
376      OPEN C;
377      FETCH C INTO X_Rowid;
378      if (C%NOTFOUND) then
379        CLOSE C;
380        RAISE NO_DATA_FOUND;
381      end if;
382      CLOSE C;
383   END Insert_Row;
384 
385   PROCEDURE Update_Row(
386                        X_Rowid              IN OUT NOCOPY VARCHAR2,
387                        X_View_Access_Flag          VARCHAR2,
388                        X_Use_Access_Flag            VARCHAR2,
389                        X_Modify_Access_Flag        VARCHAR2,
390                        X_Last_Update_Date          DATE,
391                        X_Last_Updated_By           NUMBER,
392                        X_Last_Update_Login         NUMBER,
393                        X_Request_Id                NUMBER,
394                        X_Status_Code               VARCHAR2,
395                        X_Context                   VARCHAR2 DEFAULT NULL,
396                        X_Attribute1                VARCHAR2 DEFAULT NULL,
397                        X_Attribute2                VARCHAR2 DEFAULT NULL,
398                        X_Attribute3                VARCHAR2 DEFAULT NULL,
399                        X_Attribute4                VARCHAR2 DEFAULT NULL,
400                        X_Attribute5                VARCHAR2 DEFAULT NULL,
401                        X_Attribute6                VARCHAR2 DEFAULT NULL,
402                        X_Attribute7                VARCHAR2 DEFAULT NULL,
403                        X_Attribute8                VARCHAR2 DEFAULT NULL,
404                        X_Attribute9                VARCHAR2 DEFAULT NULL,
405                        X_Attribute10               VARCHAR2 DEFAULT NULL,
406                        X_Attribute11               VARCHAR2 DEFAULT NULL,
407                        X_Attribute12               VARCHAR2 DEFAULT NULL,
408                        X_Attribute13               VARCHAR2 DEFAULT NULL,
409                        X_Attribute14               VARCHAR2 DEFAULT NULL,
410                        X_Attribute15               VARCHAR2 DEFAULT NULL) IS
411   BEGIN
412   UPDATE gl_defas_assignments
413   SET view_access_flag = X_View_Access_Flag,
414       use_access_flag = X_Use_Access_Flag,
415       modify_access_flag = X_Modify_Access_Flag,
416       last_update_date = X_Last_Update_Date,
417       last_updated_by = X_Last_Updated_By,
418       last_update_login = X_Last_Update_Login,
419       request_id = X_Request_Id,
420       status_code = X_Status_Code,
421       context = X_Context,
422       attribute1 = X_Attribute1,
423       attribute2 = X_Attribute2,
424       attribute3 = X_Attribute3,
425       attribute4 = X_Attribute4,
426       attribute5 = X_Attribute5,
427       attribute6 = X_Attribute6,
428       attribute7 = X_Attribute7,
429       attribute8 = X_Attribute8,
430       attribute9 = X_Attribute9,
431       attribute10 = X_Attribute10,
432       attribute11 = X_Attribute11,
433       attribute12 = X_Attribute12,
434       attribute13 = X_Attribute13,
435       attribute14 = X_Attribute14,
436       attribute15 = X_Attribute15
437   WHERE rowid = X_Rowid;
438 
439   if (SQL%NOTFOUND) then
440       Raise NO_DATA_FOUND;
441   end if;
442 
443   END Update_Row;
444 
445 
446   PROCEDURE Lock_Row(
447                        X_Rowid              IN OUT NOCOPY VARCHAR2,
448                        X_Definition_Access_Set_Id  NUMBER,
449                        X_Object_Type               VARCHAR2,
450                        X_Object_Key                VARCHAR2,
451                        X_View_Access_Flag          VARCHAR2,
452                        X_Use_Access_Flag            VARCHAR2,
453                        X_Modify_Access_Flag        VARCHAR2,
454                        X_Last_Update_Date          DATE,
455                        X_Last_Updated_By           NUMBER,
456                        X_Creation_Date             DATE,
457                        X_Created_By                NUMBER,
458                        X_Last_Update_Login         NUMBER,
459                        X_Status_Code               VARCHAR2 DEFAULT NULL,
460                        X_Context                   VARCHAR2 DEFAULT NULL,
461                        X_Attribute1                VARCHAR2 DEFAULT NULL,
462                        X_Attribute2                VARCHAR2 DEFAULT NULL,
463                        X_Attribute3                VARCHAR2 DEFAULT NULL,
464                        X_Attribute4                VARCHAR2 DEFAULT NULL,
465                        X_Attribute5                VARCHAR2 DEFAULT NULL,
466                        X_Attribute6                VARCHAR2 DEFAULT NULL,
467                        X_Attribute7                VARCHAR2 DEFAULT NULL,
468                        X_Attribute8                VARCHAR2 DEFAULT NULL,
469                        X_Attribute9                VARCHAR2 DEFAULT NULL,
470                        X_Attribute10               VARCHAR2 DEFAULT NULL,
471                        X_Attribute11               VARCHAR2 DEFAULT NULL,
472                        X_Attribute12               VARCHAR2 DEFAULT NULL,
473                        X_Attribute13               VARCHAR2 DEFAULT NULL,
474                        X_Attribute14               VARCHAR2 DEFAULT NULL,
475                        X_Attribute15               VARCHAR2 DEFAULT NULL,
476                        X_Request_Id                NUMBER )IS
477      CURSOR C IS
478        SELECT *
479        FROM gl_defas_assignments
480        WHERE rowid = X_Rowid
481        FOR UPDATE of Definition_Access_Set_Id NOWAIT;
482      Recinfo C%ROWTYPE;
483      l_request_id     NUMBER(15);
484      l_call_status    BOOLEAN;
485      l_rphase         VARCHAR2(80);
486      l_rstatus        VARCHAR2(80);
487      l_dphase         VARCHAR2(30);
488      l_dstatus        VARCHAR2(30);
489      l_message        VARCHAR2(240);
490   BEGIN
491      IF(X_Request_Id IS NOT NULL) THEN
492         l_request_id := X_Request_Id;
493         l_call_status :=
494         FND_CONCURRENT.GET_REQUEST_STATUS(request_id     => l_request_id,
495                                           appl_shortname => 'SQLGL',
496                                           program        => 'GL',
497                                           phase          => l_rphase,
498                                           status         => l_rstatus,
499                                           dev_phase      => l_dphase,
500                                           dev_status     => l_dstatus,
501                                           message        => l_message);
502 
503         IF (l_dphase = 'RUNNING') THEN
504             FND_MESSAGE.Set_Name('GL', 'GL_LEDGER_RECORD_PROC_BY_FLAT');
505             APP_EXCEPTION.Raise_Exception;
506         END IF;
507      END IF;
508 
509      OPEN C;
510      FETCH C INTO Recinfo;
511      if (C%NOTFOUND) then
512         CLOSE C;
513         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
514         APP_EXCEPTION.RAISE_EXCEPTION;
515      end if;
516      CLOSE C;
517      if (
518            (   (Recinfo.definition_access_set_id = X_Definition_Access_Set_Id)
519             OR (    (Recinfo.definition_access_set_id IS NULL)
520                 AND (X_Definition_Access_Set_Id IS NULL)))
521        AND (   (Recinfo.object_type = X_Object_Type)
522             OR (    (Recinfo.object_type IS NULL)
523                 AND (X_Object_Type IS NULL)))
524        AND (   (Recinfo.object_key = X_Object_Key)
525             OR (    (Recinfo.object_key IS NULL)
526                 AND (X_Object_Key IS NULL)))
527        AND (   (Recinfo.view_access_flag = X_View_Access_Flag)
528             OR (    (Recinfo.view_access_flag IS NULL)
529                 AND (X_View_Access_Flag IS NULL)))
530        AND (   (Recinfo.use_access_flag = X_Use_Access_Flag)
531             OR (    (Recinfo.use_access_flag IS NULL)
532                 AND (X_Use_Access_Flag IS NULL)))
533        AND (   (Recinfo.modify_access_flag = X_Modify_Access_Flag)
534             OR (    (Recinfo.modify_access_flag IS NULL)
535                 AND (X_Modify_Access_Flag IS NULL)))
536        AND (   (Recinfo.last_update_date = X_Last_Update_Date)
537             OR (    (Recinfo.last_update_date IS NULL)
538                 AND (X_Last_Update_Date IS NULL)))
539        AND (   (Recinfo.last_updated_by = X_Last_Updated_By)
540             OR (    (Recinfo.last_updated_by IS NULL)
541                 AND (X_Last_Updated_By IS NULL)))
542        AND (   (Recinfo.creation_date = X_Creation_Date)
543             OR (    (Recinfo.creation_date is NULL)
544                 AND (X_Creation_Date IS NULL)))
545        AND (   (Recinfo.created_by = X_Created_By)
546             OR (    (Recinfo.created_by IS NULL)
547                 AND (X_Created_By IS NULL)))
548        AND (   (Recinfo.last_update_login = X_Last_Update_Login)
549             OR (    (Recinfo.last_update_login IS NULL)
550                 AND (X_Last_Update_Login IS NULL)))
551        AND (   (Recinfo.status_code = X_Status_Code)
552             OR (    (Recinfo.status_code IS NULL)
553                 AND (X_Status_Code IS NULL)))
554        AND (   (Recinfo.context = X_Context)
555             OR (    (Recinfo.context IS NULL)
556                 AND (X_Context IS NULL)))
557        AND (   (Recinfo.attribute1 = X_Attribute1)
558             OR (    (Recinfo.attribute1 IS NULL)
559                 AND (X_Attribute1 IS NULL)))
560        AND (   (Recinfo.attribute2 = X_Attribute2)
561             OR (    (Recinfo.attribute2 IS NULL)
562                 AND (X_Attribute2 IS NULL)))
563        AND (   (Recinfo.attribute3 = X_Attribute3)
564             OR (    (Recinfo.attribute3 IS NULL)
565                 AND (X_Attribute3 IS NULL)))
566        AND (   (Recinfo.attribute4 = X_Attribute4)
567             OR (    (Recinfo.attribute4 IS NULL)
568                 AND (X_Attribute4 IS NULL)))
569        AND (   (Recinfo.attribute5 = X_Attribute5)
570             OR (    (Recinfo.attribute5 IS NULL)
571                 AND (X_Attribute5 IS NULL)))
572        AND (   (Recinfo.attribute6 = X_Attribute6)
573             OR (    (Recinfo.attribute6 IS NULL)
574                 AND (X_Attribute6 IS NULL)))
575        AND (   (Recinfo.attribute7 = X_Attribute7)
576             OR (    (Recinfo.attribute7 IS NULL)
577                 AND (X_Attribute7 IS NULL)))
578        AND (   (Recinfo.attribute8 = X_Attribute8)
579             OR (    (Recinfo.attribute8 IS NULL)
580                 AND (X_Attribute8 IS NULL)))
581        AND (   (Recinfo.attribute9 = X_Attribute9)
582             OR (    (Recinfo.attribute9 IS NULL)
583                 AND (X_Attribute9 IS NULL)))
584        AND (   (Recinfo.attribute10 = X_Attribute10)
585             OR (    (Recinfo.attribute10 IS NULL)
586                 AND (X_Attribute10 IS NULL)))
587        AND (   (Recinfo.attribute11 = X_Attribute11)
588             OR (    (Recinfo.attribute11 IS NULL)
589                 AND (X_Attribute11 IS NULL)))
590        AND (   (Recinfo.attribute12 = X_Attribute12)
591             OR (    (Recinfo.attribute12 IS NULL)
592                 AND (X_Attribute12 IS NULL)))
593        AND (   (Recinfo.attribute13 = X_Attribute13)
594             OR (    (Recinfo.attribute13 IS NULL)
595                 AND (X_Attribute13 IS NULL)))
596        AND (   (Recinfo.attribute14 = X_Attribute14)
597             OR (    (Recinfo.attribute14 IS NULL)
598                 AND (X_Attribute14 IS NULL)))
599        AND (   (Recinfo.attribute15 = X_Attribute15)
600             OR (    (Recinfo.attribute15 IS NULL)
601                 AND (X_Attribute15 IS NULL)))
602        AND (   (Recinfo.request_id =  X_Request_Id)
603                 OR (    (Recinfo.request_id IS NULL)
604                     AND (X_Request_Id IS NULL)))
605     ) then
606        return;
607     else
608        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
609        APP_EXCEPTION.RAISE_EXCEPTION;
610     end if;
611   END Lock_Row;
612 
613   PROCEDURE Delete_Row(X_Rowid       VARCHAR2,
614                        X_Status_Code VARCHAR2) IS
615   BEGIN
616     if( X_Status_Code = 'D') then
617        UPDATE GL_DEFAS_ASSIGNMENTS
618        SET status_code = 'D'
619        WHERE rowid = X_Rowid;
620     else
621        DELETE FROM gl_defas_assignments
622        WHERE rowid = X_Rowid;
623     end if;
624 
625     if SQL%NOTFOUND then
626       RAISE NO_DATA_FOUND;
627     end if;
628   END Delete_Row;
629 
630   PROCEDURE check_unique_name(X_Definition_Access_Set_Id  NUMBER,
631                             X_Object_Type  VARCHAR2,
632                             X_Object_Key   VARCHAR2 ) IS
633 
634     CURSOR c_dup IS
635       SELECT 'Duplicate'
636       FROM   GL_DEFAS_ASSIGNMENTS a
637       WHERE  a.object_type = X_Object_Type
638       AND    a.object_key = X_Object_Key
639       AND    a.definition_access_set_id = X_Definition_Access_Set_Id
640       AND    (a.status_code <> 'D' or a.status_code is null);
641 
642     dummy VARCHAR2(100);
643 
644   BEGIN
645     OPEN  c_dup;
646     FETCH c_dup INTO dummy;
647 
648     IF c_dup%FOUND THEN
649       CLOSE c_dup;
650       fnd_message.set_name( 'SQLGL', 'GL_DEFAS_ASSIGN_DUPLICATE' );
651       app_exception.raise_exception;
652     END IF;
653 
654     CLOSE c_dup;
655 
656   EXCEPTION
657     WHEN app_exceptions.application_exception THEN
658       RAISE;
659     WHEN OTHERS THEN
660       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
661       fnd_message.set_token('PROCEDURE',
662         'GL_DEFAS_ACCESS_DETAILS_PKG.check_unique_name');
663       RAISE;
664   END check_unique_name;
665 
666 FUNCTION submit_conc_request RETURN NUMBER
667 IS
668 result         NUMBER :=-1;
669 BEGIN
670     -- Submit the request to run Rate Change concurrent program
671     result     := FND_REQUEST.submit_request (
672                             'SQLGL','GLDASF','','',FALSE,
673                   	    'OA','Y',chr(0),
674                             '','','','','','','',
675                             '','','','','','','','','','',
676                             '','','','','','','','','','',
677                             '','','','','','','','','','',
678                             '','','','','','','','','','',
679                             '','','','','','','','','','',
680                             '','','','','','','','','','',
681                             '','','','','','','','','','',
682                             '','','','','','','','','','',
683                             '','','','','','','','','','');
684 
685     return(result);
686 
687 END submit_conc_request;
688 
689 
690 END gl_defas_access_details_pkg;