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