1 package body OKE_K_ACCESS_RULES_PKG as
2 /* $Header: OKEKACRB.pls 120.1 2005/06/02 12:00:37 appldev $ */
3 procedure INSERT_ROW (
4 X_ROWID IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5 X_ACCESS_RULE_ID IN OUT NOCOPY /* file.sql.39 change */ NUMBER,
6 X_CREATION_DATE in DATE,
7 X_CREATED_BY in NUMBER,
8 X_LAST_UPDATE_DATE in DATE,
9 X_LAST_UPDATED_BY in NUMBER,
10 X_LAST_UPDATE_LOGIN in NUMBER,
11 X_ROLE_ID in NUMBER,
12 X_SECURED_OBJECT_NAME in VARCHAR2,
13 X_ATTRIBUTE_GROUP_TYPE in VARCHAR2,
14 X_ATTRIBUTE_GROUP_CODE in VARCHAR2,
15 X_ATTRIBUTE_CODE in VARCHAR2,
16 X_ACCESS_LEVEL in VARCHAR2
17 ) is
18 cursor C is select ROWID from OKE_K_ACCESS_RULES
19 where ACCESS_RULE_ID = X_ACCESS_RULE_ID
20 ;
21 begin
22 select OKE_K_ACCESS_RULES_S.nextval
23 into X_ACCESS_RULE_ID
24 from dual;
25
26 insert into OKE_K_ACCESS_RULES (
27 ACCESS_RULE_ID,
28 CREATION_DATE,
29 CREATED_BY,
30 LAST_UPDATE_DATE,
31 LAST_UPDATED_BY,
32 LAST_UPDATE_LOGIN,
33 ROLE_ID,
34 SECURED_OBJECT_NAME,
35 ATTRIBUTE_GROUP_TYPE,
36 ATTRIBUTE_GROUP_CODE,
37 ATTRIBUTE_CODE,
38 ACCESS_LEVEL
39 ) values (
40 X_ACCESS_RULE_ID,
41 X_CREATION_DATE,
42 X_CREATED_BY,
43 X_LAST_UPDATE_DATE,
44 X_LAST_UPDATED_BY,
45 X_LAST_UPDATE_LOGIN,
46 X_ROLE_ID,
47 X_SECURED_OBJECT_NAME,
48 X_ATTRIBUTE_GROUP_TYPE,
49 X_ATTRIBUTE_GROUP_CODE,
50 X_ATTRIBUTE_CODE,
51 X_ACCESS_LEVEL
52 );
53
54 open c;
55 fetch c into X_ROWID;
56 if (c%notfound) then
57 close c;
58 raise no_data_found;
59 end if;
60 close c;
61
62 end INSERT_ROW;
63
64 procedure LOCK_ROW (
65 X_ACCESS_RULE_ID in NUMBER,
66 X_ROLE_ID in NUMBER,
67 X_SECURED_OBJECT_NAME in VARCHAR2,
68 X_ATTRIBUTE_GROUP_TYPE in VARCHAR2,
69 X_ATTRIBUTE_GROUP_CODE in VARCHAR2,
70 X_ATTRIBUTE_CODE in VARCHAR2,
71 X_ACCESS_LEVEL in VARCHAR2
72 ) is
73 cursor c is select
74 ROLE_ID,
75 SECURED_OBJECT_NAME,
76 ATTRIBUTE_GROUP_TYPE,
77 ATTRIBUTE_GROUP_CODE,
78 ATTRIBUTE_CODE,
79 ACCESS_LEVEL
80 from OKE_K_ACCESS_RULES
81 where ACCESS_RULE_ID = X_ACCESS_RULE_ID
82 for update of ACCESS_RULE_ID nowait;
83 recinfo c%rowtype;
84
85 begin
86 open c;
87 fetch c into recinfo;
88 if (c%notfound) then
89 close c;
90 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
91 app_exception.raise_exception;
92 end if;
93 close c;
94 if ( (recinfo.ROLE_ID = X_ROLE_ID)
95 AND (recinfo.SECURED_OBJECT_NAME = X_SECURED_OBJECT_NAME)
96 AND (recinfo.ACCESS_LEVEL = X_ACCESS_LEVEL)
97 AND ((recinfo.ATTRIBUTE_GROUP_TYPE = X_ATTRIBUTE_GROUP_TYPE)
98 OR ((recinfo.ATTRIBUTE_GROUP_TYPE is null) AND (X_ATTRIBUTE_GROUP_TYPE is null)))
99 AND ((recinfo.ATTRIBUTE_GROUP_CODE = X_ATTRIBUTE_GROUP_CODE)
100 OR ((recinfo.ATTRIBUTE_GROUP_CODE is null) AND (X_ATTRIBUTE_GROUP_CODE is null)))
101 AND ((recinfo.ATTRIBUTE_CODE = X_ATTRIBUTE_CODE)
102 OR ((recinfo.ATTRIBUTE_CODE is null) AND (X_ATTRIBUTE_CODE is null)))
103 ) then
104 null;
105 else
106 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
107 app_exception.raise_exception;
108 end if;
109
110 return;
111 end LOCK_ROW;
112
113 procedure UPDATE_ROW (
114 X_ACCESS_RULE_ID in NUMBER,
115 X_LAST_UPDATE_DATE in DATE,
116 X_LAST_UPDATED_BY in NUMBER,
117 X_LAST_UPDATE_LOGIN in NUMBER,
118 X_ROLE_ID in NUMBER,
119 X_SECURED_OBJECT_NAME in VARCHAR2,
120 X_ATTRIBUTE_GROUP_TYPE in VARCHAR2,
121 X_ATTRIBUTE_GROUP_CODE in VARCHAR2,
122 X_ATTRIBUTE_CODE in VARCHAR2,
123 X_ACCESS_LEVEL in VARCHAR2
124 ) is
125 begin
126 update OKE_K_ACCESS_RULES set
127 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
128 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
129 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
130 ROLE_ID = X_ROLE_ID,
131 SECURED_OBJECT_NAME = X_SECURED_OBJECT_NAME,
132 ATTRIBUTE_GROUP_TYPE = X_ATTRIBUTE_GROUP_TYPE,
133 ATTRIBUTE_GROUP_CODE = X_ATTRIBUTE_GROUP_CODE,
134 ATTRIBUTE_CODE = X_ATTRIBUTE_CODE,
135 ACCESS_LEVEL = X_ACCESS_LEVEL
136 where ACCESS_RULE_ID = X_ACCESS_RULE_ID;
137
138 if (sql%notfound) then
139 raise no_data_found;
140 end if;
141 end UPDATE_ROW;
142
143 procedure DELETE_ROW (
144 X_ACCESS_RULE_ID in NUMBER
145 ) is
146 begin
147 delete from OKE_K_ACCESS_RULES
148 where ACCESS_RULE_ID = X_ACCESS_RULE_ID;
149
150 if (sql%notfound) then
151 raise no_data_found;
152 end if;
153
154 end DELETE_ROW;
155
156 procedure DELETE_ALL (
157 X_ROLE_ID in NUMBER
158 ) is
159 begin
160 delete from OKE_K_ACCESS_RULES
161 where ROLE_ID = X_ROLE_ID;
162
163 delete from OKE_COMPILED_ACCESS_RULES
164 where ROLE_ID = X_ROLE_ID;
165
166 end DELETE_ALL;
167
168 end OKE_K_ACCESS_RULES_PKG;