[Home] [Help]
PACKAGE BODY: APPS.IBC_OBJECT_PERMISSIONS_PKG
Source
1 PACKAGE BODY Ibc_Object_Permissions_Pkg AS
2 /* $Header: ibctopeb.pls 115.1 2002/11/13 23:47:10 vicho ship $ */
3
4 -- MODIFICATION HISTORY
5 -- Person Date Comments
6 -- --------- ------ ------------------------------------------
7 -- vicho 11/05/2002 Remove G_MISS defaulting on UPDATE_ROW
8
9 PROCEDURE INSERT_ROW (
10 X_ROWID OUT NOCOPY VARCHAR2,
11 P_OBJECT_ID IN NUMBER,
12 P_PERMISSIONS_LOOKUP_TYPE IN VARCHAR2,
13 P_OBJECT_VERSION_NUMBER IN NUMBER,
14 p_CREATION_DATE IN DATE,
15 p_CREATED_BY IN NUMBER,
16 p_LAST_UPDATE_DATE IN DATE,
17 p_LAST_UPDATED_BY IN NUMBER,
18 p_LAST_UPDATE_LOGIN IN NUMBER
19 ) IS
20 CURSOR C IS SELECT ROWID FROM IBC_OBJECT_PERMISSIONS
21 WHERE OBJECT_ID = P_OBJECT_ID;
22 BEGIN
23 INSERT INTO IBC_OBJECT_PERMISSIONS (
24 OBJECT_ID,
25 PERMISSIONS_LOOKUP_TYPE,
26 OBJECT_VERSION_NUMBER,
27 CREATION_DATE,
28 CREATED_BY,
29 LAST_UPDATE_DATE,
30 LAST_UPDATED_BY,
31 LAST_UPDATE_LOGIN
32 ) VALUES (
33 P_OBJECT_ID,
34 P_PERMISSIONS_LOOKUP_TYPE,
35 P_OBJECT_VERSION_NUMBER,
36 DECODE(p_creation_date, FND_API.G_MISS_DATE, SYSDATE, NULL, SYSDATE,p_creation_date),
37 DECODE(p_created_by, FND_API.G_MISS_NUM, FND_GLOBAL.user_id,NULL, FND_GLOBAL.user_id, p_created_by),
38 DECODE(p_last_update_date, FND_API.G_MISS_DATE, SYSDATE, NULL, SYSDATE,p_last_update_date),
39 DECODE(p_last_updated_by, FND_API.G_MISS_NUM, FND_GLOBAL.user_id,NULL, FND_GLOBAL.user_id, p_last_updated_by),
40 DECODE(p_last_update_login, FND_API.G_MISS_NUM, FND_GLOBAL.login_id,NULL, FND_GLOBAL.login_id, p_last_update_login)
41 );
42
43 OPEN c;
44 FETCH c INTO X_ROWID;
45 IF (c%NOTFOUND) THEN
46 CLOSE c;
47 RAISE NO_DATA_FOUND;
48 END IF;
49 CLOSE c;
50
51 END INSERT_ROW;
52
53 PROCEDURE LOCK_ROW (
54 P_OBJECT_ID IN NUMBER,
55 P_PERMISSIONS_LOOKUP_TYPE IN VARCHAR2,
56 P_OBJECT_VERSION_NUMBER IN NUMBER
57 ) IS
58 CURSOR c IS SELECT
59 PERMISSIONS_LOOKUP_TYPE,
60 OBJECT_VERSION_NUMBER
61 FROM IBC_OBJECT_PERMISSIONS
62 WHERE OBJECT_ID = P_OBJECT_ID
63 FOR UPDATE OF OBJECT_ID NOWAIT;
64 recinfo c%ROWTYPE;
65
66 BEGIN
67 OPEN c;
68 FETCH c INTO recinfo;
69 IF (c%NOTFOUND) THEN
70 CLOSE c;
71 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
72 app_exception.raise_exception;
73 END IF;
74 CLOSE c;
75 IF ( (recinfo.PERMISSIONS_LOOKUP_TYPE = P_PERMISSIONS_LOOKUP_TYPE)
76 AND (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER)
77 ) THEN
78 NULL;
79 ELSE
80 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
81 app_exception.raise_exception;
82 END IF;
83
84 RETURN;
85 END LOCK_ROW;
86
87 PROCEDURE UPDATE_ROW (
88 P_OBJECT_ID IN NUMBER,
89 P_PERMISSIONS_LOOKUP_TYPE IN VARCHAR2,
90 p_LAST_UPDATED_BY IN NUMBER,
91 p_LAST_UPDATE_DATE IN DATE,
92 p_LAST_UPDATE_LOGIN IN NUMBER,
93 p_OBJECT_VERSION_NUMBER IN NUMBER
94 ) IS
95 BEGIN
96 UPDATE IBC_OBJECT_PERMISSIONS SET
97 PERMISSIONS_LOOKUP_TYPE = P_PERMISSIONS_LOOKUP_TYPE,
98 OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER + 1,
99 last_update_date = DECODE(p_last_update_date, FND_API.G_MISS_DATE, SYSDATE,
100 NULL, SYSDATE, p_last_update_date),
101 last_updated_by = DECODE(p_last_updated_by, FND_API.G_MISS_NUM,
102 FND_GLOBAL.user_id, NULL, FND_GLOBAL.user_id,
103 p_last_updated_by),
104 last_update_login = DECODE(p_last_update_login, FND_API.G_MISS_NUM,
105 FND_GLOBAL.login_id, NULL, FND_GLOBAL.login_id,
106 p_last_update_login)
107 WHERE OBJECT_ID = P_OBJECT_ID
108 AND object_version_number = DECODE(p_object_version_number,
109 FND_API.G_MISS_NUM,object_version_number,
110 NULL,object_version_number,
111 p_object_version_number);
112
113 IF (SQL%NOTFOUND) THEN
114 RAISE NO_DATA_FOUND;
115 END IF;
116
117 END UPDATE_ROW;
118
119 PROCEDURE DELETE_ROW (
120 P_OBJECT_ID IN NUMBER
121 ) IS
122 BEGIN
123
124 DELETE FROM IBC_OBJECT_PERMISSIONS
125 WHERE OBJECT_ID = P_OBJECT_ID;
126
127 IF (SQL%NOTFOUND) THEN
128 RAISE NO_DATA_FOUND;
129 END IF;
130 END DELETE_ROW;
131
132
133 PROCEDURE LOAD_ROW (
134 p_object_id NUMBER,
135 p_PERMISSIONS_LOOKUP_TYPE VARCHAR2,
136 p_OWNER IN VARCHAR2) IS
137 l_user_id NUMBER := 0;
138 lx_row_id VARCHAR2(240);
139
140 BEGIN
141 IF (p_OWNER = 'SEED') THEN
142 l_user_id := 1;
143 END IF;
144
145
146 UPDATE_ROW (
147 p_object_id => p_object_id,
148 p_PERMISSIONS_LOOKUP_TYPE => p_PERMISSIONS_LOOKUP_TYPE,
149 p_LAST_UPDATED_BY =>l_user_id,
150 p_LAST_UPDATE_DATE =>SYSDATE,
151 p_LAST_UPDATE_LOGIN =>0,
152 p_OBJECT_VERSION_NUMBER =>NULL);
153
154 EXCEPTION
155 WHEN NO_DATA_FOUND THEN
156 INSERT_ROW (
157 X_ROWID => lx_row_id,
158 p_object_id => p_object_id,
159 p_PERMISSIONS_LOOKUP_TYPE => p_PERMISSIONS_LOOKUP_TYPE,
160 p_OBJECT_VERSION_NUMBER => 1,
161 p_CREATION_DATE => SYSDATE,
162 p_CREATED_BY => l_user_id,
163 p_LAST_UPDATE_DATE => SYSDATE,
164 p_LAST_UPDATED_BY => l_user_id,
165 p_LAST_UPDATE_LOGIN => 0);
166
167 END LOAD_ROW;
168
169
170 END Ibc_Object_Permissions_Pkg;