[Home] [Help]
PACKAGE BODY: APPS.EAM_WORKORDER_PKG
Source
1 PACKAGE BODY EAM_WORKORDER_PKG as
2 /* $Header: EAMWOTHB.pls 120.10.12020000.2 2013/01/18 10:14:56 fqu ship $ */
3
4
5
6
7 PROCEDURE Update_Genealogy( X_wip_entity_id IN NUMBER,
8 X_organization_id IN NUMBER,
9 X_parent_wip_entity_id IN NUMBER,
10 X_rebuild_item_id IN NUMBER,
11 X_rebuild_serial_number IN VARCHAR2,
12 X_manual_rebuild_flag IN VARCHAR2,
13 x_maintenance_object_type IN NUMBER,
14 x_maintenance_object_id IN Number ) IS
15 l_serial_status NUMBER;
16
17 x_returnStatus varchar2(5);
18 l_msgCount Number;
19 l_msgData varchar2(100);
20 l_error_message varchar2(4000);
21 l_status WIP_DISCRETE_JOBS.status_type%TYPE;
22
23 BEGIN
24
25 --added the following procedure to fix bug number 2899984. This procedure checks to see if
26 -- the rebuild serial number is provided on creating a new rebuild work order for serialized
27 --rebuild item. If so then it will update the genealogy of the parent asset or rebuild item.
28
29
30 /* It will no longer be possible to define work orders on rebuilds in
31 Pre-defined status (Current Status = 1). Hence, the following check
32 is unnecessry. Commenting the code below */
33
34 /* IB Component of Configuration should be updated as well */
35
36 if ((X_parent_wip_entity_id is not null) and (X_manual_rebuild_flag= 'N')) then
37
38 Begin
39
40 wip_eam_genealogy_pvt.update_eam_genealogy(
41 p_api_version => 1.0,
42 p_object_type => 2, -- serial number
43 p_serial_number => X_rebuild_serial_number,
44 p_inventory_item_id => X_rebuild_item_id,
45 p_organization_id => X_Organization_Id,
46 p_genealogy_type => 5, -- asset item relationship
47 p_end_date_active => sysdate,
48 x_return_status => x_returnStatus,
49 x_msg_count => l_msgCount,
50 x_msg_data => l_msgData);
51
52 if (x_maintenance_object_type = 3) then
53
54 select status_type
55 into l_status
56 from wip_discrete_jobs
57 where wip_entity_id = X_parent_wip_entity_id
58 and organization_id = X_organization_id;
59
60 if (l_status in (12, 14, 15, 4, 5, 7)) then
61
62 csi_eam_interface_grp.rebuildable_return(
63 p_wip_entity_id => X_parent_wip_entity_id,
64 p_organization_id => X_organization_id,
65 p_instance_id => x_maintenance_object_id,
66 x_return_status => x_returnStatus,
67 x_error_message => l_error_message
68 );
69 end if;
70
71 end if;
72
73 EXCEPTION
74
75 WHEN OTHERS THEN
76 FND_MESSAGE.SET_NAME('EAM','EAM_UPDATE_GENEALOGY_FAIL');
77 FND_MESSAGE.RAISE_ERROR;
78 APP_EXCEPTION.RAISE_EXCEPTION;
79
80 END;
81
82 end if; -- if clause to update the genealogy of the asset
83
84
85
86 END Update_Genealogy;
87
88 /*cboppana --Added this function to create a work order.This calls the Work Order api */
89 PROCEDURE Create_Workorder(X_Rowid IN OUT NOCOPY VARCHAR2,
90 X_wip_entity_id IN OUT NOCOPY NUMBER,
91 X_organization_id NUMBER,
92 X_last_update_date DATE,
93 X_last_updated_by NUMBER,
94 X_creation_date DATE,
95 X_created_by NUMBER,
96 X_last_update_login NUMBER,
97 X_description IN OUT NOCOPY VARCHAR2,
98 X_status_type IN OUT NOCOPY NUMBER,
99 X_user_defined_status_id IN OUT NOCOPY NUMBER,
100 X_pending_flag IN OUT NOCOPY VARCHAR2,
101 X_workflow_type IN OUT NOCOPY NUMBER ,
102 X_warranty_claim_status IN OUT NOCOPY NUMBER,
103
104 X_material_shortage_flag IN OUT NOCOPY NUMBER,
105 X_material_shortage_check_date IN OUT NOCOPY DATE,
106
107 X_primary_item_id NUMBER,
108 X_parent_wip_entity_id NUMBER,
109 X_asset_number VARCHAR2,
110 X_asset_group_id NUMBER,
111 X_pm_schedule_id NUMBER,
112 X_rebuild_item_id NUMBER,
113 X_rebuild_serial_number VARCHAR2,
114 X_manual_rebuild_flag IN OUT NOCOPY VARCHAR2,
115 X_shutdown_type IN OUT NOCOPY VARCHAR2,
116 X_tagout_required IN OUT NOCOPY VARCHAR2,
117 X_plan_maintenance IN OUT NOCOPY VARCHAR2,
118 X_estimation_status VARCHAR2,
119 X_requested_start_date IN OUT NOCOPY DATE,
120 X_requested_due_date IN OUT NOCOPY DATE,
121 X_notification_required IN OUT NOCOPY VARCHAR2,
122 X_work_order_type IN OUT NOCOPY VARCHAR2,
123 X_owning_department IN OUT NOCOPY NUMBER,
124 X_planner_maintenance IN OUT NOCOPY NUMBER,
125 X_activity_type IN OUT NOCOPY VARCHAR2,
126 X_activity_cause IN OUT NOCOPY VARCHAR2,
127 X_firm_planned_flag IN OUT NOCOPY NUMBER,
128 X_job_type NUMBER:= 3,
129 X_wip_supply_type NUMBER := 7,
130 X_class_code IN OUT NOCOPY VARCHAR2,
131 X_material_account IN OUT NOCOPY NUMBER,
132 X_material_overhead_account IN OUT NOCOPY NUMBER,
133 X_resource_account IN OUT NOCOPY NUMBER,
134 X_outside_processing_account IN OUT NOCOPY NUMBER,
135 X_material_variance_account IN OUT NOCOPY NUMBER,
136 X_resource_variance_account IN OUT NOCOPY NUMBER,
137 X_outside_proc_var_account IN OUT NOCOPY NUMBER,
138 X_std_cost_adjustment_account IN OUT NOCOPY NUMBER,
139 X_overhead_account IN OUT NOCOPY NUMBER,
140 X_overhead_variance_account IN OUT NOCOPY NUMBER,
141 X_scheduled_start_date IN OUT NOCOPY DATE,
142 X_date_released DATE,
143 X_scheduled_completion_date IN OUT NOCOPY DATE,
144 X_date_completed DATE,
145 X_date_closed DATE,
146 X_start_quantity NUMBER := 1,
147 X_overcompletion_toleran_type NUMBER := null,
148 X_overcompletion_toleran_value NUMBER := null,
149 X_quantity_completed NUMBER := 0,
150 X_quantity_scrapped NUMBER := 0,
151 X_net_quantity NUMBER := 1,
152 X_bom_reference_id NUMBER,
153 X_routing_reference_id NUMBER,
154 X_common_bom_sequence_id IN OUT NOCOPY NUMBER,
155 X_common_routing_sequence_id IN OUT NOCOPY NUMBER,
156 X_bom_revision IN OUT NOCOPY VARCHAR2,
157 X_routing_revision IN OUT NOCOPY VARCHAR2,
158 X_bom_revision_date IN OUT NOCOPY DATE,
159 X_routing_revision_date IN OUT NOCOPY DATE,
160 X_lot_number VARCHAR2,
161 X_alternate_bom_designator IN OUT NOCOPY VARCHAR2,
162 X_alternate_routing_designator IN OUT NOCOPY VARCHAR2,
163 X_completion_subinventory VARCHAR2,
164 X_completion_locator_id NUMBER,
165 X_demand_class VARCHAR2,
166 X_attribute_category IN OUT NOCOPY VARCHAR2,
167 X_attribute1 IN OUT NOCOPY VARCHAR2,
168 X_attribute2 IN OUT NOCOPY VARCHAR2,
169 X_attribute3 IN OUT NOCOPY VARCHAR2,
170 X_attribute4 IN OUT NOCOPY VARCHAR2,
171 X_attribute5 IN OUT NOCOPY VARCHAR2,
172 X_attribute6 IN OUT NOCOPY VARCHAR2,
173 X_attribute7 IN OUT NOCOPY VARCHAR2,
174 X_attribute8 IN OUT NOCOPY VARCHAR2,
175 X_attribute9 IN OUT NOCOPY VARCHAR2,
176 X_attribute10 IN OUT NOCOPY VARCHAR2,
177 X_attribute11 IN OUT NOCOPY VARCHAR2,
178 X_attribute12 IN OUT NOCOPY VARCHAR2,
179 X_attribute13 IN OUT NOCOPY VARCHAR2,
180 X_attribute14 IN OUT NOCOPY VARCHAR2,
181 X_attribute15 IN OUT NOCOPY VARCHAR2,
182 X_We_Rowid IN OUT NOCOPY VARCHAR2,
183 X_Entity_Type NUMBER,
184 X_Wip_Entity_Name VARCHAR2,
185 X_Schedule_Group_Id NUMBER default null,
186 X_Build_Sequence NUMBER default null,
187 X_Line_Id NUMBER default null,
188 X_Project_Id NUMBER,
189 X_Task_Id NUMBER,
190 X_end_item_unit_number VARCHAR2 default null,
191 X_po_creation_time NUMBER default 1,
192 X_priority IN OUT NOCOPY NUMBER ,
193 X_due_date DATE default null,
194 X_maintenance_object_id NUMBER,
195 X_maintenance_object_source NUMBER,
196 X_maintenance_object_type NUMBER,
197 X_material_issue_by_mo IN OUT NOCOPY VARCHAR2,
198 X_activity_source IN OUT NOCOPY VARCHAR2,
199 X_Parent_Wip_Name VARCHAR2 := null,
200 X_Relationship_Type NUMBER := null,
201 X_Relation_Status IN OUT NOCOPY VARCHAR2,
202 x_failure_code_required IN OUT NOCOPY VARCHAR2,
203 x_eam_failure_entry_record IN OUT NOCOPY eam_process_failure_entry_pub.eam_failure_entry_record_typ ,
204 x_eam_failure_codes_tbl IN OUT NOCOPY eam_process_failure_entry_pub.eam_failure_codes_tbl_typ
205 ) IS
206
207 -- Bug # 2251186
208 l_errbuf VARCHAR2(1000) ;
209 l_retcode NUMBER := 0;
210 l_return_status VARCHAR2(80) :='';
211 l_msg_data VARCHAR2(2000) := '';
212 l_msg_count NUMBER;
213
214
215 l_workorder_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
216 l_workorder_rec1 EAM_PROCESS_WO_PUB.eam_wo_rec_type;
217 l_eam_op_tbl EAM_PROCESS_WO_PUB.eam_op_tbl_type;
218 l_eam_op_tbl1 EAM_PROCESS_WO_PUB.eam_op_tbl_type;
219 l_eam_op_tbl2 EAM_PROCESS_WO_PUB.eam_op_tbl_type;
220 l_eam_op_network_tbl EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
221 l_eam_op_network_tbl1 EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
222 l_eam_op_network_tbl2 EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
223 l_eam_res_tbl EAM_PROCESS_WO_PUB.eam_res_tbl_type;
224 l_eam_res_tbl1 EAM_PROCESS_WO_PUB.eam_res_tbl_type;
225 l_eam_res_tbl2 EAM_PROCESS_WO_PUB.eam_res_tbl_type;
226 l_eam_res_inst_tbl EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
227 l_eam_res_inst_tbl1 EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
228 l_eam_res_inst_tbl2 EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
229 l_eam_sub_res_tbl EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
230 l_eam_sub_res_tbl1 EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
231 l_eam_sub_res_tbl2 EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
232 l_eam_res_usage_tbl EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
233 l_eam_res_usage_tbl1 EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
234 l_eam_res_usage_tbl2 EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
235 l_eam_mat_req_tbl EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
236 l_eam_mat_req_tbl1 EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
237 l_eam_mat_req_tbl2 EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
238 l_eam_wo_comp_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
239 l_eam_wo_quality_tbl EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
240 l_eam_meter_reading_tbl EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
241 l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
242 l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
243 l_eam_op_comp_tbl EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
244 l_eam_request_tbl EAM_PROCESS_WO_PUB.eam_request_tbl_type;
245
246 l_eam_direct_items_tbl EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
247 l_eam_direct_items_tbl_1 EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
248
249 l_eam_wo_relations_tbl EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
250 l_eam_wo_relations_tbl1 EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
251 l_eam_wo_relations_tbl2 EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
252 l_eam_wo_relations_rec1 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
253 l_eam_wo_relations_rec2 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
254 l_eam_wo_relations_rec3 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
255 l_eam_wo_relations_rec4 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
256 l_eam_wo_tbl EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
257 l_eam_wo_tbl1 EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
258 l_eam_wo_tbl2 EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
259
260 l_eam_wo_comp_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
261 l_eam_wo_quality_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
262 l_eam_meter_reading_tbl_1 EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
263 l_eam_wo_comp_rebuild_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
264 l_eam_wo_comp_mr_read_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
265 l_eam_op_comp_tbl_1 EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
266 l_eam_request_tbl_1 EAM_PROCESS_WO_PUB.eam_request_tbl_type;
267 l_eam_counter_prop_tbl EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
268 l_out_eam_counter_prop_tbl EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
269
270 l_eam_msg_tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
271
272 l_user_id NUMBER;
273 l_responsibility_id NUMBER;
274
275 l_message_text VARCHAR2(1000);
276 l_entity_index NUMBER;
277 l_entity_id VARCHAR2(100);
278 l_message_type VARCHAR2(100);
279 l_description VARCHAR2(240);
280 l_Expand_Parent VARCHAR2(100);
281 temp NUMBER;
282 l_output_dir VARCHAR2(512);
283 l_err_text VARCHAR2(2000);
284 l_eam_failure_entry_record eam_process_failure_entry_pub.eam_failure_entry_record_typ ;
285 l_eam_failure_codes_tbl eam_process_failure_entry_pub.eam_failure_codes_tbl_typ;
286
287
288 BEGIN
289
290 SAVEPOINT CREATE_WO;
291
292 l_eam_failure_entry_record := x_eam_failure_entry_record;
293 l_eam_failure_codes_tbl := x_eam_failure_codes_tbl;
294
295
296 /* get output directory path from database */
297 EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
298
299 l_user_id := fnd_global.user_id;
300 l_workorder_rec.user_id := l_user_id;
301 l_responsibility_id := fnd_global.resp_id;
302 l_workorder_rec.responsibility_id := l_responsibility_id;
303 l_workorder_rec.header_id := 1;
304 l_workorder_rec.batch_id := 1;
305 --l_workorder_rec.p_commit := FND_API.G_TRUE;
306
307 l_workorder_rec.return_status := null;
308 l_workorder_rec.wip_entity_name := X_Wip_Entity_Name;
309 l_workorder_rec.wip_entity_id := null;
310 l_workorder_rec.organization_id := X_organization_id;
311 l_workorder_rec.description := X_description;
312 l_workorder_rec.asset_number := X_asset_number;
313 l_workorder_rec.asset_group_id := X_asset_group_id;
314 l_workorder_rec.rebuild_serial_number := X_rebuild_serial_number;
315 l_workorder_rec.rebuild_item_id := X_rebuild_item_id;
316 l_workorder_rec.parent_wip_entity_id := X_parent_wip_entity_id;
317
318
319
320 l_workorder_rec.firm_planned_flag := X_firm_planned_flag;
321
322 l_workorder_rec.owning_department := X_owning_department;
323 l_workorder_rec.planner_type := X_planner_maintenance; --vardha
324 l_workorder_rec.scheduled_start_date := X_scheduled_start_date;
325 l_workorder_rec.scheduled_completion_date := X_scheduled_completion_date;
326 l_workorder_rec.status_type := X_status_type;
327
328 l_workorder_rec.user_defined_status_id := X_user_defined_status_id;
329 l_workorder_rec.pending_flag := X_pending_flag;
330 l_workorder_rec.workflow_type := X_workflow_type;
331 l_workorder_rec.warranty_claim_status := X_warranty_claim_status;
332 l_workorder_rec.material_shortage_flag := X_material_shortage_flag;
333 l_workorder_rec.material_shortage_check_date := X_material_shortage_check_date;
334
335 l_workorder_rec.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
336 l_workorder_rec.maintenance_object_id := X_maintenance_object_id;
337 l_workorder_rec.maintenance_object_type := X_maintenance_object_type;
338 l_workorder_rec.maintenance_object_source := X_maintenance_object_source;
339
340 l_workorder_rec.asset_activity_id := X_primary_item_id;
341 l_workorder_rec.activity_type := X_activity_type;
342 l_workorder_rec.activity_cause := X_activity_cause;
343 l_workorder_rec.activity_source := X_activity_source;
344 l_workorder_rec.shutdown_type:=X_shutdown_type;
345 l_workorder_rec.work_order_type := X_work_order_type;
346 l_workorder_rec.priority := X_priority;
347 l_workorder_rec.project_id := X_Project_Id;
348 l_workorder_rec.task_id := X_Task_Id;
349 l_workorder_rec.material_issue_by_mo := X_material_issue_by_mo;
350 l_workorder_rec.manual_rebuild_flag := X_manual_rebuild_flag;
351 l_workorder_rec.requested_start_date := X_requested_start_date;
352 l_workorder_rec.due_date := X_requested_due_date;
353 l_workorder_rec.notification_required := X_notification_required;
354 l_workorder_rec.tagout_required := X_tagout_required;
355 l_workorder_rec.plan_maintenance := X_plan_maintenance;
356 l_workorder_rec.pm_schedule_id := X_pm_schedule_id;
357 l_workorder_rec.wip_supply_type := X_wip_supply_type;
358 l_workorder_rec.class_code := X_class_code;
359 l_workorder_rec.material_account := X_material_account;
360 l_workorder_rec.material_overhead_account:= X_material_overhead_account;
361 l_workorder_rec.resource_account := X_resource_account;
362 l_workorder_rec.outside_processing_account := X_outside_processing_account;
363 l_workorder_rec.material_variance_account := X_material_variance_account;
364 l_workorder_rec.resource_variance_account := X_resource_variance_account;
365 l_workorder_rec.outside_proc_variance_account := X_outside_proc_var_account;
366 l_workorder_rec.std_cost_adjustment_account := X_std_cost_adjustment_account;
367 l_workorder_rec.overhead_account := X_overhead_account;
368 l_workorder_rec.overhead_variance_account := X_overhead_variance_account;
369 -- l_workorder_rec.common_routing_reference_id := X_routing_reference_id;
370 l_workorder_rec.common_bom_sequence_id := X_common_bom_sequence_id;
371 l_workorder_rec.common_routing_sequence_id := X_common_routing_sequence_id;
372 l_workorder_rec.bom_revision := X_bom_revision;
373 l_workorder_rec.routing_revision := X_routing_revision;
374 l_workorder_rec.bom_revision_date := X_bom_revision_date;
375 l_workorder_rec.routing_revision_date := X_routing_revision_date;
376 l_workorder_rec.alternate_bom_designator := X_alternate_bom_designator;
377 l_workorder_rec.alternate_routing_designator := X_alternate_routing_designator;
378 l_workorder_rec.Schedule_Group_Id := X_Schedule_Group_Id;
379 l_workorder_rec.attribute_category := X_attribute_category;
380 l_workorder_rec.attribute1 := X_attribute1;
381 l_workorder_rec.attribute2 := X_attribute2;
382 l_workorder_rec.attribute3 := X_attribute3;
383 l_workorder_rec.attribute4 := X_attribute4;
384 l_workorder_rec.attribute5 := X_attribute5;
385 l_workorder_rec.attribute6 := X_attribute6;
386 l_workorder_rec.attribute7 := X_attribute7;
387 l_workorder_rec.attribute8 := X_attribute8;
388 l_workorder_rec.attribute9 := X_attribute9;
389 l_workorder_rec.attribute10 := X_attribute10;
390 l_workorder_rec.attribute11 := X_attribute11;
391 l_workorder_rec.attribute12 := X_attribute12;
392 l_workorder_rec.attribute13 := X_attribute13;
393 l_workorder_rec.attribute14 := X_attribute14;
394 l_workorder_rec.attribute15 := X_attribute15;
395 l_workorder_rec.end_item_unit_number := X_end_item_unit_number;
396 l_workorder_rec.po_creation_time := X_po_creation_time;
397 l_workorder_rec.failure_code_required := x_failure_code_required;
398 IF l_eam_failure_entry_record.failure_date IS NULL THEN
399 l_eam_failure_entry_record.transaction_type := NULL;
400 ELSE
401 l_eam_failure_entry_record.transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_CREATE ;
402 END IF;
403 l_workorder_rec.eam_failure_entry_record := l_eam_failure_entry_record;
404 FOR i in 1..l_eam_failure_codes_tbl.count
405 LOOP
406 IF( NOT( l_eam_failure_codes_tbl(i).failure_code IS NULL
407 AND l_eam_failure_codes_tbl(i).cause_code IS NULL
408 AND l_eam_failure_codes_tbl(i).resolution_code IS NULL
409 AND l_eam_failure_codes_tbl(i).comments IS NULL
410 )) THEN
411 l_eam_failure_codes_tbl(i).transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_CREATE;
412 l_workorder_rec.eam_failure_codes_tbl(i) := l_eam_failure_codes_tbl(i);
413 ELSE
414 l_workorder_rec.eam_failure_codes_tbl(i) := l_eam_failure_codes_tbl(i);
415 l_workorder_rec.eam_failure_codes_tbl.delete(i);
416 END IF;
417 END LOOP;
418 l_eam_wo_tbl(1) := l_workorder_rec;
419
420 /*--Construct table for relationships if X_Parent_Wip_Id is not null*/
421 if(X_parent_wip_entity_id is not null) then
422 l_eam_wo_relations_rec1.batch_id := 1;
423 l_eam_wo_relations_rec1.parent_object_id := X_parent_wip_entity_id;
424 l_eam_wo_relations_rec1.parent_object_type_id := 1;
425 l_eam_wo_relations_rec1.parent_header_id := X_parent_wip_entity_id;
426 l_eam_wo_relations_rec1.child_object_type_id := 1;
427 l_eam_wo_relations_rec1.child_header_id :=1;
428 l_eam_wo_relations_rec1.child_object_id := 1;
429 l_eam_wo_relations_rec1.parent_relationship_type := 1;
430 l_eam_wo_relations_rec1.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
431 l_eam_wo_relations_tbl(1) := l_eam_wo_relations_rec1;
432
433 l_eam_wo_relations_rec2.batch_id := 1;
434 l_eam_wo_relations_rec2.parent_object_id :=X_parent_wip_entity_id;
435 l_eam_wo_relations_rec2.parent_object_type_id := 1;
436 l_eam_wo_relations_rec2.parent_header_id := X_parent_wip_entity_id;
437 l_eam_wo_relations_rec2.child_object_type_id := 1;
438 l_eam_wo_relations_rec2.child_header_id :=1;
439 l_eam_wo_relations_rec2.child_object_id := 1;
440 l_eam_wo_relations_rec2.parent_relationship_type := 4;
441 l_eam_wo_relations_rec2.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
442 l_eam_wo_relations_tbl(2) := l_eam_wo_relations_rec2;
443 end if;
444
445 begin
446 EAM_PROCESS_WO_PUB.Process_Master_Child_WO
447 ( p_bo_identifier => 'EAM'
448 , p_init_msg_list => TRUE
449 , p_api_version_number => 1.0
450 , p_eam_wo_tbl => l_eam_wo_tbl
451 , p_eam_wo_relations_tbl => l_eam_wo_relations_tbl
452 , p_eam_op_tbl => l_eam_op_tbl
453 , p_eam_op_network_tbl => l_eam_op_network_tbl
454 , p_eam_res_tbl => l_eam_res_tbl
455 , p_eam_res_inst_tbl => l_eam_res_inst_tbl
456 , p_eam_sub_res_tbl => l_eam_sub_res_tbl
457 , p_eam_res_usage_tbl => l_eam_res_usage_tbl
458 , p_eam_mat_req_tbl => l_eam_mat_req_tbl
459 , p_eam_direct_items_tbl => l_eam_direct_items_tbl
460
461 , p_eam_wo_comp_tbl => l_eam_wo_comp_tbl
462 , p_eam_wo_quality_tbl => l_eam_wo_quality_tbl
463 , p_eam_meter_reading_tbl => l_eam_meter_reading_tbl
464 , p_eam_counter_prop_tbl => l_eam_counter_prop_tbl
465 , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl
466 , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl
467 , p_eam_op_comp_tbl => l_eam_op_comp_tbl
468 , p_eam_request_tbl => l_eam_request_tbl
469
470 , x_eam_wo_tbl => l_eam_wo_tbl1
471 , x_eam_wo_relations_tbl => l_eam_wo_relations_tbl1
472 , x_eam_op_tbl => l_eam_op_tbl1
473 , x_eam_op_network_tbl => l_eam_op_network_tbl1
474 , x_eam_res_tbl => l_eam_res_tbl1
475 , x_eam_res_inst_tbl => l_eam_res_inst_tbl1
476 , x_eam_sub_res_tbl => l_eam_sub_res_tbl1
477 , x_eam_res_usage_tbl => l_eam_res_usage_tbl
478 , x_eam_mat_req_tbl => l_eam_mat_req_tbl1
479 , x_eam_direct_items_tbl => l_eam_direct_items_tbl_1
480
481 , x_eam_wo_comp_tbl => l_eam_wo_comp_tbl_1
482 , x_eam_wo_quality_tbl => l_eam_wo_quality_tbl_1
483 , x_eam_meter_reading_tbl => l_eam_meter_reading_tbl_1
484 , x_eam_counter_prop_tbl => l_out_eam_counter_prop_tbl
485 , x_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl_1
486 , x_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl_1
487 , x_eam_op_comp_tbl => l_eam_op_comp_tbl_1
488 , x_eam_request_tbl => l_eam_request_tbl_1
489
490 , x_return_status => l_return_status
491 , x_msg_count => l_msg_count
492 , p_debug => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
493 , p_debug_filename => 'createwo.log'
494 , p_output_dir => l_output_dir
495 , p_commit => FND_API.G_FALSE
496 , p_debug_file_mode => 'W'
497 );
498 exception
499 when others then
500 rollback to CREATE_WO;
501 l_msg_count := fnd_msg_pub.count_msg;
502 if(l_msg_count>0) then
503 get_all_mesg(mesg=>l_message_text);
504 end if;
505 fnd_message.set_name('EAM','EAM_ERROR_CREATE_WO');
506
507 fnd_message.set_token(token => 'MESG',
508 value => l_message_text,
509 translate => FALSE);
510 APP_EXCEPTION.RAISE_EXCEPTION;
511 end;
512
513 l_workorder_rec1 := l_eam_wo_tbl1(l_eam_wo_tbl1.first);
514
515
516 if((nvl(l_return_status,'S'))='S') then
517
518 X_wip_entity_id := l_workorder_rec1.wip_entity_id;
519
520 select rowid into X_We_Rowid from WIP_ENTITIES where wip_entity_id=X_wip_entity_id;
521 select rowid into X_Rowid from WIP_DISCRETE_JOBS where wip_entity_id=X_wip_entity_id;
522 COMMIT;
523
524 else
525 X_wip_entity_id := 0;
526 rollback to CREATE_WO;
527
528 l_msg_count := fnd_msg_pub.count_msg;
529 if(l_msg_count>0) then
530 get_all_mesg(mesg=>l_message_text);
531 end if;
532 fnd_message.set_name('EAM','EAM_ERROR_CREATE_WO');
533
534 fnd_message.set_token(token => 'MESG',
535 value => l_message_text,
536 translate => FALSE);
537 APP_EXCEPTION.RAISE_EXCEPTION;
538 end if;
539
540
541 if(X_Parent_Wip_Name is not null and X_parent_wip_entity_id is null) then
542 savepoint create_relation;
543
544 select wip_entity_id
545 into temp
546 from wip_entities
547 where wip_entity_name = X_Parent_Wip_Name AND organization_id=X_organization_id ;
548
549
550 l_eam_wo_relations_rec3.batch_id := 1;
551 l_eam_wo_relations_rec3.parent_object_id := temp;
552 l_eam_wo_relations_rec3.parent_object_type_id := 1;
553 l_eam_wo_relations_rec3.parent_header_id := temp;
554 l_eam_wo_relations_rec3.child_object_type_id := 1;
555 l_eam_wo_relations_rec3.child_header_id :=X_wip_entity_id;
556 l_eam_wo_relations_rec3.child_object_id := X_wip_entity_id;
557 l_eam_wo_relations_rec3.parent_relationship_type := 1;
558 l_eam_wo_relations_rec3.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
559
560
561 l_eam_wo_relations_tbl2(1) := l_eam_wo_relations_rec3;
562
563 EAM_PROCESS_WO_PUB.Process_Master_Child_WO
564 ( p_bo_identifier => 'EAM'
565 , p_init_msg_list => TRUE
566 , p_api_version_number => 1.0
567 , p_eam_wo_tbl => l_eam_wo_tbl2
568 , p_eam_wo_relations_tbl => l_eam_wo_relations_tbl2
569 , p_eam_op_tbl => l_eam_op_tbl
570 , p_eam_op_network_tbl => l_eam_op_network_tbl
571 , p_eam_res_tbl => l_eam_res_tbl
572 , p_eam_res_inst_tbl => l_eam_res_inst_tbl
573 , p_eam_sub_res_tbl => l_eam_sub_res_tbl
574 , p_eam_res_usage_tbl => l_eam_res_usage_tbl
575 , p_eam_mat_req_tbl => l_eam_mat_req_tbl
576 , p_eam_direct_items_tbl => l_eam_direct_items_tbl
577
578 , p_eam_wo_comp_tbl => l_eam_wo_comp_tbl
579 , p_eam_wo_quality_tbl => l_eam_wo_quality_tbl
580 , p_eam_meter_reading_tbl => l_eam_meter_reading_tbl
581 , p_eam_counter_prop_tbl => l_eam_counter_prop_tbl
582 , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl
583 , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl
584 , p_eam_op_comp_tbl => l_eam_op_comp_tbl
585 , p_eam_request_tbl => l_eam_request_tbl
586
587 , x_eam_wo_tbl => l_eam_wo_tbl1
588 , x_eam_wo_relations_tbl => l_eam_wo_relations_tbl1
589 , x_eam_op_tbl => l_eam_op_tbl1
590 , x_eam_op_network_tbl => l_eam_op_network_tbl1
591 , x_eam_res_tbl => l_eam_res_tbl1
592 , x_eam_res_inst_tbl => l_eam_res_inst_tbl1
593 , x_eam_sub_res_tbl => l_eam_sub_res_tbl1
594 , x_eam_res_usage_tbl => l_eam_res_usage_tbl
595 , x_eam_mat_req_tbl => l_eam_mat_req_tbl1
596 , x_eam_direct_items_tbl => l_eam_direct_items_tbl_1
597
598 , x_eam_wo_comp_tbl => l_eam_wo_comp_tbl_1
599 , x_eam_wo_quality_tbl => l_eam_wo_quality_tbl_1
600 , x_eam_meter_reading_tbl => l_eam_meter_reading_tbl_1
601 , x_eam_counter_prop_tbl => l_out_eam_counter_prop_tbl
602 , x_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl_1
603 , x_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl_1
604 , x_eam_op_comp_tbl => l_eam_op_comp_tbl_1
605 , x_eam_request_tbl => l_eam_request_tbl_1
606
607 , x_return_status => l_return_status
608 , x_msg_count => l_msg_count
609 , p_debug => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
610 , p_debug_filename => 'createrel.log'
611 , p_output_dir => l_output_dir
612 , p_commit => FND_API.G_FALSE
613 , p_debug_file_mode => 'W'
614 );
615 X_Relation_Status := l_return_status;
616 if((nvl(l_return_status,'S'))='S') then
617 commit;
618 else
619 rollback to create_relation;
620 end if;
621
622
623 end if;
624
625
626 /*copy the values from the wo api back to the out parameters */
627
628 X_description:=l_workorder_rec1.description ;
629 X_firm_planned_flag :=l_workorder_rec1.firm_planned_flag;
630 X_owning_department :=l_workorder_rec1.owning_department ;
631 X_planner_maintenance := l_workorder_rec1.planner_type ; --vardha
632 X_scheduled_start_date := l_workorder_rec1.scheduled_start_date ;
633 X_scheduled_completion_date := l_workorder_rec1.scheduled_completion_date;
634 X_status_type := l_workorder_rec1.status_type;
635 X_user_defined_status_id :=l_workorder_rec1.user_defined_status_id ;
636 X_pending_flag:= l_workorder_rec1.pending_flag ;
637 X_workflow_type := l_workorder_rec1.workflow_type ;
638 X_warranty_claim_status := l_workorder_rec1.warranty_claim_status ;
639 X_material_shortage_flag := l_workorder_rec1.material_shortage_flag ;
640 X_material_shortage_check_date := l_workorder_rec1.material_shortage_check_date ;
641
642 X_activity_type:= l_workorder_rec1.activity_type;
643 X_activity_cause:= l_workorder_rec1.activity_cause;
644 X_activity_source := l_workorder_rec1.activity_source;
645 X_shutdown_type := l_workorder_rec1.shutdown_type;
646 X_work_order_type := l_workorder_rec1.work_order_type;
647 X_priority := l_workorder_rec1.priority;
648 X_material_issue_by_mo := l_workorder_rec1.material_issue_by_mo;
649 X_manual_rebuild_flag := l_workorder_rec1.manual_rebuild_flag ;
650 X_requested_start_date := l_workorder_rec1.requested_start_date;
651 X_requested_due_date := l_workorder_rec1.due_date ;
652 X_notification_required := l_workorder_rec1.notification_required;
653 X_tagout_required := l_workorder_rec1.tagout_required ;
654 X_plan_maintenance := l_workorder_rec1.plan_maintenance ;
655 X_class_code := l_workorder_rec1.class_code ;
656 X_material_account := l_workorder_rec1.material_account;
657 X_material_overhead_account := l_workorder_rec1.material_overhead_account;
658 X_resource_account := l_workorder_rec1.resource_account ;
659 X_outside_processing_account := l_workorder_rec1.outside_processing_account;
660 X_material_variance_account := l_workorder_rec1.material_variance_account ;
661 X_resource_variance_account := l_workorder_rec1.resource_variance_account ;
662 X_outside_proc_var_account := l_workorder_rec1.outside_proc_variance_account ;
663 X_std_cost_adjustment_account := l_workorder_rec1.std_cost_adjustment_account ;
664 X_overhead_account := l_workorder_rec1.overhead_account ;
665 X_overhead_variance_account := l_workorder_rec1.overhead_variance_account ;
666 X_common_bom_sequence_id := l_workorder_rec1.common_bom_sequence_id ;
667 X_common_routing_sequence_id := l_workorder_rec1.common_routing_sequence_id ;
668 X_bom_revision := l_workorder_rec1.bom_revision ;
669 X_routing_revision:= l_workorder_rec1.routing_revision ;
670 X_bom_revision_date := l_workorder_rec1.bom_revision_date ;
671 X_routing_revision_date := l_workorder_rec1.routing_revision_date ;
672 X_alternate_bom_designator := l_workorder_rec1.alternate_bom_designator ;
673 X_alternate_routing_designator := l_workorder_rec1.alternate_routing_designator ;
674 X_attribute_category := l_workorder_rec1.attribute_category ;
675 X_attribute1 := l_workorder_rec1.attribute1;
676 X_attribute2 := l_workorder_rec1.attribute2;
677 X_attribute3 := l_workorder_rec1.attribute3 ;
678 X_attribute4 := l_workorder_rec1.attribute4;
679 X_attribute5 := l_workorder_rec1.attribute5 ;
680 X_attribute6 := l_workorder_rec1.attribute6 ;
681 X_attribute7 := l_workorder_rec1.attribute7 ;
682 X_attribute8 := l_workorder_rec1.attribute8;
683 X_attribute9 := l_workorder_rec1.attribute9 ;
684 X_attribute10 := l_workorder_rec1.attribute10;
685 X_attribute11 := l_workorder_rec1.attribute11;
686 X_attribute12 := l_workorder_rec1.attribute12;
687 X_attribute13 := l_workorder_rec1.attribute13;
688 X_attribute14 := l_workorder_rec1.attribute14 ;
689 X_attribute15 := l_workorder_rec1.attribute15 ;
690 x_failure_code_required := l_workorder_rec1.failure_code_required;
691 x_eam_failure_entry_record := l_workorder_rec1.eam_failure_entry_record;
692 x_eam_failure_codes_tbl := l_workorder_rec1.eam_failure_codes_tbl;
693
694
695
696 /*end of copy params */
697
698
699 -- asset genealogy is updated when a automatic work order is created for a a rebuild serial number
700 -- which is part of an asset hierarchy. bug number 2899984
701 if (X_rebuild_serial_number is not null) then
702
703 Update_Genealogy( X_wip_entity_id => X_wip_entity_id,
704 X_organization_id =>X_Organization_id,
705 X_parent_wip_entity_id =>X_parent_wip_entity_id,
706 X_rebuild_item_id => X_rebuild_item_id,
707 X_rebuild_serial_number =>X_rebuild_serial_number,
708 X_manual_rebuild_flag =>X_manual_rebuild_flag,
709 x_maintenance_object_type => x_maintenance_object_type ,
710 x_maintenance_object_id => x_maintenance_object_id);
711
712 end if;
713
714
715 -- Bug # 2251186
716
717 IF ( X_primary_item_id IS NOT NULL ) THEN
718
719 CSTPECEP.Estimate_WorkOrder_Grp(
720 p_api_version => 1.0,
721 p_init_msg_list => fnd_api.g_false,
722 p_commit => fnd_api.g_false,
723 p_validation_level => fnd_api.g_valid_level_full,
724 p_wip_entity_id => X_wip_entity_id,
725 p_organization_id => X_Organization_Id,
726 x_return_status => l_return_status,
727 x_msg_data => l_err_text,
728 x_msg_count => l_msg_count );
729
730 END IF;
731
732 END Create_Workorder;
733
734
735 /*cboppana ----Added this function to update a work order.This calls the Work Order api */
736
737 PROCEDURE Update_Workorder( X_Rowid VARCHAR2,
738 X_wip_entity_id NUMBER,
739 X_organization_id NUMBER,
740 X_last_update_date DATE,
741 X_last_updated_by NUMBER,
742 X_creation_date DATE,
743 X_created_by NUMBER,
744 X_last_update_login NUMBER,
745 X_description IN OUT NOCOPY VARCHAR2,
746 X_status_type IN OUT NOCOPY NUMBER,
747
748 X_user_defined_status_id IN OUT NOCOPY NUMBER,
749 X_pending_flag IN OUT NOCOPY VARCHAR2,
750 X_workflow_type IN OUT NOCOPY NUMBER ,
751 X_warranty_claim_status IN OUT NOCOPY NUMBER,
752
753 X_material_shortage_flag IN OUT NOCOPY NUMBER,
754 X_material_shortage_check_date IN OUT NOCOPY DATE,
755
756 X_primary_item_id NUMBER,
757 X_parent_wip_entity_id NUMBER,
758 X_asset_number VARCHAR2,
759 X_asset_group_id NUMBER,
760 X_pm_schedule_id NUMBER,
761 X_rebuild_item_id NUMBER,
762 X_rebuild_serial_number VARCHAR2,
763 X_manual_rebuild_flag IN OUT NOCOPY VARCHAR2,
764 X_shutdown_type IN OUT NOCOPY VARCHAR2,
765 X_tagout_required IN OUT NOCOPY VARCHAR2,
766 X_plan_maintenance IN OUT NOCOPY VARCHAR2,
767 X_estimation_status VARCHAR2,
768 X_requested_start_date IN OUT NOCOPY DATE,
769 X_requested_due_date IN OUT NOCOPY DATE,
770 X_notification_required IN OUT NOCOPY VARCHAR2,
771 X_work_order_type IN OUT NOCOPY VARCHAR2,
772 X_owning_department IN OUT NOCOPY NUMBER,
773 X_planner_maintenance IN OUT NOCOPY NUMBER,
774 X_activity_type IN OUT NOCOPY VARCHAR2,
775 X_activity_cause IN OUT NOCOPY VARCHAR2,
776 X_firm_planned_flag IN OUT NOCOPY NUMBER,
777 X_class_code IN OUT NOCOPY VARCHAR2,
778 X_material_account IN OUT NOCOPY NUMBER,
779 X_material_overhead_account IN OUT NOCOPY NUMBER,
780 X_resource_account IN OUT NOCOPY NUMBER,
781 X_outside_processing_account IN OUT NOCOPY NUMBER,
782 X_material_variance_account IN OUT NOCOPY NUMBER,
783 X_resource_variance_account IN OUT NOCOPY NUMBER,
784 X_outside_proc_var_account IN OUT NOCOPY NUMBER,
785 X_std_cost_adjustment_account IN OUT NOCOPY NUMBER,
786 X_overhead_account IN OUT NOCOPY NUMBER,
787 X_overhead_variance_account IN OUT NOCOPY NUMBER,
788 X_scheduled_start_date IN OUT NOCOPY DATE,
789 X_date_released DATE,
790 X_scheduled_completion_date IN OUT NOCOPY DATE,
791 X_date_completed DATE,
792 X_date_closed DATE,
793 X_bom_reference_id NUMBER,
794 X_routing_reference_id NUMBER,
795 X_common_bom_sequence_id IN OUT NOCOPY NUMBER,
796 X_common_routing_sequence_id IN OUT NOCOPY NUMBER,
797 X_bom_revision IN OUT NOCOPY VARCHAR2,
798 X_routing_revision IN OUT NOCOPY VARCHAR2,
799 X_bom_revision_date IN OUT NOCOPY DATE,
800 X_routing_revision_date IN OUT NOCOPY DATE,
801 X_lot_number VARCHAR2,
802 X_alternate_bom_designator IN OUT NOCOPY VARCHAR2,
803 X_alternate_routing_designator IN OUT NOCOPY VARCHAR2,
804 X_completion_subinventory VARCHAR2,
805 X_completion_locator_id NUMBER,
806 X_demand_class VARCHAR2,
807 X_attribute_category IN OUT NOCOPY VARCHAR2,
808 X_attribute1 IN OUT NOCOPY VARCHAR2,
809 X_attribute2 IN OUT NOCOPY VARCHAR2,
810 X_attribute3 IN OUT NOCOPY VARCHAR2,
811 X_attribute4 IN OUT NOCOPY VARCHAR2,
812 X_attribute5 IN OUT NOCOPY VARCHAR2,
813 X_attribute6 IN OUT NOCOPY VARCHAR2,
814 X_attribute7 IN OUT NOCOPY VARCHAR2,
815 X_attribute8 IN OUT NOCOPY VARCHAR2,
816 X_attribute9 IN OUT NOCOPY VARCHAR2,
817 X_attribute10 IN OUT NOCOPY VARCHAR2,
818 X_attribute11 IN OUT NOCOPY VARCHAR2,
819 X_attribute12 IN OUT NOCOPY VARCHAR2,
820 X_attribute13 IN OUT NOCOPY VARCHAR2,
821 X_attribute14 IN OUT NOCOPY VARCHAR2,
822 X_attribute15 IN OUT NOCOPY VARCHAR2,
823 X_We_Rowid IN OUT NOCOPY VARCHAR2,
824 X_Entity_Type NUMBER,
825 X_Wip_Entity_Name VARCHAR2,
826 X_Update_Wip_Entities VARCHAR2,
827 X_Schedule_Group_Id NUMBER,
828 X_Project_Id NUMBER,
829 X_Task_Id NUMBER,
830 X_priority IN OUT NOCOPY NUMBER,
831 X_maintenance_object_id NUMBER,
832 X_maintenance_object_source NUMBER,
833 X_maintenance_object_type NUMBER,
834 X_material_issue_by_mo IN OUT NOCOPY VARCHAR2,
835 X_activity_source IN OUT NOCOPY VARCHAR2,
836 X_old_rebuild_source NUMBER := NULL,
837 x_failure_code_required IN OUT NOCOPY VARCHAR2,
838 x_eam_failure_entry_record IN OUT NOCOPY eam_process_failure_entry_pub.eam_failure_entry_record_typ,
839 x_eam_failure_codes_tbl IN OUT NOCOPY eam_process_failure_entry_pub.eam_failure_codes_tbl_typ,
840 x_return_status IN OUT NOCOPY VARCHAR2 /*7003588*/
841 ) IS
842
843
844 dummy NUMBER;
845 l_return_status VARCHAR2(80) :='';
846 l_msg_data VARCHAR2(2000) := '';
847 l_msg_count NUMBER;
848
849
850 l_workorder_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
851 l_workorder_rec1 EAM_PROCESS_WO_PUB.eam_wo_rec_type;
852 l_eam_op_tbl EAM_PROCESS_WO_PUB.eam_op_tbl_type;
853 l_eam_op_tbl1 EAM_PROCESS_WO_PUB.eam_op_tbl_type;
854 l_eam_op_tbl2 EAM_PROCESS_WO_PUB.eam_op_tbl_type;
855 l_eam_op_network_tbl EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
856 l_eam_op_network_tbl1 EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
857 l_eam_op_network_tbl2 EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
858 l_eam_res_tbl EAM_PROCESS_WO_PUB.eam_res_tbl_type;
859 l_eam_res_tbl1 EAM_PROCESS_WO_PUB.eam_res_tbl_type;
860 l_eam_res_tbl2 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_res_inst_tbl1 EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
863 l_eam_res_inst_tbl2 EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
864 l_eam_sub_res_tbl EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
865 l_eam_sub_res_tbl1 EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
866 l_eam_sub_res_tbl2 EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
867 l_eam_res_usage_tbl EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
868 l_eam_res_usage_tbl1 EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
869 l_eam_res_usage_tbl2 EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
870 l_eam_mat_req_tbl EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
871 l_eam_mat_req_tbl1 EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
872 l_eam_mat_req_tbl2 EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
873 l_eam_wo_comp_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
874 l_eam_wo_quality_tbl EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
875 l_eam_meter_reading_tbl EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
876 l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
877 l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
878 l_eam_op_comp_tbl EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
879 l_eam_request_tbl EAM_PROCESS_WO_PUB.eam_request_tbl_type;
880
881 l_eam_direct_items_tbl EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
882 l_eam_direct_items_tbl_1 EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
883
884 l_eam_wo_relations_tbl EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
885 l_eam_wo_relations_tbl1 EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
886 l_eam_wo_relations_rec1 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
887 l_eam_wo_relations_rec2 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
888 l_eam_wo_relations_rec3 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
889 l_eam_wo_relations_rec4 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
890 l_eam_wo_relations_rec5 EAM_PROCESS_WO_PUB.eam_wo_relations_rec_type;
891 l_eam_wo_tbl EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
892 l_eam_wo_tbl1 EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
893 l_eam_wo_tbl2 EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
894 l_eam_wo_tbl3 EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
895 l_eam_wo_comp_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
896 l_eam_wo_quality_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
897 l_eam_meter_reading_tbl_1 EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
898 l_eam_wo_comp_rebuild_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
899 l_eam_wo_comp_mr_read_tbl_1 EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
900 l_eam_op_comp_tbl_1 EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
901 l_eam_request_tbl_1 EAM_PROCESS_WO_PUB.eam_request_tbl_type;
902 l_eam_counter_prop_tbl EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
903 l_out_eam_counter_prop_tbl EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
904
905
906 l_eam_msg_tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
907
908 l_user_id NUMBER;
909 l_responsibility_id NUMBER;
910
911 l_message_text VARCHAR2(1000);
912 l_entity_index NUMBER;
913 l_entity_id VARCHAR2(100);
914 l_message_type VARCHAR2(100);
915 l_description VARCHAR2(100);
916 l_Expand_Parent VARCHAR2(100);
917 constraining_rel NUMBER;
918 followup_rel NUMBER;
919 l_old_rebuild_source NUMBER := null;
920 record_count number :=1;
921 l_output_dir VARCHAR2(512);
922 l_prev_activity_id NUMBER := null;
923
924 /* Added for bug#4555609 */
925 l_prev_description VARCHAR2(240);
926 l_prev_priority NUMBER;
927 l_prev_work_order_type VARCHAR2(30);
928 l_prev_shutdown_type VARCHAR2(30);
929 l_prev_activity_type VARCHAR2(30);
930 l_prev_activity_cause VARCHAR2(30);
931 l_prev_activity_source VARCHAR2(30);
932 l_prev_attribute_category VARCHAR2(30);
933 l_prev_attribute1 VARCHAR2(150);
934 l_prev_attribute2 VARCHAR2(150);
935 l_prev_attribute3 VARCHAR2(150);
936 l_prev_attribute4 VARCHAR2(150);
937 l_prev_attribute5 VARCHAR2(150);
938 l_prev_attribute6 VARCHAR2(150);
939 l_prev_attribute7 VARCHAR2(150);
940 l_prev_attribute8 VARCHAR2(150);
941 l_prev_attribute9 VARCHAR2(150);
942 l_prev_attribute10 VARCHAR2(150);
943 l_prev_attribute11 VARCHAR2(150);
944 l_prev_attribute12 VARCHAR2(150);
945 l_prev_attribute13 VARCHAR2(150);
946 l_prev_attribute14 VARCHAR2(150);
947 l_prev_attribute15 VARCHAR2(150);
948 l_eam_failure_entry_record eam_process_failure_entry_pub.eam_failure_entry_record_typ;
949 l_eam_failure_codes_tbl eam_process_failure_entry_pub.eam_failure_codes_tbl_typ;
950
951 /* Added for bug#5346446 Start */
952 l_prev_project_id NUMBER;
953 l_prev_task_id NUMBER;
954 /* Added for bug#5346446 End */
955
956
957 BEGIN
958 l_eam_failure_entry_record := x_eam_failure_entry_record;
959 l_eam_failure_codes_tbl := x_eam_failure_codes_tbl;
960
961
962 /* get output directory path from database */
963 EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
964
965
966 l_user_id := fnd_global.user_id;
967 l_responsibility_id := fnd_global.resp_id;
968
969 l_workorder_rec.header_id := X_wip_Entity_Id;
970 l_workorder_rec.batch_id := 1;
971 --l_workorder_rec.p_commit := FND_API.G_TRUE;
972
973 l_workorder_rec.return_status := null;
974 l_workorder_rec.wip_entity_name := X_Wip_Entity_Name;
975 l_workorder_rec.wip_entity_id := X_wip_Entity_Id;
976 l_workorder_rec.organization_id := X_organization_id;
977 l_workorder_rec.asset_number := X_asset_number;
978 l_workorder_rec.asset_group_id := X_asset_group_id;
979 l_workorder_rec.rebuild_serial_number := X_rebuild_serial_number;
980 l_workorder_rec.rebuild_item_id := X_rebuild_item_id;
981 l_workorder_rec.parent_wip_entity_id := X_parent_wip_entity_id;
982 l_workorder_rec.firm_planned_flag := X_firm_planned_flag;
983 l_workorder_rec.owning_department := X_owning_department;
984 l_workorder_rec.planner_type := X_planner_maintenance; --vardha
985 l_workorder_rec.scheduled_start_date := X_scheduled_start_date;
986 l_workorder_rec.scheduled_completion_date := X_scheduled_completion_date;
987 l_workorder_rec.status_type := X_status_type;
988
989 l_workorder_rec.user_defined_status_id := X_user_defined_status_id;
990 l_workorder_rec.pending_flag := X_pending_flag;
991 l_workorder_rec.workflow_type := X_workflow_type;
992 l_workorder_rec.warranty_claim_status := X_warranty_claim_status;
993 l_workorder_rec.material_shortage_flag := X_material_shortage_flag;
994 l_workorder_rec.material_shortage_check_date := X_material_shortage_check_date;
995
996 l_workorder_rec.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_UPDATE;
997 l_workorder_rec.maintenance_object_id := X_maintenance_object_id;
998 l_workorder_rec.maintenance_object_type := X_maintenance_object_type;
999 l_workorder_rec.maintenance_object_source := X_maintenance_object_source;
1000
1001 -- # 3436679 code added to prevent the defaulting of the asset activity if user removes it while updating work order
1002
1003 BEGIN
1004 select primary_item_id
1005 ,description
1006 ,priority
1007 ,work_order_type
1008 ,shutdown_type
1009 ,activity_type
1010 ,activity_cause
1011 ,activity_source
1012 ,attribute_category
1013 ,attribute1
1014 ,attribute2
1015 ,attribute3
1016 ,attribute4
1017 ,attribute5
1018 ,attribute6
1019 ,attribute7
1020 ,attribute8
1021 ,attribute9
1022 ,attribute10
1023 ,attribute11
1024 ,attribute12
1025 ,attribute13
1026 ,attribute14
1027 ,attribute15
1028 ,project_id -- added for bug 5346446
1029 ,task_id
1030 into l_prev_activity_id
1031 ,l_prev_description
1032 ,l_prev_priority
1033 ,l_prev_work_order_type
1034 ,l_prev_shutdown_type
1035 ,l_prev_activity_type
1036 ,l_prev_activity_cause
1037 ,l_prev_activity_source
1038 ,l_prev_attribute_category
1039 ,l_prev_attribute1
1040 ,l_prev_attribute2
1041 ,l_prev_attribute3
1042 ,l_prev_attribute4
1043 ,l_prev_attribute5
1044 ,l_prev_attribute6
1045 ,l_prev_attribute7
1046 ,l_prev_attribute8
1047 ,l_prev_attribute9
1048 ,l_prev_attribute10
1049 ,l_prev_attribute11
1050 ,l_prev_attribute12
1051 ,l_prev_attribute13
1052 ,l_prev_attribute14
1053 ,l_prev_attribute15
1054 ,l_prev_project_id --added for bug 5346446
1055 ,l_prev_task_id
1056 from wip_discrete_jobs
1057 where wip_entity_id =X_wip_Entity_Id
1058 and organization_id = X_organization_id;
1059
1060 EXCEPTION
1061 WHEN NO_DATA_FOUND THEN
1062 null;
1063
1064 END;
1065
1066 IF l_prev_activity_id is not null and X_primary_item_id is null THEN
1067 l_workorder_rec.asset_activity_id := FND_API.G_MISS_NUM;
1068 ELSE
1069 l_workorder_rec.asset_activity_id := X_primary_item_id;
1070 END IF;
1071
1072 IF l_prev_description is not null and X_description is null THEN
1073 l_workorder_rec.description := FND_API.G_MISS_CHAR;
1074 ELSE
1075 l_workorder_rec.description := X_description;
1076 END IF;
1077
1078 IF l_prev_activity_type is not null and X_activity_type is null THEN
1079 l_workorder_rec.activity_type := FND_API.G_MISS_CHAR;
1080 ELSE
1081 l_workorder_rec.activity_type := X_activity_type;
1082 END IF;
1083
1084 IF l_prev_activity_cause is not null and X_activity_cause is null THEN
1085 l_workorder_rec.activity_cause := FND_API.G_MISS_CHAR;
1086 ELSE
1087 l_workorder_rec.activity_cause := X_activity_cause;
1088 END IF;
1089
1090 IF l_prev_activity_source is not null and X_activity_source is null THEN
1091 l_workorder_rec.activity_source := FND_API.G_MISS_CHAR;
1092 ELSE
1093 l_workorder_rec.activity_source := X_activity_source;
1094 END IF;
1095
1096 IF l_prev_shutdown_type is not null and X_shutdown_type is null THEN
1097 l_workorder_rec.shutdown_type := FND_API.G_MISS_CHAR;
1098 ELSE
1099 l_workorder_rec.shutdown_type := X_shutdown_type;
1100 END IF;
1101
1102 IF l_prev_priority is not null and X_priority is null THEN
1103 l_workorder_rec.priority := FND_API.G_MISS_NUM;
1104 ELSE
1105 l_workorder_rec.priority := X_priority;
1106 END IF;
1107
1108 IF l_prev_work_order_type is not null and X_work_order_type is null THEN
1109 l_workorder_rec.work_order_type := FND_API.G_MISS_CHAR;
1110 ELSE
1111 l_workorder_rec.work_order_type := X_work_order_type;
1112 END IF;
1113
1114 /* Added for bug#5346446 Start */
1115 IF l_prev_project_id is not null AND X_Project_Id is null THEN
1116 l_workorder_rec.project_id := FND_API.G_MISS_NUM;
1117 ELSE
1118 l_workorder_rec.project_id := X_Project_Id;
1119 END IF;
1120
1121 IF l_prev_task_id is not null AND X_Task_Id is null THEN
1122 l_workorder_rec.task_id := FND_API.G_MISS_NUM;
1123 ELSE
1124 l_workorder_rec.task_id := X_Task_Id;
1125 END IF;
1126
1127 /* Added for bug#5346446 End */
1128
1129 /* Commented for bug#5346446 Start
1130 l_workorder_rec.project_id := X_Project_Id;
1131 l_workorder_rec.task_id := X_Task_Id;
1132 Commented for bug#5346446 End */
1133
1134 l_workorder_rec.material_issue_by_mo := X_material_issue_by_mo;
1135
1136 -- Set user id and responsibility id so that we can set apps context
1137 -- before calling any concurrent program
1138 l_workorder_rec.user_id := l_user_id;
1139 l_workorder_rec.responsibility_id := l_responsibility_id;
1140
1141 l_workorder_rec.manual_rebuild_flag := X_manual_rebuild_flag;
1142 l_workorder_rec.requested_start_date := X_requested_start_date;
1143 l_workorder_rec.due_date := X_requested_due_date;
1144 l_workorder_rec.notification_required := X_notification_required;
1145 l_workorder_rec.tagout_required := X_tagout_required;
1146 l_workorder_rec.plan_maintenance := X_plan_maintenance;
1147 l_workorder_rec.pm_schedule_id := X_pm_schedule_id;
1148
1149 l_workorder_rec.class_code := X_class_code;
1150 l_workorder_rec.material_account := X_material_account;
1151 l_workorder_rec.material_overhead_account:= X_material_overhead_account;
1152 l_workorder_rec.resource_account := X_resource_account;
1153 l_workorder_rec.outside_processing_account := X_outside_processing_account;
1154 l_workorder_rec.material_variance_account := X_material_variance_account;
1155 l_workorder_rec.resource_variance_account := X_resource_variance_account;
1156 l_workorder_rec.outside_proc_variance_account := X_outside_proc_var_account;
1157 l_workorder_rec.std_cost_adjustment_account := X_std_cost_adjustment_account;
1158 l_workorder_rec.overhead_account := X_overhead_account;
1159 l_workorder_rec.overhead_variance_account := X_overhead_variance_account;
1160 l_workorder_rec.common_bom_sequence_id := X_common_bom_sequence_id;
1161 l_workorder_rec.common_routing_sequence_id := X_common_routing_sequence_id;
1162 l_workorder_rec.bom_revision := X_bom_revision;
1163 l_workorder_rec.routing_revision := X_routing_revision;
1164 l_workorder_rec.bom_revision_date := X_bom_revision_date;
1165 l_workorder_rec.routing_revision_date := X_routing_revision_date;
1166 l_workorder_rec.alternate_bom_designator := X_alternate_bom_designator;
1167 l_workorder_rec.alternate_routing_designator := X_alternate_routing_designator;
1168 l_workorder_rec.Schedule_Group_Id := X_Schedule_Group_Id;
1169
1170 IF l_prev_attribute_category is not null and X_attribute_category is null THEN
1171 l_workorder_rec.attribute_category := FND_API.G_MISS_CHAR;
1172 ELSE
1173 l_workorder_rec.attribute_category := X_attribute_category;
1174 END IF;
1175
1176 IF l_prev_attribute1 is not null and X_attribute1 is null THEN
1177 l_workorder_rec.attribute1 := FND_API.G_MISS_CHAR;
1178 ELSE
1179 l_workorder_rec.attribute1 := X_attribute1;
1180 END IF;
1181
1182 IF l_prev_attribute2 is not null and X_attribute2 is null THEN
1183 l_workorder_rec.attribute2 := FND_API.G_MISS_CHAR;
1184 ELSE
1185 l_workorder_rec.attribute2 := X_attribute2;
1186 END IF;
1187
1188 IF l_prev_attribute3 is not null and X_attribute3 is null THEN
1189 l_workorder_rec.attribute3 := FND_API.G_MISS_CHAR;
1190 ELSE
1191 l_workorder_rec.attribute3 := X_attribute3;
1192 END IF;
1193
1194 IF l_prev_attribute4 is not null and X_attribute4 is null THEN
1195 l_workorder_rec.attribute4 := FND_API.G_MISS_CHAR;
1196 ELSE
1197 l_workorder_rec.attribute4 := X_attribute4;
1198 END IF;
1199
1200 IF l_prev_attribute5 is not null and X_attribute5 is null THEN
1201 l_workorder_rec.attribute5 := FND_API.G_MISS_CHAR;
1202 ELSE
1203 l_workorder_rec.attribute5 := X_attribute5;
1204 END IF;
1205
1206 IF l_prev_attribute6 is not null and X_attribute6 is null THEN
1207 l_workorder_rec.attribute6 := FND_API.G_MISS_CHAR;
1208 ELSE
1209 l_workorder_rec.attribute6 := X_attribute6;
1210 END IF;
1211
1212 IF l_prev_attribute7 is not null and X_attribute7 is null THEN
1213 l_workorder_rec.attribute7 := FND_API.G_MISS_CHAR;
1214 ELSE
1215 l_workorder_rec.attribute7 := X_attribute7;
1216 END IF;
1217
1218 IF l_prev_attribute8 is not null and X_attribute8 is null THEN
1219 l_workorder_rec.attribute8 := FND_API.G_MISS_CHAR;
1220 ELSE
1221 l_workorder_rec.attribute8 := X_attribute8;
1222 END IF;
1223
1224 IF l_prev_attribute9 is not null and X_attribute9 is null THEN
1225 l_workorder_rec.attribute9 := FND_API.G_MISS_CHAR;
1226 ELSE
1227 l_workorder_rec.attribute9 := X_attribute9;
1228 END IF;
1229
1230 IF l_prev_attribute10 is not null and X_attribute10 is null THEN
1231 l_workorder_rec.attribute10 := FND_API.G_MISS_CHAR;
1232 ELSE
1233 l_workorder_rec.attribute10 := X_attribute10;
1234 END IF;
1235
1236 IF l_prev_attribute11 is not null and X_attribute11 is null THEN
1237 l_workorder_rec.attribute11 := FND_API.G_MISS_CHAR;
1238 ELSE
1239 l_workorder_rec.attribute11 := X_attribute11;
1240 END IF;
1241
1242 IF l_prev_attribute12 is not null and X_attribute12 is null THEN
1243 l_workorder_rec.attribute12 := FND_API.G_MISS_CHAR;
1244 ELSE
1245 l_workorder_rec.attribute12 := X_attribute12;
1246 END IF;
1247
1248 IF l_prev_attribute13 is not null and X_attribute13 is null THEN
1249 l_workorder_rec.attribute13 := FND_API.G_MISS_CHAR;
1250 ELSE
1251 l_workorder_rec.attribute13 := X_attribute13;
1252 END IF;
1253
1254 IF l_prev_attribute14 is not null and X_attribute14 is null THEN
1255 l_workorder_rec.attribute14 := FND_API.G_MISS_CHAR;
1256 ELSE
1257 l_workorder_rec.attribute14 := X_attribute14;
1258 END IF;
1259
1260 IF l_prev_attribute15 is not null and X_attribute15 is null THEN
1261 l_workorder_rec.attribute15 := FND_API.G_MISS_CHAR;
1262 ELSE
1263 l_workorder_rec.attribute15 := X_attribute15;
1264 END IF;
1265
1266 IF x_failure_code_required is NULL THEN
1267 l_workorder_rec.failure_code_required := FND_API.G_MISS_CHAR;
1268 ELSE
1269 l_workorder_rec.failure_code_required := x_failure_code_required;
1270 END IF;
1271 IF (l_eam_failure_entry_record.failure_date IS NULL) THEN
1272 l_eam_failure_entry_record.failure_date := FND_API.G_MISS_DATE;
1273 END IF;
1274 FOR i IN 1..l_eam_failure_codes_tbl.count
1275 LOOP
1276 IF l_eam_failure_codes_tbl(i).failure_code IS NULL THEN
1277 l_eam_failure_codes_tbl(i).failure_code := FND_API.G_MISS_CHAR;
1278 END IF;
1279 IF l_eam_failure_codes_tbl(i).cause_code IS NULL THEN
1280 l_eam_failure_codes_tbl(i).cause_code := FND_API.G_MISS_CHAR;
1281 END IF;
1282 IF l_eam_failure_codes_tbl(i).resolution_code IS NULL THEN
1283 l_eam_failure_codes_tbl(i).resolution_code := FND_API.G_MISS_CHAR;
1284 END IF;
1285 IF l_eam_failure_codes_tbl(i).comments IS NULL THEN
1286 l_eam_failure_codes_tbl(i).comments := FND_API.G_MISS_CHAR;
1287 END IF;
1288 END LOOP;
1289
1290 IF l_eam_failure_entry_record.failure_id IS NOT NULL THEN
1291 l_eam_failure_entry_record.transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_UPDATE;
1292 ELSIF l_eam_failure_entry_record.failure_date = FND_API.G_MISS_DATE THEN
1293 l_eam_failure_entry_record.transaction_type :=null;
1294 ELSE
1295 l_eam_failure_entry_record.transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_CREATE ;
1296 END IF;
1297
1298 FOR i in 1..l_eam_failure_codes_tbl.count
1299 LOOP
1300 IF l_eam_failure_codes_tbl(i).failure_entry_id IS NOT NULL THEN
1301 l_eam_failure_codes_tbl(i).transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_UPDATE;
1302 l_workorder_rec.eam_failure_codes_tbl(i) := l_eam_failure_codes_tbl(i);
1303 ELSE
1304 IF (not( (l_eam_failure_codes_tbl(i).failure_code = FND_API.G_MISS_CHAR)
1305 and (l_eam_failure_codes_tbl(i).cause_code = FND_API.G_MISS_CHAR)
1306 and (l_eam_failure_codes_tbl(i).resolution_code = FND_API.G_MISS_CHAR)
1307 and (l_eam_failure_codes_tbl(i).comments = FND_API.G_MISS_CHAR)
1308 )) THEN
1309 l_eam_failure_codes_tbl(i).transaction_type := EAM_Process_Failure_Entry_PUB.G_FE_CREATE;
1310 if l_eam_failure_codes_tbl(i).failure_code = FND_API.G_MISS_CHAR THEN
1311 l_eam_failure_codes_tbl(i).failure_code := NULL;
1312 END IF;
1313 IF l_eam_failure_codes_tbl(i).cause_code = FND_API.G_MISS_CHAR THEN
1314 l_eam_failure_codes_tbl(i).cause_code := NULL;
1315 END IF;
1316 IF l_eam_failure_codes_tbl(i).resolution_code = FND_API.G_MISS_CHAR THEN
1317 l_eam_failure_codes_tbl(i).resolution_code := NULL;
1318 END IF;
1319 IF l_eam_failure_codes_tbl(i).comments = FND_API.G_MISS_CHAR THEN
1320 l_eam_failure_codes_tbl(i).comments := NULL;
1321 END IF;
1322 l_workorder_rec.eam_failure_codes_tbl(i) := l_eam_failure_codes_tbl(i);
1323 ELSE
1324 l_workorder_rec.eam_failure_codes_tbl(i) := l_eam_failure_codes_tbl(i);
1325 l_workorder_rec.eam_failure_codes_tbl.delete(i);
1326 END IF;
1327 END IF;
1328 END LOOP;
1329 l_workorder_rec.eam_failure_entry_record := l_eam_failure_entry_record;
1330
1331 SAVEPOINT UPDATE_WO;
1332
1333 select parent_wip_entity_id
1334 into l_old_rebuild_source
1335 from wip_discrete_jobs
1336 where wip_entity_id=X_wip_Entity_Id;
1337
1338 l_eam_wo_tbl(1) := l_workorder_rec;
1339 l_eam_wo_tbl1(1) := l_workorder_rec1;
1340
1341
1342
1343
1344 /*Delink child from the old rebuild source and attach to the new rebuild source */
1345 if(X_manual_rebuild_flag='Y') then
1346
1347
1348 if(((l_old_rebuild_source is not null) and (X_parent_wip_entity_id is null))
1349 or ((l_old_rebuild_source is null ) and (X_parent_wip_entity_id is not null))
1350 or (l_old_rebuild_source <> X_parent_wip_entity_id)
1351 )then
1352
1353
1354 if(l_old_rebuild_source is not null) then
1355
1356
1357 ----If constraining relationship exists with rebuild source delete it
1358 select count(*)
1359 into constraining_rel
1360 from eam_wo_relationships
1361 where parent_object_id=l_old_rebuild_source
1362 and child_object_id=X_wip_Entity_Id
1363 and parent_relationship_type=1;
1364
1365 if(constraining_rel=1) then
1366 l_eam_wo_relations_rec1.batch_id := 1;
1367 l_eam_wo_relations_rec1.parent_object_id := l_old_rebuild_source;
1368 l_eam_wo_relations_rec1.parent_object_type_id := 1;
1369 l_eam_wo_relations_rec1.parent_header_id := l_old_rebuild_source;
1370 l_eam_wo_relations_rec1.child_object_type_id := 1;
1371 l_eam_wo_relations_rec1.child_header_id :=X_wip_Entity_Id;
1372 l_eam_wo_relations_rec1.child_object_id :=X_wip_Entity_Id;
1373 l_eam_wo_relations_rec1.parent_relationship_type := 1;
1374 l_eam_wo_relations_rec1.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_DELETE;
1375
1376 l_eam_wo_relations_tbl(record_count) := l_eam_wo_relations_rec1;
1377 record_count := record_count +1;
1378
1379 end if;
1380
1381
1382 ----If followup relationship exists with rebuild source delete it
1383
1384 select count(*)
1385 into followup_rel
1386 from eam_wo_relationships
1387 where parent_object_id=l_old_rebuild_source
1388 and child_object_id=X_wip_Entity_Id
1389 and parent_relationship_type=4;
1390
1391 if(followup_rel=1) then
1392 l_eam_wo_relations_rec2.batch_id := 1;
1393 l_eam_wo_relations_rec2.parent_object_id := l_old_rebuild_source;
1394 l_eam_wo_relations_rec2.parent_object_type_id := 1;
1395 l_eam_wo_relations_rec2.parent_header_id := l_old_rebuild_source;
1396 l_eam_wo_relations_rec2.child_object_type_id := 1;
1397 l_eam_wo_relations_rec2.child_header_id :=X_wip_Entity_Id;
1398 l_eam_wo_relations_rec2.child_object_id :=X_wip_Entity_Id;
1399 l_eam_wo_relations_rec2.parent_relationship_type := 4;
1400 l_eam_wo_relations_rec2.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_DELETE;
1401
1402 l_eam_wo_relations_tbl(record_count) := l_eam_wo_relations_rec2;
1403 record_count := record_count +1;
1404
1405
1406
1407 end if;
1408
1409 end if;
1410
1411
1412
1413 if(X_parent_wip_entity_id is not null) then
1414
1415 l_eam_wo_relations_rec3.batch_id := 1;
1416 l_eam_wo_relations_rec3.parent_object_id := X_parent_wip_entity_id;
1417 l_eam_wo_relations_rec3.parent_object_type_id := 1;
1418 l_eam_wo_relations_rec3.parent_header_id := X_parent_wip_entity_id;
1419 l_eam_wo_relations_rec3.child_object_type_id := 1;
1420 l_eam_wo_relations_rec3.child_header_id :=X_wip_Entity_Id;
1421 l_eam_wo_relations_rec3.child_object_id :=X_wip_Entity_Id;
1422 l_eam_wo_relations_rec3.parent_relationship_type := 1;
1423 l_eam_wo_relations_rec3.adjust_parent := FND_API.G_FALSE;
1424 l_eam_wo_relations_rec3.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
1425
1426 l_eam_wo_relations_tbl(record_count) := l_eam_wo_relations_rec3;
1427 record_count := record_count +1;
1428
1429
1430 l_eam_wo_relations_rec4.batch_id := 1;
1431 l_eam_wo_relations_rec4.parent_object_id := X_parent_wip_entity_id;
1432 l_eam_wo_relations_rec4.parent_object_type_id := 1;
1433 l_eam_wo_relations_rec4.parent_header_id := X_parent_wip_entity_id;
1434 l_eam_wo_relations_rec4.child_object_type_id := 1;
1435 l_eam_wo_relations_rec4.child_header_id :=X_wip_Entity_Id;
1436 l_eam_wo_relations_rec4.child_object_id :=X_wip_Entity_Id;
1437 l_eam_wo_relations_rec4.parent_relationship_type := 4;
1438 l_eam_wo_relations_rec4.adjust_parent := FND_API.G_FALSE;
1439 l_eam_wo_relations_rec4.transaction_type := EAM_PROCESS_WO_PUB.G_OPR_CREATE;
1440
1441 l_eam_wo_relations_tbl(record_count) := l_eam_wo_relations_rec4;
1442 record_count := record_count +1;
1443
1444
1445 end if;
1446 end if;
1447 end if;
1448
1449 begin
1450
1451 EAM_PROCESS_WO_PUB.Process_Master_Child_WO
1452 ( p_bo_identifier => 'EAM'
1453 , p_init_msg_list => TRUE
1454 , p_api_version_number => 1.0
1455 , p_eam_wo_tbl => l_eam_wo_tbl
1456 , p_eam_wo_relations_tbl => l_eam_wo_relations_tbl
1457 , p_eam_op_tbl => l_eam_op_tbl
1458 , p_eam_op_network_tbl => l_eam_op_network_tbl
1459 , p_eam_res_tbl => l_eam_res_tbl
1460 , p_eam_res_inst_tbl => l_eam_res_inst_tbl
1461 , p_eam_sub_res_tbl => l_eam_sub_res_tbl
1462 , p_eam_res_usage_tbl => l_eam_res_usage_tbl
1463 , p_eam_mat_req_tbl => l_eam_mat_req_tbl
1464 , p_eam_direct_items_tbl => l_eam_direct_items_tbl
1465
1466 , p_eam_wo_comp_tbl => l_eam_wo_comp_tbl
1467 , p_eam_wo_quality_tbl => l_eam_wo_quality_tbl
1468 , p_eam_meter_reading_tbl => l_eam_meter_reading_tbl
1469 , p_eam_counter_prop_tbl => l_eam_counter_prop_tbl
1470 , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl
1471 , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl
1472 , p_eam_op_comp_tbl => l_eam_op_comp_tbl
1473 , p_eam_request_tbl => l_eam_request_tbl
1474
1475 , x_eam_wo_tbl => l_eam_wo_tbl1
1476 , x_eam_wo_relations_tbl => l_eam_wo_relations_tbl1
1477 , x_eam_op_tbl => l_eam_op_tbl1
1478 , x_eam_op_network_tbl => l_eam_op_network_tbl1
1479 , x_eam_res_tbl => l_eam_res_tbl1
1480 , x_eam_res_inst_tbl => l_eam_res_inst_tbl1
1481 , x_eam_sub_res_tbl => l_eam_sub_res_tbl1
1482 , x_eam_res_usage_tbl => l_eam_res_usage_tbl
1483 , x_eam_mat_req_tbl => l_eam_mat_req_tbl1
1484 , x_eam_direct_items_tbl => l_eam_direct_items_tbl_1
1485
1486 , x_eam_wo_comp_tbl => l_eam_wo_comp_tbl_1
1487 , x_eam_wo_quality_tbl => l_eam_wo_quality_tbl_1
1488 , x_eam_meter_reading_tbl => l_eam_meter_reading_tbl_1
1489 , x_eam_counter_prop_tbl => l_out_eam_counter_prop_tbl
1490 , x_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl_1
1491 , x_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl_1
1492 , x_eam_op_comp_tbl => l_eam_op_comp_tbl_1
1493 , x_eam_request_tbl => l_eam_request_tbl_1
1494
1495 , x_return_status => l_return_status
1496 , x_msg_count => l_msg_count
1497 , p_debug => NVL(fnd_profile.value('EAM_DEBUG'), 'N')
1498 , p_debug_filename => 'updatewo.log'
1499 , p_output_dir => l_output_dir
1500 , p_commit => 'N'
1501 , p_debug_file_mode => 'w'
1502 );
1503 x_return_status := l_return_status; /*7003588*/
1504 exception
1505 when others then
1506 ROLLBACK TO UPDATE_WO;
1507 l_msg_count := FND_MSG_PUB.count_msg;
1508 l_message_text :=' ';
1509 if(l_msg_count>0) then
1510 get_all_mesg(mesg=>l_message_text);
1511 end if;
1512 fnd_message.set_name('EAM','EAM_ERROR_UPDATE_WO');
1513
1514 fnd_message.set_token(token => 'MESG',
1515 value => l_message_text,
1516 translate => FALSE);
1517
1518
1519 APP_EXCEPTION.RAISE_EXCEPTION;
1520 end;
1521
1522
1523 l_workorder_rec1 := l_eam_wo_tbl1(l_eam_wo_tbl1.first);
1524
1525
1526
1527 if((nvl(l_return_status,'S'))='S') then
1528
1529 select rowid into X_We_Rowid from WIP_ENTITIES where wip_entity_id=X_wip_entity_id;
1530
1531 else
1532 ROLLBACK TO UPDATE_WO;
1533 l_msg_count := FND_MSG_PUB.count_msg;
1534 l_message_text :=' ';
1535 if(l_msg_count>0) then
1536 get_all_mesg(mesg=>l_message_text);
1537 end if;
1538 fnd_message.set_name('EAM','EAM_ERROR_UPDATE_WO');
1539
1540 fnd_message.set_token(token => 'MESG',
1541 value => l_message_text,
1542 translate => FALSE);
1543
1544
1545 APP_EXCEPTION.RAISE_EXCEPTION;
1546
1547 end if;
1548
1549
1550 COMMIT;
1551
1552
1553 /*copy the values from the wo api back to the out parameters */
1554
1555
1556 X_description:=l_workorder_rec1.description ;
1557
1558 X_firm_planned_flag :=l_workorder_rec1.firm_planned_flag;
1559
1560 X_owning_department :=l_workorder_rec1.owning_department ;
1561 X_planner_maintenance := l_workorder_rec1.planner_type ; --vardha
1562 X_scheduled_start_date := l_workorder_rec1.scheduled_start_date ;
1563 X_scheduled_completion_date := l_workorder_rec1.scheduled_completion_date;
1564 X_status_type := l_workorder_rec1.status_type;
1565
1566 X_user_defined_status_id := l_workorder_rec1.user_defined_status_id;
1567 X_pending_flag := l_workorder_rec1.pending_flag;
1568 X_workflow_type := l_workorder_rec1.workflow_type;
1569 X_warranty_claim_status := l_workorder_rec1.warranty_claim_status;
1570 X_material_shortage_flag := l_workorder_rec1.material_shortage_flag;
1571 X_material_shortage_check_date := l_workorder_rec1.material_shortage_check_date;
1572
1573
1574 X_activity_type:= l_workorder_rec1.activity_type;
1575 X_activity_cause:= l_workorder_rec1.activity_cause;
1576 X_activity_source := l_workorder_rec1.activity_source;
1577 X_shutdown_type := l_workorder_rec1.shutdown_type;
1578 X_work_order_type := l_workorder_rec1.work_order_type;
1579 X_priority := l_workorder_rec1.priority;
1580 X_material_issue_by_mo := l_workorder_rec1.material_issue_by_mo;
1581
1582
1583 X_manual_rebuild_flag := l_workorder_rec1.manual_rebuild_flag ;
1584 X_requested_start_date := l_workorder_rec1.requested_start_date;
1585 X_requested_due_date := l_workorder_rec1.due_date ;
1586 X_notification_required := l_workorder_rec1.notification_required;
1587 X_tagout_required := l_workorder_rec1.tagout_required ;
1588 X_plan_maintenance := l_workorder_rec1.plan_maintenance ;
1589 X_class_code := l_workorder_rec1.class_code ;
1590 X_material_account := l_workorder_rec1.material_account;
1591 X_material_overhead_account := l_workorder_rec1.material_overhead_account;
1592 X_resource_account := l_workorder_rec1.resource_account ;
1593 X_outside_processing_account := l_workorder_rec1.outside_processing_account;
1594 X_material_variance_account := l_workorder_rec1.material_variance_account ;
1595 X_resource_variance_account := l_workorder_rec1.resource_variance_account ;
1596 X_outside_proc_var_account := l_workorder_rec1.outside_proc_variance_account ;
1597 X_std_cost_adjustment_account := l_workorder_rec1.std_cost_adjustment_account ;
1598 X_overhead_account := l_workorder_rec1.overhead_account ;
1599 X_overhead_variance_account := l_workorder_rec1.overhead_variance_account ;
1600 -- l_workorder_rec.common_routing_reference_id := X_routing_reference_id;
1601 X_common_bom_sequence_id := l_workorder_rec1.common_bom_sequence_id ;
1602 X_common_routing_sequence_id := l_workorder_rec1.common_routing_sequence_id ;
1603 X_bom_revision := l_workorder_rec1.bom_revision ;
1604 X_routing_revision:= l_workorder_rec1.routing_revision ;
1605 X_bom_revision_date := l_workorder_rec1.bom_revision_date ;
1606 X_routing_revision_date := l_workorder_rec1.routing_revision_date ;
1607 X_alternate_bom_designator := l_workorder_rec1.alternate_bom_designator ;
1608 X_alternate_routing_designator := l_workorder_rec1.alternate_routing_designator ;
1609 X_attribute_category := l_workorder_rec1.attribute_category ;
1610 X_attribute1 := l_workorder_rec1.attribute1;
1611 X_attribute2 := l_workorder_rec1.attribute2;
1612 X_attribute3 := l_workorder_rec1.attribute3 ;
1613 X_attribute4 := l_workorder_rec1.attribute4;
1614 X_attribute5 := l_workorder_rec1.attribute5 ;
1615 X_attribute6 := l_workorder_rec1.attribute6 ;
1616 X_attribute7 := l_workorder_rec1.attribute7 ;
1617 X_attribute8 := l_workorder_rec1.attribute8;
1618 X_attribute9 := l_workorder_rec1.attribute9 ;
1619 X_attribute10 := l_workorder_rec1.attribute10;
1620 X_attribute11 := l_workorder_rec1.attribute11;
1621 X_attribute12 := l_workorder_rec1.attribute12;
1622 X_attribute13 := l_workorder_rec1.attribute13;
1623 X_attribute14 := l_workorder_rec1.attribute14 ;
1624 X_attribute15 := l_workorder_rec1.attribute15 ;
1625 x_failure_code_required := l_workorder_rec1.failure_code_required;
1626 x_eam_failure_entry_record := l_workorder_rec1.eam_failure_entry_record;
1627 x_eam_failure_codes_tbl := l_workorder_rec1.eam_failure_codes_tbl;
1628
1629
1630 /*end of copy params */
1631
1632
1633
1634 -- asset genealogy is updated when a automatic work order is created for a a rebuild serial number
1635 -- which is part of an asset hierarchy. bug number 2899984
1636 if (X_rebuild_serial_number is not null) then
1637
1638 Update_Genealogy( X_wip_entity_id => X_Wip_Entity_Id,
1639 X_organization_id =>X_Organization_Id,
1640 X_parent_wip_entity_id =>X_parent_wip_entity_id,
1641 X_rebuild_item_id => X_rebuild_item_id,
1642 X_rebuild_serial_number=>X_rebuild_serial_number,
1643 X_manual_rebuild_flag =>X_manual_rebuild_flag,
1644 x_maintenance_object_type => x_maintenance_object_type ,
1645 x_maintenance_object_id => x_maintenance_object_id);
1646
1647 end if;
1648
1649
1650
1651 END Update_Workorder;
1652
1653 PROCEDURE Lock_Row( X_Rowid VARCHAR2,
1654 X_wip_entity_id NUMBER,
1655 X_organization_id NUMBER,
1656 X_description VARCHAR2,
1657 X_status_type NUMBER,
1658
1659 X_user_defined_status_id NUMBER,
1660 X_pending_flag VARCHAR2,
1661 X_workflow_type NUMBER ,
1662 X_warranty_claim_status NUMBER,
1663 X_material_shortage_flag NUMBER,
1664 X_material_shortage_check_date DATE,
1665
1666 X_primary_item_id NUMBER,
1667 X_parent_wip_entity_id NUMBER,
1668 X_asset_number VARCHAR2,
1669 X_asset_group_id NUMBER,
1670 X_pm_schedule_id NUMBER,
1671 X_rebuild_item_id NUMBER,
1672 X_rebuild_serial_number VARCHAR2,
1673 X_manual_rebuild_flag VARCHAR2,
1674 X_shutdown_type VARCHAR2,
1675 X_tagout_required VARCHAR2,
1676 X_plan_maintenance VARCHAR2,
1677 X_estimation_status VARCHAR2,
1678 X_requested_start_date DATE,
1679 X_requested_due_date DATE,
1680 X_notification_required VARCHAR2,
1681 X_work_order_type VARCHAR2,
1682 X_owning_department NUMBER,
1683 X_activity_type VARCHAR2,
1684 X_activity_cause VARCHAR2,
1685 X_firm_planned_flag NUMBER,
1686 X_class_code VARCHAR2,
1687 X_material_account NUMBER,
1688 X_material_overhead_account NUMBER,
1689 X_resource_account NUMBER,
1690 X_outside_processing_account NUMBER,
1691 X_material_variance_account NUMBER,
1692 X_resource_variance_account NUMBER,
1693 X_outside_proc_var_account NUMBER,
1694 X_std_cost_adjustment_account NUMBER,
1695 X_overhead_account NUMBER,
1696 X_overhead_variance_account NUMBER,
1697 X_scheduled_start_date DATE,
1698 X_date_released DATE,
1699 X_scheduled_completion_date DATE,
1700 X_date_completed DATE,
1701 X_date_closed DATE,
1702 X_bom_reference_id NUMBER,
1703 X_routing_reference_id NUMBER,
1704 X_common_bom_sequence_id NUMBER,
1705 X_common_routing_sequence_id NUMBER,
1706 X_bom_revision VARCHAR2,
1707 X_routing_revision VARCHAR2,
1708 X_bom_revision_date DATE,
1709 X_routing_revision_date DATE,
1710 X_lot_number VARCHAR2,
1711 X_alternate_bom_designator VARCHAR2,
1712 X_alternate_routing_designator VARCHAR2,
1713 X_completion_subinventory VARCHAR2,
1714 X_completion_locator_id NUMBER,
1715 X_demand_class VARCHAR2,
1716 X_attribute_category VARCHAR2,
1717 X_attribute1 VARCHAR2,
1718 X_attribute2 VARCHAR2,
1719 X_attribute3 VARCHAR2,
1720 X_attribute4 VARCHAR2,
1721 X_attribute5 VARCHAR2,
1722 X_attribute6 VARCHAR2,
1723 X_attribute7 VARCHAR2,
1724 X_attribute8 VARCHAR2,
1725 X_attribute9 VARCHAR2,
1726 X_attribute10 VARCHAR2,
1727 X_attribute11 VARCHAR2,
1728 X_attribute12 VARCHAR2,
1729 X_attribute13 VARCHAR2,
1730 X_attribute14 VARCHAR2,
1731 X_attribute15 VARCHAR2,
1732 X_We_Rowid VARCHAR2,
1733 X_Entity_Type NUMBER,
1734 X_Wip_Entity_Name VARCHAR2,
1735 X_Update_Wip_Entities VARCHAR2,
1736 X_Schedule_Group_Id NUMBER,
1737 X_Project_Id NUMBER,
1738 X_Task_Id NUMBER,
1739 X_priority NUMBER,
1740 X_maintenance_object_id NUMBER,
1741 X_maintenance_object_source NUMBER,
1742 X_maintenance_object_type NUMBER,
1743 X_material_issue_by_mo VARCHAR2,
1744 X_activity_source VARCHAR2) IS
1745
1746 CURSOR C_WDJ IS
1747 SELECT *
1748 FROM WIP_DISCRETE_JOBS
1749 WHERE rowid = X_Rowid
1750 FOR UPDATE of Wip_Entity_Id NOWAIT;
1751
1752 CURSOR C_WE IS
1753 SELECT *
1754 FROM WIP_ENTITIES
1755 WHERE rowid = X_We_Rowid
1756 FOR UPDATE of Wip_Entity_Id NOWAIT;
1757
1758 CURSOR C_ewod IS
1759 SELECT *
1760 FROM eam_work_order_details
1761 WHERE wip_entity_id = X_wip_entity_id
1762 FOR UPDATE of Wip_Entity_Id NOWAIT;
1763
1764 Recinfo1 C_WDJ%ROWTYPE;
1765 Recinfo2 C_WE%ROWTYPE;
1766 Recinfo3 C_EWOD%ROWTYPE;
1767
1768 BEGIN
1769 -- Wip Discrete Jobs
1770 OPEN C_WDJ;
1771 FETCH C_WDJ INTO Recinfo1;
1772 if (C_WDJ%NOTFOUND) then
1773 CLOSE C_WDJ;
1774 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
1775 APP_EXCEPTION.Raise_Exception;
1776 end if;
1777 CLOSE C_WDJ;
1778
1779 if (Recinfo1.wip_entity_id = X_Wip_Entity_Id)
1780 AND (Recinfo1.organization_id = X_Organization_Id)
1781 AND (ltrim(rtrim(nvl(Recinfo1.description, 'xxxx'))) =
1782 ltrim(rtrim(nvl(X_Description, 'xxxx'))))
1783 AND (Recinfo1.status_type = X_Status_Type)
1784
1785 AND (nvl(Recinfo1.primary_item_id, 0) =
1786 nvl(X_Primary_Item_Id, 0))
1787 AND (Recinfo1.firm_planned_flag = X_Firm_Planned_Flag)
1788 AND (Recinfo1.class_code = X_Class_Code)
1789 AND (nvl(Recinfo1.material_account, 0) =
1790 nvl(X_Material_Account, 0))
1791 AND (nvl(Recinfo1.material_overhead_account, 0) =
1792 nvl(X_Material_Overhead_Account, 0))
1793 AND (nvl(Recinfo1.resource_account, 0) =
1794 nvl(X_Resource_Account, 0))
1795 AND (nvl(Recinfo1.outside_processing_account, 0) =
1796 nvl(X_Outside_Processing_Account, 0))
1797 AND (nvl(Recinfo1.material_variance_account, 0) =
1798 nvl(X_Material_Variance_Account, 0))
1799 AND (nvl(Recinfo1.resource_variance_account, 0) =
1800 nvl(X_Resource_Variance_Account, 0))
1801 AND (nvl(Recinfo1.outside_proc_variance_account, 0) =
1802 nvl(X_Outside_Proc_Var_Account, 0))
1803 AND (nvl(Recinfo1.std_cost_adjustment_account, 0) =
1804 nvl(X_Std_Cost_Adjustment_Account, 0))
1805 AND (nvl(Recinfo1.overhead_account, 0) =
1806 nvl(X_Overhead_Account, 0))
1807 AND (nvl(Recinfo1.overhead_variance_account, 0) =
1808 nvl(X_Overhead_Variance_Account, 0))
1809 AND (Recinfo1.scheduled_start_date = X_Scheduled_Start_Date)
1810 AND ((Recinfo1.date_released = X_Date_Released) OR
1811 ((Recinfo1.date_released IS NULL) AND
1812 (X_Date_Released IS NULL)))
1813 AND (Recinfo1.scheduled_completion_date = X_Scheduled_Completion_Date)
1814 AND ((Recinfo1.date_completed = X_Date_Completed) OR
1815 ((Recinfo1.date_completed IS NULL) AND
1816 (X_Date_Completed IS NULL)))
1817 AND ((Recinfo1.date_closed = X_Date_Closed) OR
1818 ((Recinfo1.date_closed IS NULL) AND
1819 (X_Date_Closed IS NULL)))
1820 then
1821 if (nvl(Recinfo1.bom_reference_id, 0) =
1822 nvl(X_Bom_Reference_Id, 0))
1823 AND (nvl(Recinfo1.common_bom_sequence_id, 0) =
1824 nvl(X_Common_Bom_Sequence_Id, 0))
1825 AND (nvl(Recinfo1.common_routing_sequence_id, 0) =
1826 nvl(X_Common_Routing_Sequence_Id, 0))
1827 AND (nvl(Recinfo1.bom_revision, 'xxxx') =
1828 nvl(X_Bom_Revision, 'xxxx'))
1829 AND (nvl(Recinfo1.routing_revision, 'xxxx') =
1830 nvl(X_Routing_Revision, 'xxxx'))
1831 AND ((Recinfo1.bom_revision_date = X_Bom_Revision_Date) OR
1832 ((Recinfo1.bom_revision_date IS NULL) AND
1833 (X_Bom_Revision_Date IS NULL)))
1834 AND ((Recinfo1.routing_revision_date = X_Routing_Revision_Date) OR
1835 ((Recinfo1.routing_revision_date IS NULL) AND
1836 (X_Routing_Revision_Date IS NULL)))
1837 AND (nvl(Recinfo1.alternate_bom_designator, 'xxxx') =
1838 nvl(X_Alternate_Bom_Designator, 'xxxx'))
1839 AND (nvl(Recinfo1.alternate_routing_designator, 'xxxx') =
1840 nvl(X_Alternate_Routing_Designator, 'xxxx'))
1841 AND (nvl(Recinfo1.attribute_category, 'xxxx') =
1842 nvl(X_Attribute_Category, 'xxxx'))
1843 AND (nvl(Recinfo1.attribute1, 'xxxx') =
1844 nvl(X_Attribute1, 'xxxx'))
1845 AND (nvl(Recinfo1.attribute2, 'xxxx') =
1846 nvl(X_Attribute2, 'xxxx'))
1847 AND (nvl(Recinfo1.attribute3, 'xxxx') =
1848 nvl(X_Attribute3, 'xxxx'))
1849 AND (nvl(Recinfo1.attribute4, 'xxxx') =
1850 nvl(X_Attribute4, 'xxxx'))
1851 AND (nvl(Recinfo1.attribute5, 'xxxx') =
1852 nvl(X_Attribute5, 'xxxx'))
1853 AND (nvl(Recinfo1.attribute6, 'xxxx') =
1854 nvl(X_Attribute6, 'xxxx'))
1855 AND (nvl(Recinfo1.attribute7, 'xxxx') =
1856 nvl(X_Attribute7, 'xxxx'))
1857 AND (nvl(Recinfo1.attribute8, 'xxxx') =
1858 nvl(X_Attribute8, 'xxxx'))
1859 AND (nvl(Recinfo1.attribute9, 'xxxx') =
1860 nvl(X_Attribute9, 'xxxx'))
1861 AND (nvl(Recinfo1.attribute10, 'xxxx') =
1862 nvl(X_Attribute10, 'xxxx'))
1863 AND (nvl(Recinfo1.attribute11, 'xxxx') =
1864 nvl(X_Attribute11, 'xxxx'))
1865 AND (nvl(Recinfo1.attribute12, 'xxxx') =
1866 nvl(X_Attribute12, 'xxxx'))
1867 AND (nvl(Recinfo1.attribute13, 'xxxx') =
1868 nvl(X_Attribute13, 'xxxx'))
1869 AND (nvl(Recinfo1.attribute14, 'xxxx') =
1870 nvl(X_Attribute14, 'xxxx'))
1871 AND (nvl(Recinfo1.attribute15, 'xxxx') =
1872 nvl(X_Attribute15, 'xxxx'))
1873 AND (nvl(Recinfo1.Project_Id, 0) =
1874 nvl(X_Project_Id, 0))
1875 -- AND (nvl(Recinfo1.schedule_group_id, 0) =
1876 -- nvl(X_Schedule_Group_Id, 0))
1877 AND (nvl(Recinfo1.task_id, 0) =
1878 nvl(X_Task_Id, 0))
1879 AND (nvl(Recinfo1.priority, 0) =
1880 nvl(X_priority, 0))
1881 AND (nvl(Recinfo1.maintenance_object_id, 0) =
1882 nvl(X_maintenance_object_id, 0))
1883 AND (nvl(Recinfo1.maintenance_object_source, 0) =
1884 nvl(X_maintenance_object_source, 0))
1885 AND (nvl(Recinfo1.maintenance_object_type, 0) =
1886 nvl(X_maintenance_object_type, 0))
1887 AND (nvl(Recinfo1.material_issue_by_mo, 'XXXX') =
1888 nvl(X_material_issue_by_mo, 'XXXX'))
1889 AND (nvl(Recinfo1.activity_source, 'XXXX') =
1890 nvl(X_activity_source, 'XXXX'))
1891 then
1892 null;
1893 else
1894 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1895 APP_EXCEPTION.Raise_Exception;
1896 null;
1897 end if;
1898 else
1899 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1900 APP_EXCEPTION.Raise_Exception;
1901 null;
1902 end if;
1903
1904 -- Wip Entities
1905 -- Wip Discrete Jobs
1906 OPEN C_WE;
1907 FETCH C_WE INTO Recinfo2;
1908 if (C_WE%NOTFOUND) then
1909 CLOSE C_WE;
1910 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
1911 APP_EXCEPTION.Raise_Exception;
1912 end if;
1913 CLOSE C_WE;
1914 if (Recinfo2.wip_entity_id = X_Wip_Entity_Id)
1915 AND (Recinfo2.organization_id = X_Organization_Id)
1916 AND (Recinfo2.wip_entity_name = X_Wip_Entity_Name)
1917 AND (Recinfo2.entity_type = X_Entity_Type)
1918 AND (rtrim(nvl(Recinfo2.description, 'xxxx')) =
1919 rtrim(nvl(X_Description, 'xxxx')))
1920 AND (nvl(Recinfo2.primary_item_id, 0) =
1921 nvl(X_Primary_Item_Id, 0))
1922 then
1923 return;
1924 else
1925 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1926 APP_EXCEPTION.Raise_Exception;
1927 end if;
1928
1929 -- eam_work_order_details
1930 OPEN C_EWOD;
1931 FETCH C_EWOD INTO Recinfo3;
1932 IF (C_EWOD%NOTFOUND) THEN
1933 CLOSE C_EWOD;
1934 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
1935 APP_EXCEPTION.Raise_Exception;
1936 END IF;
1937 CLOSE C_EWOD;
1938 IF (Recinfo3.wip_entity_id = X_Wip_Entity_Id)
1939 AND (Recinfo3.organization_id = X_Organization_Id)
1940 AND (NVL(Recinfo3.user_defined_status_id,0) = NVL(X_user_defined_status_id,0))
1941 AND (NVL(Recinfo3.pending_flag,0) = NVL(X_pending_flag,0))
1942 AND (NVL(Recinfo3.workflow_type,0) = NVL(X_workflow_type,0))
1943 AND (NVL(Recinfo3.warranty_claim_status,0) = NVL(X_warranty_claim_status,0))
1944 AND (NVL(Recinfo3.material_shortage_flag,0) = NVL(X_material_shortage_flag,0))
1945 AND (NVL(Recinfo3.material_shortage_check_date,sysdate) = NVL(X_material_shortage_check_date,sysdate))
1946 THEN
1947 return;
1948 ELSE
1949 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1950 APP_EXCEPTION.Raise_Exception;
1951 END IF;
1952 END Lock_Row;
1953
1954
1955 PROCEDURE Get_All_Mesg(mesg IN OUT NOCOPY VARCHAR2)
1956 IS
1957 l_msg_count NUMBER;
1958 temp varchar2(2000);
1959 i NUMBER;
1960 msg_index number;
1961 BEGIN
1962 mesg := '';
1963
1964
1965 l_msg_count := fnd_msg_pub.count_msg;
1966 msg_index := l_msg_count;
1967
1968 for i in 1..l_msg_count loop
1969 fnd_msg_pub.get(p_msg_index => FND_MSG_PUB.G_NEXT,
1970 p_encoded => 'F',
1971 p_data => temp,
1972 p_msg_index_out => msg_index);
1973 msg_index := msg_index-1;
1974 mesg := mesg || ' ' || to_char(i) || ' . '||temp ;
1975 end loop;
1976
1977 END GET_ALL_MESG;
1978
1979
1980
1981 END EAM_WORKORDER_PKG;