DBA Data[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;