1 package body AHL_ITEM_ASSOCIATIONS_PKG as
2 /* $Header: AHLLIASB.pls 115.2 2003/08/29 18:00:34 cxcheng noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_ITEM_ASSOCIATION_ID in NUMBER,
6 X_SOURCE_ITEM_ASSOCIATION_ID in NUMBER,
7 X_OBJECT_VERSION_NUMBER in NUMBER,
8 X_ITEM_GROUP_ID in NUMBER,
9 X_INVENTORY_ITEM_ID in NUMBER,
10 X_INVENTORY_ORG_ID in NUMBER,
11 X_PRIORITY in NUMBER,
12 X_UOM_CODE in VARCHAR2,
13 X_QUANTITY in NUMBER,
14 X_REVISION in VARCHAR2,
15 X_INTERCHANGE_TYPE_CODE in VARCHAR2,
16 X_ITEM_TYPE_CODE in VARCHAR2,
17 X_ATTRIBUTE_CATEGORY in VARCHAR2,
18 X_ATTRIBUTE1 in VARCHAR2,
19 X_ATTRIBUTE2 in VARCHAR2,
20 X_ATTRIBUTE3 in VARCHAR2,
21 X_ATTRIBUTE4 in VARCHAR2,
22 X_ATTRIBUTE5 in VARCHAR2,
23 X_ATTRIBUTE6 in VARCHAR2,
24 X_ATTRIBUTE7 in VARCHAR2,
25 X_ATTRIBUTE8 in VARCHAR2,
26 X_ATTRIBUTE9 in VARCHAR2,
27 X_ATTRIBUTE10 in VARCHAR2,
28 X_ATTRIBUTE11 in VARCHAR2,
29 X_ATTRIBUTE12 in VARCHAR2,
30 X_ATTRIBUTE13 in VARCHAR2,
31 X_ATTRIBUTE14 in VARCHAR2,
32 X_ATTRIBUTE15 in VARCHAR2,
33 X_INTERCHANGE_REASON in VARCHAR2,
34 X_CREATION_DATE in DATE,
35 X_CREATED_BY in NUMBER,
36 X_LAST_UPDATE_DATE in DATE,
37 X_LAST_UPDATED_BY in NUMBER,
38 X_LAST_UPDATE_LOGIN in NUMBER
39 ) is
40 cursor C is select ROWID from AHL_ITEM_ASSOCIATIONS_B
41 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID
42 ;
43 begin
44 insert into AHL_ITEM_ASSOCIATIONS_B (
45 SOURCE_ITEM_ASSOCIATION_ID,
46 ITEM_ASSOCIATION_ID,
47 OBJECT_VERSION_NUMBER,
48 ITEM_GROUP_ID,
49 INVENTORY_ITEM_ID,
50 INVENTORY_ORG_ID,
51 PRIORITY,
52 UOM_CODE,
53 QUANTITY,
54 REVISION,
55 INTERCHANGE_TYPE_CODE,
56 ITEM_TYPE_CODE,
57 ATTRIBUTE_CATEGORY,
58 ATTRIBUTE1,
59 ATTRIBUTE2,
60 ATTRIBUTE3,
61 ATTRIBUTE4,
62 ATTRIBUTE5,
63 ATTRIBUTE6,
64 ATTRIBUTE7,
65 ATTRIBUTE8,
66 ATTRIBUTE9,
67 ATTRIBUTE10,
68 ATTRIBUTE11,
69 ATTRIBUTE12,
70 ATTRIBUTE13,
71 ATTRIBUTE14,
72 ATTRIBUTE15,
73 CREATION_DATE,
74 CREATED_BY,
75 LAST_UPDATE_DATE,
76 LAST_UPDATED_BY,
77 LAST_UPDATE_LOGIN
78 ) values (
79 X_SOURCE_ITEM_ASSOCIATION_ID,
80 X_ITEM_ASSOCIATION_ID,
81 X_OBJECT_VERSION_NUMBER,
82 X_ITEM_GROUP_ID,
83 X_INVENTORY_ITEM_ID,
84 X_INVENTORY_ORG_ID,
85 X_PRIORITY,
86 X_UOM_CODE,
87 X_QUANTITY,
88 X_REVISION,
89 X_INTERCHANGE_TYPE_CODE,
90 X_ITEM_TYPE_CODE,
91 X_ATTRIBUTE_CATEGORY,
92 X_ATTRIBUTE1,
93 X_ATTRIBUTE2,
94 X_ATTRIBUTE3,
95 X_ATTRIBUTE4,
96 X_ATTRIBUTE5,
97 X_ATTRIBUTE6,
98 X_ATTRIBUTE7,
99 X_ATTRIBUTE8,
100 X_ATTRIBUTE9,
101 X_ATTRIBUTE10,
102 X_ATTRIBUTE11,
103 X_ATTRIBUTE12,
104 X_ATTRIBUTE13,
105 X_ATTRIBUTE14,
106 X_ATTRIBUTE15,
107 X_CREATION_DATE,
108 X_CREATED_BY,
109 X_LAST_UPDATE_DATE,
110 X_LAST_UPDATED_BY,
111 X_LAST_UPDATE_LOGIN
112 );
113
114 insert into AHL_ITEM_ASSOCIATIONS_TL (
115 ITEM_ASSOCIATION_ID,
116 LAST_UPDATE_DATE,
117 LAST_UPDATED_BY,
118 CREATION_DATE,
119 CREATED_BY,
120 LAST_UPDATE_LOGIN,
121 INTERCHANGE_REASON,
122 LANGUAGE,
123 SOURCE_LANG
124 ) select
125 X_ITEM_ASSOCIATION_ID,
126 X_LAST_UPDATE_DATE,
127 X_LAST_UPDATED_BY,
128 X_CREATION_DATE,
129 X_CREATED_BY,
130 X_LAST_UPDATE_LOGIN,
131 X_INTERCHANGE_REASON,
132 L.LANGUAGE_CODE,
133 userenv('LANG')
134 from FND_LANGUAGES L
135 where L.INSTALLED_FLAG in ('I', 'B')
136 and not exists
137 (select NULL
138 from AHL_ITEM_ASSOCIATIONS_TL T
139 where T.ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID
140 and T.LANGUAGE = L.LANGUAGE_CODE);
141
142 open c;
143 fetch c into X_ROWID;
144 if (c%notfound) then
145 close c;
146 raise no_data_found;
147 end if;
148 close c;
149
150 end INSERT_ROW;
151
152 procedure LOCK_ROW (
153 X_ITEM_ASSOCIATION_ID in NUMBER,
154 X_SOURCE_ITEM_ASSOCIATION_ID in NUMBER,
155 X_OBJECT_VERSION_NUMBER in NUMBER,
156 X_ITEM_GROUP_ID in NUMBER,
157 X_INVENTORY_ITEM_ID in NUMBER,
158 X_INVENTORY_ORG_ID in NUMBER,
159 X_PRIORITY in NUMBER,
160 X_UOM_CODE in VARCHAR2,
161 X_QUANTITY in NUMBER,
162 X_REVISION in VARCHAR2,
163 X_INTERCHANGE_TYPE_CODE in VARCHAR2,
164 X_ITEM_TYPE_CODE in VARCHAR2,
165 X_ATTRIBUTE_CATEGORY in VARCHAR2,
166 X_ATTRIBUTE1 in VARCHAR2,
167 X_ATTRIBUTE2 in VARCHAR2,
168 X_ATTRIBUTE3 in VARCHAR2,
169 X_ATTRIBUTE4 in VARCHAR2,
170 X_ATTRIBUTE5 in VARCHAR2,
171 X_ATTRIBUTE6 in VARCHAR2,
172 X_ATTRIBUTE7 in VARCHAR2,
173 X_ATTRIBUTE8 in VARCHAR2,
174 X_ATTRIBUTE9 in VARCHAR2,
175 X_ATTRIBUTE10 in VARCHAR2,
176 X_ATTRIBUTE11 in VARCHAR2,
177 X_ATTRIBUTE12 in VARCHAR2,
178 X_ATTRIBUTE13 in VARCHAR2,
179 X_ATTRIBUTE14 in VARCHAR2,
180 X_ATTRIBUTE15 in VARCHAR2,
181 X_INTERCHANGE_REASON in VARCHAR2
182 ) is
183 cursor c is select
184 SOURCE_ITEM_ASSOCIATION_ID,
185 OBJECT_VERSION_NUMBER,
186 ITEM_GROUP_ID,
187 INVENTORY_ITEM_ID,
188 INVENTORY_ORG_ID,
189 PRIORITY,
190 UOM_CODE,
191 QUANTITY,
192 REVISION,
193 INTERCHANGE_TYPE_CODE,
194 ITEM_TYPE_CODE,
195 ATTRIBUTE_CATEGORY,
196 ATTRIBUTE1,
197 ATTRIBUTE2,
198 ATTRIBUTE3,
199 ATTRIBUTE4,
200 ATTRIBUTE5,
201 ATTRIBUTE6,
202 ATTRIBUTE7,
203 ATTRIBUTE8,
204 ATTRIBUTE9,
205 ATTRIBUTE10,
206 ATTRIBUTE11,
207 ATTRIBUTE12,
208 ATTRIBUTE13,
209 ATTRIBUTE14,
210 ATTRIBUTE15
211 from AHL_ITEM_ASSOCIATIONS_B
212 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID
213 for update of ITEM_ASSOCIATION_ID nowait;
214 recinfo c%rowtype;
215
216 cursor c1 is select
217 INTERCHANGE_REASON,
218 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
219 from AHL_ITEM_ASSOCIATIONS_TL
220 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID
221 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
222 for update of ITEM_ASSOCIATION_ID nowait;
223 begin
224 open c;
225 fetch c into recinfo;
226 if (c%notfound) then
227 close c;
228 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
229 app_exception.raise_exception;
230 end if;
231 close c;
232 if ( ((recinfo.SOURCE_ITEM_ASSOCIATION_ID = X_SOURCE_ITEM_ASSOCIATION_ID)
233 OR ((recinfo.SOURCE_ITEM_ASSOCIATION_ID is null) AND (X_SOURCE_ITEM_ASSOCIATION_ID is null)))
234 AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
235 AND (recinfo.ITEM_GROUP_ID = X_ITEM_GROUP_ID)
236 AND (recinfo.INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID)
237 AND (recinfo.INVENTORY_ORG_ID = X_INVENTORY_ORG_ID)
238 AND (recinfo.PRIORITY = X_PRIORITY)
239 AND ((recinfo.UOM_CODE = X_UOM_CODE)
240 OR ((recinfo.UOM_CODE is null) AND (X_UOM_CODE is null)))
241 AND ((recinfo.QUANTITY = X_QUANTITY)
242 OR ((recinfo.QUANTITY is null) AND (X_QUANTITY is null)))
243 AND ((recinfo.REVISION = X_REVISION)
244 OR ((recinfo.REVISION is null) AND (X_REVISION is null)))
245 AND ((recinfo.INTERCHANGE_TYPE_CODE = X_INTERCHANGE_TYPE_CODE)
246 OR ((recinfo.INTERCHANGE_TYPE_CODE is null) AND (X_INTERCHANGE_TYPE_CODE is null)))
247 AND ((recinfo.ITEM_TYPE_CODE = X_ITEM_TYPE_CODE)
248 OR ((recinfo.ITEM_TYPE_CODE is null) AND (X_ITEM_TYPE_CODE is null)))
249 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
250 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
251 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
252 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
253 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
254 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
255 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
256 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
257 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
258 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
259 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
260 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
261 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
262 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
263 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
264 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
265 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
266 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
267 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
268 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
269 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
270 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
271 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
272 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
273 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
274 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
275 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
276 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
277 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
278 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
279 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
280 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
281 ) then
282 null;
283 else
284 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
285 app_exception.raise_exception;
286 end if;
287
288 for tlinfo in c1 loop
289 if (tlinfo.BASELANG = 'Y') then
290 if ( ((tlinfo.INTERCHANGE_REASON = X_INTERCHANGE_REASON)
291 OR ((tlinfo.INTERCHANGE_REASON is null) AND (X_INTERCHANGE_REASON is null)))
292 ) then
293 null;
294 else
295 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
296 app_exception.raise_exception;
297 end if;
298 end if;
299 end loop;
300 return;
301 end LOCK_ROW;
302
303 procedure UPDATE_ROW (
304 X_ITEM_ASSOCIATION_ID in NUMBER,
305 X_SOURCE_ITEM_ASSOCIATION_ID in NUMBER,
306 X_OBJECT_VERSION_NUMBER in NUMBER,
307 X_ITEM_GROUP_ID in NUMBER,
308 X_INVENTORY_ITEM_ID in NUMBER,
309 X_INVENTORY_ORG_ID in NUMBER,
310 X_PRIORITY in NUMBER,
311 X_UOM_CODE in VARCHAR2,
312 X_QUANTITY in NUMBER,
313 X_REVISION in VARCHAR2,
314 X_INTERCHANGE_TYPE_CODE in VARCHAR2,
315 X_ITEM_TYPE_CODE in VARCHAR2,
316 X_ATTRIBUTE_CATEGORY in VARCHAR2,
317 X_ATTRIBUTE1 in VARCHAR2,
318 X_ATTRIBUTE2 in VARCHAR2,
319 X_ATTRIBUTE3 in VARCHAR2,
320 X_ATTRIBUTE4 in VARCHAR2,
321 X_ATTRIBUTE5 in VARCHAR2,
322 X_ATTRIBUTE6 in VARCHAR2,
323 X_ATTRIBUTE7 in VARCHAR2,
324 X_ATTRIBUTE8 in VARCHAR2,
325 X_ATTRIBUTE9 in VARCHAR2,
326 X_ATTRIBUTE10 in VARCHAR2,
327 X_ATTRIBUTE11 in VARCHAR2,
328 X_ATTRIBUTE12 in VARCHAR2,
329 X_ATTRIBUTE13 in VARCHAR2,
330 X_ATTRIBUTE14 in VARCHAR2,
331 X_ATTRIBUTE15 in VARCHAR2,
332 X_INTERCHANGE_REASON in VARCHAR2,
333 X_LAST_UPDATE_DATE in DATE,
334 X_LAST_UPDATED_BY in NUMBER,
335 X_LAST_UPDATE_LOGIN in NUMBER
336 ) is
337 begin
338 update AHL_ITEM_ASSOCIATIONS_B set
339 SOURCE_ITEM_ASSOCIATION_ID = X_SOURCE_ITEM_ASSOCIATION_ID,
340 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
341 ITEM_GROUP_ID = X_ITEM_GROUP_ID,
342 INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID,
343 INVENTORY_ORG_ID = X_INVENTORY_ORG_ID,
344 PRIORITY = X_PRIORITY,
345 UOM_CODE = X_UOM_CODE,
346 QUANTITY = X_QUANTITY,
347 REVISION = X_REVISION,
348 INTERCHANGE_TYPE_CODE = X_INTERCHANGE_TYPE_CODE,
349 ITEM_TYPE_CODE = X_ITEM_TYPE_CODE,
350 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
351 ATTRIBUTE1 = X_ATTRIBUTE1,
352 ATTRIBUTE2 = X_ATTRIBUTE2,
353 ATTRIBUTE3 = X_ATTRIBUTE3,
354 ATTRIBUTE4 = X_ATTRIBUTE4,
355 ATTRIBUTE5 = X_ATTRIBUTE5,
356 ATTRIBUTE6 = X_ATTRIBUTE6,
357 ATTRIBUTE7 = X_ATTRIBUTE7,
358 ATTRIBUTE8 = X_ATTRIBUTE8,
359 ATTRIBUTE9 = X_ATTRIBUTE9,
360 ATTRIBUTE10 = X_ATTRIBUTE10,
361 ATTRIBUTE11 = X_ATTRIBUTE11,
362 ATTRIBUTE12 = X_ATTRIBUTE12,
363 ATTRIBUTE13 = X_ATTRIBUTE13,
364 ATTRIBUTE14 = X_ATTRIBUTE14,
365 ATTRIBUTE15 = X_ATTRIBUTE15,
366 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
367 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
368 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
369 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID;
370
371 if (sql%notfound) then
372 raise no_data_found;
373 end if;
374
375 update AHL_ITEM_ASSOCIATIONS_TL set
376 INTERCHANGE_REASON = X_INTERCHANGE_REASON,
377 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
378 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
379 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
380 SOURCE_LANG = userenv('LANG')
381 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID
382 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
383
384 if (sql%notfound) then
385 raise no_data_found;
386 end if;
387 end UPDATE_ROW;
388
389 procedure DELETE_ROW (
390 X_ITEM_ASSOCIATION_ID in NUMBER
391 ) is
392 begin
393 delete from AHL_ITEM_ASSOCIATIONS_TL
394 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID;
395
396 if (sql%notfound) then
397 raise no_data_found;
398 end if;
399
400 delete from AHL_ITEM_ASSOCIATIONS_B
401 where ITEM_ASSOCIATION_ID = X_ITEM_ASSOCIATION_ID;
402
403 if (sql%notfound) then
404 raise no_data_found;
405 end if;
406 end DELETE_ROW;
407
408 procedure ADD_LANGUAGE
409 is
410 begin
411 delete from AHL_ITEM_ASSOCIATIONS_TL T
412 where not exists
413 (select NULL
417
414 from AHL_ITEM_ASSOCIATIONS_B B
415 where B.ITEM_ASSOCIATION_ID = T.ITEM_ASSOCIATION_ID
416 );
418 update AHL_ITEM_ASSOCIATIONS_TL T set (
419 INTERCHANGE_REASON
420 ) = (select
421 B.INTERCHANGE_REASON
422 from AHL_ITEM_ASSOCIATIONS_TL B
423 where B.ITEM_ASSOCIATION_ID = T.ITEM_ASSOCIATION_ID
424 and B.LANGUAGE = T.SOURCE_LANG)
425 where (
426 T.ITEM_ASSOCIATION_ID,
427 T.LANGUAGE
428 ) in (select
429 SUBT.ITEM_ASSOCIATION_ID,
430 SUBT.LANGUAGE
431 from AHL_ITEM_ASSOCIATIONS_TL SUBB, AHL_ITEM_ASSOCIATIONS_TL SUBT
432 where SUBB.ITEM_ASSOCIATION_ID = SUBT.ITEM_ASSOCIATION_ID
433 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
434 and (SUBB.INTERCHANGE_REASON <> SUBT.INTERCHANGE_REASON
435 or (SUBB.INTERCHANGE_REASON is null and SUBT.INTERCHANGE_REASON is not null)
436 or (SUBB.INTERCHANGE_REASON is not null and SUBT.INTERCHANGE_REASON is null)
437 ));
438
439 insert into AHL_ITEM_ASSOCIATIONS_TL (
440 ITEM_ASSOCIATION_ID,
441 LAST_UPDATE_DATE,
442 LAST_UPDATED_BY,
443 CREATION_DATE,
444 CREATED_BY,
445 LAST_UPDATE_LOGIN,
446 INTERCHANGE_REASON,
447 LANGUAGE,
448 SOURCE_LANG
449 ) select
450 B.ITEM_ASSOCIATION_ID,
451 B.LAST_UPDATE_DATE,
452 B.LAST_UPDATED_BY,
453 B.CREATION_DATE,
454 B.CREATED_BY,
455 B.LAST_UPDATE_LOGIN,
456 B.INTERCHANGE_REASON,
457 L.LANGUAGE_CODE,
458 B.SOURCE_LANG
459 from AHL_ITEM_ASSOCIATIONS_TL B, FND_LANGUAGES L
460 where L.INSTALLED_FLAG in ('I', 'B')
461 and B.LANGUAGE = userenv('LANG')
462 and not exists
463 (select NULL
464 from AHL_ITEM_ASSOCIATIONS_TL T
465 where T.ITEM_ASSOCIATION_ID = B.ITEM_ASSOCIATION_ID
466 and T.LANGUAGE = L.LANGUAGE_CODE);
467 end ADD_LANGUAGE;
468
469 end AHL_ITEM_ASSOCIATIONS_PKG;