DBA Data[Home] [Help]

PACKAGE BODY: APPS.BNE_SECURED_OBJECTS_PKG

Source


1 package body BNE_SECURED_OBJECTS_PKG as
2 /* $Header: bnesecuredobjb.pls 120.2 2005/06/29 03:40:57 dvayro noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_OBJECT_CODE in VARCHAR2,
8   X_OBJECT_TYPE in VARCHAR2,
9   X_OBJECT_VERSION_NUMBER in NUMBER,
10   X_SECURITY_RULE_APP_ID in NUMBER,
11   X_SECURITY_RULE_CODE in VARCHAR2,
12   X_CREATION_DATE in DATE,
13   X_CREATED_BY in NUMBER,
14   X_LAST_UPDATE_DATE in DATE,
15   X_LAST_UPDATED_BY in NUMBER,
16   X_LAST_UPDATE_LOGIN in NUMBER
17 ) is
18   cursor C is select ROWID from BNE_SECURED_OBJECTS
19     where APPLICATION_ID = X_APPLICATION_ID
20     and OBJECT_CODE = X_OBJECT_CODE
21     and OBJECT_TYPE = X_OBJECT_TYPE
22     ;
23 begin
24   insert into BNE_SECURED_OBJECTS (
25     APPLICATION_ID,
26     OBJECT_CODE,
27     OBJECT_TYPE,
28     OBJECT_VERSION_NUMBER,
29     SECURITY_RULE_APP_ID,
30     SECURITY_RULE_CODE,
31     CREATED_BY,
32     CREATION_DATE,
33     LAST_UPDATED_BY,
34     LAST_UPDATE_LOGIN,
35     LAST_UPDATE_DATE
36   ) values (
37     X_APPLICATION_ID,
38     X_OBJECT_CODE,
39     X_OBJECT_TYPE,
40     X_OBJECT_VERSION_NUMBER,
41     X_SECURITY_RULE_APP_ID,
42     X_SECURITY_RULE_CODE,
43     X_CREATED_BY,
44     X_CREATION_DATE,
45     X_LAST_UPDATED_BY,
46     X_LAST_UPDATE_LOGIN,
47     X_LAST_UPDATE_DATE
48   );
49 
50   open c;
51   fetch c into X_ROWID;
52   if (c%notfound) then
53     close c;
54     raise no_data_found;
55   end if;
56   close c;
57 
58 end INSERT_ROW;
59 
60 procedure LOCK_ROW (
61   X_APPLICATION_ID in NUMBER,
62   X_OBJECT_CODE in VARCHAR2,
63   X_OBJECT_TYPE in VARCHAR2,
64   X_OBJECT_VERSION_NUMBER in NUMBER,
65   X_SECURITY_RULE_APP_ID in NUMBER,
66   X_SECURITY_RULE_CODE in VARCHAR2
67 ) is
68   cursor c1 is select
69       OBJECT_VERSION_NUMBER,
70       SECURITY_RULE_APP_ID,
71       SECURITY_RULE_CODE
72     from BNE_SECURED_OBJECTS
73     where APPLICATION_ID = X_APPLICATION_ID
74     and OBJECT_CODE = X_OBJECT_CODE
75     and OBJECT_TYPE = X_OBJECT_TYPE
76     for update of APPLICATION_ID nowait;
77 begin
78   for tlinfo in c1 loop
79     if (    (tlinfo.SECURITY_RULE_APP_ID = X_SECURITY_RULE_APP_ID)
80         AND (tlinfo.SECURITY_RULE_CODE = X_SECURITY_RULE_CODE)
81         AND (tlinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
82     ) then
83       null;
84     else
85       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
86       app_exception.raise_exception;
87     end if;
88   end loop;
89   return;
90 end LOCK_ROW;
91 
92 procedure UPDATE_ROW (
93   X_APPLICATION_ID in NUMBER,
94   X_OBJECT_CODE in VARCHAR2,
95   X_OBJECT_TYPE in VARCHAR2,
96   X_OBJECT_VERSION_NUMBER in NUMBER,
97   X_SECURITY_RULE_APP_ID in NUMBER,
98   X_SECURITY_RULE_CODE in VARCHAR2,
99   X_LAST_UPDATE_DATE in DATE,
100   X_LAST_UPDATED_BY in NUMBER,
101   X_LAST_UPDATE_LOGIN in NUMBER
102 ) is
103 begin
104   update BNE_SECURED_OBJECTS set
105     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
106     SECURITY_RULE_APP_ID = X_SECURITY_RULE_APP_ID,
107     SECURITY_RULE_CODE = X_SECURITY_RULE_CODE,
108     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
109     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
110     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
111   where APPLICATION_ID = X_APPLICATION_ID
112   and OBJECT_CODE = X_OBJECT_CODE
113   and OBJECT_TYPE = X_OBJECT_TYPE
114   ;
115 
116   if (sql%notfound) then
117     raise no_data_found;
118   end if;
119 end UPDATE_ROW;
120 
121 procedure DELETE_ROW (
122   X_APPLICATION_ID in NUMBER,
123   X_OBJECT_CODE in VARCHAR2,
124   X_OBJECT_TYPE in VARCHAR2
125 ) is
126 begin
127   delete from BNE_SECURED_OBJECTS
128   where APPLICATION_ID = X_APPLICATION_ID
129   and OBJECT_CODE = X_OBJECT_CODE
130   and OBJECT_TYPE = X_OBJECT_TYPE;
131 
132   if (sql%notfound) then
133     raise no_data_found;
134   end if;
135 
136 end DELETE_ROW;
137 
138 procedure ADD_LANGUAGE
139 is
140 begin
141   null;
142 end ADD_LANGUAGE;
143 
144 --------------------------------------------------------------------------------
145 --  PROCEDURE:     LOAD_ROW                                                   --
146 --                                                                            --
147 --  DESCRIPTION:   Load a row into the BNE_SECURED_OBJECTS entity.            --
148 --                 This proc is called from the apps loader.                  --
149 --                                                                            --
150 --  SEE:     http://www-apps.us.oracle.com/atg/plans/r115/fndloadqr.txt       --
151 --                                                                            --
152 --                                                                            --
153 --  MODIFICATION HISTORY                                                      --
154 --  Date       Username  Description                                          --
155 --  7-Aug-04   DGROVES   CREATED                                              --
156 --------------------------------------------------------------------------------
157 procedure LOAD_ROW(
158   x_secured_object_asn          in VARCHAR2,
159   x_secured_object_code         in VARCHAR2,
160   x_secured_object_type         in VARCHAR2,
161   x_object_version_number       in VARCHAR2,
162   x_security_rule_app_id        in VARCHAR2,
163   x_security_rule_code          in VARCHAR2,
164   x_owner                       in VARCHAR2,
165   x_last_update_date            in VARCHAR2,
166   x_custom_mode                 in VARCHAR2
167 )
168 is
169   l_app_id                      number;
170   l_rule_app_id                 number;
171   l_row_id                      varchar2(64);
172   f_luby                        number;  -- entity owner in file
173   f_ludate                      date;    -- entity update date in file
174   db_luby                       number;  -- entity owner in db
175   db_ludate                     date;    -- entity update date in db
176 begin
177   -- translate values to IDs
178   l_app_id                        := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_secured_object_asn);
179   l_rule_app_id                   := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_security_rule_app_id);
180 
181   -- Translate owner to file_last_updated_by
182   f_luby := fnd_load_util.owner_id(x_owner);
183 
184   -- Translate char last_update_date to date
185   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
186   begin
187     select LAST_UPDATED_BY, LAST_UPDATE_DATE
188     into db_luby, db_ludate
189     from BNE_SECURED_OBJECTS
190     where APPLICATION_ID = l_app_id
191     and   OBJECT_CODE    = x_secured_object_code
192     and   OBJECT_TYPE    = x_secured_object_type;
193 
194     -- Test for customization and version
195     if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
196                                   db_ludate, x_custom_mode)) then
197       -- Update existing row
198       BNE_SECURED_OBJECTS_PKG.Update_Row(
199         X_APPLICATION_ID               => l_app_id,
200         X_OBJECT_CODE                  => x_secured_object_code,
201         X_OBJECT_TYPE                  => x_secured_object_type,
202         X_OBJECT_VERSION_NUMBER        => x_object_version_number,
203         X_SECURITY_RULE_APP_ID         => l_rule_app_id,
204         X_SECURITY_RULE_CODE           => x_security_rule_code,
205         X_LAST_UPDATE_DATE             => f_ludate,
206         X_LAST_UPDATED_BY              => f_luby,
207         X_LAST_UPDATE_LOGIN            => 0
208       );
209     end if;
210   exception
211     when no_data_found then
212       -- Record doesn't exist - insert in all cases
213       BNE_SECURED_OBJECTS_PKG.Insert_Row(
214         X_ROWID                        => l_row_id,
215         X_APPLICATION_ID               => l_app_id,
216         X_OBJECT_CODE                  => x_secured_object_code,
217         X_OBJECT_TYPE                  => x_secured_object_type,
218         X_OBJECT_VERSION_NUMBER        => x_object_version_number,
219         X_SECURITY_RULE_APP_ID         => l_rule_app_id,
220         X_SECURITY_RULE_CODE           => x_security_rule_code,
221         X_CREATION_DATE                => f_ludate,
222         X_CREATED_BY                   => f_luby,
223         X_LAST_UPDATE_DATE             => f_ludate,
224         X_LAST_UPDATED_BY              => f_luby,
225         X_LAST_UPDATE_LOGIN            => 0
226       );
227   end;
228 end LOAD_ROW;
229 
230 end BNE_SECURED_OBJECTS_PKG;