1 PACKAGE BODY EAM_WO_DEFAULT_PVT AS
2 /* $Header: EAMVWODB.pls 120.27.12020000.5 2013/03/01 06:15:01 vchidura ship $ */
3 /***************************************************************************
4 --
5 -- Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 -- All rights reserved.
7 --
8 -- FILENAME
9 --
10 -- EAMVWODB.pls
11 --
12 -- DESCRIPTION
13 --
14 -- Spec of package EAM_WO_DEFAULT_PVT
15 --
16 -- NOTES
17 --
18 -- HISTORY
19 --
20 -- 30-JUN-2002 Kenichi Nagumo Initial Creation
21 -- 15-May-2005 Anju Gupta Changes for IB/Transactable Assets
22 ***************************************************************************/
23 G_PKG_NAME CONSTANT VARCHAR2(30) := 'EAM_WO_DEFAULT_PVT';
24
25 /********************************************************************
26 * Function : get_wip_entity_id
27 * Return : NUMBER
28 * Purpose : Function will return wip_entity_id
29 *
30 **********************************************************************/
31
32
33 FUNCTION get_wip_entity_id
34 RETURN NUMBER
35 IS
36 l_wip_entity_id NUMBER := NULL;
37 BEGIN
38
39 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_id : Start ================'); END IF;
40
41 SELECT wip_entities_s.nextval
42 INTO l_wip_entity_id
43 FROM dual;
44
45 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_id : End wip_entity_id: '||l_wip_entity_id||' ================'); END IF;
46
47 RETURN l_wip_entity_id;
48
49 EXCEPTION
50 WHEN OTHERS THEN
51 RETURN NULL;
52
53 END get_wip_entity_id;
54
55
56
57 /********************************************************************
58 * Function : get_wip_entity_name_prefix
59 * Return : VARCHAR2
60 * Purpose : Function will return wip_entity_name_prefix
61 *
62 **********************************************************************/
63
64 FUNCTION get_wip_entity_name_prefix
65 ( p_organization_id IN NUMBER
66 )
67 RETURN VARCHAR2
68 IS
69 l_wip_entity_name_prefix VARCHAR2(30) := NULL;
70 BEGIN
71
72 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_name_prefix : Start ================'); END IF;
73
74 SELECT work_order_prefix
75 INTO l_wip_entity_name_prefix
76 FROM wip_eam_parameters
77 WHERE organization_id = p_organization_id;
78
79 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_name_prefix : End wip_entity_name prefix: '||l_wip_entity_name_prefix||' =============='); END IF;
80
81 RETURN l_wip_entity_name_prefix;
82
83 EXCEPTION
84 WHEN OTHERS THEN
85 RETURN NULL;
86
87 END get_wip_entity_name_prefix;
88
89 -- ER 11884444
90 /********************************************************************
91 * Function : get_pm_wip_entity_prefix
92 * Return : VARCHAR2
93 * Purpose : Function will return PM_WORK_ORDER_PREFIX
94 *
95 **********************************************************************/
96
97 FUNCTION get_pm_wip_entity_prefix
98 ( p_organization_id IN NUMBER
99 )
100 RETURN VARCHAR2
101 IS
102 l_pm_wip_entity_prefix VARCHAR2(30) := NULL;
103 BEGIN
104 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_pm_wip_entity_prefix : Start ================'); END IF;
105
106 SELECT PM_WORK_ORDER_PREFIX
107 INTO l_pm_wip_entity_prefix
108 FROM wip_eam_parameters
109 WHERE organization_id = p_organization_id;
110
111 --l_pm_wip_entity_prefix := 'PM_PREFIX';
112
113 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_pm_wip_entity_prefix : End PM_wip_entity_name prefix: '||l_pm_wip_entity_prefix||' =============='); END IF;
114
115 RETURN l_pm_wip_entity_prefix;
116
117 EXCEPTION
118 WHEN OTHERS THEN
119 RETURN NULL;
120 END get_pm_wip_entity_prefix;
121
122
123
124 /********************************************************************
125 * Function : get_wip_entity_name
126 * Return : VARCHAR2
127 * Purpose : Function will return new work order name
128 *
129 **********************************************************************/
130
131 FUNCTION get_wip_entity_name(p_org_id NUMBER,p_plan_maintenance VARCHAR2, p_source_code VARCHAR2)
132 RETURN VARCHAR2
133 IS
134 l_wip_entity_name VARCHAR2(240) := NULL;
135 l_wip_entity_count NUMBER :=0;
136 l_wip_entity_name_prefix VARCHAR2(30) := NULL;
137 BEGIN
138 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_name: Start =============='); END IF;
139
140 -- ER 11884444
141 -- PM Work Order prefix for WO generation
142 IF nvl(p_plan_maintenance,'N') <> 'Y' THEN
143 l_wip_entity_name_prefix :=get_wip_entity_name_prefix(p_org_id);
144 ELSIF nvl(p_plan_maintenance,'N') = 'Y' THEN
145 l_wip_entity_name_prefix := get_pm_wip_entity_prefix(p_org_id);
146 END IF;
147 IF nvl(p_source_code,'EAM') ='BUD' THEN -- ER 14323372
148 l_wip_entity_name_prefix := 'BFWO';
149 END IF;
150 LOOP
151 IF nvl(p_source_code,'EAM') ='BUD' THEN -- ER 14323372
152 SELECT eam_bfwo_job_number_s.nextval
153 INTO l_wip_entity_name
154 FROM dual;
155 ELSE
156 SELECT wip_job_number_s.nextval
157 INTO l_wip_entity_name
158 FROM dual;
159 END IF;
160
161 l_wip_entity_name := l_wip_entity_name_prefix || l_wip_entity_name;
162
163 select count(*) into l_wip_entity_count from wip_entities
164 where organization_id = p_org_id and wip_entity_name =l_wip_entity_name
165 and rownum <= 1;
166
167 EXIT WHEN l_wip_entity_count=0;
168 END LOOP;
169
170 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_wip_entity_name: End l_wip_entity_name : '||l_wip_entity_name ||' =============='); END IF;
171
172 RETURN l_wip_entity_name;
173 EXCEPTION
174 WHEN OTHERS THEN
175 RETURN NULL;
176 END get_wip_entity_name;
177
178
179
180
181 /********************************************************************
182 * Procedure : get_flex_eam_wo
183 **********************************************************************/
184
185
186 PROCEDURE get_flex_eam_wo
187 ( p_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
188 , x_eam_wo_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
189 )
190 IS
191 BEGIN
192
193 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_flex_eam_wo: Start =============='); END IF;
194
195 -- In the future call Flex APIs for defaults
196 x_eam_wo_rec := p_eam_wo_rec;
197
198 IF p_eam_wo_rec.attribute_category =FND_API.G_MISS_CHAR THEN
199 x_eam_wo_rec.attribute_category := NULL;
200 END IF;
201
202 IF p_eam_wo_rec.attribute1 = FND_API.G_MISS_CHAR THEN
203 x_eam_wo_rec.attribute1 := NULL;
204 END IF;
205
206 IF p_eam_wo_rec.attribute2 = FND_API.G_MISS_CHAR THEN
207 x_eam_wo_rec.attribute2 := NULL;
208 END IF;
209
210 IF p_eam_wo_rec.attribute3 = FND_API.G_MISS_CHAR THEN
211 x_eam_wo_rec.attribute3 := NULL;
212 END IF;
213
214 IF p_eam_wo_rec.attribute4 = FND_API.G_MISS_CHAR THEN
215 x_eam_wo_rec.attribute4 := NULL;
216 END IF;
217
218 IF p_eam_wo_rec.attribute5 = FND_API.G_MISS_CHAR THEN
219 x_eam_wo_rec.attribute5 := NULL;
220 END IF;
221
222 IF p_eam_wo_rec.attribute6 = FND_API.G_MISS_CHAR THEN
223 x_eam_wo_rec.attribute6 := NULL;
224 END IF;
225
226 IF p_eam_wo_rec.attribute7 = FND_API.G_MISS_CHAR THEN
227 x_eam_wo_rec.attribute7 := NULL;
228 END IF;
229
230 IF p_eam_wo_rec.attribute8 = FND_API.G_MISS_CHAR THEN
231 x_eam_wo_rec.attribute8 := NULL;
232 END IF;
233
234 IF p_eam_wo_rec.attribute9 = FND_API.G_MISS_CHAR THEN
235 x_eam_wo_rec.attribute9 := NULL;
236 END IF;
237
238 IF p_eam_wo_rec.attribute10 = FND_API.G_MISS_CHAR THEN
239 x_eam_wo_rec.attribute10 := NULL;
240 END IF;
241
242 IF p_eam_wo_rec.attribute11 = FND_API.G_MISS_CHAR THEN
243 x_eam_wo_rec.attribute11 := NULL;
244 END IF;
245
246 IF p_eam_wo_rec.attribute12 = FND_API.G_MISS_CHAR THEN
247 x_eam_wo_rec.attribute12 := NULL;
248 END IF;
249
250 IF p_eam_wo_rec.attribute13 = FND_API.G_MISS_CHAR THEN
251 x_eam_wo_rec.attribute13 := NULL;
252 END IF;
253
254 IF p_eam_wo_rec.attribute14 = FND_API.G_MISS_CHAR THEN
255 x_eam_wo_rec.attribute14 := NULL;
256 END IF;
257
258 IF p_eam_wo_rec.attribute15 = FND_API.G_MISS_CHAR THEN
259 x_eam_wo_rec.attribute15 := NULL;
260 END IF;
261
262 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.get_flex_eam_wo: End =============='); END IF;
263
264 END get_flex_eam_wo;
265
266
267 /*********************************************************************
268 * Procedure : Attribute_Defaulting
269 * Parameters IN : Work Order record
270 * Parameters OUT NOCOPY: Work Order record after defaulting
271 * Mesg_Token_Table
272 * Return_Status
273 * Purpose : Attribute Defaulting will default the necessary null
274 * attribute with appropriate values.
275 **********************************************************************/
276
277 PROCEDURE Attribute_Defaulting
278 ( p_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
279 , p_old_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
280 , x_eam_wo_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
281 , x_mesg_token_tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
282 , x_return_status OUT NOCOPY VARCHAR2
283 )
284 IS
285 l_err_text VARCHAR2(2000) := NULL;
286 l_return_status VARCHAR2(2);
287 l_msg_count NUMBER;
288 l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
289 l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
290 l_out_eam_wo_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
291 l_Token_Tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
292 l_job_type NUMBER := 1;
293
294 l_owning_department NUMBER;
295 l_priority NUMBER;
296 l_material_account NUMBER;
297 l_material_overhead_account NUMBER;
298 l_resource_account NUMBER;
299 l_outside_processing_account NUMBER;
300 l_material_variance_account NUMBER;
301 l_resource_variance_account NUMBER;
302 l_osp_var_account NUMBER;
303 l_std_cost_adjustment_account NUMBER;
304 l_overhead_account NUMBER;
305 l_overhead_variance_account NUMBER;
306 l_issue_zero_cost_flag VARCHAR2(1);
307
308 l_class_code VARCHAR2(10);
309 l_activity_cause VARCHAR2(30);
310 l_activity_type VARCHAR2(30);
311 l_activity_source VARCHAR2(30);
312 l_shutdown_type VARCHAR2(30);
313 l_notification_required VARCHAR2(1);
314 l_tagout_required VARCHAR2(1);
315 l_auto_firm_flag VARCHAR2(10);
316 l_activity_description VARCHAR2(240);
317
318
319 l_old_eam_wo_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
320 l_auto_firm_create_flag VARCHAR2(1);
321
322 /*WO Defaults ER*/
323 l_work_order_type NUMBER;
324 l_planner_maintenance NUMBER;
325 l_firm_flag NUMBER;
326 l_plan_maintenance VARCHAR2(1);
327
328 BEGIN
329 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
330 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Start================');
331 END IF;
332
333 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
334 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Calling EAM_WO_UTILITY_PVT.Query_Row');
335 END IF;
336
337 EAM_WO_UTILITY_PVT.Query_Row(
338 p_wip_entity_id => p_eam_wo_rec.wip_entity_id
339 , p_organization_id => p_eam_wo_rec.organization_id
340 , x_eam_wo_rec => l_old_eam_wo_rec
341 , x_Return_status => l_return_status
342 );
343
344
345 x_eam_wo_rec := p_eam_wo_rec;
346 x_return_status := FND_API.G_RET_STS_SUCCESS;
347
348 IF p_eam_wo_rec.wip_entity_id IS NULL OR
349 p_eam_wo_rec.wip_entity_id = FND_API.G_MISS_NUM
350 THEN
351 x_eam_wo_rec.wip_entity_id :=get_wip_entity_id;
352
353 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(' EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New wip_entity_id : ' || to_char(x_eam_wo_rec.wip_entity_id)); END IF;
354
355 END IF;
356
357 IF p_eam_wo_rec.wip_entity_name IS NULL OR
358 p_eam_wo_rec.wip_entity_name = FND_API.G_MISS_CHAR
359 THEN
360 x_eam_wo_rec.wip_entity_name := get_wip_entity_name(p_eam_wo_rec.organization_id,p_eam_wo_rec.plan_maintenance,p_eam_wo_rec.source_code);
361
362
363
364 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug(' EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New wip_entity_name : ' || x_eam_wo_rec.wip_entity_name); END IF;
365
366 END IF;
367
368 -- Finding out whether Asset or Rebuild WO
369 IF p_eam_wo_rec.maintenance_object_type = 2 THEN
370 -- Rebuild
371 l_job_type := 2;
372 ELSIF p_eam_wo_rec.maintenance_object_type = 3 THEN
373 IF p_eam_wo_rec.rebuild_item_id is not null THEN
374 l_job_type :=2;
375 ELSE
376 l_job_type :=1;
377 END IF;
378 END IF;
379
380
381 IF ( p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE
382 AND p_eam_wo_rec.class_code is null )
383 THEN
384 WIP_EAM_UTILS.DEFAULT_ACC_CLASS(
385 p_org_id => p_eam_wo_rec.organization_id,
386 p_job_type => l_job_type,
387 p_serial_number => nvl(p_eam_wo_rec.rebuild_serial_number, p_eam_wo_rec.asset_number),
388 p_asset_group_id => nvl(p_eam_wo_rec.rebuild_item_id, p_eam_wo_rec.asset_group_id),
389 p_parent_wo_id => p_eam_wo_rec.parent_wip_entity_id,
390 p_asset_activity_id => p_eam_wo_rec.asset_activity_id,
391 p_project_id => p_eam_wo_rec.project_id,
392 p_task_id => p_eam_wo_rec.task_id,
393 x_class_code => l_class_code,
394 x_return_status => l_return_status,
395 x_msg_data => l_err_text
396 );
397
398 IF l_class_code IS NOT NULL AND
399 l_class_code <> FND_API.G_MISS_CHAR
400 THEN
401 -- Default the WIP ACC Class
402 x_eam_wo_rec.class_code := l_class_code;
403
404 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New class_code : ' || x_eam_wo_rec.class_code); END IF;
405 END IF;
406
407 END IF;
408
409 IF p_eam_wo_rec.asset_activity_id is not null THEN
410
411 /* Defaulting logic of work order description from activity description for bug# 3418828 */
412
413 IF ( p_eam_wo_rec.description IS NULL
414 and p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE )
415 THEN
416 begin
417 SELECT description
418 INTO l_activity_description
419 FROM MTL_SYSTEM_ITEMS_KFV MSI, MTL_PARAMETERS MP
420 WHERE MSI.inventory_item_id = p_eam_wo_rec.asset_activity_id
421 AND MSI.organization_id = MP.ORGANIZATION_ID
422 AND MP.MAINT_ORGANIZATION_ID = p_eam_wo_rec.organization_id
423 AND rownum = 1;
424
425 x_eam_wo_rec.description := l_activity_description;
426
427 EXCEPTION
428 WHEN OTHERS THEN
429 NULL;
430 end;
431 END IF;
432
433 /* end of fix */
434
435 IF ( p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE /*OR
436 (p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND
437 NVL(p_eam_wo_rec.asset_activity_id,-1) <> NVL(l_old_eam_wo_rec.asset_activity_id,-1)) commented for BUG#5609642 */ ) THEN --default if new workorder or activity is changed
438
439 WIP_EAMWORKORDER_PVT.Get_EAM_Act_Cause_Default
440 (p_api_version => 1,
441 p_init_msg_list => FND_API.G_FALSE,
442 p_commit => FND_API.G_FALSE,
443 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
444 x_return_status => l_return_status,
445 x_msg_count => l_msg_count,
446 x_msg_data => l_err_text,
447 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
448 p_organization_id => p_eam_wo_rec.organization_id,
449 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
450 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
451 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
452 x_activity_cause_code => l_activity_cause
453 );
454
455 IF l_activity_cause IS NOT NULL AND
456 l_activity_cause <> FND_API.G_MISS_CHAR AND
457 p_eam_wo_rec.activity_cause IS NULL /* Added for BUG#5609642 */
458 THEN
459 x_eam_wo_rec.activity_cause := l_activity_cause;
460
461 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New activity_cause : ' || x_eam_wo_rec.activity_cause); END IF;
462 END IF;
463
464 WIP_EAMWORKORDER_PVT.Get_EAM_Act_Type_Default
465 (p_api_version => 1,
466 p_init_msg_list => FND_API.G_FALSE,
467 p_commit => FND_API.G_FALSE,
468 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
469 x_return_status => l_return_status,
470 x_msg_count => l_msg_count,
471 x_msg_data => l_err_text,
472 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
473 p_organization_id => p_eam_wo_rec.organization_id,
474 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
475 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
476 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
477 x_activity_type_code => l_activity_type
478 );
479
480 IF l_activity_type IS NOT NULL AND
481 l_activity_type <> FND_API.G_MISS_CHAR AND
482 p_eam_wo_rec.activity_type IS NULL /* Added for BUG#5609642 */
483 THEN
484 x_eam_wo_rec.activity_type := l_activity_type;
485 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New activity_type : ' || x_eam_wo_rec.activity_type); END IF;
486 END IF;
487
488 WIP_EAMWORKORDER_PVT.Get_EAM_Act_Source_Default
489 (p_api_version => 1,
490 p_init_msg_list => FND_API.G_FALSE,
491 p_commit => FND_API.G_FALSE,
492 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
493 x_return_status => l_return_status,
494 x_msg_count => l_msg_count,
495 x_msg_data => l_err_text,
496 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
497 p_organization_id => p_eam_wo_rec.organization_id,
498 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
499 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
500 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
501 x_activity_source_code => l_activity_source
502 );
503
504 IF l_activity_source IS NOT NULL AND
505 l_activity_source <> FND_API.G_MISS_CHAR AND
506 p_eam_wo_rec.activity_source IS NULL /* Added for BUG#5609642 */
507 THEN
508 x_eam_wo_rec.activity_source := l_activity_source;
509
510 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New activity_source : ' || x_eam_wo_rec.activity_source); END IF;
511 END IF;
512
513 WIP_EAMWORKORDER_PVT.Get_EAM_Shutdown_Default
514 (p_api_version => 1,
515 p_init_msg_list => FND_API.G_FALSE,
516 p_commit => FND_API.G_FALSE,
517 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
518 x_return_status => l_return_status,
519 x_msg_count => l_msg_count,
520 x_msg_data => l_err_text,
521 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
522 p_organization_id => p_eam_wo_rec.organization_id,
523 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
524 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
525 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
526 x_shutdown_type_code => l_shutdown_type
527 );
528
529 IF l_shutdown_type IS NOT NULL AND
530 l_shutdown_type <> FND_API.G_MISS_CHAR AND
531 p_eam_wo_rec.shutdown_type IS NULL /* Added for BUG#5609642 */
532 THEN
533 x_eam_wo_rec.shutdown_type := l_shutdown_type;
534 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
535 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New shutdown_type : ' || x_eam_wo_rec.shutdown_type);
536 END IF;
537 END IF;
538
539 WIP_EAMWORKORDER_PVT.Get_EAM_Notification_Default
540 (p_api_version => 1,
541 p_init_msg_list => FND_API.G_FALSE,
542 p_commit => FND_API.G_FALSE,
543 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
544 x_return_status => l_return_status,
545 x_msg_count => l_msg_count,
546 x_msg_data => l_err_text,
547 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
548 p_organization_id => p_eam_wo_rec.organization_id,
549 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
550 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
551 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
552 x_notification_flag => l_notification_required
553 );
554
555 IF l_notification_required IS NOT NULL AND
556 l_notification_required <> FND_API.G_MISS_CHAR AND
557 p_eam_wo_rec.notification_required IS NULL /* Added for BUG#5609642 */
558 THEN
559 x_eam_wo_rec.notification_required := l_notification_required;
560 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
561 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New notification_required : ' || x_eam_wo_rec.notification_required);
562 END IF;
563 END IF;
564
565 WIP_EAMWORKORDER_PVT.Get_EAM_Tagout_Default
566 (p_api_version => 1,
567 p_init_msg_list => FND_API.G_FALSE,
568 p_commit => FND_API.G_FALSE,
569 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
570 x_return_status => l_return_status,
571 x_msg_count => l_msg_count,
572 x_msg_data => l_err_text,
573 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
574 p_organization_id => p_eam_wo_rec.organization_id,
575 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
576 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
577 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
578 x_tagout_required => l_tagout_required
579 );
580
581 IF l_tagout_required IS NOT NULL AND
582 l_tagout_required <> FND_API.G_MISS_CHAR AND
583 p_eam_wo_rec.tagout_required IS NULL /* Added for BUG#5609642 */
584 THEN
585 x_eam_wo_rec.tagout_required := l_tagout_required;
586 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
587 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New tagout_default : ' || x_eam_wo_rec.tagout_required);
588 END IF;
589 END IF;
590 /*WO Defaults ER 16094794*/
591
592 WIP_EAMWORKORDER_PVT.Get_EAM_ACT_WO_Type_Default
593 (p_api_version => 1,
594 p_init_msg_list => FND_API.G_FALSE,
595 p_commit => FND_API.G_FALSE,
596 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
597 x_return_status => l_return_status,
598 x_msg_count => l_msg_count,
599 x_msg_data => l_err_text,
600 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
601 p_organization_id => p_eam_wo_rec.organization_id,
602 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
603 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
604 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
605 x_ACT_WO_Type => l_work_order_type
606 );
607
608 IF l_work_order_type IS NOT NULL AND
609 l_work_order_type <> FND_API.G_MISS_NUM AND
610 p_eam_wo_rec.work_order_type IS NULL
611 THEN
612 x_eam_wo_rec.work_order_type := l_work_order_type;
613 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
614 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New work_order_type : ' || x_eam_wo_rec.work_order_type);
615 END IF;
616 END IF;
617
618 WIP_EAMWORKORDER_PVT.Get_EAM_ACT_Planner_Default
619 (p_api_version => 1,
620 p_init_msg_list => FND_API.G_FALSE,
621 p_commit => FND_API.G_FALSE,
622 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
623 x_return_status => l_return_status,
624 x_msg_count => l_msg_count,
625 x_msg_data => l_err_text,
626 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
627 p_organization_id => p_eam_wo_rec.organization_id,
628 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
629 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
630 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
631 x_ACT_Planner => l_planner_maintenance
632 );
633
634 IF l_planner_maintenance IS NOT NULL AND
635 l_planner_maintenance <> FND_API.G_MISS_NUM AND
636 p_eam_wo_rec.PLANNER_TYPE IS NULL
637 THEN
638 x_eam_wo_rec.PLANNER_TYPE := l_planner_maintenance;
639 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
640 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New PLANNER_TYPE : ' || x_eam_wo_rec.PLANNER_TYPE);
641 END IF;
642 END IF;
643
644 WIP_EAMWORKORDER_PVT.Get_EAM_ACT_Firm_Default
645 (p_api_version => 1,
646 p_init_msg_list => FND_API.G_FALSE,
647 p_commit => FND_API.G_FALSE,
648 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
649 x_return_status => l_return_status,
650 x_msg_count => l_msg_count,
651 x_msg_data => l_err_text,
652 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
653 p_organization_id => p_eam_wo_rec.organization_id,
654 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
655 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
656 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
657 x_ACT_Firm => l_firm_flag
658 );
659
660 IF l_firm_flag IS NOT NULL AND
661 l_firm_flag <> FND_API.G_MISS_NUM AND
662 p_eam_wo_rec.FIRM_PLANNED_FLAG IS NULL
663 THEN
664 x_eam_wo_rec.FIRM_PLANNED_FLAG := l_firm_flag;
665 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
666 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New firm_flag : ' || x_eam_wo_rec.firm_planned_flag);
667 END IF;
668 END IF;
669
670 WIP_EAMWORKORDER_PVT.Get_EAM_ACT_Planned_Default
671 (p_api_version => 1,
672
673 p_init_msg_list => FND_API.G_FALSE,
674 p_commit => FND_API.G_FALSE,
675 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
676 x_return_status => l_return_status,
677 x_msg_count => l_msg_count,
678 x_msg_data => l_err_text,
679 p_primary_item_id => p_eam_wo_rec.asset_activity_id,
680 p_organization_id => p_eam_wo_rec.organization_id,
681 p_maintenance_object_type => p_eam_wo_rec.maintenance_object_type,
682 p_maintenance_object_id => p_eam_wo_rec.maintenance_object_id,
683 p_rebuild_item_id => p_eam_wo_rec.rebuild_item_id,
684 x_ACT_Planned => l_plan_maintenance
685 );
686
687 IF l_plan_maintenance IS NOT NULL AND
688 l_plan_maintenance <> FND_API.G_MISS_CHAR AND
689 p_eam_wo_rec.PLAN_MAINTENANCE IS NULL
690 THEN
691 x_eam_wo_rec.PLAN_MAINTENANCE := l_plan_maintenance;
692 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
693 EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : New PLAN_MAINTENANCE : ' || x_eam_wo_rec.PLAN_MAINTENANCE);
694 END IF;
695 END IF;
696
697
698
699
700 END IF; --end of check for activity changed or workorder created
701 END IF; -- End if for 'IF asset_activity_id_id is not null'
702
703
704
705 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting owning department, priority, etc'); END IF;
706
707 -- Defaulting Owning Dept, Priority.
708
709 IF p_eam_wo_rec.asset_activity_id IS NOT NULL AND p_eam_wo_rec.asset_activity_id <> FND_API.G_MISS_NUM
710 THEN
711 -- WO with Activity
712
713 IF ( p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE /* OR
714 (p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND
715 NVL(p_eam_wo_rec.asset_activity_id,-1) <> NVL(l_old_eam_wo_rec.asset_activity_id,-1))Commented for BUG#5609642 */ ) THEN --default if new workorder or activity is changed
716 BEGIN
717
718 IF p_eam_wo_rec.maintenance_object_type = 3
719 THEN
720 -- Asset or Serialized Rebuild with activity
721 SELECT
722 nvl(p_eam_wo_rec.owning_department, nvl(eomd.owning_department_id, eomd_asset.owning_department_id))
723 , nvl(p_eam_wo_rec.priority, meaa.priority_code)
724 INTO
725 l_owning_department
726 , l_priority
727 FROM
728 mtl_eam_asset_activities meaa
729 , eam_org_maint_defaults eomd
730 , eam_org_maint_defaults eomd_asset
731 WHERE
732 meaa.maintenance_object_type = 3
733 AND eomd.object_type (+) = 60
734 AND eomd.object_id (+) = meaa.activity_association_id
735 AND eomd_asset.object_type (+) = 50
736 AND eomd_asset.organization_id (+) = p_eam_wo_rec.organization_id
737 AND eomd_asset.object_id (+) = meaa.maintenance_object_id
738 AND meaa.asset_activity_id = p_eam_wo_rec.asset_activity_id
739 AND eomd.organization_id (+) = p_eam_wo_rec.organization_id
740 AND meaa.maintenance_object_id = p_eam_wo_rec.maintenance_object_id;
741
742
743 IF l_owning_department IS NOT NULL AND
744 l_owning_department <> FND_API.G_MISS_NUM AND
745 p_eam_wo_rec.owning_department IS NULL /* Added for BUG#5609642 */
746 THEN
747 x_eam_wo_rec.owning_department := l_owning_department;
748 END IF;
749
750 IF x_eam_wo_rec.owning_department IS NULL THEN
751 select default_department_id into x_eam_wo_rec.owning_department
752 from WIP_EAM_PARAMETERS
753 where organization_id = p_eam_wo_rec.organization_id;
754 END IF;
755
756 IF l_priority IS NOT NULL AND
757 l_priority <> FND_API.G_MISS_NUM AND
758 p_eam_wo_rec.priority IS NULL /* Added for BUG#5609642 */
759 THEN
760 x_eam_wo_rec.priority := l_priority;
761 END IF;
762
763 ELSE
764 -- Rebuild with activity
765
766 IF p_eam_wo_rec.maintenance_object_type = 2 THEN
767 -- Non Serialized rebuild
768 SELECT
769 nvl(p_eam_wo_rec.owning_department, eomd.owning_department_id)
770 , nvl(p_eam_wo_rec.priority, meaa.priority_code)
771 INTO
772 l_owning_department
773 , l_priority
774 FROM
775 mtl_eam_asset_activities meaa,
776 eam_org_maint_defaults eomd
777 WHERE
778 meaa.asset_activity_id = p_eam_wo_rec.asset_activity_id
779 AND eomd.object_type (+) = 40
780 and eomd.organization_id (+) = p_eam_wo_rec.organization_id
781 and eomd.object_id (+) = meaa.activity_association_id
782 AND meaa.maintenance_object_type = 2
783 and meaa.maintenance_object_id = p_eam_wo_rec.maintenance_object_id;
784
785 IF l_owning_department IS NOT NULL AND
786 l_owning_department <> FND_API.G_MISS_NUM AND
787 p_eam_wo_rec.owning_department IS NULL /* Added for BUG#5609642 */
788 THEN
789 x_eam_wo_rec.owning_department := l_owning_department;
790 END IF;
791
792 IF x_eam_wo_rec.owning_department IS NULL THEN
793 select default_department_id into x_eam_wo_rec.owning_department
794 from WIP_EAM_PARAMETERS
795 where organization_id = p_eam_wo_rec.organization_id;
796 END IF;
797
798 IF l_priority IS NOT NULL AND
799 l_priority <> FND_API.G_MISS_NUM AND
800 p_eam_wo_rec.priority IS NULL /* Added for BUG#5609642 */
801 THEN
802 x_eam_wo_rec.priority := l_priority;
803 END IF;
804
805 END IF;
806 END IF;
807
808 EXCEPTION
809 WHEN NO_DATA_FOUND THEN
810
811 l_out_mesg_token_tbl := l_mesg_token_tbl;
812 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
813 ( p_message_name => 'EAM_WO_ASSET_ACTIVITY_ASSOC'
814 , p_token_tbl => l_token_tbl
815 , p_mesg_token_tbl => l_mesg_token_tbl
816 , x_mesg_token_tbl => l_out_mesg_token_tbl
817 );
818 l_mesg_token_tbl := l_out_mesg_token_tbl;
819
820 x_return_status := FND_API.G_RET_STS_ERROR;
821 x_mesg_token_tbl := l_mesg_token_tbl ;
822
823 WHEN OTHERS THEN
824 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
825 ( p_message_name => NULL
826 , p_message_text => G_PKG_NAME || SQLERRM
827 , x_mesg_token_Tbl => x_mesg_token_tbl
828 );
829
830 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
831 END;
832 END IF; --end of check for activity changed/workorder created
833
834 ELSIF x_eam_wo_rec.owning_department IS NULL and (p_eam_wo_rec.maintenance_object_type = 3)
835 -- Asset/Serialized rebuild WO without Activity
836
837 THEN
838 SELECT
839 p_eam_wo_rec.priority
840 , nvl(p_eam_wo_rec.owning_department, eomd.owning_department_id)
841 INTO
842 l_priority
843 , l_owning_department
844 FROM
845 csi_item_instances cii,
846 eam_org_maint_defaults eomd
847 WHERE
848 cii.instance_id = p_eam_wo_rec.maintenance_object_id
849 and eomd.object_type (+) = 50
850 and eomd.object_id (+) = cii.instance_id
851 and eomd.organization_id (+) = p_eam_wo_rec.organization_id;
852
853 IF l_owning_department IS NOT NULL AND
854 l_owning_department <> FND_API.G_MISS_NUM THEN
855 x_eam_wo_rec.owning_department := l_owning_department;
856 END IF;
857
858 IF l_priority IS NOT NULL AND
859 l_priority <> FND_API.G_MISS_NUM AND
860 p_eam_wo_rec.priority IS NULL /* Added for BUG#5609642 */
861 THEN
862 x_eam_wo_rec.priority := l_priority;
863 END IF;
864
865 IF x_eam_wo_rec.owning_department IS NULL THEN
866 select default_department_id into x_eam_wo_rec.owning_department
867 from WIP_EAM_PARAMETERS
868 where organization_id = p_eam_wo_rec.organization_id;
869 END IF;
870
871 -- added for bug 15984843
872 ELSIF x_eam_wo_rec.owning_department IS NULL and (p_eam_wo_rec.maintenance_object_type = 2)
873 -- Non-Serialized rebuild WO without Activity
874 THEN
875 BEGIN
876 SELECT
877 p_eam_wo_rec.priority
878 , nvl(p_eam_wo_rec.owning_department, eomd.owning_department_id)
879 INTO
880 l_priority
881 , l_owning_department
882 FROM
883 csi_item_instances cii,
884 eam_org_maint_defaults eomd
885 WHERE cii.instance_id = p_eam_wo_rec.maintenance_object_id
886 and eomd.object_type (+) = 40
887 and eomd.object_id (+) = cii.instance_id
888 and eomd.organization_id (+) = p_eam_wo_rec.organization_id;
889 EXCEPTION
890 WHEN OTHERS THEN
891 NULL;
892 END;
893
894 IF l_owning_department IS NOT NULL AND
895 l_owning_department <> FND_API.G_MISS_NUM
896 THEN
897 x_eam_wo_rec.owning_department := l_owning_department;
898 END IF;
899
900 IF l_priority IS NOT NULL AND
901 l_priority <> FND_API.G_MISS_NUM AND
902 p_eam_wo_rec.priority IS NULL
903 THEN
904 x_eam_wo_rec.priority := l_priority;
905 END IF;
906
907 IF x_eam_wo_rec.owning_department IS NULL
908 THEN
909 BEGIN
910 select default_department_id into x_eam_wo_rec.owning_department
911 from WIP_EAM_PARAMETERS
912 where organization_id = p_eam_wo_rec.organization_id;
913 EXCEPTION
914 WHEN OTHERS THEN
915 NULL;
916 END;
917 END IF;
918 -- end bug 15984843
919 END IF;
920
921
922 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting accounts'); END IF;
923
924
925 -- Defaulting Accounts
926 BEGIN
927 SELECT
928 material_account
929 , material_overhead_account
930 , resource_account
931 , outside_processing_account
932 , material_variance_account
933 , resource_variance_account
934 , outside_proc_variance_account
935 , std_cost_adjustment_account
936 , overhead_account
937 , overhead_variance_account
938 INTO
939 l_material_account
940 , l_material_overhead_account
941 , l_resource_account
942 , l_outside_processing_account
943 , l_material_variance_account
944 , l_resource_variance_account
945 , l_osp_var_account
946 , l_std_cost_adjustment_account
947 , l_overhead_account
948 , l_overhead_variance_account
949 FROM wip_accounting_classes
950 WHERE
951 class_code = x_eam_wo_rec.class_code
952 AND organization_id = p_eam_wo_rec.organization_id;
953
954 x_eam_wo_rec.material_account := l_material_account;
955 x_eam_wo_rec.material_overhead_account := l_material_overhead_account;
956 x_eam_wo_rec.resource_account := l_resource_account;
957 x_eam_wo_rec.outside_processing_account := l_outside_processing_account;
958 x_eam_wo_rec.material_variance_account := l_material_variance_account;
959 x_eam_wo_rec.resource_variance_account := l_resource_variance_account;
960 x_eam_wo_rec.outside_proc_variance_account := l_osp_var_account;
961 x_eam_wo_rec.std_cost_adjustment_account := l_std_cost_adjustment_account;
962 x_eam_wo_rec.overhead_account := l_overhead_account;
963 x_eam_wo_rec.overhead_variance_account := l_overhead_variance_account;
964
965 EXCEPTION
966 WHEN NO_DATA_FOUND THEN
967
968 l_out_mesg_token_tbl := l_mesg_token_tbl;
969 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
970 ( p_message_name => 'EAM_WO_CLASS_CODE'
971 , p_token_tbl => l_token_tbl
972 , p_mesg_token_tbl => l_mesg_token_tbl
973 , x_mesg_token_tbl => l_out_mesg_token_tbl
974 );
975 l_mesg_token_tbl := l_out_mesg_token_tbl;
976
977 x_return_status := FND_API.G_RET_STS_ERROR;
978 x_mesg_token_tbl := l_mesg_token_tbl ;
979
980 WHEN OTHERS THEN
981 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
982 ( p_message_name => NULL
983 , p_message_text => G_PKG_NAME || SQLERRM
984 , x_mesg_token_Tbl => x_mesg_token_tbl
985 );
986
987 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
988 END;
989 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting USER_DEFINED_STATUS_ID'); END IF;
990
991
992 --Default the User_Defined_Status_Id if it is not passed when creating a workorder. OR if system status is modified and neither the user_defined_status nor the pending flag are modfied
993 --Then also set the User_defined_status to the seeded status mapped to the System status
994 IF( p_eam_wo_rec.user_defined_status_id IS NULL --create and user_defined_staus not provided
995 OR
996 ( p_eam_wo_rec.transaction_type=EAM_PROCESS_WO_PVT.G_OPR_UPDATE --workorder updated
997 AND (p_eam_wo_rec.status_type <> p_old_eam_wo_rec.status_type) --system status updated
998 --netiher the user_defined_status nor the pending flag are modfied
999 AND NOT((p_eam_wo_rec.user_defined_status_id <> p_old_eam_wo_rec.user_defined_status_id) OR (NVL(p_eam_wo_rec.pending_flag,'N') <> NVL(p_old_eam_wo_rec.pending_flag,'N')))
1000 )
1001 )THEN
1002 x_eam_wo_rec.user_defined_status_id := p_eam_wo_rec.status_type; --set the user_defined_status_id to status_type since status_id for seeded statuses will be same as status_type
1003
1004 END IF; --end of check for defaulting user_defined_status
1005
1006 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting ISSUE_ZERO_COST_FLAG'); END IF;
1007
1008 -- Defaulting ISSUE_ZERO_COST_FLAG
1009 IF p_eam_wo_rec.issue_zero_cost_flag IS NULL OR
1010 p_eam_wo_rec.issue_zero_cost_flag = FND_API.G_MISS_CHAR
1011 THEN
1012 SELECT
1013 nvl(issue_zero_cost_flag,'N')
1014 INTO x_eam_wo_rec.issue_zero_cost_flag
1015 FROM wip_eam_parameters
1016 WHERE organization_id = p_eam_wo_rec.organization_id;
1017
1018 END IF;
1019
1020 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : PO creation time'); END IF;
1021
1022 -- Defaulting PO creation time
1023 IF p_eam_wo_rec.po_creation_time IS NULL OR
1024 p_eam_wo_rec.po_creation_time = FND_API.G_MISS_NUM
1025 THEN
1026 SELECT
1027 po_creation_time
1028 INTO x_eam_wo_rec.po_creation_time
1029 FROM wip_parameters
1030 WHERE organization_id = p_eam_wo_rec.organization_id;
1031
1032 END IF;
1033
1034 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting firm planned flag'); END IF;
1035
1036 -- Defaulting Firm Planned Flag
1037 /*after WO defaults ER: firm flag defaults from activity assoc defaults: WIP_EAMWORKORDER_PVT.Get_EAM_ACT_Firm_Default
1038 and this takes precedence hence added below x_eam_wo_rec.firm_planned_flag null check */
1039
1040 IF x_eam_wo_rec.firm_planned_flag IS NULL
1041 THEN
1042 x_eam_wo_rec.firm_planned_flag := 2;
1043
1044 IF p_eam_wo_rec.firm_planned_flag IS NULL OR
1045 p_eam_wo_rec.firm_planned_flag = FND_API.G_MISS_NUM
1046 THEN
1047
1048 -- Defaulting Firm Planned Flag when auto firm flag on create checked.
1049 IF p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PUB.G_OPR_CREATE
1050 THEN
1051 select nvl(auto_firm_on_create,'N') into l_auto_firm_create_flag
1052 from wip_eam_parameters
1053 where organization_id = p_eam_wo_rec.organization_id;
1054 IF l_auto_firm_create_flag = 'Y' THEN
1055 x_eam_wo_rec.firm_planned_flag := 1;
1056 END IF;
1057 END IF;
1058
1059 END IF;
1060
1061 END IF;
1062
1063
1064 -- If updating a WO to relesed status and auto_firm_flag is
1065 -- turned on, then firm the WO. Also if WO is created directly
1066 -- in released status and auto firm is ON.
1067 IF (p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PUB.G_OPR_UPDATE
1068 and p_eam_wo_rec.status_type = 3 and
1069 l_old_eam_wo_rec.status_type in (1,6,17)
1070 ) OR
1071 (p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PUB.G_OPR_CREATE
1072 and p_eam_wo_rec.status_type = 3
1073 )
1074 THEN
1075 select nvl(auto_firm_flag,'N') into l_auto_firm_flag
1076 from wip_eam_parameters
1077 where organization_id = p_eam_wo_rec.organization_id;
1078 IF l_auto_firm_flag = 'Y' THEN
1079 x_eam_wo_rec.firm_planned_flag := 1;
1080 END IF;
1081 END IF;
1082
1083
1084 -- If updating a WO to relesaed status and auto_firm_flag is
1085 -- turned on, then set the WO scheduled dates to the old values
1086 -- . Otherwise, the date encompassment error will be thrown up.
1087 IF (p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PUB.G_OPR_UPDATE
1088 and p_eam_wo_rec.status_type = 3
1089 and l_old_eam_wo_rec.status_type in (1,6,17)
1090 and l_auto_firm_flag = 'Y'
1091 )
1092 THEN
1093
1094 x_eam_wo_rec.scheduled_start_date := l_old_eam_wo_rec.scheduled_start_date;
1095 x_eam_wo_rec.scheduled_completion_date := l_old_eam_wo_rec.scheduled_completion_date;
1096
1097 END IF;
1098
1099 -- Defaulting Manual Rebuild Flag
1100
1101 IF p_eam_wo_rec.rebuild_item_id is not null AND
1102 (p_eam_wo_rec.manual_rebuild_flag IS NULL OR
1103 p_eam_wo_rec.manual_rebuild_flag = FND_API.G_MISS_CHAR)
1104 THEN
1105 x_eam_wo_rec.manual_rebuild_flag := 'Y';
1106
1107 END IF;
1108
1109
1110 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting scheduled start date and completion date from the PM Suggested Dates'); END IF;
1111
1112 -- Defaulting Scheduled Dates from the PM Suggested Dates
1113
1114 IF (p_eam_wo_rec.pm_suggested_start_date IS NOT NULL AND
1115 p_eam_wo_rec.pm_suggested_start_date <> FND_API.G_MISS_DATE) OR
1116 (p_eam_wo_rec.pm_suggested_end_date IS NOT NULL AND
1117 p_eam_wo_rec.pm_suggested_end_date <> FND_API.G_MISS_DATE)
1118 THEN
1119 x_eam_wo_rec.requested_start_date := p_eam_wo_rec.pm_suggested_start_date;
1120 x_eam_wo_rec.due_date := p_eam_wo_rec.pm_suggested_end_date;
1121
1122 END IF;
1123
1124 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting scheduled start date and completion date'); END IF;
1125
1126
1127 -- Defaulting Requested Start Date
1128
1129 IF p_eam_wo_rec.scheduled_start_date IS NOT NULL AND
1130 p_eam_wo_rec.scheduled_start_date <> FND_API.G_MISS_DATE AND
1131 p_eam_wo_rec.requested_start_date IS NULL AND
1132 p_eam_wo_rec.due_date IS NULL and
1133 x_eam_wo_rec.requested_start_date IS NULL and
1134 x_eam_wo_rec.due_date IS NULL
1135 THEN
1136 x_eam_wo_rec.requested_start_date := p_eam_wo_rec.scheduled_start_date;
1137
1138 END IF;
1139
1140 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('EAM_WO_DEFAULT_PVT.Attribute_Defaulting : Defaulting material_issue_by_mo flag'); END IF;
1141
1142 -- Defaulting the MATERIAL_ISSUE_BY_MO flag
1143
1144 IF p_eam_wo_rec.material_issue_by_mo IS NULL OR
1145 p_eam_wo_rec.material_issue_by_mo = FND_API.G_MISS_CHAR
1146 THEN
1147 select nvl(material_issue_by_mo,'N')
1148 into x_eam_wo_rec.material_issue_by_mo
1149 from wip_eam_parameters
1150 where organization_id = p_eam_wo_rec.organization_id;
1151 END IF;
1152
1153 -- Defaulting the job_quantity
1154
1155 IF p_eam_wo_rec.job_quantity IS NULL OR
1156 p_eam_wo_rec.job_quantity = FND_API.G_MISS_NUM
1157 THEN
1158 x_eam_wo_rec.job_quantity := 1;
1159 END IF;
1160
1161 -- Defaulting the wip_supply_type
1162
1163 IF p_eam_wo_rec.wip_supply_type IS NULL OR
1164 p_eam_wo_rec.wip_supply_type = FND_API.G_MISS_NUM
1165 THEN
1166 x_eam_wo_rec.wip_supply_type := 7;
1167 END IF;
1168
1169
1170 -- Defaulting the FAILURE_CODE_REQUIRED flag .. bug # 4709084
1171
1172 IF p_eam_wo_rec.failure_code_required IS NULL OR
1173 p_eam_wo_rec.failure_code_required = FND_API.G_MISS_CHAR
1174 THEN
1175 x_eam_wo_rec.failure_code_required := 'N';
1176 END IF;
1177
1178
1179 l_out_eam_wo_rec := x_eam_wo_rec;
1180
1181 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
1182 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Attribute_Defaulting :Calling get_flex_eam_wo');
1183 END IF;
1184
1185 get_flex_eam_wo
1186 ( p_eam_wo_rec => x_eam_wo_rec
1187 , x_eam_wo_rec => l_out_eam_wo_rec
1188 );
1189 x_eam_wo_rec := l_out_eam_wo_rec;
1190
1191 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
1192 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Attribute_Defaulting : End================');
1193 END IF;
1194
1195 EXCEPTION
1196 WHEN OTHERS THEN
1197 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
1198 ( p_message_name => NULL
1199 , p_message_text => G_PKG_NAME || SQLERRM
1200 , x_mesg_token_Tbl => x_mesg_token_tbl
1201 );
1202
1203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1204
1205 END Attribute_Defaulting;
1206
1207
1208
1209
1210 PROCEDURE Conditional_Defaulting
1211 ( p_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
1212 , x_eam_wo_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
1213 , x_mesg_token_tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
1214 , x_return_status OUT NOCOPY VARCHAR2
1215 )
1216 IS
1217
1218 l_serial_number varchar2(30);
1219 l_inventory_item_id number;
1220 l_eam_item_type number;
1221
1222 BEGIN
1223 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
1224 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Conditional_Defaulting : Start================');
1225 END IF;
1226
1227 x_eam_wo_rec := p_eam_wo_rec;
1228 x_return_status := FND_API.G_RET_STS_SUCCESS;
1229
1230
1231 if (p_eam_wo_rec.maintenance_object_type = 3 and p_eam_wo_rec.maintenance_object_source = 1) then
1232
1233 select cii.serial_number
1234 , cii.inventory_item_id
1235 , msi.eam_item_type
1236 into l_serial_number
1237 , l_inventory_item_id
1238 , l_eam_item_type
1239 from csi_item_instances cii, mtl_system_items msi
1240 where cii.last_vld_organization_id = msi.organization_id
1241 and cii.inventory_item_id = msi.inventory_item_id
1242 and cii.instance_id = p_eam_wo_rec.maintenance_object_id;
1243
1244 if l_eam_item_type = 1 then
1245 x_eam_wo_rec.asset_number := l_serial_number;
1246 else
1247 x_eam_wo_rec.rebuild_serial_number := l_serial_number;
1248 end if;
1249
1250 elsif (p_eam_wo_rec.maintenance_object_type = 2) then
1251
1252 select inventory_item_id
1253 into x_eam_wo_rec.rebuild_item_id
1254 from mtl_system_items msi, mtl_parameters mp
1255 where msi.organization_id = mp.organization_id
1256 and mp.maint_organization_id = p_eam_wo_rec.organization_id
1257 and msi.inventory_item_id = p_eam_wo_rec.maintenance_object_id
1258 and rownum = 1;
1259
1260 end if;
1261
1262 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
1263 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Conditional_Defaulting : End================');
1264 END IF;
1265
1266 EXCEPTION
1267 WHEN OTHERS THEN
1268
1269 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
1270 ( p_message_name => NULL
1271 , p_message_text => G_PKG_NAME || SQLERRM
1272 , x_mesg_token_Tbl => x_mesg_token_tbl
1273 );
1274
1275 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1276
1277 END Conditional_Defaulting;
1278
1279
1280
1281 /******************************************************************
1282 * Procedure : Populate_Null_Columns
1283 * Parameters IN : Work Order column record
1284 * Old Work Order Column Record
1285 * Parameters OUT NOCOPY: Work Order column record after populating
1286 * Purpose : This procedure will look at the columns that the user
1287 * has not filled in and will assign those columns a
1288 * value from the old record.
1289 * This procedure is not called for CREATE
1290 ********************************************************************/
1291 PROCEDURE Populate_Null_Columns
1292 ( p_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
1293 , p_old_eam_wo_rec IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
1294 , x_eam_wo_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
1295 )
1296 IS
1297 BEGIN
1298 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
1299 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Populate_Null_Columns : Start================');
1300 END IF;
1301
1302 x_eam_wo_rec := p_eam_wo_rec;
1303 x_eam_wo_rec := p_eam_wo_rec;
1304
1305 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Processing null columns prior update'); END IF;
1306
1307
1308 IF p_eam_wo_rec.wip_entity_name IS NULL OR
1309 p_eam_wo_rec.wip_entity_name = FND_API.G_MISS_CHAR
1310 THEN
1311 x_eam_wo_rec.wip_entity_name := p_old_eam_wo_rec.wip_entity_name;
1312 END IF;
1313
1314 IF p_eam_wo_rec.description IS NULL
1315 THEN
1316 x_eam_wo_rec.description := p_old_eam_wo_rec.description;
1317 END IF;
1318
1319 IF p_eam_wo_rec.description = FND_API.G_MISS_CHAR
1320 THEN
1321 x_eam_wo_rec.description := NULL;
1322 END IF;
1323
1324 IF p_eam_wo_rec.asset_number IS NULL
1325 THEN
1326 x_eam_wo_rec.asset_number := p_old_eam_wo_rec.asset_number;
1327 END IF;
1328
1329 IF p_eam_wo_rec.asset_group_id IS NULL
1330 THEN
1331 x_eam_wo_rec.asset_group_id := p_old_eam_wo_rec.asset_group_id;
1332 END IF;
1333
1334 IF p_eam_wo_rec.rebuild_serial_number IS NULL
1335 THEN
1336 x_eam_wo_rec.rebuild_serial_number := p_old_eam_wo_rec.rebuild_serial_number;
1337 END IF;
1338
1339 IF p_eam_wo_rec.eam_linear_location_id IS NULL OR
1340 p_eam_wo_rec.eam_linear_location_id = FND_API.G_MISS_NUM
1341 THEN
1342 x_eam_wo_rec.eam_linear_location_id := p_old_eam_wo_rec.eam_linear_location_id;
1343 END IF;
1344
1345 IF p_eam_wo_rec.rebuild_item_id IS NULL
1346 THEN
1347 x_eam_wo_rec.rebuild_item_id := p_old_eam_wo_rec.rebuild_item_id;
1348 END IF;
1349
1350 --if FND_API.G_MISS_xx is passed then set values to NULL
1351 IF p_eam_wo_rec.asset_number = FND_API.G_MISS_CHAR
1352 THEN
1353 x_eam_wo_rec.asset_number := NULL;
1354 END IF;
1355
1356 IF p_eam_wo_rec.rebuild_serial_number = FND_API.G_MISS_CHAR
1357 THEN
1358 x_eam_wo_rec.rebuild_serial_number := NULL;
1359 END IF;
1360
1361 IF p_eam_wo_rec.asset_group_id = FND_API.G_MISS_NUM
1362 THEN
1363 x_eam_wo_rec.asset_group_id := NULL;
1364 END IF;
1365
1366 IF p_eam_wo_rec.rebuild_item_id = FND_API.G_MISS_NUM
1367 THEN
1368 x_eam_wo_rec.rebuild_item_id := NULL;
1369 END IF;
1370
1371 IF p_eam_wo_rec.class_code IS NULL OR
1372 p_eam_wo_rec.class_code = FND_API.G_MISS_CHAR
1373 THEN
1374 x_eam_wo_rec.class_code := p_old_eam_wo_rec.class_code;
1375 END IF;
1376
1377 IF p_eam_wo_rec.asset_activity_id IS NULL --OR p_eam_wo_rec.asset_activity_id = FND_API.G_MISS_NUM
1378 THEN
1379 x_eam_wo_rec.asset_activity_id := p_old_eam_wo_rec.asset_activity_id;
1380 END IF;
1381
1382 IF p_eam_wo_rec.asset_activity_id = FND_API.G_MISS_NUM THEN
1383 x_eam_wo_rec.asset_activity_id := NULL;
1384 END IF;
1385
1386
1387 IF p_eam_wo_rec.activity_type IS NULL
1388 THEN
1389 x_eam_wo_rec.activity_type := p_old_eam_wo_rec.activity_type;
1390 END IF;
1391
1392 IF p_eam_wo_rec.activity_type = FND_API.G_MISS_CHAR
1393 THEN
1394 x_eam_wo_rec.activity_type := NULL;
1395 END IF;
1396
1397 IF p_eam_wo_rec.activity_cause IS NULL
1398 THEN
1399 x_eam_wo_rec.activity_cause := p_old_eam_wo_rec.activity_cause;
1400 END IF;
1401
1402 IF p_eam_wo_rec.activity_cause = FND_API.G_MISS_CHAR
1403 THEN
1404 x_eam_wo_rec.activity_cause := NULL;
1405 END IF;
1406
1407 IF p_eam_wo_rec.activity_source IS NULL
1408 THEN
1409 x_eam_wo_rec.activity_source := p_old_eam_wo_rec.activity_source;
1410 END IF;
1411
1412 IF p_eam_wo_rec.activity_source = FND_API.G_MISS_CHAR
1413 THEN
1414 x_eam_wo_rec.activity_source := NULL;
1415 END IF;
1416
1417 IF p_eam_wo_rec.status_type IS NULL OR
1418 p_eam_wo_rec.status_type = FND_API.G_MISS_NUM
1419 THEN
1420 x_eam_wo_rec.status_type := p_old_eam_wo_rec.status_type;
1421 END IF;
1422
1423 IF p_eam_wo_rec.user_defined_status_id IS NULL OR
1424 p_eam_wo_rec.user_defined_status_id = FND_API.G_MISS_NUM
1425 THEN
1426 x_eam_wo_rec.user_defined_status_id := p_old_eam_wo_rec.user_defined_status_id;
1427 END IF;
1428
1429 IF p_eam_wo_rec.job_quantity IS NULL OR
1430 p_eam_wo_rec.job_quantity = FND_API.G_MISS_NUM
1431 THEN
1432 x_eam_wo_rec.job_quantity := p_old_eam_wo_rec.job_quantity;
1433 END IF;
1434
1435 IF p_eam_wo_rec.date_released IS NULL OR
1436 p_eam_wo_rec.date_released = FND_API.G_MISS_DATE
1437 THEN
1438 x_eam_wo_rec.date_released := p_old_eam_wo_rec.date_released;
1439 END IF;
1440
1441 IF p_eam_wo_rec.owning_department IS NULL
1442 THEN
1443 x_eam_wo_rec.owning_department := p_old_eam_wo_rec.owning_department;
1444 END IF;
1445
1446 IF p_eam_wo_rec.owning_department = FND_API.G_MISS_NUM
1447 THEN
1448 x_eam_wo_rec.owning_department := NULL;
1449 END IF;
1450
1451 IF p_eam_wo_rec.priority IS NULL
1452 THEN
1453 x_eam_wo_rec.priority := p_old_eam_wo_rec.priority;
1454 END IF;
1455
1456 IF p_eam_wo_rec.priority = FND_API.G_MISS_NUM
1457 THEN
1458 x_eam_wo_rec.priority := NULL;
1459 END IF;
1460
1461 IF p_eam_wo_rec.work_order_type IS NULL
1462 THEN
1463 x_eam_wo_rec.work_order_type := p_old_eam_wo_rec.work_order_type;
1464 END IF;
1465
1466 IF p_eam_wo_rec.work_order_type = FND_API.G_MISS_CHAR
1467 THEN
1468 x_eam_wo_rec.work_order_type := NULL;
1469 END IF;
1470
1471 -- Requested Start Date and Due date will have to be handled
1472 -- together since only one of them can be not null
1473 IF (p_eam_wo_rec.requested_start_date IS NULL OR
1474 p_eam_wo_rec.requested_start_date = FND_API.G_MISS_DATE) AND
1475 (p_eam_wo_rec.due_date IS NULL OR
1476 p_eam_wo_rec.due_date = FND_API.G_MISS_DATE)
1477 THEN
1478 x_eam_wo_rec.requested_start_date := p_old_eam_wo_rec.requested_start_date;
1479 x_eam_wo_rec.due_date := p_old_eam_wo_rec.due_date;
1480 END IF;
1481
1482
1483 /*
1484 -- PM Suggested Start Date and PM Suggested End date will have to be handled
1485 -- together since only one of them can be not null
1486 IF (p_eam_wo_rec.pm_suggested_start_date IS NULL OR
1487 p_eam_wo_rec.pm_suggested_start_date = FND_API.G_MISS_DATE) AND
1488 (p_eam_wo_rec.pm_suggested_end_date IS NULL OR
1489 p_eam_wo_rec.pm_suggested_end_date = FND_API.G_MISS_DATE)
1490 THEN
1491 x_eam_wo_rec.pm_suggested_start_date := p_old_eam_wo_rec.pm_suggested_start_date;
1492 x_eam_wo_rec.pm_suggested_end_date := p_old_eam_wo_rec.pm_suggested_end_date;
1493 END IF;
1494 */
1495
1496
1497 IF p_eam_wo_rec.pm_base_meter_reading IS NULL OR
1498 p_eam_wo_rec.pm_base_meter_reading = FND_API.G_MISS_NUM
1499 THEN
1500 x_eam_wo_rec.pm_base_meter_reading := p_old_eam_wo_rec.pm_base_meter_reading;
1501 END IF;
1502
1503 IF p_eam_wo_rec.pm_base_meter IS NULL OR
1504 p_eam_wo_rec.pm_base_meter = FND_API.G_MISS_NUM
1505 THEN
1506 x_eam_wo_rec.pm_base_meter := p_old_eam_wo_rec.pm_base_meter;
1507 END IF;
1508
1509
1510 IF p_eam_wo_rec.shutdown_type IS NULL
1511 THEN
1512 x_eam_wo_rec.shutdown_type := p_old_eam_wo_rec.shutdown_type;
1513 END IF;
1514
1515 IF p_eam_wo_rec.shutdown_type = FND_API.G_MISS_CHAR
1516 THEN
1517 x_eam_wo_rec.shutdown_type := NULL;
1518 END IF;
1519
1520 IF p_eam_wo_rec.firm_planned_flag IS NULL OR
1521 p_eam_wo_rec.firm_planned_flag = FND_API.G_MISS_NUM
1522 THEN
1523 x_eam_wo_rec.firm_planned_flag := p_old_eam_wo_rec.firm_planned_flag;
1524 END IF;
1525
1526 IF p_eam_wo_rec.issue_zero_cost_flag IS NULL OR
1527 p_eam_wo_rec.issue_zero_cost_flag = FND_API.G_MISS_CHAR
1528 THEN
1529 x_eam_wo_rec.issue_zero_cost_flag := p_old_eam_wo_rec.issue_zero_cost_flag;
1530 END IF;
1531
1532 IF p_eam_wo_rec.notification_required IS NULL OR
1533 p_eam_wo_rec.notification_required = FND_API.G_MISS_CHAR
1534 THEN
1535 x_eam_wo_rec.notification_required := p_old_eam_wo_rec.notification_required;
1536 END IF;
1537
1538 IF p_eam_wo_rec.tagout_required IS NULL OR
1539 p_eam_wo_rec.tagout_required = FND_API.G_MISS_CHAR
1540 THEN
1541 x_eam_wo_rec.tagout_required := p_old_eam_wo_rec.tagout_required;
1542 END IF;
1543
1544 IF p_eam_wo_rec.plan_maintenance IS NULL OR
1545 p_eam_wo_rec.plan_maintenance = FND_API.G_MISS_CHAR
1546 THEN
1547 x_eam_wo_rec.plan_maintenance := p_old_eam_wo_rec.plan_maintenance;
1548 END IF;
1549
1550 /* commented for bug 5346446
1551 IF p_eam_wo_rec.project_id IS NULL OR
1552 p_eam_wo_rec.project_id = FND_API.G_MISS_NUM
1553 THEN
1554 x_eam_wo_rec.project_id := p_old_eam_wo_rec.project_id;
1555 END IF;
1556
1557 IF p_eam_wo_rec.task_id IS NULL OR
1558 p_eam_wo_rec.task_id = FND_API.G_MISS_NUM
1559 THEN
1560 x_eam_wo_rec.task_id := p_old_eam_wo_rec.task_id;
1561 END IF;*/
1562
1563 /* Added for bug#5346446 Start */
1564 IF p_eam_wo_rec.project_id IS NULL THEN
1565 x_eam_wo_rec.project_id := p_old_eam_wo_rec.project_id;
1566 ELSIF p_eam_wo_rec.project_id = FND_API.G_MISS_NUM THEN
1567 x_eam_wo_rec.project_id := NULL;
1568 END IF;
1569
1570 IF p_eam_wo_rec.task_id IS NULL THEN
1571 x_eam_wo_rec.task_id := p_old_eam_wo_rec.task_id;
1572 ELSIF p_eam_wo_rec.task_id = FND_API.G_MISS_NUM THEN
1573 x_eam_wo_rec.task_id := NULL;
1574 END IF;
1575 /* Added for bug#5346446 End */
1576
1577 IF p_eam_wo_rec.end_item_unit_number IS NULL OR
1578 p_eam_wo_rec.end_item_unit_number = FND_API.G_MISS_NUM
1579 THEN
1580 x_eam_wo_rec.end_item_unit_number := p_old_eam_wo_rec.end_item_unit_number;
1581 END IF;
1582
1583 IF p_eam_wo_rec.schedule_group_id IS NULL OR
1584 p_eam_wo_rec.schedule_group_id = FND_API.G_MISS_NUM
1585 THEN
1586
1587 x_eam_wo_rec.schedule_group_id := p_old_eam_wo_rec.schedule_group_id;
1588 END IF;
1589
1590 IF p_eam_wo_rec.bom_revision_date IS NULL OR
1591 p_eam_wo_rec.bom_revision_date = FND_API.G_MISS_DATE
1592 THEN
1593 x_eam_wo_rec.bom_revision_date := p_old_eam_wo_rec.bom_revision_date;
1594 END IF;
1595
1596 IF p_eam_wo_rec.routing_revision_date IS NULL OR
1597 p_eam_wo_rec.routing_revision_date = FND_API.G_MISS_DATE
1598 THEN
1599 x_eam_wo_rec.routing_revision_date := p_old_eam_wo_rec.routing_revision_date;
1600 END IF;
1601
1602
1603 IF p_eam_wo_rec.alternate_routing_designator IS NULL OR
1604 p_eam_wo_rec.alternate_routing_designator = FND_API.G_MISS_CHAR
1605 THEN
1606 x_eam_wo_rec.alternate_routing_designator := p_old_eam_wo_rec.alternate_routing_designator;
1607 END IF;
1608
1609 IF p_eam_wo_rec.alternate_bom_designator IS NULL OR
1610 p_eam_wo_rec.alternate_bom_designator = FND_API.G_MISS_NUM
1611 THEN
1612 x_eam_wo_rec.alternate_bom_designator := p_old_eam_wo_rec.alternate_bom_designator;
1613 END IF;
1614
1615 IF p_eam_wo_rec.routing_revision IS NULL OR
1616 p_eam_wo_rec.routing_revision = FND_API.G_MISS_CHAR
1617 THEN
1618 x_eam_wo_rec.routing_revision := p_old_eam_wo_rec.routing_revision;
1619 END IF;
1620
1621 IF p_eam_wo_rec.bom_revision IS NULL OR
1622 p_eam_wo_rec.bom_revision = FND_API.G_MISS_CHAR
1623 THEN
1624 x_eam_wo_rec.bom_revision := p_old_eam_wo_rec.bom_revision;
1625 END IF;
1626
1627 IF p_eam_wo_rec.manual_rebuild_flag IS NULL OR
1628 p_eam_wo_rec.manual_rebuild_flag = FND_API.G_MISS_CHAR
1629 THEN
1630 x_eam_wo_rec.manual_rebuild_flag := p_old_eam_wo_rec.manual_rebuild_flag;
1631 END IF;
1632
1633 IF p_eam_wo_rec.material_account IS NULL OR
1634 p_eam_wo_rec.material_account = FND_API.G_MISS_NUM
1635 THEN
1636 x_eam_wo_rec.material_account := p_old_eam_wo_rec.material_account;
1637 END IF;
1638
1639 IF p_eam_wo_rec.material_overhead_account IS NULL OR
1640 p_eam_wo_rec.material_overhead_account = FND_API.G_MISS_NUM
1641 THEN
1642 x_eam_wo_rec.material_overhead_account := p_old_eam_wo_rec.material_overhead_account;
1643 END IF;
1644
1645 IF p_eam_wo_rec.resource_account IS NULL OR
1646 p_eam_wo_rec.resource_account = FND_API.G_MISS_NUM
1647 THEN
1648 x_eam_wo_rec.resource_account := p_old_eam_wo_rec.resource_account;
1649 END IF;
1650
1651 IF p_eam_wo_rec.outside_processing_account IS NULL OR
1652 p_eam_wo_rec.outside_processing_account = FND_API.G_MISS_NUM
1653 THEN
1654 x_eam_wo_rec.outside_processing_account := p_old_eam_wo_rec.outside_processing_account;
1655 END IF;
1656
1657 IF p_eam_wo_rec.material_variance_account IS NULL OR
1658 p_eam_wo_rec.material_variance_account = FND_API.G_MISS_NUM
1659 THEN
1660 x_eam_wo_rec.material_variance_account := p_old_eam_wo_rec.material_variance_account;
1661 END IF;
1662
1663 IF p_eam_wo_rec.resource_variance_account IS NULL OR
1664 p_eam_wo_rec.resource_variance_account = FND_API.G_MISS_NUM
1665 THEN
1666 x_eam_wo_rec.resource_variance_account := p_old_eam_wo_rec.resource_variance_account;
1667 END IF;
1668
1669 IF p_eam_wo_rec.outside_proc_variance_account IS NULL OR
1670 p_eam_wo_rec.outside_proc_variance_account = FND_API.G_MISS_NUM
1671 THEN
1672 x_eam_wo_rec.outside_proc_variance_account := p_old_eam_wo_rec.outside_proc_variance_account;
1673 END IF;
1674
1675 IF p_eam_wo_rec.std_cost_adjustment_account IS NULL OR
1676 p_eam_wo_rec.std_cost_adjustment_account = FND_API.G_MISS_NUM
1677 THEN
1678 x_eam_wo_rec.std_cost_adjustment_account := p_old_eam_wo_rec.std_cost_adjustment_account;
1679 END IF;
1680
1681 IF p_eam_wo_rec.overhead_account IS NULL OR
1682 p_eam_wo_rec.overhead_account = FND_API.G_MISS_NUM
1683 THEN
1684 x_eam_wo_rec.overhead_account := p_old_eam_wo_rec.overhead_account;
1685 END IF;
1686
1687 IF p_eam_wo_rec.overhead_variance_account IS NULL OR
1688 p_eam_wo_rec.overhead_variance_account = FND_API.G_MISS_NUM
1689 THEN
1690 x_eam_wo_rec.overhead_variance_account := p_old_eam_wo_rec.overhead_variance_account;
1691 END IF;
1692
1693 IF p_eam_wo_rec.scheduled_start_date IS NULL OR
1694 p_eam_wo_rec.scheduled_start_date = FND_API.G_MISS_DATE
1695 THEN
1696 x_eam_wo_rec.scheduled_start_date := p_old_eam_wo_rec.scheduled_start_date;
1697 END IF;
1698
1699 IF p_eam_wo_rec.scheduled_completion_date IS NULL OR
1700 p_eam_wo_rec.scheduled_completion_date = FND_API.G_MISS_DATE
1701 THEN
1702 x_eam_wo_rec.scheduled_completion_date := p_old_eam_wo_rec.scheduled_completion_date;
1703 END IF;
1704
1705 IF p_eam_wo_rec.common_bom_sequence_id IS NULL OR
1706 p_eam_wo_rec.common_bom_sequence_id = FND_API.G_MISS_NUM
1707 THEN
1708 x_eam_wo_rec.common_bom_sequence_id := p_old_eam_wo_rec.common_bom_sequence_id;
1709 END IF;
1710
1711 IF p_eam_wo_rec.common_routing_sequence_id IS NULL OR
1712 p_eam_wo_rec.common_routing_sequence_id = FND_API.G_MISS_NUM
1713 THEN
1714 x_eam_wo_rec.common_routing_sequence_id := p_old_eam_wo_rec.common_routing_sequence_id;
1715 END IF;
1716
1717 IF p_eam_wo_rec.source_line_id IS NULL OR
1718 p_eam_wo_rec.source_line_id = FND_API.G_MISS_NUM
1719 THEN
1720 x_eam_wo_rec.source_line_id := p_old_eam_wo_rec.source_line_id;
1721 END IF;
1722
1723 IF p_eam_wo_rec.source_code IS NULL OR
1724 p_eam_wo_rec.source_code = FND_API.G_MISS_CHAR
1725 THEN
1726 x_eam_wo_rec.source_code := p_old_eam_wo_rec.source_code;
1727 END IF;
1728
1729 IF p_eam_wo_rec.gen_object_id IS NULL OR
1730 p_eam_wo_rec.gen_object_id = FND_API.G_MISS_NUM
1731 THEN
1732 x_eam_wo_rec.gen_object_id := p_old_eam_wo_rec.gen_object_id;
1733 END IF;
1734
1735 IF p_eam_wo_rec.maintenance_object_id IS NULL OR
1736 p_eam_wo_rec.maintenance_object_id = FND_API.G_MISS_NUM
1737 THEN
1738 x_eam_wo_rec.maintenance_object_id := p_old_eam_wo_rec.maintenance_object_id;
1739 END IF;
1740
1741 IF p_eam_wo_rec.maintenance_object_type IS NULL OR
1742 p_eam_wo_rec.maintenance_object_type = FND_API.G_MISS_NUM
1743 THEN
1744 x_eam_wo_rec.maintenance_object_type := p_old_eam_wo_rec.maintenance_object_type;
1745 END IF;
1746
1747 IF p_eam_wo_rec.maintenance_object_source IS NULL OR
1748 p_eam_wo_rec.maintenance_object_source = FND_API.G_MISS_NUM
1749 THEN
1750 x_eam_wo_rec.maintenance_object_source := p_old_eam_wo_rec.maintenance_object_source;
1751 END IF;
1752
1753 --
1754 -- Populate Null or missng flex field columns
1755 --
1756 IF p_eam_wo_rec.attribute_category IS NULL
1757 THEN
1758 x_eam_wo_rec.attribute_category := p_old_eam_wo_rec.attribute_category;
1759
1760 END IF;
1761
1762 IF p_eam_wo_rec.attribute_category = FND_API.G_MISS_CHAR
1763 THEN
1764 x_eam_wo_rec.attribute_category := NULL;
1765 END IF;
1766
1767 IF p_eam_wo_rec.attribute1 IS NULL
1768 THEN
1769 x_eam_wo_rec.attribute1 := p_old_eam_wo_rec.attribute1;
1770 END IF;
1771
1772 IF p_eam_wo_rec.attribute1 = FND_API.G_MISS_CHAR
1773 THEN
1774 x_eam_wo_rec.attribute1 := NULL;
1775 END IF;
1776
1777 IF p_eam_wo_rec.attribute2 IS NULL
1778 THEN
1779 x_eam_wo_rec.attribute2 := p_old_eam_wo_rec.attribute2;
1780 END IF;
1781
1782 IF p_eam_wo_rec.attribute2 = FND_API.G_MISS_CHAR
1783 THEN
1784 x_eam_wo_rec.attribute2 := NULL;
1785 END IF;
1786
1787 IF p_eam_wo_rec.attribute3 IS NULL
1788 THEN
1789 x_eam_wo_rec.attribute3 := p_old_eam_wo_rec.attribute3;
1790 END IF;
1791
1792 IF p_eam_wo_rec.attribute3 = FND_API.G_MISS_CHAR
1793 THEN
1794 x_eam_wo_rec.attribute3 := NULL;
1795 END IF;
1796
1797 IF p_eam_wo_rec.attribute4 IS NULL
1798 THEN
1799 x_eam_wo_rec.attribute4 := p_old_eam_wo_rec.attribute4;
1800 END IF;
1801
1802 IF p_eam_wo_rec.attribute4 = FND_API.G_MISS_CHAR
1803 THEN
1804 x_eam_wo_rec.attribute4 := NULL;
1805 END IF;
1806
1807 IF p_eam_wo_rec.attribute5 IS NULL
1808 THEN
1809 x_eam_wo_rec.attribute5 := p_old_eam_wo_rec.attribute5;
1810 END IF;
1811
1812 IF p_eam_wo_rec.attribute5 = FND_API.G_MISS_CHAR
1813 THEN
1814 x_eam_wo_rec.attribute5 := NULL;
1815 END IF;
1816
1817 IF p_eam_wo_rec.attribute6 IS NULL
1818 THEN
1819 x_eam_wo_rec.attribute6 := p_old_eam_wo_rec.attribute6;
1820 END IF;
1821
1822 IF p_eam_wo_rec.attribute6 = FND_API.G_MISS_CHAR
1823 THEN
1824 x_eam_wo_rec.attribute6 := NULL;
1825 END IF;
1826
1827 IF p_eam_wo_rec.attribute7 IS NULL
1828 THEN
1829 x_eam_wo_rec.attribute7 := p_old_eam_wo_rec.attribute7;
1830 END IF;
1831
1832 IF p_eam_wo_rec.attribute7 = FND_API.G_MISS_CHAR
1833 THEN
1834 x_eam_wo_rec.attribute7 := NULL;
1835 END IF;
1836
1837 IF p_eam_wo_rec.attribute8 IS NULL
1838 THEN
1839 x_eam_wo_rec.attribute8 := p_old_eam_wo_rec.attribute8;
1840 END IF;
1841
1842 IF p_eam_wo_rec.attribute8 = FND_API.G_MISS_CHAR
1843 THEN
1844 x_eam_wo_rec.attribute8 := NULL;
1845 END IF;
1846
1847 IF p_eam_wo_rec.attribute9 IS NULL
1848 THEN
1849 x_eam_wo_rec.attribute9 := p_old_eam_wo_rec.attribute9;
1850 END IF;
1851
1852 IF p_eam_wo_rec.attribute9 = FND_API.G_MISS_CHAR
1853 THEN
1854 x_eam_wo_rec.attribute9 := NULL;
1855 END IF;
1856
1857 IF p_eam_wo_rec.attribute10 IS NULL
1858 THEN
1859 x_eam_wo_rec.attribute10 := p_old_eam_wo_rec.attribute10;
1860 END IF;
1861
1862 IF p_eam_wo_rec.attribute10 = FND_API.G_MISS_CHAR
1863 THEN
1864 x_eam_wo_rec.attribute10 := NULL;
1865 END IF;
1866
1867 IF p_eam_wo_rec.attribute11 IS NULL
1868 THEN
1869 x_eam_wo_rec.attribute11 := p_old_eam_wo_rec.attribute11;
1870 END IF;
1871
1872 IF p_eam_wo_rec.attribute11 = FND_API.G_MISS_CHAR
1873 THEN
1874 x_eam_wo_rec.attribute11 := NULL;
1875 END IF;
1876
1877 IF p_eam_wo_rec.attribute12 IS NULL
1878 THEN
1879 x_eam_wo_rec.attribute12 := p_old_eam_wo_rec.attribute12;
1880 END IF;
1881
1882 IF p_eam_wo_rec.attribute12 = FND_API.G_MISS_CHAR
1883 THEN
1884 x_eam_wo_rec.attribute12 := NULL;
1885 END IF;
1886
1887 IF p_eam_wo_rec.attribute13 IS NULL
1888 THEN
1889 x_eam_wo_rec.attribute13 := p_old_eam_wo_rec.attribute13;
1890 END IF;
1891
1892 IF p_eam_wo_rec.attribute13 = FND_API.G_MISS_CHAR
1893 THEN
1894 x_eam_wo_rec.attribute13 := NULL;
1895 END IF;
1896
1897 IF p_eam_wo_rec.attribute14 IS NULL
1898 THEN
1899 x_eam_wo_rec.attribute14 := p_old_eam_wo_rec.attribute14;
1900 END IF;
1901
1902 IF p_eam_wo_rec.attribute14 = FND_API.G_MISS_CHAR
1903 THEN
1904 x_eam_wo_rec.attribute14 := NULL;
1905 END IF;
1906
1907 IF p_eam_wo_rec.attribute15 IS NULL
1908 THEN
1909 x_eam_wo_rec.attribute15 := p_old_eam_wo_rec.attribute15;
1910 END IF;
1911
1912 IF p_eam_wo_rec.attribute15 = FND_API.G_MISS_CHAR
1913 THEN
1914 x_eam_wo_rec.attribute15 := NULL;
1915 END IF;
1916
1917 -- Added for bug 12690042
1918 IF p_eam_wo_rec.parent_wip_entity_id = FND_API.G_MISS_NUM OR
1919 p_eam_wo_rec.parent_wip_entity_id IS NULL
1920 THEN
1921 x_eam_wo_rec.parent_wip_entity_id := p_old_eam_wo_rec.parent_wip_entity_id;
1922 END IF;
1923
1924 -- MATERIAL_ISSUE_BY_MO flag
1925 IF p_eam_wo_rec.material_issue_by_mo = FND_API.G_MISS_CHAR OR
1926 p_eam_wo_rec.material_issue_by_mo IS NULL
1927 THEN
1928 x_eam_wo_rec.material_issue_by_mo := p_old_eam_wo_rec.material_issue_by_mo;
1929 END IF;
1930
1931 IF p_eam_wo_rec.pending_flag = FND_API.G_MISS_CHAR OR
1932 p_eam_wo_rec.pending_flag IS NULL
1933 THEN
1934 x_eam_wo_rec.pending_flag := p_old_eam_wo_rec.pending_flag;
1935 END IF;
1936
1937 IF p_eam_wo_rec.material_shortage_check_date = FND_API.G_MISS_DATE OR
1938 p_eam_wo_rec.material_shortage_check_date IS NULL
1939 THEN
1940 x_eam_wo_rec.material_shortage_check_date := p_old_eam_wo_rec.material_shortage_check_date;
1941 END IF;
1942
1943 IF p_eam_wo_rec.material_shortage_flag = FND_API.G_MISS_NUM OR
1944 p_eam_wo_rec.material_shortage_flag IS NULL
1945 THEN
1946 x_eam_wo_rec.material_shortage_flag := p_old_eam_wo_rec.material_shortage_flag;
1947 END IF;
1948
1949 IF p_eam_wo_rec.workflow_type = FND_API.G_MISS_NUM OR
1950 p_eam_wo_rec.workflow_type IS NULL
1951 THEN
1952 x_eam_wo_rec.workflow_type := p_old_eam_wo_rec.workflow_type;
1953 END IF;
1954
1955 IF p_eam_wo_rec.warranty_claim_status = FND_API.G_MISS_NUM OR
1956 p_eam_wo_rec.warranty_claim_status IS NULL
1957 THEN
1958 x_eam_wo_rec.warranty_claim_status := p_old_eam_wo_rec.warranty_claim_status;
1959 END IF;
1960
1961 IF p_eam_wo_rec.cycle_id = FND_API.G_MISS_NUM OR
1962 p_eam_wo_rec.cycle_id IS NULL
1963 THEN
1964 x_eam_wo_rec.cycle_id := p_old_eam_wo_rec.cycle_id;
1965 END IF;
1966
1967 IF p_eam_wo_rec.seq_id = FND_API.G_MISS_NUM OR
1968 p_eam_wo_rec.seq_id IS NULL
1969 THEN
1970 x_eam_wo_rec.seq_id := p_old_eam_wo_rec.seq_id;
1971 END IF;
1972
1973 IF p_eam_wo_rec.ds_scheduled_flag = FND_API.G_MISS_CHAR OR
1974 p_eam_wo_rec.ds_scheduled_flag IS NULL
1975 THEN
1976 x_eam_wo_rec.ds_scheduled_flag := p_old_eam_wo_rec.ds_scheduled_flag;
1977 END IF;
1978
1979 IF p_eam_wo_rec.assignment_complete = FND_API.G_MISS_CHAR OR
1980 p_eam_wo_rec.assignment_complete IS NULL
1981 THEN
1982 x_eam_wo_rec.assignment_complete := p_old_eam_wo_rec.assignment_complete;
1983 END IF;
1984
1985 IF p_eam_wo_rec.warranty_active = FND_API.G_MISS_NUM OR
1986 p_eam_wo_rec.warranty_active IS NULL
1987 THEN
1988 x_eam_wo_rec.warranty_active := p_old_eam_wo_rec.warranty_active;
1989 END IF;
1990
1991 -- Bug # 4709084 : Failure Analysis project.
1992
1993 IF p_eam_wo_rec.failure_code_required IS NULL
1994 THEN
1995 x_eam_wo_rec.failure_code_required := p_old_eam_wo_rec.failure_code_required;
1996 END IF;
1997
1998 IF p_eam_wo_rec.failure_code_required = FND_API.G_MISS_CHAR
1999 THEN
2000 x_eam_wo_rec.failure_code_required := 'N'; -- As NULL Is same as 'N'
2001 END IF;
2002
2003
2004 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('DEAM_WO_DEFAULT_PVT.Populate_Null_Columns : one processing null columns prior update'); END IF;
2005
2006 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN
2007 EAM_ERROR_MESSAGE_PVT.Write_Debug(to_char(sysdate,'DD-MON-YY HH:MI:SS')||' EAM_WO_DEFAULT_PVT.Populate_Null_Columns : End================');
2008 END IF;
2009
2010
2011 END Populate_Null_Columns;
2012
2013 END EAM_WO_DEFAULT_PVT;