[Home] [Help]
PACKAGE BODY: APPS.WMS_STRATEGIES_PKG
Source
1 package body WMS_STRATEGIES_PKG as
2 /* $Header: WMSHPSTB.pls 120.2.12010000.1 2008/07/28 18:34:29 appldev ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_STRATEGY_ID in NUMBER,
6 X_ORGANIZATION_ID in NUMBER,
7 X_TYPE_CODE in NUMBER,
8 X_ENABLED_FLAG in VARCHAR2,
9 X_USER_DEFINED_FLAG in VARCHAR2,
10 X_NAME in VARCHAR2,
11 X_DESCRIPTION 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 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_wms_enabled_flag in VARCHAR2 DEFAULT NULL,
34 X_OVER_ALLOCATION_MODE in NUMBER DEFAULT NULL,
35 X_TOLERANCE_VALUE in NUMBER DEFAULT NULL
36 ) is
37 cursor C is select ROWID from WMS_STRATEGIES_B
38 where STRATEGY_ID = X_STRATEGY_ID
39 ;
40 begin
41 insert into WMS_STRATEGIES_B (
42 ATTRIBUTE_CATEGORY,
43 ATTRIBUTE1,
44 ATTRIBUTE2,
45 ATTRIBUTE3,
46 ATTRIBUTE4,
47 ATTRIBUTE5,
48 ATTRIBUTE6,
49 ATTRIBUTE7,
50 ATTRIBUTE8,
51 ATTRIBUTE9,
52 ATTRIBUTE10,
53 ATTRIBUTE11,
54 ATTRIBUTE12,
55 ATTRIBUTE13,
56 ATTRIBUTE14,
57 ATTRIBUTE15,
58 STRATEGY_ID,
59 ORGANIZATION_ID,
60 TYPE_CODE,
61 ENABLED_FLAG,
62 USER_DEFINED_FLAG,
63 CREATION_DATE,
64 CREATED_BY,
65 LAST_UPDATE_DATE,
66 LAST_UPDATED_BY,
67 LAST_UPDATE_LOGIN,
68 wms_enabled_flag,
69 OVER_ALLOCATION_MODE,
70 TOLERANCE_VALUE
71 ) values (
72 X_ATTRIBUTE_CATEGORY,
73 X_ATTRIBUTE1,
74 X_ATTRIBUTE2,
75 X_ATTRIBUTE3,
76 X_ATTRIBUTE4,
77 X_ATTRIBUTE5,
78 X_ATTRIBUTE6,
79 X_ATTRIBUTE7,
80 X_ATTRIBUTE8,
81 X_ATTRIBUTE9,
82 X_ATTRIBUTE10,
83 X_ATTRIBUTE11,
84 X_ATTRIBUTE12,
85 X_ATTRIBUTE13,
86 X_ATTRIBUTE14,
87 X_ATTRIBUTE15,
88 X_STRATEGY_ID,
89 X_ORGANIZATION_ID,
90 X_TYPE_CODE,
91 X_ENABLED_FLAG,
92 X_USER_DEFINED_FLAG,
93 X_CREATION_DATE,
94 X_CREATED_BY,
95 X_LAST_UPDATE_DATE,
96 X_LAST_UPDATED_BY,
97 X_LAST_UPDATE_LOGIN,
98 X_wms_enabled_flag,
99 X_OVER_ALLOCATION_MODE,
100 X_TOLERANCE_VALUE
101 );
102
103 insert into WMS_STRATEGIES_TL (
104 STRATEGY_ID,
105 LAST_UPDATED_BY,
106 LAST_UPDATE_DATE,
107 CREATED_BY,
108 CREATION_DATE,
109 LAST_UPDATE_LOGIN,
110 NAME,
111 DESCRIPTION,
112 LANGUAGE,
113 SOURCE_LANG
114 ) select
115 X_STRATEGY_ID,
116 X_LAST_UPDATED_BY,
117 X_LAST_UPDATE_DATE,
118 X_CREATED_BY,
119 X_CREATION_DATE,
120 X_LAST_UPDATE_LOGIN,
121 X_NAME,
122 X_DESCRIPTION,
123 L.LANGUAGE_CODE,
124 userenv('LANG')
125 from FND_LANGUAGES L
126 where L.INSTALLED_FLAG in ('I', 'B')
127 and not exists
128 (select NULL
129 from WMS_STRATEGIES_TL T
130 where T.STRATEGY_ID = X_STRATEGY_ID
131 and T.LANGUAGE = L.LANGUAGE_CODE);
132
133 open c;
134 fetch c into X_ROWID;
135 if (c%notfound) then
136 close c;
137 raise no_data_found;
138 end if;
139 close c;
140
141 end INSERT_ROW;
142
143 procedure LOCK_ROW (
144 X_STRATEGY_ID in NUMBER,
145 X_ORGANIZATION_ID in NUMBER,
146 X_TYPE_CODE in NUMBER,
147 X_ENABLED_FLAG in VARCHAR2,
148 X_USER_DEFINED_FLAG in VARCHAR2,
149 X_NAME in VARCHAR2,
150 X_DESCRIPTION in VARCHAR2,
151 X_ATTRIBUTE_CATEGORY in VARCHAR2,
152 X_ATTRIBUTE1 in VARCHAR2,
153 X_ATTRIBUTE2 in VARCHAR2,
154 X_ATTRIBUTE3 in VARCHAR2,
155 X_ATTRIBUTE4 in VARCHAR2,
156 X_ATTRIBUTE5 in VARCHAR2,
157 X_ATTRIBUTE6 in VARCHAR2,
158 X_ATTRIBUTE7 in VARCHAR2,
159 X_ATTRIBUTE8 in VARCHAR2,
160 X_ATTRIBUTE9 in VARCHAR2,
161 X_ATTRIBUTE10 in VARCHAR2,
162 X_ATTRIBUTE11 in VARCHAR2,
163 X_ATTRIBUTE12 in VARCHAR2,
164 X_ATTRIBUTE13 in VARCHAR2,
165 X_ATTRIBUTE14 in VARCHAR2,
166 X_ATTRIBUTE15 in VARCHAR2,
167 X_OVER_ALLOCATION_MODE in NUMBER DEFAULT NULL,
168 X_TOLERANCE_VALUE in NUMBER DEFAULT NULL
169 ) is
170 cursor c is select
171 ATTRIBUTE_CATEGORY,
172 ATTRIBUTE1,
173 ATTRIBUTE2,
174 ATTRIBUTE3,
175 ATTRIBUTE4,
176 ATTRIBUTE5,
177 ATTRIBUTE6,
178 ATTRIBUTE7,
179 ATTRIBUTE8,
180 ATTRIBUTE9,
181 ATTRIBUTE10,
182 ATTRIBUTE11,
183 ATTRIBUTE12,
184 ATTRIBUTE13,
185 ATTRIBUTE14,
186 ATTRIBUTE15,
187 ORGANIZATION_ID,
188 TYPE_CODE,
189 ENABLED_FLAG,
190 USER_DEFINED_FLAG,
191 OVER_ALLOCATION_MODE,
192 TOLERANCE_VALUE
193 from WMS_STRATEGIES_B
194 where STRATEGY_ID = X_STRATEGY_ID
195 for update of STRATEGY_ID nowait;
196 recinfo c%rowtype;
197
198 cursor c1 is select
199 NAME,
200 DESCRIPTION,
201 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
202 from WMS_STRATEGIES_TL
203 where STRATEGY_ID = X_STRATEGY_ID
204 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
205 for update of STRATEGY_ID nowait;
206 begin
207 open c;
208 fetch c into recinfo;
209 if (c%notfound) then
210 close c;
211 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
212 app_exception.raise_exception;
213 end if;
214 close c;
215 if ( ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
216 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
217 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
218 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
219 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
220 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
221 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
222 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
223 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
224 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
225 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
226 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
227 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
228 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
229 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
230 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
231 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
232 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
233 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
234 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
235 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
236 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
237 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
238 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
239 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
240 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
241 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
242 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
243 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
244 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
245 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
246 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
247 AND (recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
248 AND (recinfo.TYPE_CODE = X_TYPE_CODE)
249 AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
250 AND (recinfo.USER_DEFINED_FLAG = X_USER_DEFINED_FLAG)
251 AND ((recinfo.OVER_ALLOCATION_MODE = X_OVER_ALLOCATION_MODE)
252 OR ((recinfo.OVER_ALLOCATION_MODE is null) AND (X_OVER_ALLOCATION_MODE is null)))
253 AND ((recinfo.TOLERANCE_VALUE = X_TOLERANCE_VALUE)
254 OR ((recinfo.TOLERANCE_VALUE is null) AND (X_TOLERANCE_VALUE is null)))
255 ) then
256 null;
257 else
258 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
259 app_exception.raise_exception;
260 end if;
261
262 for tlinfo in c1 loop
263 if (tlinfo.BASELANG = 'Y') then
264 if ( (tlinfo.NAME = X_NAME)
265 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
266 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
267 ) then
268 null;
269 else
270 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
271 app_exception.raise_exception;
272 end if;
273 end if;
274 end loop;
275 return;
276 end LOCK_ROW;
277
278 procedure UPDATE_ROW (
279 X_STRATEGY_ID in NUMBER,
280 X_ORGANIZATION_ID in NUMBER,
281 X_TYPE_CODE in NUMBER,
282 X_ENABLED_FLAG in VARCHAR2,
283 X_USER_DEFINED_FLAG in VARCHAR2,
284 X_NAME in VARCHAR2,
285 X_DESCRIPTION in VARCHAR2,
286 X_LAST_UPDATE_DATE in DATE,
287 X_LAST_UPDATED_BY in NUMBER,
288 X_LAST_UPDATE_LOGIN in NUMBER,
289 X_ATTRIBUTE_CATEGORY in VARCHAR2,
290 X_ATTRIBUTE1 in VARCHAR2,
291 X_ATTRIBUTE2 in VARCHAR2,
292 X_ATTRIBUTE3 in VARCHAR2,
293 X_ATTRIBUTE4 in VARCHAR2,
294 X_ATTRIBUTE5 in VARCHAR2,
295 X_ATTRIBUTE6 in VARCHAR2,
296 X_ATTRIBUTE7 in VARCHAR2,
297 X_ATTRIBUTE8 in VARCHAR2,
298 X_ATTRIBUTE9 in VARCHAR2,
299 X_ATTRIBUTE10 in VARCHAR2,
300 X_ATTRIBUTE11 in VARCHAR2,
301 X_ATTRIBUTE12 in VARCHAR2,
302 X_ATTRIBUTE13 in VARCHAR2,
303 X_ATTRIBUTE14 in VARCHAR2,
304 X_ATTRIBUTE15 in VARCHAR2,
305 X_OVER_ALLOCATION_MODE in NUMBER DEFAULT NULL,
306 X_TOLERANCE_VALUE in NUMBER DEFAULT NULL
307 ) is
308 begin
309 update WMS_STRATEGIES_B set
310 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
311 ATTRIBUTE1 = X_ATTRIBUTE1,
312 ATTRIBUTE2 = X_ATTRIBUTE2,
313 ATTRIBUTE3 = X_ATTRIBUTE3,
314 ATTRIBUTE4 = X_ATTRIBUTE4,
315 ATTRIBUTE5 = X_ATTRIBUTE5,
316 ATTRIBUTE6 = X_ATTRIBUTE6,
317 ATTRIBUTE7 = X_ATTRIBUTE7,
318 ATTRIBUTE8 = X_ATTRIBUTE8,
319 ATTRIBUTE9 = X_ATTRIBUTE9,
320 ATTRIBUTE10 = X_ATTRIBUTE10,
321 ATTRIBUTE11 = X_ATTRIBUTE11,
322 ATTRIBUTE12 = X_ATTRIBUTE12,
323 ATTRIBUTE13 = X_ATTRIBUTE13,
324 ATTRIBUTE14 = X_ATTRIBUTE14,
325 ATTRIBUTE15 = X_ATTRIBUTE15,
326 ORGANIZATION_ID = X_ORGANIZATION_ID,
327 TYPE_CODE = X_TYPE_CODE,
328 ENABLED_FLAG = X_ENABLED_FLAG,
329 USER_DEFINED_FLAG = X_USER_DEFINED_FLAG,
330 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
331 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
332 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
333 OVER_ALLOCATION_MODE = X_OVER_ALLOCATION_MODE,
334 TOLERANCE_VALUE = X_TOLERANCE_VALUE
335 where STRATEGY_ID = X_STRATEGY_ID;
336
337 if (sql%notfound) then
338 raise no_data_found;
339 end if;
340
341 update WMS_STRATEGIES_TL set
342 NAME = X_NAME,
343 DESCRIPTION = X_DESCRIPTION,
344 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
345 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
346 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
347 SOURCE_LANG = userenv('LANG')
348 where STRATEGY_ID = X_STRATEGY_ID
349 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
350
351 if (sql%notfound) then
352 raise no_data_found;
353 end if;
354 end UPDATE_ROW;
355
356 procedure DELETE_ROW (
357 X_STRATEGY_ID in NUMBER
358 ) is
359 begin
360 delete from WMS_STRATEGIES_TL
361 where STRATEGY_ID = X_STRATEGY_ID;
362
363 if (sql%notfound) then
364 raise no_data_found;
365 end if;
366
367 delete from WMS_STRATEGIES_B
368 where STRATEGY_ID = X_STRATEGY_ID;
369
370 if (sql%notfound) then
371 raise no_data_found;
372 end if;
373 end DELETE_ROW;
374
375 procedure ADD_LANGUAGE
376 is
377 begin
378 delete from WMS_STRATEGIES_TL T
379 where not exists
380 (select NULL
381 from WMS_STRATEGIES_B B
382 where B.STRATEGY_ID = T.STRATEGY_ID
383 );
384
385 update WMS_STRATEGIES_TL T set (
386 NAME,
387 DESCRIPTION
388 ) = (select
389 B.NAME,
390 B.DESCRIPTION
391 from WMS_STRATEGIES_TL B
392 where B.STRATEGY_ID = T.STRATEGY_ID
393 and B.LANGUAGE = T.SOURCE_LANG)
394 where (
395 T.STRATEGY_ID,
396 T.LANGUAGE
397 ) in (select
398 SUBT.STRATEGY_ID,
399 SUBT.LANGUAGE
400 from WMS_STRATEGIES_TL SUBB, WMS_STRATEGIES_TL SUBT
401 where SUBB.STRATEGY_ID = SUBT.STRATEGY_ID
402 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
403 and (SUBB.NAME <> SUBT.NAME
404 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
405 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
406 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
407 ));
408
409 insert into WMS_STRATEGIES_TL (
410 STRATEGY_ID,
411 LAST_UPDATED_BY,
412 LAST_UPDATE_DATE,
413 CREATED_BY,
414 CREATION_DATE,
415 LAST_UPDATE_LOGIN,
416 NAME,
417 DESCRIPTION,
418 LANGUAGE,
419 SOURCE_LANG
420 ) select
421 B.STRATEGY_ID,
422 B.LAST_UPDATED_BY,
423 B.LAST_UPDATE_DATE,
424 B.CREATED_BY,
425 B.CREATION_DATE,
426 B.LAST_UPDATE_LOGIN,
427 B.NAME,
428 B.DESCRIPTION,
429 L.LANGUAGE_CODE,
430 B.SOURCE_LANG
431 from WMS_STRATEGIES_TL B, FND_LANGUAGES L
432 where L.INSTALLED_FLAG in ('I', 'B')
433 and B.LANGUAGE = userenv('LANG')
434 and not exists
435 (select NULL
436 from WMS_STRATEGIES_TL T
437 where T.STRATEGY_ID = B.STRATEGY_ID
438 and T.LANGUAGE = L.LANGUAGE_CODE);
439 end ADD_LANGUAGE;
440 --
441 PROCEDURE translate_row
442 (
443 x_strategy_id IN VARCHAR2,
444 x_name IN VARCHAR2,
445 x_description IN VARCHAR2,
446 x_owner IN VARCHAR2
447 ) IS
448 BEGIN
449 UPDATE wms_strategies_tl SET
453 last_updated_by = Decode(x_owner, 'SEED', 1, 0),
450 name = x_name,
451 description = x_description,
452 last_update_date = Sysdate,
454 last_update_login = 0,
455 source_lang = userenv('LANG')
456 WHERE strategy_id = fnd_number.canonical_to_number(x_strategy_id)
457 AND userenv('LANG') IN (language, source_lang);
458 END translate_row;
459 --
460 PROCEDURE load_row
461 (
462 x_strategy_id IN VARCHAR2,
463 x_owner IN VARCHAR2,
464 x_organization_code IN VARCHAR2,
465 x_type_code IN VARCHAR2,
466 x_enabled_flag IN VARCHAR2,
467 x_user_defined_flag IN VARCHAR2,
468 x_name IN VARCHAR2,
469 x_description IN VARCHAR2,
470 x_attribute_category IN VARCHAR2,
471 x_attribute1 IN VARCHAR2,
472 x_attribute2 IN VARCHAR2,
473 x_attribute3 IN VARCHAR2,
474 x_attribute4 IN VARCHAR2,
475 x_attribute5 IN VARCHAR2,
476 x_attribute6 IN VARCHAR2,
477 x_attribute7 IN VARCHAR2,
478 x_attribute8 IN VARCHAR2,
479 x_attribute9 IN VARCHAR2,
480 x_attribute10 IN VARCHAR2,
481 x_attribute11 IN VARCHAR2,
482 x_attribute12 IN VARCHAR2,
483 x_attribute13 IN VARCHAR2,
484 x_attribute14 IN VARCHAR2,
485 x_attribute15 IN VARCHAR2,
486 x_over_allocation_mode in NUMBER DEFAULT NULL,
487 x_tolerance_value in NUMBER DEFAULT NULL
488 ) IS
489 BEGIN
490 DECLARE
491 l_strategy_id NUMBER;
492 l_organization_id NUMBER;
493 l_user_id NUMBER := 0;
494 l_row_id VARCHAR2(64);
495 l_sysdate DATE;
496 BEGIN
497 IF (x_owner = 'SEED') THEN
498 l_user_id := 1;
499 END IF;
500 SELECT Sysdate INTO l_sysdate FROM dual;
501 --
502 IF (x_organization_code = '-1') THEN
503 l_organization_id := -1;
504 ELSE
505 BEGIN
506 SELECT organization_id INTO l_organization_id
507 FROM mtl_parameters
508 WHERE organization_code = x_organization_code;
509 EXCEPTION
510 WHEN NO_DATA_FOUND THEN
511 l_organization_id := -1;
512 END;
513 END IF;
514 --
515 l_strategy_id := fnd_number.canonical_to_number(x_strategy_id);
516 wms_strategies_pkg.update_row
517 (
518 X_STRATEGY_ID => l_strategy_id
519 ,X_ORGANIZATION_ID => l_organization_id
520 ,X_TYPE_CODE => fnd_number.canonical_to_number(x_type_code)
521 ,X_ENABLED_FLAG => x_enabled_flag
522 ,X_USER_DEFINED_FLAG => x_user_defined_flag
523 ,X_NAME => x_name
524 ,X_DESCRIPTION => x_description
525 ,X_LAST_UPDATE_DATE => l_sysdate
526 ,X_LAST_UPDATED_BY => l_user_id
527 ,X_LAST_UPDATE_LOGIN => 0
528 ,X_ATTRIBUTE_CATEGORY => x_attribute_category
529 ,X_ATTRIBUTE1 => x_attribute1
530 ,X_ATTRIBUTE2 => x_attribute2
531 ,X_ATTRIBUTE3 => x_attribute3
532 ,X_ATTRIBUTE4 => x_attribute4
533 ,X_ATTRIBUTE5 => x_attribute5
534 ,X_ATTRIBUTE6 => x_attribute6
535 ,X_ATTRIBUTE7 => x_attribute7
536 ,X_ATTRIBUTE8 => x_attribute8
537 ,X_ATTRIBUTE9 => x_attribute9
538 ,X_ATTRIBUTE10 => x_attribute10
539 ,X_ATTRIBUTE11 => x_attribute11
540 ,X_ATTRIBUTE12 => x_attribute12
541 ,X_ATTRIBUTE13 => x_attribute13
542 ,X_ATTRIBUTE14 => x_attribute14
543 ,X_ATTRIBUTE15 => x_attribute15
544 ,X_OVER_ALLOCATION_MODE => x_over_allocation_mode
545 ,X_TOLERANCE_VALUE => x_tolerance_value
546 );
547 EXCEPTION
548 WHEN no_data_found THEN
549 IF (l_strategy_id IS NULL) THEN
550 SELECT wms_strategies_s.NEXTVAL INTO l_strategy_id FROM dual;
551 END IF;
552 wms_strategies_pkg.insert_row
553 (
554 X_ROWID => l_row_id
555 ,X_STRATEGY_ID => l_strategy_id
556 ,X_ATTRIBUTE_CATEGORY => x_attribute_category
557 ,X_ATTRIBUTE1 => x_attribute1
558 ,X_ATTRIBUTE2 => x_attribute2
559 ,X_ATTRIBUTE3 => x_attribute3
560 ,X_ATTRIBUTE4 => x_attribute4
561 ,X_ATTRIBUTE5 => x_attribute5
562 ,X_ATTRIBUTE6 => x_attribute6
563 ,X_ATTRIBUTE7 => x_attribute7
564 ,X_ATTRIBUTE8 => x_attribute8
565 ,X_ATTRIBUTE9 => x_attribute9
566 ,X_ATTRIBUTE10 => x_attribute10
567 ,X_ATTRIBUTE11 => x_attribute11
568 ,X_ATTRIBUTE12 => x_attribute12
569 ,X_ATTRIBUTE13 => x_attribute13
570 ,X_ATTRIBUTE14 => x_attribute14
571 ,X_ATTRIBUTE15 => x_attribute15
572 ,X_ORGANIZATION_ID => l_organization_id
573 ,X_TYPE_CODE => fnd_number.canonical_to_number(x_type_code)
574 ,X_ENABLED_FLAG => x_enabled_flag
575 ,X_USER_DEFINED_FLAG => x_user_defined_flag
576 ,X_NAME => x_name
577 ,X_DESCRIPTION => x_description
578 ,X_CREATION_DATE => l_sysdate
579 ,X_CREATED_BY => l_user_id
580 ,X_LAST_UPDATE_DATE => l_sysdate
581 ,X_LAST_UPDATED_BY => l_user_id
582 ,X_LAST_UPDATE_LOGIN => 0
583 ,X_OVER_ALLOCATION_MODE => x_over_allocation_mode
584 ,X_TOLERANCE_VALUE => x_tolerance_value
585 );
586 END;
587 END load_row;
588 end WMS_STRATEGIES_PKG;