DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AM_REMARKET_ASSET_WF

Source


1 PACKAGE BODY OKL_AM_REMARKET_ASSET_WF AS
2 /* $Header: OKLRNWFB.pls 120.4 2010/08/26 21:42:28 sechawla ship $ */
3 
4   -- Start of comments
5   --
6   -- Procedure Name	: RAISE_RMK_CUSTOM_PROCESS_EVENT
7   -- Description    : raise WF event
8   -- Business Rules	:
9   -- Parameters		: p_asset_return_id, p_item_number, p_Item_Description, p_Item_Price, p_quantity
10   -- Version		: 1.0
11   --
12   -- End of comments
13 PROCEDURE RAISE_RMK_CUSTOM_PROCESS_EVENT(p_asset_return_id IN NUMBER,
14                                          p_item_number  IN VARCHAR2,
15 										 p_Item_Description IN VARCHAR2,
16 										 p_Item_Price IN NUMBER,
17 										 p_quantity IN NUMBER) IS
18 
19     l_parameter_list        WF_PARAMETER_LIST_T;
20     l_key                   WF_ITEMS.item_key%TYPE;
21     l_event_name            WF_EVENTS.NAME%TYPE := 'oracle.apps.okl.am.remkcustomflow';
22     l_seq                   NUMBER;
23 
24 
25     -- Cursor to get the value of the sequence
26   	CURSOR okl_key_csr IS
27   	SELECT okl_wf_item_s.nextval
28   	FROM   DUAL;
29 
30 
31 
32   BEGIN
33 
34     SAVEPOINT remk_custom_process_event;
35 
36   	OPEN  okl_key_csr;
37   	FETCH okl_key_csr INTO l_seq;
38   	CLOSE okl_key_csr;
39 
40     l_key := l_event_name ||l_seq ;
41 
42 
43 
44     -- *******
45     -- Set the parameter list
46     -- *******
47 
48     WF_EVENT.AddParameterToList('ASSET_RETURN_ID',
49                                 p_asset_return_id,
50                                 l_parameter_list);
51 
52     WF_EVENT.AddParameterToList('ITEM_NUMBER',
53                                 p_item_number,
54                                 l_parameter_list);
55 
56 	WF_EVENT.AddParameterToList('ITEM_DESC',
57                                 p_Item_Description,
58                                 l_parameter_list);
59 
60 	WF_EVENT.AddParameterToList('ITEM_PRICE',
61                                 p_Item_Price,
62                                 l_parameter_list);
63 
64 	WF_EVENT.AddParameterToList('QUANTITY',
65                                 p_quantity,
66                                 l_parameter_list);
67 
68     --sechawla 26-aug-09 10063703  : set org_id
69     wf_event.AddParameterToList('ORG_ID',mo_global.get_current_org_id ,l_parameter_list);
70 
71     -- Raise Business Event
72     WF_EVENT.raise(
73                  p_event_name  => l_event_name,
74                  p_event_key   => l_key,
75                  p_parameters  => l_parameter_list);
76 
77     l_parameter_list.DELETE;
78 
79   EXCEPTION
80     WHEN OTHERS THEN
81       FND_MESSAGE.SET_NAME('OKL', 'OKL_API_OTHERS_EXCEP');
82       FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
83       FND_MSG_PUB.ADD;
84       IF okl_key_csr%ISOPEN THEN
85          CLOSE okl_key_csr;
86       END IF;
87       ROLLBACK TO remk_custom_process_event;
88 
89 END RAISE_RMK_CUSTOM_PROCESS_EVENT;
90 
91 
92 
93   -- Start of comments
94   --
95   -- Procedure Name	: VALIDATE_ASSET_RETURN
96   -- Description    : validate asset return id
97   -- Business Rules	:
98   -- Parameters		: itemtype, itemkey, actid, funcmode, resultout
99   -- Version		: 1.0
100   --
101   -- End of comments
102 PROCEDURE VALIDATE_ASSET_RETURN(itemtype	IN VARCHAR2,
103 				                itemkey  	IN VARCHAR2,
104 			                 	actid		IN NUMBER,
105 			                  	funcmode	IN VARCHAR2,
106 				                resultout   OUT NOCOPY VARCHAR2) IS
107 
108     l_id		    			NUMBER;
109 	l_LAST_UPDATED_BY			NUMBER;
110 	l_user              		WF_USERS.NAME%TYPE;
111     l_name              		WF_USERS.DESCRIPTION%TYPE;
112 
113 
114     -- get last_updated_by
115 	CURSOR l_assetreturn_csr(cp_asset_return_id IN NUMBER) IS
116 	SELECT last_updated_by
117 	FROM   okl_asset_returns_b
118 	WHERE  id = cp_asset_return_id;
119 
120     BEGIN
121 
122       IF (funcmode = 'RUN') THEN
123 
124      	l_id := wf_engine.GetItemAttrText( itemtype => itemtype,
125 						      	           itemkey	=> itemkey,
129 		FETCH l_assetreturn_csr INTO l_LAST_UPDATED_BY;
126 							               aname  	=> 'ASSET_RETURN_ID');
127 
128 		OPEN  l_assetreturn_csr(to_number(l_id));
130 		CLOSE l_assetreturn_csr;
131 
132 		IF l_LAST_UPDATED_BY IS NULL THEN
133 		   resultout := 'COMPLETE:INVALID';
134 		ELSE
135 		   okl_am_wf.get_notification_agent(
136                                 itemtype	  => itemtype
137 	                          , itemkey  	  => itemkey
138 	                          , actid	      => actid
139 	                          , funcmode	  => funcmode
140                               , p_user_id     => l_last_updated_by
141                               , x_name  	  => l_user
142 	                          , x_description => l_name);
143 
144 	       wf_engine.SetItemAttrText ( itemtype=> itemtype,
145 				                itemkey => itemkey,
146 				                aname   => 'WF_ADMINISTRATOR',
147          	                    avalue  => l_user);
148 
149 		   resultout := 'COMPLETE:VALID';
150 		END IF;
151 
152         RETURN ;
153 
154       END IF;
155       --
156       -- CANCEL mode
157       --
158       IF (funcmode = 'CANCEL') THEN
159         --
160         resultout := 'COMPLETE:';
161         RETURN;
162         --
163       END IF;
164       --
165       -- TIMEOUT mode
166       --
167       IF (funcmode = 'TIMEOUT') THEN
168         --
169         resultout := 'COMPLETE:';
170         RETURN;
171         --
172       END IF;
173 
174   EXCEPTION
175      WHEN OTHERS THEN
176         IF l_assetreturn_csr%ISOPEN THEN
177            CLOSE l_assetreturn_csr;
178         END IF;
179 
180         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'validate_asset_return', itemtype, itemkey, actid, funcmode);
181         RAISE;
182 
183   END validate_asset_return;
184 
185 
186   -- Start of comments
187   --
188   -- Procedure Name	: VALIDATE_ITEM_INFO
189   -- Description    : validate item information
190   -- Business Rules	:
191   -- Parameters		: itemtype, itemkey, actid, funcmode, resultout
192   -- Version		: 1.0
193   --
194   -- End of comments
195 PROCEDURE VALIDATE_ITEM_INFO   (itemtype	IN VARCHAR2,
196 				                itemkey  	IN VARCHAR2,
197 			                 	actid		IN NUMBER,
198 			                  	funcmode	IN VARCHAR2,
199 				                resultout   OUT NOCOPY VARCHAR2	) IS
200 
201 	-- get last_updated_by
202 	CURSOR l_assetreturn_csr(cp_asset_return_id IN NUMBER) IS
203 	SELECT last_updated_by
204 	FROM   okl_asset_returns_b
205 	WHERE  id = cp_asset_return_id;
206 
207 
208     l_api_version                   NUMBER       := 1;
209     l_init_msg_list                 VARCHAR2(1)  := OKL_API.G_FALSE;
210     x_return_status                 VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
211     x_msg_count                     NUMBER;
212     x_msg_data                      VARCHAR2(2000);
213 
214     l_asset_return_id               VARCHAR2(2000);
215     l_item_number					VARCHAR2(2000);
216     l_item_desc						VARCHAR2(240);
217    -- l_item_price					VARCHAR2(2000);
218     l_item_price					NUMBER; -- sechawla 29-OCT-04 3924244 : changed to NUMBER
219     l_item_qty						VARCHAR2(2000);
220     l_inv_org_id                    NUMBER;
221     l_inv_org_name                  VARCHAR2(240);
222     l_subinv_code             		VARCHAR2(10);
223     l_price_list_id					NUMBER;
224     l_sysdate						DATE;
225     invalid_item_info   			EXCEPTION;
226 
227     l_user              			WF_USERS.NAME%TYPE;
228     l_name              			WF_USERS.DESCRIPTION%TYPE;
229     l_last_updated_by   			NUMBER;
230     l_item_templ_id					NUMBER;
231     BEGIN
232 
233       IF (funcmode = 'RUN') THEN
234 
235         l_asset_return_id := wf_engine.GetItemAttrText( itemtype => itemtype,
236 						      	           itemkey	=> itemkey,
237 							               aname  	=> 'ASSET_RETURN_ID');
238 
239      	l_item_number := wf_engine.GetItemAttrText( itemtype => itemtype,
240 						      	           itemkey	=> itemkey,
241 							               aname  	=> 'ITEM_NUMBER');
242 
243 		l_item_desc := wf_engine.GetItemAttrText( itemtype => itemtype,
244 						      	           itemkey	=> itemkey,
245 							               aname  	=> 'ITEM_DESC');
246 
247 		l_item_price := wf_engine.GetItemAttrNumber( itemtype => itemtype,  -- sechawla 29-OCT-04 3924244 changed to GetItemAttrNumber
248 						      	           itemkey	=> itemkey,
249 							               aname  	=> 'ITEM_PRICE');
250 
251 		l_item_qty := wf_engine.GetItemAttrText( itemtype => itemtype,
252 						      	           itemkey	=> itemkey,
253 							               aname  	=> 'QUANTITY');
254 
255 
256 
257         OKL_AM_CUSTOM_RMK_ASSET_PVT.validate_item_info(
258      				p_api_version           => l_api_version,
259      				p_init_msg_list         => l_init_msg_list,
260      				p_asset_return_id       => to_number(l_asset_return_id),
261      				p_item_number           => l_item_number,
262      				p_Item_Description      => l_item_desc,
263      				p_Item_Price            => l_item_price, -- sechawla 29-OCT-04 3924244 : removed the to_number conversion
264      				p_quantity              => to_number(l_item_qty),
265      				x_inv_org_id            => l_inv_org_id,
266      				x_inv_org_name          => l_inv_org_name,
267      				x_subinv_code           => l_subinv_code,
268      				x_sys_date				=> l_sysdate,
269      				x_price_list_id		    => l_price_list_id,
270      				x_item_templ_id         => l_item_templ_id,
271      				x_return_status         => x_return_status,
275 		IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
272      				x_msg_count             => x_msg_count,
273      				x_msg_data              => x_msg_data);
274 
276 
277 		    WF_ENGINE.SetItemAttrText( itemtype => itemtype,
278                                        itemkey  => itemkey,
279                                        aname    => 'INV_ORG_ID',
280                                        avalue   => to_char(l_inv_org_id));
281 
282 			WF_ENGINE.SetItemAttrText( itemtype => itemtype,
283                                        itemkey  => itemkey,
284                                        aname    => 'INV_ORG_NAME',
285                                        avalue   => l_inv_org_name);
286 
287 			WF_ENGINE.SetItemAttrText( itemtype => itemtype,
288                                        itemkey  => itemkey,
289                                        aname    => 'SUBINV_CODE',
290                                        avalue   => l_subinv_code);
291 
292 			WF_ENGINE.SetItemAttrDate( itemtype => itemtype,
293                                        itemkey  => itemkey,
294                                        aname    => 'SYS_DATE',
295                                        avalue   => l_sysdate);
296 
297             WF_ENGINE.SetItemAttrText( itemtype => itemtype,
298                                        itemkey  => itemkey,
299                                        aname    => 'PRICE_LIST_ID',
300                                        avalue   => to_char(l_price_list_id));
301 
302             WF_ENGINE.SetItemAttrText( itemtype => itemtype,
303                                        itemkey  => itemkey,
304                                        aname    => 'ITEM_TEMPLATE_ID',
305                                        avalue   => to_char(l_item_templ_id));
306 
307      		resultout := 'COMPLETE:VALID';
308 		ELSE
309 			resultout := 'COMPLETE:INVALID';
310 			RAISE invalid_item_info;
311 		END IF;
312 
313 		RETURN ;
314 
315       END IF;
316       --
317       -- CANCEL mode
318       --
319       IF (funcmode = 'CANCEL') THEN
320         --
321         resultout := 'COMPLETE:';
322         RETURN;
323         --
324       END IF;
325       --
326       -- TIMEOUT mode
327       --
328       IF (funcmode = 'TIMEOUT') THEN
329         --
330         resultout := 'COMPLETE:';
331         RETURN;
332         --
333       END IF;
334 
335   EXCEPTION
336      WHEN invalid_item_info THEN
337         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
338         RAISE;
339      WHEN OTHERS THEN
340 
341         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
342         RAISE;
343 
344   END VALIDATE_ITEM_INFO;
345 
346 
347   -- Start of comments
348   --
349   -- Procedure Name	: CREATE_INV_ITEM
350   -- Description    : Create Inventory Item
351   -- Business Rules	:
352   -- Parameters		: itemtype, itemkey, actid, funcmode, resultout
353   -- Version		: 1.0
354   --
355   -- End of comments
356   PROCEDURE CREATE_INV_ITEM  (itemtype	IN VARCHAR2,
357 				              itemkey  	IN VARCHAR2,
358 			                  actid		IN NUMBER,
359 			                  funcmode	IN VARCHAR2,
360 				              resultout OUT NOCOPY VARCHAR2	) IS
361 
362     l_api_version                   NUMBER       := 1;
363     l_init_msg_list                 VARCHAR2(1)  := OKL_API.G_FALSE;
364     x_return_status                 VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
365     x_msg_count                     NUMBER;
366     x_msg_data                      VARCHAR2(2000);
367 
368     l_asset_return_id				VARCHAR2(2000);
369     l_inv_org_id                    VARCHAR2(2000);
370     l_item_templ_id					VARCHAR2(2000);
371     l_inv_org_name                  VARCHAR2(240);
372     l_item_desc						VARCHAR2(240);
373     l_subinv_code					VARCHAR2(10);
374     l_sysdate						DATE;
375     l_item_number					VARCHAR2(2000);
376     l_New_Item_Number     			VARCHAR2(2000);
377     l_New_Item_Id         			NUMBER;
378     create_inv_item_error			EXCEPTION;
379 
380     BEGIN
381 
382       IF (funcmode = 'RUN') THEN
383 
384         l_asset_return_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
385                                        itemkey  => itemkey,
386                                        aname    => 'ASSET_RETURN_ID');
387 
388      	l_inv_org_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
389                                        itemkey  => itemkey,
390                                        aname    => 'INV_ORG_ID');
391 
392         l_inv_org_name := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
393                                        itemkey  => itemkey,
394                                        aname    => 'INV_ORG_NAME');
395 
396 		l_item_desc := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
397 						      	       itemkey	=> itemkey,
398 							           aname  	=> 'ITEM_DESC');
399 
400 		l_subinv_code := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
401                                        itemkey  => itemkey,
402                                        aname    => 'SUBINV_CODE');
403 
404 		l_sysdate := WF_ENGINE.GetItemAttrDate( itemtype => itemtype,
405                                        itemkey  => itemkey,
406                                        aname    => 'SYS_DATE');
407 
408 		l_item_number := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
409 						      	           itemkey	=> itemkey,
413                                        itemkey  => itemkey,
410 							               aname  	=> 'ITEM_NUMBER');
411 
412 		l_item_templ_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
414                                        aname    => 'ITEM_TEMPLATE_ID');
415 
416 	    OKL_AM_CUSTOM_RMK_ASSET_PVT.create_inv_item
417 			(  	p_api_version          => l_api_version,
418    				p_init_msg_list        => l_init_msg_list,
419    				p_asset_return_id      => to_number(l_asset_return_id),
420    				p_Organization_Id      => to_number(l_inv_org_id),
421    				p_organization_name    => l_inv_org_name,
422  				p_Item_Description     => l_item_desc,
423  				p_subinventory         => l_subinv_code,
424  				p_sysdate              => l_sysdate,
425 				p_item_number          => l_item_number,
426 				p_item_templ_id        => to_number(l_item_templ_id),
427  			    x_New_Item_Number      => l_New_Item_Number,
428  			    x_New_Item_Id          => l_New_Item_Id,
429  				x_Return_Status        => x_Return_Status,
430  				x_msg_count            => x_msg_count,
431  				x_msg_data             => x_msg_data);
432 
433 
434 		IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
435 
436 		    WF_ENGINE.SetItemAttrText( itemtype => itemtype,
437                                        itemkey  => itemkey,
438                                        aname    => 'NEW_ITEM_NUMBER',
439                                        avalue   => l_New_Item_Number);
440 
441             WF_ENGINE.SetItemAttrText( itemtype => itemtype,
442                                        itemkey  => itemkey,
443                                        aname    => 'NEW_ITEM_ID',
444                                        avalue   => to_char(l_New_Item_Id));
445 
446      		resultout := 'COMPLETE:VALID';
447 		ELSE
448 			resultout := 'COMPLETE:INVALID';
449 			RAISE create_inv_item_error;
450 		END IF;
451 
452 		RETURN ;
453 
454       END IF;
455       --
456       -- CANCEL mode
457       --
458       IF (funcmode = 'CANCEL') THEN
459         --
460         resultout := 'COMPLETE:';
461         RETURN;
462         --
463       END IF;
464       --
465       -- TIMEOUT mode
466       --
467       IF (funcmode = 'TIMEOUT') THEN
468         --
469         resultout := 'COMPLETE:';
470         RETURN;
471         --
472       END IF;
473 
474   EXCEPTION
475      WHEN create_inv_item_error THEN
476         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
477         RAISE;
478      WHEN OTHERS THEN
479 
480         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
481         RAISE;
482 
483 
484 
485   END CREATE_INV_ITEM;
486 
487 
488   -- Start of comments
489   --
490   -- Procedure Name	: CREATE_INV_MISC_RECEIPT
491   -- Description    : Create Inventory Misc Receipt
492   -- Business Rules	:
493   -- Parameters		: itemtype, itemkey, actid, funcmode, resultout
494   -- Version		: 1.0
495   --
496   -- End of comments
497   PROCEDURE CREATE_INV_MISC_RECEIPT  (itemtype	IN VARCHAR2,
498 				              itemkey  	IN VARCHAR2,
499 			                  actid		IN NUMBER,
500 			                  funcmode	IN VARCHAR2,
501 				              resultout OUT NOCOPY VARCHAR2	) IS
502 
503     l_api_version                   NUMBER       := 1;
504     l_init_msg_list                 VARCHAR2(1)  := OKL_API.G_FALSE;
505     x_return_status                 VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
506     x_msg_count                     NUMBER;
507     x_msg_data                      VARCHAR2(2000);
508     l_New_Item_Id                   VARCHAR2(2000);
509     l_subinv_code                   VARCHAR2(10);
510     l_inv_org_id					VARCHAR2(2000);
511     l_item_qty  					VARCHAR2(2000);
512     l_sysdate						DATE;
513     create_misc_rec_error			EXCEPTION;
514     BEGIN
515 
516       IF (funcmode = 'RUN') THEN
517 
518      	l_New_Item_Id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
519                                        itemkey  => itemkey,
520                                        aname    => 'NEW_ITEM_ID');
521 
522         l_subinv_code := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
523                                        itemkey  => itemkey,
524                                        aname    => 'SUBINV_CODE');
525 
526 	    l_inv_org_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
527                                        itemkey  => itemkey,
528                                        aname    => 'INV_ORG_ID');
529 
530 		l_item_qty := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
531 						      	           itemkey	=> itemkey,
532 							               aname  	=> 'QUANTITY');
533 
534 		l_sysdate := WF_ENGINE.GetItemAttrDate( itemtype => itemtype,
535                                        itemkey  => itemkey,
536                                        aname    => 'SYS_DATE');
537 
538 	    OKL_AM_CUSTOM_RMK_ASSET_PVT.Create_Inv_Misc_Receipt
539 			(    	p_api_version          => l_api_version,
540      				p_init_msg_list        => l_init_msg_list,
541      				p_Inventory_Item_id    => to_number(l_New_Item_Id),
542   					p_Subinv_Code          => l_subinv_code,
543   					p_Organization_Id      => to_number(l_inv_org_id),
544   					p_quantity             => to_number(l_item_qty),
545   					p_trans_type_id        => 42,
546   					p_sysdate              => l_sysdate,
547   					x_Return_Status        => x_Return_Status,
548   					x_msg_count            => x_msg_count,
549   					x_msg_data             => x_msg_data);
550 
551 
552 		IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
553      		resultout := 'COMPLETE:VALID';
554 		ELSE
555 			resultout := 'COMPLETE:INVALID';
556 			RAISE create_misc_rec_error;
557 		END IF;
558 
559 		RETURN ;
560 
561       END IF;
562       --
563       -- CANCEL mode
564       --
565       IF (funcmode = 'CANCEL') THEN
566         --
567         resultout := 'COMPLETE:';
568         RETURN;
569         --
570       END IF;
571       --
572       -- TIMEOUT mode
573       --
574       IF (funcmode = 'TIMEOUT') THEN
575         --
576         resultout := 'COMPLETE:';
577         RETURN;
578         --
579       END IF;
580 
581   EXCEPTION
582      WHEN create_misc_rec_error THEN
583         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
584         RAISE;
585      WHEN OTHERS THEN
586 
587         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
588         RAISE;
589 
590 
591 
592   END CREATE_INV_MISC_RECEIPT;
593 
594 
595   -- Start of comments
596   --
597   -- Procedure Name	: CREATE_ITEM_PRICE_LIST
598   -- Description    : Create Inventory Item in Price List
599   -- Business Rules	:
600   -- Parameters		: itemtype, itemkey, actid, funcmode, resultout
601   -- Version		: 1.0
602   --
603   -- End of comments
604   PROCEDURE CREATE_ITEM_PRICE_LIST  (itemtype	IN VARCHAR2,
605 				              itemkey  	IN VARCHAR2,
606 			                  actid		IN NUMBER,
607 			                  funcmode	IN VARCHAR2,
608 				              resultout OUT NOCOPY VARCHAR2	) IS
609 
610     l_api_version                   NUMBER       := 1;
611     l_init_msg_list                 VARCHAR2(1)  := OKL_API.G_FALSE;
612     x_return_status                 VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
613     x_msg_count                     NUMBER;
614     x_msg_data                      VARCHAR2(2000);
615     l_price_list_id					VARCHAR2(2000);
616     l_New_Item_Id					VARCHAR2(2000);
617     -- l_item_price					VARCHAR2(2000);
618     l_item_price					NUMBER;  -- sechawla 29-OCT-04 3924244 : changed datatype to NUMBER
619     create_price_list_error			EXCEPTION;
620     BEGIN
621 
622       IF (funcmode = 'RUN') THEN
623 
624      	l_price_list_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
625                                        itemkey  => itemkey,
626                                        aname    => 'PRICE_LIST_ID');
627 
628 		l_New_Item_Id := WF_ENGINE.GetItemAttrText( itemtype => itemtype,
629                                        itemkey  => itemkey,
630                                        aname    => 'NEW_ITEM_ID');
631 
632 		l_item_price := wf_engine.GetItemAttrNumber( itemtype => itemtype, -- sechawla 29-OCT-04 3924244 : changed to GetItemAttrNumber
633 						      	           itemkey	=> itemkey,
634 							               aname  	=> 'ITEM_PRICE');
635 
636 	    OKL_AM_CUSTOM_RMK_ASSET_PVT.Create_Item_Price_List
637 			(   p_api_version       =>   l_api_version,
638   				p_init_msg_list     =>   l_init_msg_list,
639   				p_Price_List_id     =>   to_number(l_price_list_id),
640   				p_Item_Id           =>   to_number(l_New_Item_Id),
641   				p_Item_Price        =>   l_item_price, -- sechawla 29-OCT-04 3924244 : removed the to_number conversion
642   				x_return_status     =>   x_return_status,
643   				x_msg_count         =>   x_msg_count,
644   				x_msg_data          =>   x_msg_data);
645 
646 
647 		IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
648      		resultout := 'COMPLETE:VALID';
649 		ELSE
650 			resultout := 'COMPLETE:INVALID';
651 			RAISE create_price_list_error;
652 		END IF;
653 
654 		RETURN ;
655 
656       END IF;
657       --
658       -- CANCEL mode
659       --
660       IF (funcmode = 'CANCEL') THEN
661         --
662         resultout := 'COMPLETE:';
663         RETURN;
664         --
665       END IF;
666       --
667       -- TIMEOUT mode
668       --
669       IF (funcmode = 'TIMEOUT') THEN
670         --
671         resultout := 'COMPLETE:';
672         RETURN;
673         --
674       END IF;
675 
676   EXCEPTION
677      WHEN create_price_list_error THEN
678         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
679         RAISE;
680      WHEN OTHERS THEN
681         wf_core.context('OKL_AM_REMARKET_ASSET_WF' , 'VALIDATE_ITEM_INFO', itemtype, itemkey, actid, funcmode);
682         RAISE;
683 
684 
685 
686   END CREATE_ITEM_PRICE_LIST;
687 
688 END OKL_AM_REMARKET_ASSET_WF;