DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_OPERATIONS_PKG

Source


1 PACKAGE BODY EAM_OPERATIONS_PKG as
2 /* $Header: EAMOPTHB.pls 120.1 2006/03/14 20:44:59 pkathoti noship $ */
3 
4   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2,
5                        X_Wip_Entity_Id                  NUMBER,
6                        X_Operation_Seq_Num              NUMBER,
7                        X_Organization_Id                NUMBER,
8                        X_Repetitive_Schedule_Id         NUMBER,
9                        X_Last_Update_Date               DATE,
10                        X_Last_Updated_By                NUMBER,
11                        X_Creation_Date                  DATE,
12                        X_Created_By                     NUMBER,
13                        X_Last_Update_Login              NUMBER,
14                        X_Operation_Sequence_Id          NUMBER,
15                        X_Standard_Operation_Id          NUMBER,
16                        X_Department_Id                  NUMBER,
17 		       X_Shutdown_Type			VARCHAR2,
18 		       X_Operation_Completed		VARCHAR2,
19                        X_Description                    VARCHAR2,
20                        X_Scheduled_Quantity             NUMBER,
21                        X_Quantity_In_Queue              NUMBER,
22                        X_Quantity_Running               NUMBER,
23                        X_Quantity_Waiting_To_Move       NUMBER,
24                        X_Quantity_Rejected              NUMBER,
25                        X_Quantity_Scrapped              NUMBER,
26                        X_Quantity_Completed             NUMBER,
27                        X_First_Unit_Start_Date          DATE,
28                        X_First_Unit_Completion_Date     DATE,
29                        X_Last_Unit_Start_Date           DATE,
30                        X_Last_Unit_Completion_Date      DATE,
31                        X_Previous_Operation_Seq_Num     NUMBER,
32                        X_Next_Operation_Seq_Num         NUMBER,
33                        X_Count_Point_Type               NUMBER,
34                        X_Backflush_Flag                 NUMBER,
35                        X_Minimum_Transfer_Quantity      NUMBER,
36                        X_Date_Last_Moved                DATE,
37                        X_Attribute_Category             VARCHAR2,
38                        X_Attribute1                     VARCHAR2,
39                        X_Attribute2                     VARCHAR2,
40                        X_Attribute3                     VARCHAR2,
41                        X_Attribute4                     VARCHAR2,
42                        X_Attribute5                     VARCHAR2,
43                        X_Attribute6                     VARCHAR2,
44                        X_Attribute7                     VARCHAR2,
45                        X_Attribute8                     VARCHAR2,
46                        X_Attribute9                     VARCHAR2,
47                        X_Attribute10                    VARCHAR2,
48                        X_Attribute11                    VARCHAR2,
49                        X_Attribute12                    VARCHAR2,
50                        X_Attribute13                    VARCHAR2,
51                        X_Attribute14                    VARCHAR2,
52                        X_Attribute15                    VARCHAR2,
53 		       X_X_Pos				NUMBER,
54 		       X_Y_Pos				NUMBER,
55   		       X_LONG_DESCRIPTION               VARCHAR2,
56 		       X_L_EAM_OP_REC	OUT NOCOPY	EAM_PROCESS_WO_PUB.eam_op_rec_type,
57 		       X_WO_Start_Date OUT NOCOPY DATE,
58 		       X_WO_Completion_Date OUT NOCOPY DATE
59 ) IS
60      x_user_id		number	:= FND_GLOBAL.USER_ID;
61      x_login_id		number	:= FND_GLOBAL.LOGIN_ID;
62      x_request_id       number  := FND_GLOBAL.CONC_REQUEST_ID;
63      x_appl_id          number  := FND_GLOBAL.PROG_APPL_ID;
64      x_program_id       number  := FND_GLOBAL.CONC_PROGRAM_ID;
65      x_standard_op	boolean	:= (X_Standard_Operation_Id is NOT NULL);
66 
67      l_return_status    VARCHAR2(1);
68      l_msg_count        NUMBER;
69      l_msg_data         VARCHAR2(1000);
70      l_error_message    VARCHAR2(1000);
71      l_output_dir	VARCHAR2(255);
72 
73      l_eam_op_rec	EAM_PROCESS_WO_PUB.eam_op_rec_type;
74 
75     l_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
76     l_eam_op_tbl                EAM_PROCESS_WO_PUB.eam_op_tbl_type;
77     l_eam_op_network_tbl    	EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
78     l_eam_res_tbl               EAM_PROCESS_WO_PUB.eam_res_tbl_type;
79     l_eam_res_inst_tbl          EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
80     l_eam_sub_res_tbl       	EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
81     l_eam_res_usage_tbl         EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
82     l_eam_mat_req_tbl      	EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
83     l_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
84     l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
85     l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
86     l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
87     l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
88     l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
89     l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
90     l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
91     l_eam_counter_prop_tbl     EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
92 
93     l_out_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
94     l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
95     l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
96     l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
97     l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
98     l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
99     l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
100     l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
101     l_out_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
102     l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
103     l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
104     l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
105     l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
106     l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
107     l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
108     l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
109     l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
110 
111     BEGIN
112 
113     l_return_status         := FND_API.G_RET_STS_SUCCESS;
114 
115 
116      /* get output directory path from database */
117      EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
118 
119      l_eam_op_rec.HEADER_ID                     := 1;
120      l_eam_op_rec.BATCH_ID                      := 1;
121      l_eam_op_rec.WIP_ENTITY_ID                 := X_Wip_Entity_Id;
122      l_eam_op_rec.ORGANIZATION_ID               := X_Organization_Id;
123      l_eam_op_rec.OPERATION_SEQ_NUM             := X_Operation_Seq_Num;
124      l_eam_op_rec.STANDARD_OPERATION_ID         := X_Standard_Operation_Id;
125      l_eam_op_rec.DEPARTMENT_ID                 := X_Department_Id;
126      l_eam_op_rec.OPERATION_SEQUENCE_ID         := X_Operation_Sequence_Id;
127      l_eam_op_rec.DESCRIPTION                   := X_Description;
128      l_eam_op_rec.MINIMUM_TRANSFER_QUANTITY     := X_Minimum_Transfer_Quantity;
129      l_eam_op_rec.COUNT_POINT_TYPE              := X_Count_Point_Type;
130      l_eam_op_rec.BACKFLUSH_FLAG                := X_Backflush_Flag;
131      l_eam_op_rec.SHUTDOWN_TYPE                 := X_Shutdown_Type;
132      l_eam_op_rec.START_DATE                    := X_First_Unit_Start_Date;
133      l_eam_op_rec.COMPLETION_DATE               := X_Last_Unit_Completion_Date;
134      l_eam_op_rec.ATTRIBUTE_CATEGORY            := X_Attribute_Category;
135      l_eam_op_rec.ATTRIBUTE1                    := X_Attribute1;
136      l_eam_op_rec.ATTRIBUTE2                    := X_Attribute2;
137      l_eam_op_rec.ATTRIBUTE3                    := X_Attribute3;
138      l_eam_op_rec.ATTRIBUTE4                    := X_Attribute4;
139      l_eam_op_rec.ATTRIBUTE5                    := X_Attribute5;
140      l_eam_op_rec.ATTRIBUTE6                    := X_Attribute6;
141      l_eam_op_rec.ATTRIBUTE7                    := X_Attribute7;
142      l_eam_op_rec.ATTRIBUTE8                    := X_Attribute8;
143      l_eam_op_rec.ATTRIBUTE9                    := X_Attribute9;
144      l_eam_op_rec.ATTRIBUTE10                   := X_Attribute10;
145      l_eam_op_rec.ATTRIBUTE11                   := X_Attribute11;
146      l_eam_op_rec.ATTRIBUTE12                   := X_Attribute12;
147      l_eam_op_rec.ATTRIBUTE13                   := X_Attribute13;
148      l_eam_op_rec.ATTRIBUTE14                   := X_Attribute14;
149      l_eam_op_rec.ATTRIBUTE15                   := X_Attribute15;
150      l_eam_op_rec.LONG_DESCRIPTION              := X_LONG_DESCRIPTION;
151      l_eam_op_rec.TRANSACTION_TYPE              := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
152      --Added for bug#4318049
153      l_eam_op_rec.X_POS                         := X_x_pos;
154      l_eam_op_rec.Y_POS                         := X_y_pos;
155 
156 
157      l_eam_op_tbl(1) := l_eam_op_rec;
158 
159     /* Call Work Order API to perform the operations */
160 
161 	EAM_PROCESS_WO_PUB.Process_WO
162          ( p_bo_identifier           => 'EAM'
163          , p_init_msg_list           => TRUE
164          , p_api_version_number      => 1.0
165          , p_eam_wo_rec              => l_eam_wo_rec
166          , p_eam_op_tbl              => l_eam_op_tbl
167          , p_eam_op_network_tbl      => l_eam_op_network_tbl
168          , p_eam_res_tbl             => l_eam_res_tbl
169          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
170          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
171          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
172          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
173 	 , p_eam_direct_items_tbl    => l_eam_di_tbl
174 	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
175 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
176 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
177 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
178 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
179 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
180 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
181 	 , p_eam_request_tbl          => l_eam_request_tbl
182          , x_eam_wo_rec              => l_out_eam_wo_rec
183          , x_eam_op_tbl              => l_out_eam_op_tbl
184          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
185          , x_eam_res_tbl             => l_out_eam_res_tbl
186          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
187          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
188          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
189          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
190 	 , x_eam_direct_items_tbl    => l_out_eam_di_tbl
191 	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
192 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
193 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
194 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
195 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
196 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
197 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
198 	 , x_eam_request_tbl          => l_out_eam_request_tbl
199          , p_commit                  => 'N'
200          , x_return_status           => l_return_status
201          , x_msg_count               => l_msg_count
202          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
203          , p_debug_filename          => 'EAMOPTHB.log'
204 	 , p_debug_file_mode	     => 'W'
205          , p_output_dir              => l_output_dir
206          );
207 
208 	IF (l_return_status = 'S') THEN
209 		X_L_EAM_OP_REC := l_out_eam_op_tbl(1);
210 		IF(l_out_eam_wo_rec.scheduled_start_date IS NOT NULL)THEN
211 		     X_WO_Start_Date := l_out_eam_wo_rec.scheduled_start_date;
212 		    X_WO_Completion_Date := l_out_eam_wo_rec.scheduled_completion_date;
213 		END IF;
214 
215 	ELSE
216 		EAM_WORKORDER_UTIL_PKG.show_mesg;
217         END IF;
218 
219   END Insert_Row;
220 
221 
222   PROCEDURE Update_Row(X_Rowid                   	VARCHAR2,
223                        X_Wip_Entity_Id                  NUMBER,
224                        X_Operation_Seq_Num              NUMBER,
225                        X_Organization_Id                NUMBER,
226                        X_Last_Update_Date               DATE,
227                        X_Last_Updated_By                NUMBER,
228                        X_Last_Update_Login              NUMBER,
229                        X_Operation_Sequence_Id          NUMBER,
230                        X_Standard_Operation_Id          NUMBER,
231                        X_Department_Id                  NUMBER,
232 		       X_Shutdown_Type			VARCHAR2,
233 		       X_Operation_Completed		VARCHAR2,
234                        X_Description                    VARCHAR2,
235                        X_First_Unit_Start_Date          DATE,
236                        X_First_Unit_Completion_Date     DATE,
237                        X_Last_Unit_Start_Date           DATE,
238                        X_Last_Unit_Completion_Date      DATE,
239                        X_Attribute_Category             VARCHAR2,
240                        X_Attribute1                     VARCHAR2,
241                        X_Attribute2                     VARCHAR2,
242                        X_Attribute3                     VARCHAR2,
243                        X_Attribute4                     VARCHAR2,
244                        X_Attribute5                     VARCHAR2,
245                        X_Attribute6                     VARCHAR2,
246                        X_Attribute7                     VARCHAR2,
247                        X_Attribute8                     VARCHAR2,
248                        X_Attribute9                     VARCHAR2,
249                        X_Attribute10                    VARCHAR2,
250                        X_Attribute11                    VARCHAR2,
251                        X_Attribute12                    VARCHAR2,
252                        X_Attribute13                    VARCHAR2,
253                        X_Attribute14                    VARCHAR2,
254                        X_Attribute15                    VARCHAR2,
255 		       X_X_Pos				NUMBER,
256 		       X_Y_Pos				NUMBER,
257 		       X_Long_Description               VARCHAR2,
258        		       X_L_EAM_OP_REC	   OUT NOCOPY	EAM_PROCESS_WO_PUB.eam_op_rec_type,
259 		       X_WO_Start_Date OUT NOCOPY DATE,
260 		       X_WO_Completion_Date OUT NOCOPY DATE
261 
262 		       ) IS
263 
264      l_return_status    VARCHAR2(1);
265      l_msg_count        NUMBER;
266      l_msg_data         VARCHAR2(1000);
267      l_error_message    VARCHAR2(1000);
268      l_output_dir	VARCHAR2(255);
269      l_start_date	DATE;
270      l_end_date		DATE;
271 
272      l_eam_op_rec	EAM_PROCESS_WO_PUB.eam_op_rec_type;
273 
274     l_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
275     l_eam_op_tbl                EAM_PROCESS_WO_PUB.eam_op_tbl_type;
276     l_eam_op_network_tbl    	EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
277     l_eam_res_tbl               EAM_PROCESS_WO_PUB.eam_res_tbl_type;
278     l_eam_res_inst_tbl          EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
279     l_eam_sub_res_tbl       	EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
280     l_eam_res_usage_tbl         EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
281     l_eam_mat_req_tbl      	EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
282     l_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
283     l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
284     l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
285     l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
286     l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
287     l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
288     l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
292     l_out_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
289     l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
290     l_eam_counter_prop_tbl     EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
291 
293     l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
294     l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
295     l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
296     l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
297     l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
298     l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
299     l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
300     l_out_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
301     l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
302     l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
303     l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
304     l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
305     l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
306     l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
307     l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
308     l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
309 
310     BEGIN
311 
312     l_return_status         := FND_API.G_RET_STS_SUCCESS;
313 
314 
315      /* get output directory path from database */
316      EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
317 
318      l_eam_op_rec.HEADER_ID                     := 1;
319      l_eam_op_rec.BATCH_ID                      := 1;
320      l_eam_op_rec.WIP_ENTITY_ID                 := X_Wip_Entity_Id;
321      l_eam_op_rec.ORGANIZATION_ID               := X_Organization_Id;
322      l_eam_op_rec.OPERATION_SEQ_NUM             := X_Operation_Seq_Num;
323      l_eam_op_rec.STANDARD_OPERATION_ID         := X_Standard_Operation_Id;
324      l_eam_op_rec.DEPARTMENT_ID                 := X_Department_Id;
325      l_eam_op_rec.OPERATION_SEQUENCE_ID         := X_Operation_Sequence_Id;
326      l_eam_op_rec.DESCRIPTION                   := X_Description;
327      l_eam_op_rec.SHUTDOWN_TYPE                 := X_Shutdown_Type;
328      l_eam_op_rec.START_DATE                    := X_First_Unit_Start_Date;
329      l_eam_op_rec.COMPLETION_DATE               := X_Last_Unit_Completion_Date;
330      l_eam_op_rec.ATTRIBUTE_CATEGORY            := X_Attribute_Category;
331      l_eam_op_rec.ATTRIBUTE1                    := X_Attribute1;
332      l_eam_op_rec.ATTRIBUTE2                    := X_Attribute2;
333      l_eam_op_rec.ATTRIBUTE3                    := X_Attribute3;
334      l_eam_op_rec.ATTRIBUTE4                    := X_Attribute4;
335      l_eam_op_rec.ATTRIBUTE5                    := X_Attribute5;
336      l_eam_op_rec.ATTRIBUTE6                    := X_Attribute6;
337      l_eam_op_rec.ATTRIBUTE7                    := X_Attribute7;
338      l_eam_op_rec.ATTRIBUTE8                    := X_Attribute8;
339      l_eam_op_rec.ATTRIBUTE9                    := X_Attribute9;
340      l_eam_op_rec.ATTRIBUTE10                   := X_Attribute10;
341      l_eam_op_rec.ATTRIBUTE11                   := X_Attribute11;
342      l_eam_op_rec.ATTRIBUTE12                   := X_Attribute12;
343      l_eam_op_rec.ATTRIBUTE13                   := X_Attribute13;
344      l_eam_op_rec.ATTRIBUTE14                   := X_Attribute14;
345      l_eam_op_rec.ATTRIBUTE15                   := X_Attribute15;
346      l_eam_op_rec.LONG_DESCRIPTION              := X_LONG_DESCRIPTION;
347      l_eam_op_rec.TRANSACTION_TYPE              := EAM_PROCESS_WO_PUB.G_OPR_UPDATE;
348      --Added for bug#4615678
349      l_eam_op_rec.X_POS                         := X_x_pos;
350      l_eam_op_rec.Y_POS                         := X_y_pos;
351 
352 
353      l_eam_op_tbl(1) := l_eam_op_rec;
354 
355     /* Call Work Order API to perform the operations */
356 
357 	EAM_PROCESS_WO_PUB.Process_WO
358          ( p_bo_identifier           => 'EAM'
359          , p_init_msg_list           => TRUE
360          , p_api_version_number      => 1.0
361          , p_eam_wo_rec              => l_eam_wo_rec
362          , p_eam_op_tbl              => l_eam_op_tbl
363          , p_eam_op_network_tbl      => l_eam_op_network_tbl
364          , p_eam_res_tbl             => l_eam_res_tbl
365          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
366          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
367          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
368          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
369 	 , p_eam_direct_items_tbl    => l_eam_di_tbl
370  	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
371 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
372 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
373 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
374 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
375 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
376 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
377 	 , p_eam_request_tbl          => l_eam_request_tbl
378          , x_eam_wo_rec              => l_out_eam_wo_rec
379          , x_eam_op_tbl              => l_out_eam_op_tbl
380          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
381          , x_eam_res_tbl             => l_out_eam_res_tbl
382          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
383          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
384          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
388 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
385          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
386 	 , x_eam_direct_items_tbl    => l_out_eam_di_tbl
387  	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
389 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
390 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
391 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
392 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
393 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
394 	 , x_eam_request_tbl          => l_out_eam_request_tbl
395          , p_commit                  => 'N'
396          , x_return_status           => l_return_status
397          , x_msg_count               => l_msg_count
398          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
399          , p_debug_filename          => 'EAMOPTHB.log'
400 	 , p_debug_file_mode	     => 'W'
401          , p_output_dir              => l_output_dir
402          );
403 
404 
405 	IF (l_return_status = 'S') THEN
406 		X_L_EAM_OP_REC := l_out_eam_op_tbl(1);
407 		IF(l_out_eam_wo_rec.scheduled_start_date IS NOT NULL)THEN
408 		     X_WO_Start_Date := l_out_eam_wo_rec.scheduled_start_date;
409 		    X_WO_Completion_Date := l_out_eam_wo_rec.scheduled_completion_date;
410 		END IF;
411 
412 	ELSE
413 		EAM_WORKORDER_UTIL_PKG.show_mesg;
414         END IF;
415 
416   END Update_Row;
417 
418 
419   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
420                      X_Wip_Entity_Id                    NUMBER,
421                      X_Operation_Seq_Num                NUMBER,
422                      X_Organization_Id                  NUMBER,
423                      X_Operation_Sequence_Id            NUMBER,
424                      X_Standard_Operation_Id            NUMBER,
425                      X_Department_Id                    NUMBER,
426 		     X_Shutdown_Type			VARCHAR2,
427 		     X_Operation_Completed		VARCHAR2,
428                      X_Description                      VARCHAR2,
429                      X_First_Unit_Start_Date            DATE,
430                      X_First_Unit_Completion_Date       DATE,
431                      X_Last_Unit_Start_Date             DATE,
432                      X_Last_Unit_Completion_Date        DATE,
433                      X_Attribute_Category               VARCHAR2,
434                      X_Attribute1                       VARCHAR2,
435                      X_Attribute2                       VARCHAR2,
436                      X_Attribute3                       VARCHAR2,
437                      X_Attribute4                       VARCHAR2,
438                      X_Attribute5                       VARCHAR2,
439                      X_Attribute6                       VARCHAR2,
440                      X_Attribute7                       VARCHAR2,
441                      X_Attribute8                       VARCHAR2,
442                      X_Attribute9                       VARCHAR2,
443                      X_Attribute10                      VARCHAR2,
444                      X_Attribute11                      VARCHAR2,
445                      X_Attribute12                      VARCHAR2,
446                      X_Attribute13                      VARCHAR2,
447                      X_Attribute14                      VARCHAR2,
448                      X_Attribute15                      VARCHAR2,
449 		     X_X_Pos				NUMBER,
450 		     X_Y_Pos				NUMBER,
451 	 	     X_Long_Description			VARCHAR2) IS
452     CURSOR C IS
453         SELECT *
454         FROM   WIP_OPERATIONS
455         WHERE  rowid = X_Rowid
456         FOR UPDATE of Wip_Entity_Id NOWAIT;
457     Recinfo C%ROWTYPE;
458   BEGIN
459     OPEN C;
460     FETCH C INTO Recinfo;
461     if (C%NOTFOUND) then
462       CLOSE C;
463       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
464       fnd_message.raise_error;
465       app_exception.raise_exception;
466     end if;
467     CLOSE C;
468 
469 
470     if         (Recinfo.wip_entity_id = X_Wip_Entity_Id)
471            AND (Recinfo.operation_seq_num = X_Operation_Seq_Num)
472            AND (Recinfo.organization_id = X_Organization_Id)
473            AND (nvl(Recinfo.operation_sequence_id, 1) =
474                 nvl(X_Operation_Sequence_Id, 1))
475            AND (nvl(Recinfo.standard_operation_id, 1) =
476 	        nvl(X_Standard_Operation_Id, 1))
477            AND (Recinfo.department_id = X_Department_Id)
478            AND (nvl(Recinfo.shutdown_type, 'xxx') =
479 	        nvl(X_Shutdown_Type,'xxx'))
480            AND (Recinfo.operation_completed = X_Operation_Completed or
481 	        Recinfo.operation_completed is null)
482            AND (nvl(Recinfo.description, 'xxx') =
483 	        nvl(X_Description,'xxx'))
484            AND (Recinfo.first_unit_start_date = X_First_Unit_Start_Date)
485            AND (Recinfo.first_unit_completion_date = X_First_Unit_Completion_Date)
486            AND (Recinfo.last_unit_start_date = X_Last_Unit_Start_Date)
487            AND (Recinfo.last_unit_completion_date = X_Last_Unit_Completion_Date)
488     then
489           if (  (nvl(Recinfo.attribute_category, 'xxx') =
490 		 nvl(X_Attribute_Category, 'xxx'))
491            AND  (nvl(Recinfo.attribute1, 'xxx') =
492 		 nvl(X_Attribute1, 'xxx'))
493            AND  (nvl(Recinfo.attribute2, 'xxx') =
494 		 nvl(X_Attribute2, 'xxx'))
495            AND  (nvl(Recinfo.attribute3, 'xxx') =
496 		 nvl(X_Attribute3, 'xxx'))
497            AND  (nvl(Recinfo.attribute4, 'xxx') =
498 		 nvl(X_Attribute4, 'xxx'))
499            AND  (nvl(Recinfo.attribute5, 'xxx') =
500 		 nvl(X_Attribute5, 'xxx'))
501            AND  (nvl(Recinfo.attribute6, 'xxx') =
502 		 nvl(X_Attribute6, 'xxx'))
503            AND  (nvl(Recinfo.attribute7, 'xxx') =
504 		 nvl(X_Attribute7, 'xxx'))
505            AND  (nvl(Recinfo.attribute8, 'xxx') =
506 		 nvl(X_Attribute8, 'xxx'))
507            AND  (nvl(Recinfo.attribute9, 'xxx') =
508 		 nvl(X_Attribute9, 'xxx'))
512 		 nvl(X_Attribute11, 'xxx'))
509            AND  (nvl(Recinfo.attribute10, 'xxx') =
510 		 nvl(X_Attribute10, 'xxx'))
511            AND  (nvl(Recinfo.attribute11, 'xxx') =
513            AND  (nvl(Recinfo.attribute12, 'xxx') =
514 		 nvl(X_Attribute12, 'xxx'))
515            AND  (nvl(Recinfo.attribute13, 'xxx') =
516 		 nvl(X_Attribute13, 'xxx'))
517            AND  (nvl(Recinfo.attribute14, 'xxx') =
518 		 nvl(X_Attribute14, 'xxx'))
519            AND  (nvl(Recinfo.attribute15, 'xxx') =
520 		 nvl(X_Attribute15, 'xxx'))
521 /*           AND  (nvl(Recinfo.long_description, 'xxx') =
522 		 nvl(X_Long_Description, 'xxx'))*/
523            )
524       then
525         return;
526       else
527         FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
528         fnd_message.raise_error;
529         app_exception.raise_exception;
530       end if;
531     else
532       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
533       fnd_message.raise_error;
534       app_exception.raise_exception;
535     end if;
536   END Lock_Row;
537 
538 
539   PROCEDURE Delete_Row(X_Rowid VARCHAR2,
540 		       X_WO_Start_Date OUT NOCOPY DATE,
541 		       X_WO_Completion_Date OUT NOCOPY DATE) IS
542 
543      l_return_status    VARCHAR2(1);
544       l_msg_count        NUMBER;
545      l_msg_data         VARCHAR2(1000);
546      l_error_message    VARCHAR2(1000);
547      l_output_dir	VARCHAR2(255);
548      l_start_date	DATE;
549      l_end_date		DATE;
550      l_wip_entity_id	NUMBER;
551      l_organization_id	NUMBER;
552      l_operation_seq_num NUMBER;
553 
554      l_eam_op_rec	EAM_PROCESS_WO_PUB.eam_op_rec_type;
555 
556     l_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
557     l_eam_op_tbl                EAM_PROCESS_WO_PUB.eam_op_tbl_type;
558     l_eam_op_network_tbl    	EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
559     l_eam_res_tbl               EAM_PROCESS_WO_PUB.eam_res_tbl_type;
560     l_eam_res_inst_tbl          EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
561     l_eam_sub_res_tbl       	EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
562     l_eam_res_usage_tbl         EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
563     l_eam_mat_req_tbl      	EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
564     l_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
565     l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
566     l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
567     l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
568     l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
569     l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
570     l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
571     l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
572     l_eam_counter_prop_tbl     EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
573 
574     l_out_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
575     l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
576     l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
577     l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
578     l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
579     l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
580     l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
581     l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
582     l_out_eam_di_tbl         	EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
583     l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
584     l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
585     l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
586     l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
587     l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
588     l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
589     l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
590     l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
591 
592     BEGIN
593 
594     l_return_status         := FND_API.G_RET_STS_SUCCESS;
595 
596 
597      /* get output directory path from database */
598      EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
599 
600 	select wip_entity_id,
601 		organization_id,
602 		operation_seq_num
603 	into	l_wip_entity_id,
604 		l_organization_id,
605 		l_operation_seq_num
606 	from
607 		wip_operations
608 	where	rowid=X_Rowid;
609 
610      l_eam_op_rec.HEADER_ID                     := 1;
611      l_eam_op_rec.BATCH_ID                      := 1;
612      l_eam_op_rec.WIP_ENTITY_ID                 := l_wip_entity_id;
613      l_eam_op_rec.ORGANIZATION_ID               := l_organization_id;
614      l_eam_op_rec.OPERATION_SEQ_NUM             := l_operation_seq_num;
615      l_eam_op_rec.TRANSACTION_TYPE              := EAM_PROCESS_WO_PUB.G_OPR_DELETE;
616 
617      l_eam_op_tbl(1) := l_eam_op_rec;
618 
619 	EAM_PROCESS_WO_PUB.Process_WO
620          ( p_bo_identifier           => 'EAM'
621          , p_init_msg_list           => TRUE
622          , p_api_version_number      => 1.0
623          , p_eam_wo_rec              => l_eam_wo_rec
624          , p_eam_op_tbl              => l_eam_op_tbl
625          , p_eam_op_network_tbl      => l_eam_op_network_tbl
626          , p_eam_res_tbl             => l_eam_res_tbl
627          , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
628          , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
629          , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
630          , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
631 	 , p_eam_direct_items_tbl    => l_eam_di_tbl
632  	 , p_eam_wo_comp_rec          => l_eam_wo_comp_rec
633 	 , p_eam_wo_quality_tbl       => l_eam_wo_quality_tbl
634 	 , p_eam_meter_reading_tbl    => l_eam_meter_reading_tbl
635 	 , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
636 	 , p_eam_wo_comp_rebuild_tbl  => l_eam_wo_comp_rebuild_tbl
637 	 , p_eam_wo_comp_mr_read_tbl  => l_eam_wo_comp_mr_read_tbl
638 	 , p_eam_op_comp_tbl          => l_eam_op_comp_tbl
639 	 , p_eam_request_tbl          => l_eam_request_tbl
640          , x_eam_wo_rec              => l_out_eam_wo_rec
641          , x_eam_op_tbl              => l_out_eam_op_tbl
642          , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
643          , x_eam_res_tbl             => l_out_eam_res_tbl
644          , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
645          , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
646          , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
647          , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
648 	 , x_eam_direct_items_tbl    => l_out_eam_di_tbl
649  	 , x_eam_wo_comp_rec          => l_out_eam_wo_comp_rec
650 	 , x_eam_wo_quality_tbl       => l_out_eam_wo_quality_tbl
651 	 , x_eam_meter_reading_tbl    => l_out_eam_meter_reading_tbl
652 	 , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
653 	 , x_eam_wo_comp_rebuild_tbl  => l_out_eam_wo_comp_rebuild_tbl
654 	 , x_eam_wo_comp_mr_read_tbl  => l_out_eam_wo_comp_mr_read_tbl
655 	 , x_eam_op_comp_tbl          => l_out_eam_op_comp_tbl
656 	 , x_eam_request_tbl          => l_out_eam_request_tbl
657          , p_commit                  => 'N'
658          , x_return_status           => l_return_status
659          , x_msg_count               => l_msg_count
660          , p_debug                   => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
661          , p_debug_filename          => 'EAMOPTHB.log'
662 	 , p_debug_file_mode	     => 'W'
663          , p_output_dir              => l_output_dir
664          );
665 
666 	IF (l_return_status <> 'S') THEN
667 		EAM_WORKORDER_UTIL_PKG.show_mesg;
668 	ELSE
669                 IF(l_out_eam_wo_rec.scheduled_start_date IS NOT NULL)THEN
670 		    X_WO_Start_Date := l_out_eam_wo_rec.scheduled_start_date;
671 		    X_WO_Completion_Date := l_out_eam_wo_rec.scheduled_completion_date;
672 		END IF;
673 
674         END IF;
675 
676    EXCEPTION
677             WHEN NO_DATA_FOUND THEN
678                RAISE NO_DATA_FOUND;
679    END Delete_Row;
680 
681 
682 END EAM_OPERATIONS_PKG;