[Home] [Help]
PACKAGE BODY: APPS.XDO_TEMPLATE_FIELDS_PKG
Source
1 package body XDO_TEMPLATE_FIELDS_PKG as
2 /* $Header: XDOTMFDB.pls 120.1 2005/07/02 05:05:32 appldev noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_APPLICATION_SHORT_NAME in VARCHAR2,
6 X_TEMPLATE_CODE in VARCHAR2,
7 X_FIELD_NAME in VARCHAR2,
8 X_ALIAS_NAME in VARCHAR2,
9 X_CREATION_DATE in DATE,
10 X_CREATED_BY in NUMBER,
11 X_LAST_UPDATE_DATE in DATE,
12 X_LAST_UPDATED_BY in NUMBER,
13 X_LAST_UPDATE_LOGIN in NUMBER
14 ) is
15 cursor C is
16 select ROWID
17 from XDO_TEMPLATE_FIELDS
18 where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
19 and TEMPLATE_CODE = X_TEMPLATE_CODE
20 and FIELD_NAME = X_FIELD_NAME;
21 begin
22 insert into xdo_template_fields (
23 APPLICATION_SHORT_NAME,
24 TEMPLATE_CODE,
25 FIELD_NAME,
26 ALIAS_NAME,
27 CREATION_DATE,
28 CREATED_BY,
29 LAST_UPDATE_DATE,
30 LAST_UPDATED_BY,
31 LAST_UPDATE_LOGIN
32 ) values (
33 X_APPLICATION_SHORT_NAME,
34 X_TEMPLATE_CODE,
35 X_FIELD_NAME,
36 X_ALIAS_NAME,
37 X_CREATION_DATE,
38 X_CREATED_BY,
39 X_LAST_UPDATE_DATE,
40 X_LAST_UPDATED_BY,
41 X_LAST_UPDATE_LOGIN
42 );
43
44 open c;
45 fetch c into X_ROWID;
46 if (c%notfound) then
47 close c;
48 raise no_data_found;
49 end if;
50 close c;
51
52 end INSERT_ROW;
53
54 procedure LOCK_ROW (
55 X_APPLICATION_SHORT_NAME in VARCHAR2,
56 X_TEMPLATE_CODE in VARCHAR2,
57 X_FIELD_NAME in VARCHAR2,
58 X_ALIAS_NAME in VARCHAR2
59 ) is
60 cursor c is select
61 APPLICATION_SHORT_NAME,
62 TEMPLATE_CODE,
63 FIELD_NAME,
64 ALIAS_NAME
65 from XDO_TEMPLATE_FIELDS
66 where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
67 and TEMPLATE_CODE = X_TEMPLATE_CODE
68 and FIELD_NAME = X_FIELD_NAME
69 for update of APPLICATION_SHORT_NAME, TEMPLATE_CODE, FIELD_NAME nowait;
70 recinfo c%rowtype;
71 begin
72 open c;
73 fetch c into recinfo;
74 if (c%notfound) then
75 close c;
76 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
77 app_exception.raise_exception;
78 end if;
79 close c;
80 if (recinfo.ALIAS_NAME = X_ALIAS_NAME) then
81 null;
82 else
83 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
84 app_exception.raise_exception;
85 end if;
86 return;
87
88 end LOCK_ROW;
89
90 procedure UPDATE_ROW (
91 X_APPLICATION_SHORT_NAME in VARCHAR2,
92 X_TEMPLATE_CODE in VARCHAR2,
93 X_FIELD_NAME in VARCHAR2,
94 X_ALIAS_NAME in VARCHAR2,
95 X_LAST_UPDATE_DATE in DATE,
96 X_LAST_UPDATED_BY in NUMBER,
97 X_LAST_UPDATE_LOGIN in NUMBER
98 ) is
99 begin
100 update XDO_TEMPLATE_FIELDS set
101 ALIAS_NAME = X_ALIAS_NAME,
102 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
103 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
104 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
105 where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
106 and TEMPLATE_CODE = X_TEMPLATE_CODE
107 and FIELD_NAME = X_FIELD_NAME;
108
109 if (sql%notfound) then
110 raise no_data_found;
111 end if;
112
113 end UPDATE_ROW;
114
115 procedure DELETE_ROW (
116 X_APPLICATION_SHORT_NAME in VARCHAR2,
117 X_TEMPLATE_CODE in VARCHAR2,
118 X_FIELD_NAME in VARCHAR2
119 ) is
120 begin
121
122 delete from XDO_TEMPLATE_FIELDS
123 where TEMPLATE_CODE=X_TEMPLATE_CODE
124 and APPLICATION_SHORT_NAME=X_APPLICATION_SHORT_NAME
125 and FIELD_NAME = X_FIELD_NAME;
126
127 if (sql%notfound) then
128 raise no_data_found;
129 end if;
130 end DELETE_ROW;
131
132 /* There is no translation for this entity */
133 -- procedure ADD_LANGUAGE;
134
135 -- procedure TRANSLATE_ROW;
136
137
138 procedure LOAD_ROW (
139 X_APPLICATION_SHORT_NAME in VARCHAR2,
140 X_TEMPLATE_CODE in VARCHAR2,
141 X_FIELD_NAME in VARCHAR2,
142 X_ALIAS_NAME in VARCHAR2,
143 X_OWNER in VARCHAR2,
144 X_LAST_UPDATE_DATE in VARCHAR2,
145 X_CUSTOM_MODE in VARCHAR2
146 ) is
147 row_id varchar2(64);
148 f_luby number;
149 f_ludate date;
150 db_luby number; -- entity owner in db
151 db_ludate date; -- entity update in db
152 begin
153
154 -- Translate owner to file_last_updated_by
155 f_luby := fnd_load_util.owner_id(x_owner);
156
157 -- Translate char last_update_date to date
158 f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
159
160 begin
161
162 select LAST_UPDATED_BY, LAST_UPDATE_DATE
163 into db_luby, db_ludate
164 from xdo_template_fields
165 where application_short_name = x_application_short_name
166 and template_code = x_template_code
167 and field_name = x_field_name;
168
169 -- Update record, honoring customization mode.
170 -- Record should be updated only if:
171 -- a. CUSTOM_MODE = FORCE, or
172 -- b. file owner is CUSTOM, db owner is SEED
173 -- c. owners are the same, and file_date > db_date
174 if (fnd_load_util.UPLOAD_TEST(
175 p_file_id => f_luby,
176 p_file_lud => f_ludate,
177 p_db_id => db_luby,
178 p_db_lud => db_ludate,
179 p_custom_mode => x_custom_mode))
180 then
181 XDO_TEMPLATE_FIELDS_PKG.UPDATE_ROW (
182 X_APPLICATION_SHORT_NAME => X_APPLICATION_SHORT_NAME,
183 X_TEMPLATE_CODE => X_TEMPLATE_CODE,
184 X_FIELD_NAME => x_field_name,
185 X_ALIAS_NAME => x_alias_name,
186 X_LAST_UPDATE_DATE => f_ludate,
187 X_LAST_UPDATED_BY => f_luby,
188 X_LAST_UPDATE_LOGIN => 0
189 );
190 end if;
191 exception when no_data_found then
192 XDO_TEMPLATE_FIELDS_PKG.INSERT_ROW (
193 X_ROWID => row_id,
194 X_APPLICATION_SHORT_NAME => X_APPLICATION_SHORT_NAME,
195 X_TEMPLATE_CODE => X_TEMPLATE_CODE,
196 X_FIELD_NAME => x_field_name,
197 X_ALIAS_NAME => x_alias_name,
198 X_CREATION_DATE => f_ludate,
199 X_CREATED_BY => f_luby,
200 X_LAST_UPDATE_DATE => f_ludate,
201 X_LAST_UPDATED_BY => f_luby,
202 X_LAST_UPDATE_LOGIN => 0
203 );
204 end;
205 end LOAD_ROW;
206
207 end XDO_TEMPLATE_FIELDS_PKG;