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