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