[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;