DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_DIRECT_ITEMS_UTILITY_PVT

Source


1 PACKAGE BODY EAM_DIRECT_ITEMS_UTILITY_PVT AS
2 /* $Header: EAMVDIUB.pls 115.1 2004/04/08 11:54:30 rethakur noship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMVDIUB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_DIRECT_ITEMS_UTILITY_PVT
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  15-SEP-2003    Basanth Roy     Initial Creation
21 ***************************************************************************/
22 
23 G_PKG_NAME      CONSTANT VARCHAR2(30) := 'EAM_DIRECT_ITEMS_UTILITY_PVT';
24 
25         /*********************************************************************
26         * Procedure     : Query_Row
27         * Parameters IN : wip entity id
28         *                 organization Id
29         *                 operation_seq_num
30         *                 direct_items_sequence_id
31         * Parameters OUT NOCOPY: Direct Items column record
32         *                 Mesg token Table
33         *                 Return Status
34         * Purpose       : Procedure will query the database record
35         *                 and return with those records.
36         ***********************************************************************/
37 
38         PROCEDURE Query_Row
39         (  p_wip_entity_id       IN  NUMBER
40          , p_organization_id     IN  NUMBER
41          , p_operation_seq_num   IN  NUMBER
42          , p_direct_item_sequence_id   IN  NUMBER
43          , x_eam_direct_items_rec     OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_rec_type
44          , x_Return_status       OUT NOCOPY VARCHAR2
45         )
46         IS
47                 l_eam_direct_items_rec       EAM_PROCESS_WO_PUB.eam_direct_items_rec_type;
48                 l_return_status         VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
49                 l_dummy                 varchar2(10);
50         BEGIN
51 
52                 SELECT
53                   DESCRIPTION
54                  ,PURCHASING_CATEGORY_ID
55                  ,DIRECT_ITEM_SEQUENCE_ID
56                  ,OPERATION_SEQ_NUM
57                  ,DEPARTMENT_ID
58                  ,WIP_ENTITY_ID
59                  ,ORGANIZATION_ID
60                  ,SUGGESTED_VENDOR_NAME
61                  ,SUGGESTED_VENDOR_ID
62                  ,SUGGESTED_VENDOR_SITE
63                  ,SUGGESTED_VENDOR_SITE_ID
64                  ,SUGGESTED_VENDOR_CONTACT
65                  ,SUGGESTED_VENDOR_CONTACT_ID
66                  ,SUGGESTED_VENDOR_PHONE
67                  ,SUGGESTED_VENDOR_ITEM_NUM
68                  ,UNIT_PRICE
69                  ,AUTO_REQUEST_MATERIAL
70                  ,REQUIRED_QUANTITY
71                  ,UOM
72                  ,NEED_BY_DATE
73                  ,ATTRIBUTE_CATEGORY
74                  ,ATTRIBUTE1
75                  ,ATTRIBUTE2
76                  ,ATTRIBUTE3
77                  ,ATTRIBUTE4
78                  ,ATTRIBUTE5
79                  ,ATTRIBUTE6
80                  ,ATTRIBUTE7
81                  ,ATTRIBUTE8
82                  ,ATTRIBUTE9
83                  ,ATTRIBUTE10
84                  ,ATTRIBUTE11
85                  ,ATTRIBUTE12
86                  ,ATTRIBUTE13
87                  ,ATTRIBUTE14
88                  ,ATTRIBUTE15
89                 INTO
90                   l_eam_direct_items_rec.DESCRIPTION
91                  ,l_eam_direct_items_rec.PURCHASING_CATEGORY_ID
92                  ,l_eam_direct_items_rec.Direct_Item_Sequence_Id
93                  ,l_eam_direct_items_rec.Operation_Seq_Num
94                  ,l_eam_direct_items_rec.Department_id
95                  ,l_eam_direct_items_rec.Wip_entity_id
96                  ,l_eam_direct_items_rec.Organization_id
97                  ,l_eam_direct_items_rec.Suggested_Vendor_Name
98                  ,l_eam_direct_items_rec.Suggested_Vendor_Id
99                  ,l_eam_direct_items_rec.Suggested_Vendor_Site
100                  ,l_eam_direct_items_rec.Suggested_Vendor_Site_Id
101                  ,l_eam_direct_items_rec.Suggested_Vendor_Contact
102                  ,l_eam_direct_items_rec.Suggested_Vendor_Contact_Id
103                  ,l_eam_direct_items_rec.Suggested_Vendor_Phone
104                  ,l_eam_direct_items_rec.Suggested_Vendor_Item_Num
105                  ,l_eam_direct_items_rec.Unit_Price
106                  ,l_eam_direct_items_rec.Auto_request_Material
107                  ,l_eam_direct_items_rec.Required_Quantity
108                  ,l_eam_direct_items_rec.UOM
109                  ,l_eam_direct_items_rec.Need_By_Date
110                  ,l_eam_direct_items_rec.ATTRIBUTE_CATEGORY
111                  ,l_eam_direct_items_rec.ATTRIBUTE1
112                  ,l_eam_direct_items_rec.ATTRIBUTE2
113                  ,l_eam_direct_items_rec.ATTRIBUTE3
114                  ,l_eam_direct_items_rec.ATTRIBUTE4
115                  ,l_eam_direct_items_rec.ATTRIBUTE5
116                  ,l_eam_direct_items_rec.ATTRIBUTE6
117                  ,l_eam_direct_items_rec.ATTRIBUTE7
118                  ,l_eam_direct_items_rec.ATTRIBUTE8
119                  ,l_eam_direct_items_rec.ATTRIBUTE9
120                  ,l_eam_direct_items_rec.ATTRIBUTE10
121                  ,l_eam_direct_items_rec.ATTRIBUTE11
122                  ,l_eam_direct_items_rec.ATTRIBUTE12
123                  ,l_eam_direct_items_rec.ATTRIBUTE13
124                  ,l_eam_direct_items_rec.ATTRIBUTE14
125                  ,l_eam_direct_items_rec.ATTRIBUTE15
126                 FROM  wip_eam_direct_items wedi
127                 WHERE wedi.wip_entity_id = p_wip_entity_id
128                 AND   wedi.organization_id = p_organization_id
129                 AND   wedi.operation_seq_num = p_operation_seq_num
130                 AND   wedi.direct_item_sequence_id = p_direct_item_sequence_id;
131 
132                 x_return_status  := EAM_PROCESS_WO_PVT.G_RECORD_FOUND;
133                 x_eam_direct_items_rec     := l_eam_direct_items_rec;
134 
135         EXCEPTION
136                 WHEN NO_DATA_FOUND THEN
137                         x_return_status := EAM_PROCESS_WO_PVT.G_RECORD_NOT_FOUND;
138                         x_eam_direct_items_rec    := l_eam_direct_items_rec;
139 
140                 WHEN OTHERS THEN
141                         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
142                         x_eam_direct_items_rec    := l_eam_direct_items_rec;
143 
144         END Query_Row;
145 
146 
147         /********************************************************************
148         * Procedure     : Insert_Row
149         * Parameters IN : Direct Items column record
150         * Parameters OUT NOCOPY: Message Token Table
151         *                 Return Status
152         * Purpose       : Procedure will perfrom an insert into the
153         *                 wip_eam_direct_items table.
154         *********************************************************************/
155 
156         PROCEDURE Insert_Row
157         (  p_eam_direct_items_rec    IN  EAM_PROCESS_WO_PUB.eam_direct_items_rec_type
158          , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
159          , x_return_Status      OUT NOCOPY VARCHAR2
160          )
161         IS
162 		l_return_status    VARCHAR2(30) := '';
163 		l_msg_count        NUMBER       := 0;
164 		l_msg_data         VARCHAR2(2000) := '';
165 
166 	BEGIN
167 
168 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Writing Direct Items rec for ' || p_eam_direct_items_rec.direct_item_sequence_id); END IF;
169 
170                 INSERT INTO WIP_EAM_DIRECT_ITEMS
171                        (
172                   	DESCRIPTION
173             	       ,PURCHASING_CATEGORY_ID
174                        ,DIRECT_ITEM_SEQUENCE_ID
175                        ,OPERATION_SEQ_NUM
176                        ,DEPARTMENT_ID
177                        ,WIP_ENTITY_ID
178                        ,ORGANIZATION_ID
179                        ,SUGGESTED_VENDOR_NAME
180                        ,SUGGESTED_VENDOR_ID
181                        ,SUGGESTED_VENDOR_SITE
182                        ,SUGGESTED_VENDOR_SITE_ID
183                        ,SUGGESTED_VENDOR_CONTACT
184                        ,SUGGESTED_VENDOR_CONTACT_ID
185                        ,SUGGESTED_VENDOR_PHONE
186                        ,SUGGESTED_VENDOR_ITEM_NUM
187                        ,UNIT_PRICE
188                        ,AUTO_REQUEST_MATERIAL
189                        ,REQUIRED_QUANTITY
190                        ,UOM
191                        ,NEED_BY_DATE
192                        ,ATTRIBUTE_CATEGORY
193                        ,ATTRIBUTE1
194                        ,ATTRIBUTE2
195                        ,ATTRIBUTE3
196                        ,ATTRIBUTE4
197                        ,ATTRIBUTE5
198                        ,ATTRIBUTE6
199                        ,ATTRIBUTE7
200                        ,ATTRIBUTE8
201                        ,ATTRIBUTE9
202                        ,ATTRIBUTE10
203                        ,ATTRIBUTE11
204                        ,ATTRIBUTE12
205                        ,ATTRIBUTE13
206                        ,ATTRIBUTE14
207                        ,ATTRIBUTE15
208                        , last_update_date
209                        , last_updated_by
210                        , creation_date
211                        , created_by
212                        , last_update_login
213                        , request_id
214                        , program_application_id
215                        , program_id
216                        , program_update_date)
217                 VALUES (
218 
219                   p_eam_direct_items_rec.DESCRIPTION
220                  ,p_eam_direct_items_rec.PURCHASING_CATEGORY_ID
221                  ,p_eam_direct_items_rec.Direct_Item_Sequence_Id
222                  ,p_eam_direct_items_rec.Operation_Seq_Num
223                  ,p_eam_direct_items_rec.Department_id
224                  ,p_eam_direct_items_rec.Wip_entity_id
225                  ,p_eam_direct_items_rec.Organization_id
226                  ,p_eam_direct_items_rec.Suggested_Vendor_Name
227                  ,p_eam_direct_items_rec.Suggested_Vendor_Id
228                  ,p_eam_direct_items_rec.Suggested_Vendor_Site
229                  ,p_eam_direct_items_rec.Suggested_Vendor_Site_Id
230                  ,p_eam_direct_items_rec.Suggested_Vendor_Contact
231                  ,p_eam_direct_items_rec.Suggested_Vendor_Contact_Id
232                  ,p_eam_direct_items_rec.Suggested_Vendor_Phone
233                  ,p_eam_direct_items_rec.Suggested_Vendor_Item_Num
234                  ,p_eam_direct_items_rec.Unit_Price
235                  ,p_eam_direct_items_rec.Auto_request_Material
236                  ,p_eam_direct_items_rec.Required_Quantity
237                  ,p_eam_direct_items_rec.UOM
238                  ,p_eam_direct_items_rec.Need_By_Date
239                  ,p_eam_direct_items_rec.ATTRIBUTE_CATEGORY
240                  ,p_eam_direct_items_rec.ATTRIBUTE1
241                  ,p_eam_direct_items_rec.ATTRIBUTE2
242                  ,p_eam_direct_items_rec.ATTRIBUTE3
243                  ,p_eam_direct_items_rec.ATTRIBUTE4
244                  ,p_eam_direct_items_rec.ATTRIBUTE5
245                  ,p_eam_direct_items_rec.ATTRIBUTE6
246                  ,p_eam_direct_items_rec.ATTRIBUTE7
247                  ,p_eam_direct_items_rec.ATTRIBUTE8
248                  ,p_eam_direct_items_rec.ATTRIBUTE9
249                  ,p_eam_direct_items_rec.ATTRIBUTE10
250                  ,p_eam_direct_items_rec.ATTRIBUTE11
251                  ,p_eam_direct_items_rec.ATTRIBUTE12
252                  ,p_eam_direct_items_rec.ATTRIBUTE13
253                  ,p_eam_direct_items_rec.ATTRIBUTE14
254                  ,p_eam_direct_items_rec.ATTRIBUTE15
255                        , SYSDATE
256                        , FND_GLOBAL.user_id
257                        , SYSDATE
258                        , FND_GLOBAL.user_id
259                        , FND_GLOBAL.login_id
260                        , p_eam_direct_items_rec.request_id
261                        , p_eam_direct_items_rec.program_application_id
262                        , p_eam_direct_items_rec.program_id
263                        , SYSDATE);
264 
265 
266 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug ('Creating new Direct Items') ; END IF;
267 
268                 x_return_status := FND_API.G_RET_STS_SUCCESS;
269 		      -- API is called to set the estimation_status
270 		      EAM_AutomaticEst.Auto_Reest_of_Cost(
271 			p_wip_entity_id =>p_eam_direct_items_rec.wip_entity_id,
272 			p_api_name => 'EAM',
273 			p_req_line_id => NULL,
274 			p_po_dist_id => NULL,
275 			p_po_line_id => NULL,
276 			p_inv_item_id => NULL,
277 			p_org_id => p_eam_direct_items_rec.organization_id,
278 			p_resource_id => NULL,
279 			x_return_status => l_return_status,
280 			x_msg_count => l_msg_count,
281 			x_msg_data => l_msg_data
282 			);
283 
284 
285         EXCEPTION
286             WHEN OTHERS THEN
287                         EAM_ERROR_MESSAGE_PVT.Add_Error_Token
288                         (  p_message_name       => NULL
289                          , p_message_text       => G_PKG_NAME ||' :Inserting Record ' || SQLERRM
290                          , x_mesg_token_Tbl     => x_mesg_token_tbl
291                         );
292 
293                         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
294 
295         END Insert_Row;
296 
297         /********************************************************************
298         * Procedure     : Update_Row
299         * Parameters IN : Direct Items column record
300         * Parameters OUT NOCOPY: Message Token Table
301         *                 Return Status
302         * Purpose       : Procedure will perfrom an Update on the
303         *                 wip_eam_direct_items
304         *********************************************************************/
305 
306         PROCEDURE Update_Row
307         (  p_eam_direct_items_rec    IN  EAM_PROCESS_WO_PUB.eam_direct_items_rec_type
308          , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
309          , x_return_Status      OUT NOCOPY VARCHAR2
310          )
311         IS
312 		l_return_status    VARCHAR2(30) := '';
313 		l_msg_count        NUMBER       := 0;
314 		l_msg_data         VARCHAR2(2000) := '';
315 		l_req_qty          NUMBER       := 0;
316 
317         BEGIN
318 
319 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Updating Direct Items '|| p_eam_direct_items_rec.direct_item_sequence_id); END IF;
320 
321 	  SELECT required_quantity
322 	    INTO l_req_qty
323 	    FROM WIP_EAM_DIRECT_ITEMS
324 	    WHERE organization_id   = p_eam_direct_items_rec.organization_id
325               AND    wip_entity_id     = p_eam_direct_items_rec.wip_entity_id
326               AND  ( operation_seq_num = p_eam_direct_items_rec.operation_seq_num
327 				            OR operation_seq_num = 1 )                                                /* Added the check operation_seq_num = 1 so that op seq num can be changed if it is 1 */
328               AND    direct_item_sequence_id = p_eam_direct_items_rec.direct_item_sequence_id;
329 
330       UPDATE WIP_EAM_DIRECT_ITEMS
331                 SET
332                   DESCRIPTION = p_eam_direct_items_rec.DESCRIPTION
333                  ,PURCHASING_CATEGORY_ID = p_eam_direct_items_rec.PURCHASING_CATEGORY_ID
334                  ,Direct_Item_Sequence_Id =  p_eam_direct_items_rec.Direct_Item_Sequence_Id
335                  ,Operation_Seq_Num = p_eam_direct_items_rec.Operation_Seq_Num
336                  ,Department_id = p_eam_direct_items_rec.Department_id
337                  ,Wip_entity_id = p_eam_direct_items_rec.Wip_entity_id
338                  ,Organization_id = p_eam_direct_items_rec.Organization_id
339                  ,Suggested_Vendor_Name = p_eam_direct_items_rec.Suggested_Vendor_Name
340                  ,Suggested_Vendor_Id = p_eam_direct_items_rec.Suggested_Vendor_Id
341                  ,Suggested_Vendor_Site = p_eam_direct_items_rec.Suggested_Vendor_Site
342                  ,Suggested_Vendor_Site_Id = p_eam_direct_items_rec.Suggested_Vendor_Site_Id
343                  ,Suggested_Vendor_Contact = p_eam_direct_items_rec.Suggested_Vendor_Contact
344                  ,Suggested_Vendor_Contact_Id = p_eam_direct_items_rec.Suggested_Vendor_Contact_Id
345                  ,Suggested_Vendor_Phone = p_eam_direct_items_rec.Suggested_Vendor_Phone
346                  ,Suggested_Vendor_Item_Num = p_eam_direct_items_rec.Suggested_Vendor_Item_Num
347                  ,Unit_Price = p_eam_direct_items_rec.Unit_Price
348                  ,Auto_request_Material = p_eam_direct_items_rec.Auto_request_Material
349                  ,Required_Quantity = p_eam_direct_items_rec.Required_Quantity
350                  ,UOM = p_eam_direct_items_rec.UOM
351                  ,Need_By_Date = p_eam_direct_items_rec.Need_By_Date
352                        , attribute_category          = p_eam_direct_items_rec.attribute_category
353                        , attribute1                  = p_eam_direct_items_rec.attribute1
354                        , attribute2                  = p_eam_direct_items_rec.attribute2
355                        , attribute3                  = p_eam_direct_items_rec.attribute3
356                        , attribute4                  = p_eam_direct_items_rec.attribute4
357                        , attribute5                  = p_eam_direct_items_rec.attribute5
358                        , attribute6                  = p_eam_direct_items_rec.attribute6
359                        , attribute7                  = p_eam_direct_items_rec.attribute7
360                        , attribute8                  = p_eam_direct_items_rec.attribute8
361                        , attribute9                  = p_eam_direct_items_rec.attribute9
362                        , attribute10                 = p_eam_direct_items_rec.attribute10
363                        , attribute11                 = p_eam_direct_items_rec.attribute11
364                        , attribute12                 = p_eam_direct_items_rec.attribute12
365                        , attribute13                 = p_eam_direct_items_rec.attribute13
366                        , attribute14                 = p_eam_direct_items_rec.attribute14
367                        , attribute15                 = p_eam_direct_items_rec.attribute15
368                        , last_update_date            = SYSDATE
369                        , last_updated_by             = FND_GLOBAL.user_id
370                        , last_update_login           = FND_GLOBAL.login_id
371                        , request_id                  = p_eam_direct_items_rec.request_id
372                        , program_application_id      = p_eam_direct_items_rec.program_application_id
373                        , program_id                  = p_eam_direct_items_rec.program_id
374                        , program_update_date         = SYSDATE
375                 WHERE    organization_id   = p_eam_direct_items_rec.organization_id
376                   AND    wip_entity_id     = p_eam_direct_items_rec.wip_entity_id
377                   AND  ( operation_seq_num = p_eam_direct_items_rec.operation_seq_num
378 				            OR operation_seq_num = 1 )                                                /* Added the check operation_seq_num = 1 so that op seq num can be changed if it is 1 */
379                   AND    direct_item_sequence_id = p_eam_direct_items_rec.direct_item_sequence_id;
380 
381                 x_return_status := FND_API.G_RET_STS_SUCCESS;
382 
383 		    -- comparing new quantity with existing quantity
384 		    IF ( p_eam_direct_items_rec.required_quantity <> l_req_qty )THEN
385 
386 		      -- API is called to set the estimation_status
387 		      EAM_AutomaticEst.Auto_Reest_of_Cost(
388 			p_wip_entity_id => p_eam_direct_items_rec.wip_entity_id,
389 			p_api_name => 'EAM',
390 			p_req_line_id => NULL,
391 			p_po_dist_id => NULL,
392 			p_po_line_id => NULL,
393 			p_inv_item_id => NULL,
394 			p_org_id => p_eam_direct_items_rec.organization_id,
395 			p_resource_id => NULL,
396 			x_return_status => l_return_status,
397 			x_msg_count => l_msg_count,
398 			x_msg_data => l_msg_data
399 			);
400 
401 		    END IF; /* ENDIF of comparing quantity IF */
402 
403 
404         END Update_Row;
405 
406 
407 
408         /********************************************************************
409         * Procedure     : Delete_Row
410         * Parameters IN : Direct Items column record
411         * Parameters OUT NOCOPY: Message Token Table
412         *                 Return Status
413         * Purpose       : Procedure will perfrom an Delete on the
414         *                 wip_eam_direct_items
415         *********************************************************************/
416 
417         PROCEDURE Delete_Row
418         (  p_eam_direct_items_rec    IN  EAM_PROCESS_WO_PUB.eam_direct_items_rec_type
419          , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
420          , x_return_Status      OUT NOCOPY VARCHAR2
421          )
422         IS
423 		l_return_status    VARCHAR2(30) := '';
424 		l_msg_count        NUMBER       := 0;
425 		l_msg_data         VARCHAR2(2000) := '';
426         BEGIN
427 
428 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Deleting Direct Items '|| p_eam_direct_items_rec.direct_item_sequence_id); END IF;
429 
430       DELETE FROM WIP_EAM_DIRECT_ITEMS
431                 WHERE    organization_id   = p_eam_direct_items_rec.organization_id
432                   AND    wip_entity_id     = p_eam_direct_items_rec.wip_entity_id
433                   AND    operation_seq_num = p_eam_direct_items_rec.operation_seq_num
434                   AND    direct_item_sequence_id = p_eam_direct_items_rec.direct_item_sequence_id;
435 
436                 x_return_status := FND_API.G_RET_STS_SUCCESS;
437 
438 		      -- API is called to set the estimation_status
439 		      EAM_AutomaticEst.Auto_Reest_of_Cost(
440 			p_wip_entity_id => p_eam_direct_items_rec.wip_entity_id,
441 			p_api_name => 'EAM',
442 			p_req_line_id => NULL,
443 			p_po_dist_id => NULL,
444 			p_po_line_id => NULL,
445 			p_inv_item_id => NULL,
446 			p_org_id => p_eam_direct_items_rec.organization_id,
447 			p_resource_id => NULL,
448 			x_return_status => l_return_status,
449 			x_msg_count => l_msg_count,
450 			x_msg_data => l_msg_data
451 			);
452 
453 
454         END Delete_Row;
455 
456 
457         /*********************************************************************
458         * Procedure     : Perform_Writes
459         * Parameters IN : Direct Items Record
460         * Parameters OUT NOCOPY: Messgae Token Table
461         *                 Return Status
462         * Purpose       : This is the only procedure that the user will have
463         *                 access to when he/she needs to perform any kind of
464         *                 writes to the wip_operations.
465         *********************************************************************/
466 
467         PROCEDURE Perform_Writes
468         (  p_eam_direct_items_rec    IN  EAM_PROCESS_WO_PUB.eam_direct_items_rec_type
469          , x_mesg_token_tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
470          , x_return_status      OUT NOCOPY VARCHAR2
471         )
472         IS
473                 l_Mesg_Token_tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
474                 l_return_status         VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
475         BEGIN
476 
477                 IF p_eam_direct_items_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE
478                 THEN
479                         Insert_Row
480                         (  p_eam_direct_items_rec    => p_eam_direct_items_rec
481                          , x_mesg_token_Tbl     => l_mesg_token_tbl
482                          , x_return_Status      => l_return_status
483                          );
484                 ELSIF p_eam_direct_items_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE
485                 THEN
486                         Update_Row
487                         (  p_eam_direct_items_rec    => p_eam_direct_items_rec
488                          , x_mesg_token_Tbl     => l_mesg_token_tbl
489                          , x_return_Status      => l_return_status
490                          );
491 
492                 ELSIF p_eam_direct_items_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_DELETE
493                 THEN
494                         Delete_Row
495                         (  p_eam_direct_items_rec    => p_eam_direct_items_rec
496                          , x_mesg_token_Tbl     => l_mesg_token_tbl
497                          , x_return_Status      => l_return_status
498                          );
499 
500                 END IF;
501 
502                 x_return_status := l_return_status;
503                 x_mesg_token_tbl := l_mesg_token_tbl;
504 
505         END Perform_Writes;
506 
507 
508        FUNCTION  NUM_OF_ROW
509        ( p_wip_entity_id  NUMBER
510 	   , p_organization_id NUMBER
511 	   , p_operation_seq_num NUMBER
512 	   ) RETURN BOOLEAN IS
513 
514 	   l_count NUMBER := 0 ;
515 
516 	   BEGIN
517 		   SELECT  count(*)  into l_count
518 	       FROM dual
519 	       WHERE exists (
520 	                         SELECT 1
521 							 FROM wip_eam_direct_items
522 							 WHERE operation_seq_num = p_operation_seq_num
523 							 and wip_entity_id = p_wip_entity_id
524 							 and organization_id = p_organization_id
525 						   ) ;
526 
527 		   IF ( l_count = 0 ) THEN
528 		       return FALSE ;
529 		   ELSE
530 			   return TRUE ;
531 		   END IF;
532 
533       END NUM_OF_ROW;
534 
535 
536 
537 END EAM_DIRECT_ITEMS_UTILITY_PVT;