DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_KI_UCX_LOAD_API

Source


1 Package Body HR_KI_UCX_LOAD_API as
2 /* $Header: hrkiucxl.pkb 120.1 2006/06/27 16:08:10 avarri noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(31) := 'HR_KI_UCX_LOAD_API';
7 --
8 procedure UPDATE_ROW (
9                  X_UI_CONTEXT_ID            in number
10                 ,X_LABEL                    in varchar
11                 ,X_LOCATION                 in varchar
12                 ,X_LAST_UPDATE_DATE         in DATE
13                 ,X_LAST_UPDATED_BY          in NUMBER
14                 ,X_LAST_UPDATE_LOGIN        in NUMBER
15                 ,X_OBJECT_VERSION_NUMBER    in NUMBER
16 ) is
17 
18 begin
19 
20    update HR_KI_UI_CONTEXTS
21    set
22    LABEL = X_LABEL,
23    LOCATION=X_LOCATION,
24    LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
25    LAST_UPDATED_BY = X_LAST_UPDATED_BY,
26    LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
27    OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER+1
28   where UI_CONTEXT_ID = X_UI_CONTEXT_ID;
29 
30 end UPDATE_ROW;
31 
32 procedure INSERT_ROW (
33   X_ROWID                    in out nocopy VARCHAR2,
34   X_UI_CONTEXT_ID            in out nocopy NUMBER,
35   X_USER_INTERFACE_ID        in NUMBER,
36   X_UI_CONTEXT_KEY           in VARCHAR,
37   X_LABEL                    in VARCHAR,
38   X_LOCATION                 in VARCHAR,
39   X_CREATED_BY               in NUMBER,
40   X_CREATION_DATE            in DATE,
41   X_LAST_UPDATE_DATE         in DATE,
42   X_LAST_UPDATED_BY          in NUMBER,
43   X_LAST_UPDATE_LOGIN        in NUMBER
44 
45 ) is
46 
47   cursor C is select ROWID from HR_KI_UI_CONTEXTS
48     where ui_context_id = x_ui_context_id;
49 
50 begin
51 
52 select HR_KI_UI_CONTEXTS_S.NEXTVAL into x_ui_context_id from sys.dual;
53 
54   insert into HR_KI_UI_CONTEXTS (
55     ui_context_id,
56     ui_context_key,
57     user_interface_id,
58     label,
59     location,
60     CREATION_DATE,
61     CREATED_BY,
62     LAST_UPDATE_DATE,
63     LAST_UPDATED_BY,
64     LAST_UPDATE_LOGIN,
65     OBJECT_VERSION_NUMBER
66   ) values (
67     X_UI_CONTEXT_ID,
68     X_UI_CONTEXT_KEY,
69     X_USER_INTERFACE_ID,
70     X_LABEL,
71     X_LOCATION,
72     X_CREATION_DATE,
73     X_CREATED_BY,
74     X_LAST_UPDATE_DATE,
75     X_LAST_UPDATED_BY,
76     X_LAST_UPDATE_LOGIN,
77     1
78   );
79 
80   open c;
81   fetch c into X_ROWID;
82   if (c%notfound) then
83       close c;
84       hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
85       hr_utility.set_message_token('PROCEDURE',
86                                    'HR_KI_UI_CONTEXTS.insert_row');
87       hr_utility.set_message_token('STEP','1');
88       hr_utility.raise_error;
89   end if;
90   close c;
91 
92 
93 end INSERT_ROW;
94 
95 procedure validate_keys
96 (
97  X_USER_INTERFACE_KEY in VARCHAR2
98 ,X_USER_INTERFACE_ID  in out nocopy number
99 )
100 is
101 
102   l_proc VARCHAR2(35) := 'HR_KI_UCX_LOAD_API.VALIDATE_KEYS';
103 
104   CURSOR C_VAL_INT IS
105         select user_interface_id
106         from HR_KI_USER_INTERFACES
107         where upper(user_interface_key) = upper(X_USER_INTERFACE_KEY);
108 
109 begin
110 
111    open C_VAL_INT;
112    fetch C_VAL_INT into X_USER_INTERFACE_ID;
113 
114    If C_VAL_INT%NOTFOUND then
115       close C_VAL_INT;
116       fnd_message.set_name( 'PER','PER_449569_UCX_UI_ID_ABSENT');
117       fnd_message.raise_error;
118    End If;
119 
120    close C_VAL_INT;
121 
122 
123 end validate_keys;
124 
125 procedure LOAD_ROW
126   (
127    X_USER_INTERFACE_KEY in VARCHAR2,
128    X_UI_CONTEXT_KEY     in VARCHAR2,
129    X_LABEL              in VARCHAR2,
130    X_LOCATION           in VARCHAR2,
131    X_LAST_UPDATE_DATE   in VARCHAR2,
132    X_CUSTOM_MODE        in VARCHAR2,
133    X_OWNER              in VARCHAR2
134 
135    )
136 is
137   l_proc               VARCHAR2(31) := 'HR_KI_UCX_LOAD_API.LOAD_ROW';
138   l_rowid              rowid;
139   l_created_by         HR_KI_UI_CONTEXTS.created_by%TYPE             := 0;
140   l_creation_date      HR_KI_UI_CONTEXTS.creation_date%TYPE          := SYSDATE;
141   l_last_update_date   HR_KI_UI_CONTEXTS.last_update_date%TYPE       := SYSDATE;
142   l_last_updated_by    HR_KI_UI_CONTEXTS.last_updated_by%TYPE         := 0;
143   l_last_update_login  HR_KI_UI_CONTEXTS.last_update_login%TYPE       := 0;
144   l_ui_context_id      HR_KI_UI_CONTEXTS.ui_context_id%TYPE;
145   l_user_interface_id  HR_KI_USER_INTERFACES.user_interface_id%TYPE;
146   l_object_version_number HR_KI_OPTION_TYPES.object_version_number%TYPE;
147 
148 
149   db_luby   number;  -- entity owner in db
150   db_ludate date;    -- entity update date in db
151 
152   CURSOR C_APPL IS
153     select uic.ui_context_id,uic.object_version_number
154         from HR_KI_UI_CONTEXTS uic,
155         hr_ki_user_interfaces uit
156    where uic.user_interface_id = uit.user_interface_id
157      and upper(uic.ui_context_key)=upper(x_ui_context_key)
158      and upper(uit.user_interface_key)=upper(x_user_interface_key);
159 
160   begin
161   --
162   -- added for 5354277
163      hr_general.g_data_migrator_mode := 'Y';
164   --
165   --validate Keys
166   validate_keys(
167    X_USER_INTERFACE_KEY       => x_user_interface_key
168   ,X_USER_INTERFACE_ID        => l_user_interface_id
169   );
170 
171   -- Translate owner to file_last_updated_by
172   l_last_updated_by := fnd_load_util.owner_id(X_OWNER);
173   l_created_by := fnd_load_util.owner_id(X_OWNER);
174 
175   -- Translate char last_update_date to date
176   l_last_update_date := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD hh24:mi:ss'), sysdate);
177 
178 
179   -- Update or insert row as appropriate
180 
181   OPEN C_APPL;
182   FETCH C_APPL INTO l_ui_context_id,l_object_version_number;
183 
184 
185   if C_APPL%notfound then
186   close C_APPL;
187       INSERT_ROW
188         (
189          X_ROWID                    => l_rowid
190         ,X_UI_CONTEXT_ID            => l_ui_context_id
191         ,X_USER_INTERFACE_ID        => l_user_interface_id
192         ,X_UI_CONTEXT_KEY           => x_ui_context_key
193         ,X_LABEL                    => x_label
194         ,X_LOCATION                 => x_location
195         ,X_CREATED_BY               => l_created_by
196         ,X_CREATION_DATE            => l_creation_date
197         ,X_LAST_UPDATE_DATE         => l_last_update_date
198         ,X_LAST_UPDATED_BY          => l_last_updated_by
199         ,X_LAST_UPDATE_LOGIN        => l_last_update_login
200         );
201 
202 
203  else
204    close C_APPL;
205    select LAST_UPDATED_BY, LAST_UPDATE_DATE
206            into db_luby, db_ludate
207            from HR_KI_UI_CONTEXTS
208            where ui_context_id = l_ui_context_id;
209 
210 
211            if (fnd_load_util.upload_test(l_last_updated_by, l_last_update_date, db_luby,
212                                                  db_ludate, X_CUSTOM_MODE)) then
213 
214 -- Updating label is allowed but the UI_CONTEXT_KEY will not be updated
215 -- by convention UI_CONTEXT_KEY should be <ui_key>::<label>
216 
217 -- Ideally we should not allow to update,but chances are
218 -- that we need way to handle updation of label
219 -- Recommended way is to create new row
220 
221                UPDATE_ROW
222                (
223                  X_UI_CONTEXT_ID            => l_ui_context_id
224                 ,X_LABEL                    => X_LABEL
225                 ,X_LOCATION                 => X_LOCATION
226                 ,X_LAST_UPDATE_DATE         => l_last_update_date
227                 ,X_LAST_UPDATED_BY          => l_last_updated_by
228                 ,X_LAST_UPDATE_LOGIN        => l_last_update_login
229                 ,X_OBJECT_VERSION_NUMBER    => l_object_version_number
230                );
231 
232            end if;
233 
234    end if;
235 
236 --
237 end LOAD_ROW;
238 
239 END HR_KI_UCX_LOAD_API;