DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_DIRECT_ITEMS_PKG_PVT

Source


1 PACKAGE BODY EAM_DIRECT_ITEMS_PKG_PVT AS
2 /* $Header: EAMVDIPB.pls 120.3 2009/11/19 09:37:22 vchidura ship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMVDIPB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_DIRECT_ITEMS_PKG_PVT
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  01-OCT-2003    6/3/2004Basanth Roy     Initial Creation
21 ***************************************************************************/
22 
23 G_PKG_NAME      CONSTANT VARCHAR2(30) := 'EAM_DIRECT_ITEMS_PKG_PVT';
24 
25 
26 
27 
28 
29         /********************************************************************
30         * Procedure     : Insert_Row
31         * Parameters IN : Direct Items column record
32         * Parameters OUT NOCOPY: Return Status
33         * Purpose       : Procedure will perfrom an insert into the
34         *                 wip_eam_direct_items table.
35         *********************************************************************/
36 
37         PROCEDURE Insert_Row
38         ( X_DESCRIPTION                   IN VARCHAR2        ,
39           X_DIRECT_ITEM_TYPE              IN NUMBER          ,
40           X_PURCHASING_CATEGORY_ID        IN NUMBER          ,
41           X_DIRECT_ITEM_SEQUENCE_ID       IN OUT NOCOPY NUMBER,		-- Fix for Bug 3745360
42           X_INVENTORY_ITEM_ID             IN NUMBER          ,
43           X_OPERATION_SEQ_NUM             IN NUMBER          ,
44           X_DEPARTMENT_ID                 IN NUMBER          ,
45           X_WIP_ENTITY_ID                 IN NUMBER          ,
46           X_ORGANIZATION_ID               IN NUMBER          ,
47           X_SUGGESTED_VENDOR_NAME         IN VARCHAR2        ,
48           X_SUGGESTED_VENDOR_ID           IN NUMBER          ,
49           X_SUGGESTED_VENDOR_SITE         IN VARCHAR2        ,
50           X_SUGGESTED_VENDOR_SITE_ID      IN NUMBER          ,
51           X_SUGGESTED_VENDOR_CONTACT      IN VARCHAR2        ,
52           X_SUGGESTED_VENDOR_CONTACT_ID   IN NUMBER          ,
53           X_SUGGESTED_VENDOR_PHONE        IN VARCHAR2        ,
54           X_SUGGESTED_VENDOR_ITEM_NUM     IN VARCHAR2        ,
55           X_UNIT_PRICE                    IN NUMBER          ,
56           X_AUTO_REQUEST_MATERIAL         IN VARCHAR2        ,
57           X_REQUIRED_QUANTITY             IN NUMBER          ,
58           X_UOM                           IN VARCHAR2        ,
59           X_NEED_BY_DATE                  IN DATE            ,
60           X_ATTRIBUTE_CATEGORY            IN VARCHAR2        ,
61           X_ATTRIBUTE1                    IN VARCHAR2        ,
62           X_ATTRIBUTE2                    IN VARCHAR2        ,
63           X_ATTRIBUTE3                    IN VARCHAR2        ,
64           X_ATTRIBUTE4                    IN VARCHAR2        ,
65           X_ATTRIBUTE5                    IN VARCHAR2        ,
66           X_ATTRIBUTE6                    IN VARCHAR2        ,
67           X_ATTRIBUTE7                    IN VARCHAR2        ,
68           X_ATTRIBUTE8                    IN VARCHAR2        ,
69           X_ATTRIBUTE9                    IN VARCHAR2        ,
70           X_ATTRIBUTE10                   IN VARCHAR2        ,
71           X_ATTRIBUTE11                   IN VARCHAR2        ,
72           X_ATTRIBUTE12                   IN VARCHAR2        ,
73           X_ATTRIBUTE13                   IN VARCHAR2        ,
74           X_ATTRIBUTE14                   IN VARCHAR2        ,
75           X_ATTRIBUTE15                   IN VARCHAR2        ,
76           X_PROGRAM_APPLICATION_ID        IN NUMBER          ,
77           X_PROGRAM_ID                    IN NUMBER          ,
78           X_PROGRAM_UPDATE_DATE           IN DATE            ,
79           X_REQUEST_ID                    IN NUMBER          ,
80           x_return_Status                 OUT NOCOPY VARCHAR2,
81           x_material_shortage_flag        OUT NOCOPY VARCHAR2,
82           x_material_shortage_check_date  OUT NOCOPY DATE
83          )
84         IS
85           l_eam_direct_items_rec EAM_PROCESS_WO_PUB.eam_direct_items_rec_type;
86           l_eam_direct_items_tbl EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
87           l_eam_mat_req_rec EAM_PROCESS_WO_PUB.eam_mat_req_rec_type;
88           l_eam_mat_req_tbl EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
89            l_output_dir VARCHAR2(512);
90 
91           l_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
92           l_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
93           l_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
94           l_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
95           l_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
96           l_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
97           l_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
98 	  l_eam_wo_comp_rec               EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
99 	  l_eam_wo_quality_tbl            EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
100 	  l_eam_meter_reading_tbl         EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
101 	  l_eam_wo_comp_rebuild_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
102 	  l_eam_wo_comp_mr_read_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
103 	  l_eam_op_comp_tbl               EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
104 	  l_eam_request_tbl               EAM_PROCESS_WO_PUB.eam_request_tbl_type;
105           l_eam_counter_prop_tbl	  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
106 
107 	  l_out_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
108           l_out_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
109           l_out_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
110           l_out_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
111           l_out_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
112           l_out_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
113           l_out_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
114           l_out_eam_mat_req_tbl         EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
115           l_out_eam_direct_items_tbl    EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
116 	  l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
117 	  l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
118 	  l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
119 	  l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
120 	  l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
121 	  l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
122 	  l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
123 	  l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
124 
125 	  l_return_status               VARCHAR2(10);
126           l_msg_count                   NUMBER;
127 
128         BEGIN
129 
130         l_eam_direct_items_tbl.delete;
131         l_eam_mat_req_tbl.delete;
132 
133         if X_DIRECT_ITEM_TYPE = 1 then -- description based
134 
135           l_eam_direct_items_rec.DESCRIPTION := X_DESCRIPTION;
136           l_eam_direct_items_rec.PURCHASING_CATEGORY_ID := X_PURCHASING_CATEGORY_ID;
137           l_eam_direct_items_rec.Direct_Item_Sequence_Id := X_Direct_Item_Sequence_Id;
138           l_eam_direct_items_rec.Operation_Seq_Num := X_Operation_Seq_Num;
139           l_eam_direct_items_rec.Department_id := X_Department_id;
140           l_eam_direct_items_rec.Wip_entity_id := X_Wip_entity_id;
141           l_eam_direct_items_rec.Organization_id := X_Organization_id;
142           l_eam_direct_items_rec.Suggested_Vendor_Name := X_Suggested_Vendor_Name;
143           l_eam_direct_items_rec.Suggested_Vendor_Id := X_Suggested_Vendor_Id;
144           l_eam_direct_items_rec.Suggested_Vendor_Site := X_Suggested_Vendor_Site;
145           l_eam_direct_items_rec.Suggested_Vendor_Site_Id := X_Suggested_Vendor_Site_Id;
146           l_eam_direct_items_rec.Suggested_Vendor_Contact := X_Suggested_Vendor_Contact;
147           l_eam_direct_items_rec.Suggested_Vendor_Contact_Id := X_Suggested_Vendor_Contact_Id;
148           l_eam_direct_items_rec.Suggested_Vendor_Phone := X_Suggested_Vendor_Phone;
149           l_eam_direct_items_rec.Suggested_Vendor_Item_Num := X_Suggested_Vendor_Item_Num;
150           l_eam_direct_items_rec.Unit_Price := X_Unit_Price;
151           l_eam_direct_items_rec.Auto_request_Material := X_Auto_request_Material;
152           l_eam_direct_items_rec.Required_Quantity := X_Required_Quantity;
153           l_eam_direct_items_rec.UOM := X_UOM;
154           l_eam_direct_items_rec.Need_By_Date := X_Need_By_Date;
155           l_eam_direct_items_rec.ATTRIBUTE_CATEGORY := X_ATTRIBUTE_CATEGORY;
156           l_eam_direct_items_rec.ATTRIBUTE1 := X_ATTRIBUTE1;
157           l_eam_direct_items_rec.ATTRIBUTE2 := X_ATTRIBUTE2;
158           l_eam_direct_items_rec.ATTRIBUTE3 := X_ATTRIBUTE3;
159           l_eam_direct_items_rec.ATTRIBUTE4 := X_ATTRIBUTE4;
160           l_eam_direct_items_rec.ATTRIBUTE5 := X_ATTRIBUTE5;
161           l_eam_direct_items_rec.ATTRIBUTE6 := X_ATTRIBUTE6;
162           l_eam_direct_items_rec.ATTRIBUTE7 := X_ATTRIBUTE7;
163           l_eam_direct_items_rec.ATTRIBUTE8 := X_ATTRIBUTE8;
164           l_eam_direct_items_rec.ATTRIBUTE9 := X_ATTRIBUTE9;
165           l_eam_direct_items_rec.ATTRIBUTE10 := X_ATTRIBUTE10;
166           l_eam_direct_items_rec.ATTRIBUTE11 := X_ATTRIBUTE11;
167           l_eam_direct_items_rec.ATTRIBUTE12 := X_ATTRIBUTE12;
168           l_eam_direct_items_rec.ATTRIBUTE13 := X_ATTRIBUTE13;
169           l_eam_direct_items_rec.ATTRIBUTE14 := X_ATTRIBUTE14;
170           l_eam_direct_items_rec.ATTRIBUTE15 := X_ATTRIBUTE15;
171           l_eam_direct_items_rec.PROGRAM_APPLICATION_ID     := null;
172           l_eam_direct_items_rec.PROGRAM_ID                 := null;
173           l_eam_direct_items_rec.PROGRAM_UPDATE_DATE        := sysdate;
174           l_eam_direct_items_rec.REQUEST_ID                 := null;
175           l_eam_direct_items_rec.RETURN_STATUS              := null;
176           l_eam_direct_items_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_CREATE;
177           l_eam_direct_items_rec.HEADER_ID                  := 1;
178           l_eam_direct_items_rec.BATCH_ID                   := 1;
179           l_eam_direct_items_rec.ROW_ID                     := null;
180 
181           l_eam_direct_items_tbl(1) := l_eam_direct_items_rec;
182 
183         elsif X_DIRECT_ITEM_TYPE = 2 then -- non-stockable inventory item
184 
185           l_eam_mat_req_rec.Operation_Seq_Num := X_Operation_Seq_Num;
186           l_eam_mat_req_rec.Department_id := X_Department_id;
187           l_eam_mat_req_rec.Wip_entity_id := X_Wip_entity_id;
188           l_eam_mat_req_rec.Organization_id := X_Organization_id;
189 	  l_eam_mat_req_rec.Suggested_Vendor_Name := X_Suggested_Vendor_Name;   	-- Fix for Bug 3665818
190           l_eam_mat_req_rec.Vendor_Id := X_Suggested_Vendor_Id;				-- Fix for Bug 3665818
191           l_eam_mat_req_rec.inventory_item_id := X_INVENTORY_ITEM_ID;
192           l_eam_mat_req_rec.Unit_Price := X_Unit_Price;
193           l_eam_mat_req_rec.Auto_request_Material := X_Auto_request_Material;
194           l_eam_mat_req_rec.Required_Quantity := X_Required_Quantity;
195           l_eam_mat_req_rec.Date_Required := X_Need_By_Date;
196           l_eam_mat_req_rec.ATTRIBUTE_CATEGORY := X_ATTRIBUTE_CATEGORY;
197           l_eam_mat_req_rec.ATTRIBUTE1 := X_ATTRIBUTE1;
198           l_eam_mat_req_rec.ATTRIBUTE2 := X_ATTRIBUTE2;
199           l_eam_mat_req_rec.ATTRIBUTE3 := X_ATTRIBUTE3;
200           l_eam_mat_req_rec.ATTRIBUTE4 := X_ATTRIBUTE4;
201           l_eam_mat_req_rec.ATTRIBUTE5 := X_ATTRIBUTE5;
202           l_eam_mat_req_rec.ATTRIBUTE6 := X_ATTRIBUTE6;
203           l_eam_mat_req_rec.ATTRIBUTE7 := X_ATTRIBUTE7;
204           l_eam_mat_req_rec.ATTRIBUTE8 := X_ATTRIBUTE8;
205           l_eam_mat_req_rec.ATTRIBUTE9 := X_ATTRIBUTE9;
206           l_eam_mat_req_rec.ATTRIBUTE10 := X_ATTRIBUTE10;
207           l_eam_mat_req_rec.ATTRIBUTE11 := X_ATTRIBUTE11;
208           l_eam_mat_req_rec.ATTRIBUTE12 := X_ATTRIBUTE12;
209           l_eam_mat_req_rec.ATTRIBUTE13 := X_ATTRIBUTE13;
210           l_eam_mat_req_rec.ATTRIBUTE14 := X_ATTRIBUTE14;
211           l_eam_mat_req_rec.ATTRIBUTE15 := X_ATTRIBUTE15;
212           l_eam_mat_req_rec.PROGRAM_APPLICATION_ID     := null;
213           l_eam_mat_req_rec.PROGRAM_ID                 := null;
214           l_eam_mat_req_rec.PROGRAM_UPDATE_DATE        := sysdate;
215           l_eam_mat_req_rec.REQUEST_ID                 := null;
216           l_eam_mat_req_rec.RETURN_STATUS              := null;
217           l_eam_mat_req_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_CREATE;
218           l_eam_mat_req_rec.HEADER_ID                  := 1;
219           l_eam_mat_req_rec.BATCH_ID                   := 1;
220           l_eam_mat_req_rec.ROW_ID                     := null;
221 
222           l_eam_mat_req_tbl(1) := l_eam_mat_req_rec;
223 
224         end if;
225 
226 EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
227 
228         EAM_PROCESS_WO_PUB.PROCESS_WO
229         (  p_bo_identifier           => 'EAM'
230          , p_api_version_number      => 1.0
231          , p_init_msg_list           => FALSE
232          , p_commit                  => 'N'
233          , p_eam_wo_rec              => l_eam_wo_rec
234          , p_eam_op_tbl              => l_eam_op_tbl
235          , p_eam_op_network_tbl      => l_eam_op_network_tbl
236          , p_eam_res_tbl             => l_eam_res_tbl
237          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
238          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
239          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
240          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
241          , p_eam_direct_items_tbl    => l_eam_direct_items_tbl
242 	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
243 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
244 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
245 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
246 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
247 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
248 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
249 	 , p_eam_request_tbl          => l_eam_request_tbl
250          , x_eam_wo_rec              => l_out_eam_wo_rec
251          , x_eam_op_tbl              => l_out_eam_op_tbl
252          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
253          , x_eam_res_tbl             => l_out_eam_res_tbl
254          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
255          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
256          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
257          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
258          , x_eam_direct_items_tbl    => l_out_eam_direct_items_tbl
259 	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
260 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
261 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
262 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
263 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
264 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
265 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
266 	 , x_eam_request_tbl          => l_out_eam_request_tbl
267          , x_return_status           => l_return_status
268          , x_msg_count               => l_msg_count
269          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
270          , p_output_dir              => l_output_dir
274 
271          , p_debug_filename          => 'diitemins.log'
272          , p_debug_file_mode         => 'w'
273          );
275          x_return_status := l_return_status;
276 	 x_material_shortage_flag := l_out_eam_wo_rec.material_shortage_flag;
277          x_material_shortage_check_date := l_out_eam_wo_rec.material_shortage_check_date;
278 
279 	 BEGIN			-- Fix for Bug 3745360 Begin
280 		 IF x_direct_item_type = 1 THEN
281 			 x_direct_item_sequence_id := l_out_eam_direct_items_tbl(1).direct_item_sequence_id;
282 	         END IF;
283 	EXCEPTION
284 		WHEN no_data_found THEN
285 			null;
286 	END;			-- Fix for Bug 3745360 End
287         END Insert_Row;
288 
289 
290 
291 
292         /********************************************************************
293         * Procedure     : Update_Row
294         * Parameters IN : Direct Items column record
295         * Parameters OUT NOCOPY: Message Token Table
296         *                 Return Status
297         * Purpose       : Procedure will perfrom an Update on the
298         *                 wip_eam_direct_items
299         *********************************************************************/
300 
301         PROCEDURE Update_Row
302         ( X_DESCRIPTION                   IN VARCHAR2        ,
303           X_DIRECT_ITEM_TYPE              IN NUMBER          ,
304           X_PURCHASING_CATEGORY_ID        IN NUMBER          ,
305           X_DIRECT_ITEM_SEQUENCE_ID       IN NUMBER          ,
306           X_INVENTORY_ITEM_ID             IN NUMBER          ,
307           X_OPERATION_SEQ_NUM             IN NUMBER          ,
308           X_DEPARTMENT_ID                 IN NUMBER          ,
309           X_WIP_ENTITY_ID                 IN NUMBER          ,
310           X_ORGANIZATION_ID               IN NUMBER          ,
311           X_SUGGESTED_VENDOR_NAME         IN VARCHAR2        ,
312           X_SUGGESTED_VENDOR_ID           IN NUMBER          ,
313           X_SUGGESTED_VENDOR_SITE         IN VARCHAR2        ,
314           X_SUGGESTED_VENDOR_SITE_ID      IN NUMBER          ,
315           X_SUGGESTED_VENDOR_CONTACT      IN VARCHAR2        ,
316           X_SUGGESTED_VENDOR_CONTACT_ID   IN NUMBER          ,
317           X_SUGGESTED_VENDOR_PHONE        IN VARCHAR2        ,
318           X_SUGGESTED_VENDOR_ITEM_NUM     IN VARCHAR2        ,
319           X_UNIT_PRICE                    IN NUMBER          ,
320           X_AUTO_REQUEST_MATERIAL         IN VARCHAR2        ,
321           X_REQUIRED_QUANTITY             IN NUMBER          ,
322           X_UOM                           IN VARCHAR2        ,
323           X_NEED_BY_DATE                  IN DATE            ,
324           X_ATTRIBUTE_CATEGORY            IN VARCHAR2        ,
325           X_ATTRIBUTE1                    IN VARCHAR2        ,
326           X_ATTRIBUTE2                    IN VARCHAR2        ,
327           X_ATTRIBUTE3                    IN VARCHAR2        ,
328           X_ATTRIBUTE4                    IN VARCHAR2        ,
329           X_ATTRIBUTE5                    IN VARCHAR2        ,
330           X_ATTRIBUTE6                    IN VARCHAR2        ,
331           X_ATTRIBUTE7                    IN VARCHAR2        ,
332           X_ATTRIBUTE8                    IN VARCHAR2        ,
333           X_ATTRIBUTE9                    IN VARCHAR2        ,
334           X_ATTRIBUTE10                   IN VARCHAR2        ,
335           X_ATTRIBUTE11                   IN VARCHAR2        ,
336           X_ATTRIBUTE12                   IN VARCHAR2        ,
337           X_ATTRIBUTE13                   IN VARCHAR2        ,
338           X_ATTRIBUTE14                   IN VARCHAR2        ,
339           X_ATTRIBUTE15                   IN VARCHAR2        ,
340           X_PROGRAM_APPLICATION_ID        IN NUMBER          ,
341           X_PROGRAM_ID                    IN NUMBER          ,
342           X_PROGRAM_UPDATE_DATE           IN DATE            ,
343           X_REQUEST_ID                    IN NUMBER          ,
344           X_RETURN_STATUS                 OUT NOCOPY VARCHAR2,
345           X_MATERIAL_SHORTAGE_FLAG        OUT NOCOPY VARCHAR2,
346           X_MATERIAL_SHORTAGE_CHECK_DATe  OUT NOCOPY DATE
347          )
348         IS
349 
350           l_eam_direct_items_rec EAM_PROCESS_WO_PUB.eam_direct_items_rec_type;
351           l_eam_direct_items_tbl EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
352           l_eam_mat_req_rec EAM_PROCESS_WO_PUB.eam_mat_req_rec_type;
353           l_eam_mat_req_tbl EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
354 
355           l_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
356           l_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
357           l_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
358           l_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
359           l_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
360           l_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
361           l_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
362 	  l_eam_wo_comp_rec               EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
363 	  l_eam_wo_quality_tbl            EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
364 	  l_eam_meter_reading_tbl         EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
365 	  l_eam_wo_comp_rebuild_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
366 	  l_eam_wo_comp_mr_read_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
367 	  l_eam_op_comp_tbl               EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
368 	  l_eam_request_tbl               EAM_PROCESS_WO_PUB.eam_request_tbl_type;
369 	  l_eam_counter_prop_tbl     EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
370 
371           l_out_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
372           l_out_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
373           l_out_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
374           l_out_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
378           l_out_eam_mat_req_tbl         EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
375           l_out_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
376           l_out_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
377           l_out_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
379           l_out_eam_direct_items_tbl    EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
380 	  l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
381 	  l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
382 	  l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
383 	  l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
384 	  l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
385 	  l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
386 	  l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
387 	  l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
388 
389           l_return_status               VARCHAR2(10);
390           l_msg_count                   NUMBER;
391 	   l_output_dir VARCHAR2(512);
392 
393           /* Added for bug 8969942---start --- */
394  	                       l_prev_attribute_category VARCHAR2(30);
395  	                       l_prev_attribute1 VARCHAR2(150);
396  	                       l_prev_attribute2 VARCHAR2(150);
397  	                       l_prev_attribute3 VARCHAR2(150);
398  	                       l_prev_attribute4 VARCHAR2(150);
399  	                       l_prev_attribute5 VARCHAR2(150);
400  	                       l_prev_attribute6 VARCHAR2(150);
401  	                       l_prev_attribute7 VARCHAR2(150);
402  	                       l_prev_attribute8 VARCHAR2(150);
403  	                       l_prev_attribute9 VARCHAR2(150);
404  	                       l_prev_attribute10 VARCHAR2(150);
405  	                       l_prev_attribute11 VARCHAR2(150);
406  	                       l_prev_attribute12 VARCHAR2(150);
407  	                       l_prev_attribute13 VARCHAR2(150);
408  	                       l_prev_attribute14 VARCHAR2(150);
409  	                       l_prev_attribute15 VARCHAR2(150);
410  	                       /* ------end -----------------------*/
411 
412         BEGIN
413 
414         if X_DIRECT_ITEM_TYPE = 1 then
415 
416 	     /* Adding Code to get previous operation data fields for 8969942 .. start ... */
417 
418  	                    Begin
419  	                         select     attribute_category
420  	                                   ,attribute1
421  	                                   ,attribute2
422  	                                   ,attribute3
423  	                                   ,attribute4
424  	                                   ,attribute5
425  	                                   ,attribute6
426  	                                   ,attribute7
427  	                                   ,attribute8
428  	                                   ,attribute9
429  	                                   ,attribute10
430  	                                   ,attribute11
431  	                                   ,attribute12
432  	                                   ,attribute13
433  	                                   ,attribute14
434  	                                   ,attribute15
435  	                                   into
436 					    l_prev_attribute_category
437  	                                   ,l_prev_attribute1
438  	                                   ,l_prev_attribute2
439  	                                   ,l_prev_attribute3
440  	                                   ,l_prev_attribute4
441  	                                   ,l_prev_attribute5
442  	                                   ,l_prev_attribute6
443  	                                   ,l_prev_attribute7
444  	                                   ,l_prev_attribute8
445  	                                   ,l_prev_attribute9
446  	                                   ,l_prev_attribute10
447  	                                   ,l_prev_attribute11
448  	                                   ,l_prev_attribute12
449  	                                   ,l_prev_attribute13
450  	                                   ,l_prev_attribute14
451  	                                   ,l_prev_attribute15
452  	                                   from WIP_EAM_DIRECT_ITEMS
453  	                                   where wip_entity_id =X_wip_Entity_Id
454  	                                   and organization_id = X_organization_id
455  	                                   and operation_seq_num= X_Operation_Seq_Num
456  	                                   and Direct_Item_Sequence_Id = X_Direct_Item_Sequence_Id;
457  	                            EXCEPTION
458  	                               WHEN NO_DATA_FOUND THEN
459  	                                  null;
460  	                               When Others then
461  	                                  null;
462  	                            END;
463 
464  	                       /* ... end ... for 8969942*/
465 
466 
467           l_eam_direct_items_rec.DESCRIPTION := X_DESCRIPTION;
468           l_eam_direct_items_rec.PURCHASING_CATEGORY_ID := X_PURCHASING_CATEGORY_ID;
469           l_eam_direct_items_rec.Direct_Item_Sequence_Id := X_Direct_Item_Sequence_Id;
470           l_eam_direct_items_rec.Operation_Seq_Num := X_Operation_Seq_Num;
471           l_eam_direct_items_rec.Department_id := X_Department_id;
472           l_eam_direct_items_rec.Wip_entity_id := X_Wip_entity_id;
473           l_eam_direct_items_rec.Organization_id := X_Organization_id;
474           l_eam_direct_items_rec.Suggested_Vendor_Name := X_Suggested_Vendor_Name;
475           l_eam_direct_items_rec.Suggested_Vendor_Id := X_Suggested_Vendor_Id;
476           l_eam_direct_items_rec.Suggested_Vendor_Site := X_Suggested_Vendor_Site;
477           l_eam_direct_items_rec.Suggested_Vendor_Site_Id := X_Suggested_Vendor_Site_Id;
481           l_eam_direct_items_rec.Suggested_Vendor_Item_Num := X_Suggested_Vendor_Item_Num;
478           l_eam_direct_items_rec.Suggested_Vendor_Contact := X_Suggested_Vendor_Contact;
479           l_eam_direct_items_rec.Suggested_Vendor_Contact_Id := X_Suggested_Vendor_Contact_Id;
480           l_eam_direct_items_rec.Suggested_Vendor_Phone := X_Suggested_Vendor_Phone;
482           l_eam_direct_items_rec.Unit_Price := X_Unit_Price;
483           l_eam_direct_items_rec.Auto_request_Material := X_Auto_request_Material;
484           l_eam_direct_items_rec.Required_Quantity := X_Required_Quantity;
485           l_eam_direct_items_rec.UOM := X_UOM;
486           l_eam_direct_items_rec.Need_By_Date := X_Need_By_Date;
487 
488           /* ---- start for 8969942---- */
489 	  IF l_prev_attribute_category is not null and X_attribute_category is null THEN
490                                          l_eam_direct_items_rec.attribute_category  := FND_API.G_MISS_CHAR;
491                                 ELSE
492                                          l_eam_direct_items_rec.attribute_category := X_attribute_category;
493                                 END IF;
494 
495                                 IF l_prev_attribute1 is not null and X_attribute1 is null THEN
496                                          l_eam_direct_items_rec.attribute1  := FND_API.G_MISS_CHAR;
497                                 ELSE
498                                          l_eam_direct_items_rec.attribute1 := X_attribute1;
499                                 END IF;
500 
501                                 IF l_prev_attribute2 is not null and X_attribute2 is null THEN
502                                          l_eam_direct_items_rec.attribute2  := FND_API.G_MISS_CHAR;
503                                 ELSE
504                                          l_eam_direct_items_rec.attribute2 := X_attribute2;
505                                 END IF;
506 
507                                 IF l_prev_attribute3 is not null and X_attribute3 is null THEN
508                                          l_eam_direct_items_rec.attribute3  := FND_API.G_MISS_CHAR;
509                                 ELSE
510                                          l_eam_direct_items_rec.attribute3 := X_attribute3;
511                                 END IF;
512 
513                                 IF l_prev_attribute4 is not null and X_attribute4 is null THEN
514                                          l_eam_direct_items_rec.attribute4  := FND_API.G_MISS_CHAR;
515                                 ELSE
516                                          l_eam_direct_items_rec.attribute4 := X_attribute4;
517                                 END IF;
518 
519                                 IF l_prev_attribute5 is not null and X_attribute5 is null THEN
520                                          l_eam_direct_items_rec.attribute5  := FND_API.G_MISS_CHAR;
521                                 ELSE
522                                          l_eam_direct_items_rec.attribute5 := X_attribute5;
523                                 END IF;
524 
525                                 IF l_prev_attribute6 is not null and X_attribute6 is null THEN
526                                          l_eam_direct_items_rec.attribute6  := FND_API.G_MISS_CHAR;
527                                 ELSE
528                                          l_eam_direct_items_rec.attribute6 := X_attribute6;
529                                 END IF;
530 
531                                 IF l_prev_attribute7 is not null and X_attribute7 is null THEN
532                                          l_eam_direct_items_rec.attribute7  := FND_API.G_MISS_CHAR;
533                                 ELSE
534                                          l_eam_direct_items_rec.attribute7 := X_attribute7;
535                                 END IF;
536 
537                                 IF l_prev_attribute8 is not null and X_attribute8 is null THEN
538                                          l_eam_direct_items_rec.attribute8  := FND_API.G_MISS_CHAR;
539                                 ELSE
540                                          l_eam_direct_items_rec.attribute8 := X_attribute8;
541                                 END IF;
542 
543                                 IF l_prev_attribute9 is not null and X_attribute9 is null THEN
544                                          l_eam_direct_items_rec.attribute9  := FND_API.G_MISS_CHAR;
545                                 ELSE
546                                          l_eam_direct_items_rec.attribute9 := X_attribute9;
547                                 END IF;
548 
549                                 IF l_prev_attribute10 is not null and X_attribute10 is null THEN
550                                          l_eam_direct_items_rec.attribute10  := FND_API.G_MISS_CHAR;
551                                 ELSE
552                                          l_eam_direct_items_rec.attribute10 := X_attribute10;
553                                 END IF;
554 
555                                 IF l_prev_attribute11 is not null and X_attribute11 is null THEN
556                                          l_eam_direct_items_rec.attribute11  := FND_API.G_MISS_CHAR;
557                                 ELSE
558                                          l_eam_direct_items_rec.attribute11 := X_attribute11;
559                                 END IF;
560 
561                                 IF l_prev_attribute12 is not null and X_attribute12 is null THEN
562                                          l_eam_direct_items_rec.attribute12  := FND_API.G_MISS_CHAR;
563                                 ELSE
564                                          l_eam_direct_items_rec.attribute12 := X_attribute12;
565                                 END IF;
566 
567                                 IF l_prev_attribute13 is not null and X_attribute13 is null THEN
568                                          l_eam_direct_items_rec.attribute13  := FND_API.G_MISS_CHAR;
569                                 ELSE
570                                          l_eam_direct_items_rec.attribute13 := X_attribute13;
571                                 END IF;
575                                 ELSE
572 
573                                 IF l_prev_attribute14 is not null and X_attribute14 is null THEN
574                                          l_eam_direct_items_rec.attribute14  := FND_API.G_MISS_CHAR;
576                                          l_eam_direct_items_rec.attribute14 := X_attribute14;
577                                 END IF;
578 
579                                 IF l_prev_attribute15 is not null and X_attribute15 is null THEN
580                                          l_eam_direct_items_rec.attribute15  := FND_API.G_MISS_CHAR;
581                                 ELSE
582                                          l_eam_direct_items_rec.attribute15 := X_attribute15;
583                                 END IF;
584 
585                      /* ---- end for 8969942---- */
586 
587           l_eam_direct_items_rec.PROGRAM_APPLICATION_ID     := null;
588           l_eam_direct_items_rec.PROGRAM_ID                 := null;
589           l_eam_direct_items_rec.PROGRAM_UPDATE_DATE        := sysdate;
590           l_eam_direct_items_rec.REQUEST_ID                 := null;
591           l_eam_direct_items_rec.RETURN_STATUS              := null;
592           l_eam_direct_items_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_UPDATE;
593           l_eam_direct_items_rec.HEADER_ID                  := 1;
594           l_eam_direct_items_rec.BATCH_ID                   := 1;
595           l_eam_direct_items_rec.ROW_ID                     := null;
596 
597           l_eam_direct_items_tbl(1) := l_eam_direct_items_rec;
598 
599         elsif X_DIRECT_ITEM_TYPE = 2 then
600 
601 	   /* Adding Code to get previous operation data fields for 8969942 .. start ... */
602 
603                    Begin
604                         select     attribute_category
605                                   ,attribute1
606                                   ,attribute2
607                                   ,attribute3
608                                   ,attribute4
609                                   ,attribute5
610                                   ,attribute6
611                                   ,attribute7
612                                   ,attribute8
613                                   ,attribute9
614                                   ,attribute10
615                                   ,attribute11
616                                   ,attribute12
617                                   ,attribute13
618                                   ,attribute14
619                                   ,attribute15
620                                   into
621                                   l_prev_attribute_category
622                                   ,l_prev_attribute1
623                                   ,l_prev_attribute2
624                                   ,l_prev_attribute3
625                                   ,l_prev_attribute4
626                                   ,l_prev_attribute5
627                                   ,l_prev_attribute6
628                                   ,l_prev_attribute7
629                                   ,l_prev_attribute8
630                                   ,l_prev_attribute9
631                                   ,l_prev_attribute10
632                                   ,l_prev_attribute11
633                                   ,l_prev_attribute12
634                                   ,l_prev_attribute13
635                                   ,l_prev_attribute14
636                                   ,l_prev_attribute15
637                                   from WIP_REQUIREMENT_OPERATIONS
638                                   where wip_entity_id =X_wip_Entity_Id
639                                   and organization_id = X_organization_id
640                                   and operation_seq_num= X_Operation_Seq_Num
641                                   and INVENTORY_ITEM_ID = X_inventory_item_id;
642                            EXCEPTION
643                               WHEN NO_DATA_FOUND THEN
644                                  null;
645                               When Others then
646                                  null;
647                            END;
648 
649                       /* ... end ... for 8969942*/
650 
651 
652           l_eam_mat_req_rec.Operation_Seq_Num := X_Operation_Seq_Num;
653           l_eam_mat_req_rec.Department_id := X_Department_id;
654           l_eam_mat_req_rec.Wip_entity_id := X_Wip_entity_id;
655           l_eam_mat_req_rec.Organization_id := X_Organization_id;
656 	  l_eam_mat_req_rec.Suggested_Vendor_Name := X_Suggested_Vendor_Name;   	-- Fix for Bug 3665818
657           l_eam_mat_req_rec.Vendor_Id := X_Suggested_Vendor_Id;				-- Fix for Bug 3665818
658 	  l_eam_mat_req_rec.inventory_item_id := X_Inventory_Item_id;
659           l_eam_mat_req_rec.Unit_Price := X_Unit_Price;
660           l_eam_mat_req_rec.Auto_request_Material := X_Auto_request_Material;
661           l_eam_mat_req_rec.Required_Quantity := X_Required_Quantity;
662           l_eam_mat_req_rec.Date_Required := X_Need_By_Date;
663 
664 	  IF l_prev_attribute_category is not null and X_attribute_category is null THEN
665                             l_eam_mat_req_rec.attribute_category  := FND_API.G_MISS_CHAR;
666           ELSE
667                    l_eam_mat_req_rec.attribute_category := X_attribute_category;
668           END IF;
669 
670           IF l_prev_attribute1 is not null and X_attribute1 is null THEN
671                    l_eam_mat_req_rec.attribute1  := FND_API.G_MISS_CHAR;
672           ELSE
673                    l_eam_mat_req_rec.attribute1 := X_attribute1;
674           END IF;
675 
676           IF l_prev_attribute2 is not null and X_attribute2 is null THEN
677                    l_eam_mat_req_rec.attribute2  := FND_API.G_MISS_CHAR;
678           ELSE
679                    l_eam_mat_req_rec.attribute2 := X_attribute2;
680           END IF;
681 
682           IF l_prev_attribute3 is not null and X_attribute3 is null THEN
686           END IF;
683                    l_eam_mat_req_rec.attribute3  := FND_API.G_MISS_CHAR;
684           ELSE
685                    l_eam_mat_req_rec.attribute3 := X_attribute3;
687 
688           IF l_prev_attribute4 is not null and X_attribute4 is null THEN
689                    l_eam_mat_req_rec.attribute4  := FND_API.G_MISS_CHAR;
690           ELSE
691                    l_eam_mat_req_rec.attribute4 := X_attribute4;
692           END IF;
693 
694           IF l_prev_attribute5 is not null and X_attribute5 is null THEN
695                    l_eam_mat_req_rec.attribute5  := FND_API.G_MISS_CHAR;
696           ELSE
697                    l_eam_mat_req_rec.attribute5 := X_attribute5;
698           END IF;
699 
700           IF l_prev_attribute6 is not null and X_attribute6 is null THEN
701                    l_eam_mat_req_rec.attribute6  := FND_API.G_MISS_CHAR;
702           ELSE
703                    l_eam_mat_req_rec.attribute6 := X_attribute6;
704           END IF;
705 
706           IF l_prev_attribute7 is not null and X_attribute7 is null THEN
707                    l_eam_mat_req_rec.attribute7  := FND_API.G_MISS_CHAR;
708           ELSE
709                    l_eam_mat_req_rec.attribute7 := X_attribute7;
710           END IF;
711 
712           IF l_prev_attribute8 is not null and X_attribute8 is null THEN
713                    l_eam_mat_req_rec.attribute8  := FND_API.G_MISS_CHAR;
714           ELSE
715                    l_eam_mat_req_rec.attribute8 := X_attribute8;
716           END IF;
717 
718           IF l_prev_attribute9 is not null and X_attribute9 is null THEN
719                    l_eam_mat_req_rec.attribute9  := FND_API.G_MISS_CHAR;
720           ELSE
721                    l_eam_mat_req_rec.attribute9 := X_attribute9;
722           END IF;
723 
724           IF l_prev_attribute10 is not null and X_attribute10 is null THEN
725                    l_eam_mat_req_rec.attribute10  := FND_API.G_MISS_CHAR;
726           ELSE
727                    l_eam_mat_req_rec.attribute10 := X_attribute10;
728           END IF;
729 
730           IF l_prev_attribute11 is not null and X_attribute11 is null THEN
731                    l_eam_mat_req_rec.attribute11  := FND_API.G_MISS_CHAR;
732           ELSE
733                    l_eam_mat_req_rec.attribute11 := X_attribute11;
734           END IF;
735 
736           IF l_prev_attribute12 is not null and X_attribute12 is null THEN
737                    l_eam_mat_req_rec.attribute12  := FND_API.G_MISS_CHAR;
738           ELSE
739                    l_eam_mat_req_rec.attribute12 := X_attribute12;
740           END IF;
741 
742           IF l_prev_attribute13 is not null and X_attribute13 is null THEN
743                    l_eam_mat_req_rec.attribute13  := FND_API.G_MISS_CHAR;
744           ELSE
745                    l_eam_mat_req_rec.attribute13 := X_attribute13;
746           END IF;
747 
748           IF l_prev_attribute14 is not null and X_attribute14 is null THEN
749                    l_eam_mat_req_rec.attribute14  := FND_API.G_MISS_CHAR;
750           ELSE
751                    l_eam_mat_req_rec.attribute14 := X_attribute14;
752           END IF;
753 
754           IF l_prev_attribute15 is not null and X_attribute15 is null THEN
755                    l_eam_mat_req_rec.attribute15  := FND_API.G_MISS_CHAR;
756           ELSE
757                    l_eam_mat_req_rec.attribute15 := X_attribute15;
758           END IF;
759 
760           l_eam_mat_req_rec.PROGRAM_APPLICATION_ID     := null;
761           l_eam_mat_req_rec.PROGRAM_ID                 := null;
762           l_eam_mat_req_rec.PROGRAM_UPDATE_DATE        := sysdate;
763           l_eam_mat_req_rec.REQUEST_ID                 := null;
764           l_eam_mat_req_rec.RETURN_STATUS              := null;
765           l_eam_mat_req_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_UPDATE;
766           l_eam_mat_req_rec.HEADER_ID                  := 1;
767           l_eam_mat_req_rec.BATCH_ID                   := 1;
768           l_eam_mat_req_rec.ROW_ID                     := null;
769 
770           l_eam_mat_req_tbl(1) := l_eam_mat_req_rec;
771 
772         end if;
773 
774 EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
775 
776         EAM_PROCESS_WO_PUB.PROCESS_WO
777         (  p_bo_identifier           => 'EAM'
778          , p_api_version_number      => 1.0
779          , p_init_msg_list           => FALSE
780          , p_commit                  => 'N'
781          , p_eam_wo_rec              => l_eam_wo_rec
782          , p_eam_op_tbl              => l_eam_op_tbl
783          , p_eam_op_network_tbl      => l_eam_op_network_tbl
784          , p_eam_res_tbl             => l_eam_res_tbl
785          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
786          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
787          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
788          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
789          , p_eam_direct_items_tbl    => l_eam_direct_items_tbl
790 	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
791 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
792 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
793 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
794 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
795 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
796 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
797 	 , p_eam_request_tbl          => l_eam_request_tbl
798          , x_eam_wo_rec              => l_out_eam_wo_rec
799          , x_eam_op_tbl              => l_out_eam_op_tbl
800          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
801          , x_eam_res_tbl             => l_out_eam_res_tbl
802          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
803          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
807 	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
804          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
805          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
806          , x_eam_direct_items_tbl    => l_out_eam_direct_items_tbl
808 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
809 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
810 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
811 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
812 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
813 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
814 	 , x_eam_request_tbl          => l_out_eam_request_tbl
815          , x_return_status           => l_return_status
816          , x_msg_count               => l_msg_count
817          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
818          , p_output_dir              => l_output_dir
819          , p_debug_filename          => 'diitemupd.log'
820          , p_debug_file_mode         => 'w'
821          );
822 
823          x_return_status := l_return_status;
824 	 x_material_shortage_flag := l_out_eam_wo_rec.material_shortage_flag;
825          x_material_shortage_check_date := l_out_eam_wo_rec.material_shortage_check_date;
826 
827         END Update_Row;
828 
829 
830 
831         /********************************************************************
832         * Procedure     : Delete_Row
833         * Parameters IN : Direct Items column record
834         * Parameters OUT NOCOPY: Message Token Table
835         *                 Return Status
836         * Purpose       : Procedure will perfrom an Delete on the
837         *                 wip_eam_direct_items
838         *********************************************************************/
839 
840         PROCEDURE Delete_Row
841         ( X_DIRECT_ITEM_TYPE                IN NUMBER,
842           X_DIRECT_ITEM_SEQUENCE_ID         IN NUMBER,
843           X_INVENTORY_ITEM_ID               IN NUMBER,
844           X_OPERATION_SEQ_NUM               IN NUMBER,
845           X_WIP_ENTITY_ID                   IN NUMBER,
846           X_ORGANIZATION_ID                 IN NUMBER,
847           x_return_Status                   OUT NOCOPY VARCHAR2,
848           x_material_shortage_flag          OUT NOCOPY VARCHAR2,
849           x_material_shortage_check_date    OUT NOCOPY DATE
850          )
851         IS
852           l_eam_direct_items_rec EAM_PROCESS_WO_PUB.eam_direct_items_rec_type;
853           l_eam_direct_items_tbl EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
854           l_eam_mat_req_rec EAM_PROCESS_WO_PUB.eam_mat_req_rec_type;
855           l_eam_mat_req_tbl EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
856 
857           l_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
858           l_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
859           l_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
860           l_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
861           l_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
862           l_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
863           l_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
864 	  l_eam_wo_comp_rec               EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
865 	  l_eam_wo_quality_tbl            EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
866 	  l_eam_meter_reading_tbl         EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
867 	  l_eam_wo_comp_rebuild_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
868 	  l_eam_wo_comp_mr_read_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
869 	  l_eam_op_comp_tbl               EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
870 	  l_eam_request_tbl               EAM_PROCESS_WO_PUB.eam_request_tbl_type;
871 	  l_eam_counter_prop_tbl          EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
872 
873           l_out_eam_wo_rec              EAM_PROCESS_WO_PUB.eam_wo_rec_type;
874           l_out_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type;
875           l_out_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
876           l_out_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type;
877           l_out_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
878           l_out_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
879           l_out_eam_res_usage_tbl       EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
880           l_out_eam_mat_req_tbl         EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
881           l_out_eam_direct_items_tbl    EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
882 	  l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
883 	  l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
884 	  l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
885 	  l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
886 	  l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
887 	  l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
888 	  l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
889 	  l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
890 
891           l_return_status               VARCHAR2(10);
892           l_msg_count                   NUMBER;
893 	   l_output_dir VARCHAR2(512);
894 
895         BEGIN
896 
897         l_eam_direct_items_tbl.delete;
898         l_eam_mat_req_tbl.delete;
899 
900 EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
901 
902         if X_DIRECT_ITEM_TYPE = 1 then
903 
904           l_eam_direct_items_rec.Direct_Item_Sequence_Id := X_Direct_Item_Sequence_Id;
905           l_eam_direct_items_rec.Operation_Seq_Num := X_Operation_Seq_Num;
906           l_eam_direct_items_rec.Wip_entity_id := X_Wip_entity_id;
907           l_eam_direct_items_rec.Organization_id := X_Organization_id;
908           l_eam_direct_items_rec.RETURN_STATUS              := null;
909           l_eam_direct_items_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_DELETE;
910           l_eam_direct_items_rec.HEADER_ID                  := 1;
911           l_eam_direct_items_rec.BATCH_ID                   := 1;
912           l_eam_direct_items_rec.ROW_ID                     := null;
913 
914           l_eam_direct_items_tbl(1) := l_eam_direct_items_rec;
915 
916         elsif X_DIRECT_ITEM_TYPE = 2 then
917 
918           l_eam_mat_req_rec.Operation_Seq_Num := X_Operation_Seq_Num;
919           l_eam_mat_req_rec.Wip_entity_id := X_Wip_entity_id;
920           l_eam_mat_req_rec.Organization_id := X_Organization_id;
921           l_eam_mat_req_rec.inventory_item_id := X_Inventory_item_id;
922           l_eam_mat_req_rec.RETURN_STATUS              := null;
923           l_eam_mat_req_rec.TRANSACTION_TYPE           := EAM_PROCESS_WO_PVT.G_OPR_DELETE;
924           l_eam_mat_req_rec.HEADER_ID                  := 1;
925           l_eam_mat_req_rec.BATCH_ID                   := 1;
926           l_eam_mat_req_rec.ROW_ID                     := null;
927 
928           l_eam_mat_req_tbl(1) := l_eam_mat_req_rec;
929 
930         end if;
931 
932         EAM_PROCESS_WO_PUB.PROCESS_WO
933         (  p_bo_identifier           => 'EAM'
934          , p_api_version_number      => 1.0
935          , p_init_msg_list           => FALSE
936          , p_commit                  => 'N'
937          , p_eam_wo_rec              => l_eam_wo_rec
938          , p_eam_op_tbl              => l_eam_op_tbl
939          , p_eam_op_network_tbl      => l_eam_op_network_tbl
940          , p_eam_res_tbl             => l_eam_res_tbl
941          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
942          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
943          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
944          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
945          , p_eam_direct_items_tbl    => l_eam_direct_items_tbl
946 	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
947 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
948 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
949 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
950 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
951 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
952 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
953 	 , p_eam_request_tbl          => l_eam_request_tbl
954          , x_eam_wo_rec              => l_out_eam_wo_rec
955          , x_eam_op_tbl              => l_out_eam_op_tbl
956          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
957          , x_eam_res_tbl             => l_out_eam_res_tbl
958          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
959          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
960          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
961          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
962          , x_eam_direct_items_tbl    => l_out_eam_direct_items_tbl
963 	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
964 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
965 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
966 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
967 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
968 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
969 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
970 	 , x_eam_request_tbl          => l_out_eam_request_tbl
971          , x_return_status           => l_return_status
972          , x_msg_count               => l_msg_count
973          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
974          , p_output_dir              =>  l_output_dir
975          , p_debug_filename          => 'diitemdel.log'
976          , p_debug_file_mode         => 'w'
977          );
978 
979          x_return_status := l_return_status;
980 	 x_material_shortage_flag := l_out_eam_wo_rec.material_shortage_flag;
981          x_material_shortage_check_date := l_out_eam_wo_rec.material_shortage_check_date;
982 
983         END Delete_Row;
984 
985 --Fix for 3352406.Added the following procedure to show the messages from the api
986         /********************************************************************
987         * Procedure     : show_mesg
988         * Purpose       : Procedure will concatenate all the messages
989 	                  from the workorder api and return 1 string
990         *********************************************************************/
991 	PROCEDURE show_mesg IS
992 		 l_msg_count NUMBER;
993 		 mesg varchar2(2000);
994 		  i NUMBER;
995 		  msg_index number;
996 		 temp varchar2(500);
997 	BEGIN
998 	   mesg := '';
999 
1000 	   l_msg_count := fnd_msg_pub.count_msg;
1001 	IF(l_msg_count>0) THEN
1002 
1003 	 msg_index := l_msg_count;
1004 
1005 	 for i in 1..l_msg_count loop
1006 		 fnd_msg_pub.get(p_msg_index => FND_MSG_PUB.G_NEXT,
1007                     p_encoded   => 'F',
1008                     p_data      => temp,
1009                     p_msg_index_out => msg_index);
1010 		msg_index := msg_index-1;
1011 		mesg := mesg || '    ' ||  to_char(i) || ' . '||temp ;
1012 	end loop;
1013 		fnd_message.set_name('EAM','EAM_WO_API_MESG');
1014 
1015 		fnd_message.set_token(token => 'MESG',
1016 			  	  value =>mesg,
1017 			  	  translate =>FALSE);
1018 		APP_EXCEPTION.RAISE_EXCEPTION;
1019 	END IF;
1020 
1021      END show_mesg;
1022 
1023 END EAM_DIRECT_ITEMS_PKG_PVT;