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