DBA Data[Home] [Help]

PACKAGE BODY: APPS.ENG_DEFAULT_ECO

Source


1 PACKAGE BODY ENG_Default_Eco AS
2 /* $Header: ENGDECOB.pls 120.4.12020000.3 2012/09/10 08:09:57 jewen ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'ENG_Default_Eco';
7 
8 --  Package global used within the package.
9 
10 g_ECO_rec                     ENG_Eco_PUB.Eco_Rec_Type;
11 g_Unexp_ECO_Rec		      ENG_Eco_PUB.Eco_unexposed_Rec_Type;
12 
13 --  Get functions.
14 
15 FUNCTION Get_Responsible_Org
16 RETURN NUMBER
17 IS
18 l_profile_value NUMBER := NULL;
19 BEGIN
20 
21     IF fnd_profile.defined('ENG:ECO_DEPARTMENT')
22     THEN
23     	l_profile_value := fnd_profile.value('ENG:ECO_DEPARTMENT');
24     END IF;
25 
26     RETURN l_profile_value;
27 
28 END Get_Responsible_Org;
29 
30 FUNCTION Get_Change_Id
31 RETURN NUMBER
32 IS
33 l_change_id NUMBER := NULL;
34 BEGIN
35 
36     SELECT ENG_ENGINEERING_CHANGES_S.NEXTVAL
37     INTO l_change_id
38     FROM DUAL;
39 
40     RETURN l_change_id;
41 
42     EXCEPTION
43 
44         WHEN OTHERS THEN
45                 RETURN NULL;
46 
47 END Get_Change_Id;
48 
49 
50 PROCEDURE Get_Flex_Eco
51 ( p_ECO_rec		IN  ENG_ECO_PUB.ECO_Rec_Type
52 , x_ECO_rec 		OUT NOCOPY ENG_ECO_PUB.ECO_Rec_Type
53 )
54 IS
55 l_ECO_rec		ENG_Eco_PUB.Eco_Rec_Type := p_ECO_rec;
56 BEGIN
57 
58     --  In the future call Flex APIs for defaults
59 
60     IF l_ECO_rec.attribute7 = FND_API.G_MISS_CHAR THEN
61         l_ECO_rec.attribute7           := NULL;
62     END IF;
63 
64     IF l_ECO_rec.attribute8 = FND_API.G_MISS_CHAR THEN
65         l_ECO_rec.attribute8           := NULL;
66     END IF;
67 
68     IF l_ECO_rec.attribute9 = FND_API.G_MISS_CHAR THEN
69         l_ECO_rec.attribute9           := NULL;
70     END IF;
71 
72     IF l_ECO_rec.attribute10 = FND_API.G_MISS_CHAR THEN
73         l_ECO_rec.attribute10          := NULL;
74     END IF;
75 
76     IF l_ECO_rec.attribute11 = FND_API.G_MISS_CHAR THEN
77         l_ECO_rec.attribute11          := NULL;
78     END IF;
79 
80     IF l_ECO_rec.attribute12 = FND_API.G_MISS_CHAR THEN
81         l_ECO_rec.attribute12          := NULL;
82     END IF;
83 
84     IF l_ECO_rec.attribute13 = FND_API.G_MISS_CHAR THEN
85         l_ECO_rec.attribute13          := NULL;
86     END IF;
87 
88     IF l_ECO_rec.attribute14 = FND_API.G_MISS_CHAR THEN
89         l_ECO_rec.attribute14          := NULL;
90     END IF;
91 
92     IF l_ECO_rec.attribute15 = FND_API.G_MISS_CHAR THEN
93         l_ECO_rec.attribute15          := NULL;
94     END IF;
95 
96     IF l_ECO_rec.attribute_category = FND_API.G_MISS_CHAR THEN
97         l_ECO_rec.attribute_category   := NULL;
98     END IF;
99 
100     IF l_ECO_rec.attribute1 = FND_API.G_MISS_CHAR THEN
101         l_ECO_rec.attribute1           := NULL;
102     END IF;
103 
104     IF l_ECO_rec.attribute2 = FND_API.G_MISS_CHAR THEN
105         l_ECO_rec.attribute2           := NULL;
106     END IF;
107 
108     IF l_ECO_rec.attribute3 = FND_API.G_MISS_CHAR THEN
109         l_ECO_rec.attribute3           := NULL;
110     END IF;
111 
112     IF l_ECO_rec.attribute4 = FND_API.G_MISS_CHAR THEN
113         l_ECO_rec.attribute4           := NULL;
114     END IF;
115 
116     IF l_ECO_rec.attribute5 = FND_API.G_MISS_CHAR THEN
117         l_ECO_rec.attribute5           := NULL;
118     END IF;
119 
120     IF l_ECO_rec.attribute6 = FND_API.G_MISS_CHAR THEN
121         l_ECO_rec.attribute6           := NULL;
122     END IF;
123 
124     x_ECO_rec := l_ECO_rec;
125 
126 END Get_Flex_Eco;
127 
128 --  Procedure Attribute_Defaulting
129 
130 PROCEDURE Attribute_Defaulting
131 (   p_ECO_rec                       IN  ENG_Eco_PUB.Eco_Rec_Type
132 ,   p_Unexp_ECO_rec		    IN  ENG_Eco_PUB.Eco_unexposed_Rec_Type
133 ,   x_ECO_rec                       IN OUT NOCOPY ENG_Eco_PUB.Eco_Rec_Type
134 ,   x_Unexp_ECO_rec		    IN OUT NOCOPY ENG_Eco_PUB.Eco_unexposed_Rec_Type
135 ,   x_return_status		    OUT NOCOPY VARCHAR2
136 ,   x_Mesg_Token_Tbl		    OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
137 )
138 IS
139 l_process_name		VARCHAR2(30) := NULL;
140 l_err_text		VARCHAR2(240) := NULL;
141 l_Token_Tbl		Error_Handler.Token_Tbl_Type;
142 l_Mesg_Token_Tbl	Error_Handler.Mesg_Token_Tbl_Type;
143 
147        from  eng_change_statuses_vl
144 cursor status (p_change_order_type_id NUMBER
145 		    ) is
146        SELECT status_code ,status_type
148        where status_code in
149        (select status_code from  eng_lifecycle_statuses
150                         where entity_name='ENG_CHANGE_TYPE'
151                         and entity_id1 = p_change_order_type_id
152                         and sequence_number =
153                            (select min(sequence_number) from eng_lifecycle_statuses
154                             where entity_name='ENG_CHANGE_TYPE'
155                             and entity_id1 = p_change_order_type_id)
156        );
157 
158 
159 --Bug 13721297 set default value for priority_code
160 cursor priority_code(p_change_order_type_id NUMBER
161 			)is
162 			SELECT TypePriorityCodeEO.PRIORITY_CODE
163     FROM
164     ENG_CHANGE_TYPE_PRIORITIES TypePriorityCodeEO,
165     ENG_CHANGE_PRIORITIES WHERE
166     TypePriorityCodeEO.CHANGE_TYPE_ID = p_change_order_type_id AND
167     TypePriorityCodeEO.PRIORITY_CODE = ENG_CHANGE_PRIORITIES.ENG_CHANGE_PRIORITY_CODE
168     AND ENG_CHANGE_PRIORITIES.ORGANIZATION_ID=-1
169     AND ROWNUM=1
170     ORDER BY ENG_CHANGE_PRIORITY_CODE;
171 
172 --Bug 13721297 set default value for assignee
173 cursor assignee(p_change_order_type_id NUMBER
174 			)is
175 			select default_assignee_id,default_assignee_type
176 			      FROM ENG_CHANGE_ORDER_TYPES_VL
177 			      WHERE change_order_type_id=p_change_order_type_id
178 			      AND default_assignee_id IS NOT NULL;
179 
180 l_status status%ROWTYPE;
181 l_priority_code priority_code%ROWTYPE;
182 l_assignee assignee%ROWTYPE;
183 
184 BEGIN
185 
186     --  Initialize g_ECO_rec
187     g_ECO_rec := p_ECO_rec;
188     g_Unexp_ECO_rec := p_Unexp_ECO_rec;
189 
190     --  Default missing attributes.
191 
192     IF g_Unexp_ECO_rec.responsible_org_id IS NULL THEN
193 
194         g_Unexp_ECO_rec.responsible_org_id := Get_Responsible_Org;
195 
196     END IF;
197 
198 /*    IF g_Unexp_ECO_rec.status_type IS NULL THEN
199 
200     	-- Default to 'Open'
201 
202         g_Unexp_ECO_rec.status_type := 1;
203 
204     END IF; */
205 
206  --Bug 13721297 set default value for priority_code
207 		IF g_ECO_rec.plm_or_erp_change='PLM' AND (g_ECO_rec.priority_code IS NULL OR g_ECO_rec.priority_code=FND_API.G_MISS_CHAR) THEN
208 			OPEN priority_code(g_Unexp_ECO_rec.Change_Order_Type_Id);
209 			fetch priority_code into l_priority_code;
210 			IF priority_code%FOUND THEN
211 				g_ECO_rec.priority_code :=l_priority_code.PRIORITY_CODE;
212 			END IF;
213 			CLOSE priority_code;
214 		END IF;
215 	--Bug 13721297 set default value for assignee
216 	IF g_ECO_rec.plm_or_erp_change='PLM' AND (g_ECO_rec.assignee IS NULL OR g_ECO_rec.assignee=FND_API.G_MISS_CHAR) THEN
217 		OPEN assignee(g_Unexp_ECO_rec.Change_Order_Type_Id);
218 		fetch assignee into l_assignee;
219 		IF assignee%FOUND THEN
220 			g_Unexp_ECO_rec.assignee_id :=l_assignee.default_assignee_id;
221 			g_Unexp_ECO_rec.assignee_type :=l_assignee.default_assignee_type;
222 		ELSE
223 			SELECT person_id INTO g_Unexp_ECO_rec.assignee_id FROM EGO_PEOPLE_V WHERE user_name=Upper(FND_GLOBAL.USER_NAME);
224       g_Unexp_ECO_rec.assignee_type :='PERSON';
225 		END IF;
226 		CLOSE assignee;
227 	END IF;
228 
229     --11.5.10
230     IF g_ECO_rec.plm_or_erp_change='PLM' and g_Unexp_ECO_rec.status_code IS NULL THEN
231 
232        OPEN status(g_Unexp_ECO_rec.Change_Order_Type_Id);
233 	FETCH status INTO l_status;
234 	IF status%FOUND THEN
235   	   g_Unexp_ECO_rec.status_type := l_status.status_type;
236 	   g_Unexp_ECO_rec.status_code := l_status.status_code;
237 	ELSE
238   	   g_Unexp_ECO_rec.status_type := 1;
239 	   g_Unexp_ECO_rec.status_code := 1;
240 	END IF;
241 	CLOSE status;
242    ELSIF g_Unexp_ECO_rec.status_type IS NULL THEN
243         g_Unexp_ECO_rec.status_type := 1;
244         g_Unexp_ECO_rec.status_code := 1;
245     ELSIF g_Unexp_ECO_rec.status_code IS NULL -- Added for bug 3539102
246     THEN
247     	g_Unexp_ECO_rec.status_code := g_Unexp_ECO_rec.status_type;
248     END IF;
249 
250     --changed from g_Unexp_ECO_rec.initiation_date := SYSDATE to the follwing bug no:2738054
251 
252      g_Unexp_ECO_rec.initiation_date := nvl(g_Unexp_ECO_rec.initiation_date,SYSDATE);
253 
254 /*    IF g_Unexp_ECO_rec.cancellation_date IS NULL  AND
255        g_ECO_rec.status_type = 5
256     THEN
257     	g_Unexp_ECO_rec.cancellation_date := SYSDATE;
258     END IF;
259 */
260 
261 /*    IF g_unexp_eco_rec.project_id = FND_API.G_MISS_NUM
262     THEN
263 	g_unexp_eco_rec.project_id := NULL;
264     END IF;
265 
266     IF g_unexp_eco_rec.task_id = FND_API.G_MISS_NUM
267     THEN
268         g_unexp_eco_rec.task_id := NULL;
269     END IF;
270 */
271     /* Added by MK on 11/29/00 Bug #1508078
272     -- Defaulting hierarchy_flag and organization_hierarchy
273     --
274     IF g_ECO_rec.hierarchy_flag IS NULL OR
275        g_ECO_rec.hierarchy_flag = FND_API.G_MISS_NUM
276     THEN
277        g_ECO_rec.hierarchy_flag := 2 ; -- 2 : No
278     END IF;
279     */
280 
281     IF g_ECO_rec.organization_hierarchy = FND_API.G_MISS_CHAR THEN
282        g_ECO_rec.organization_hierarchy :=  NULL ;
283     END IF;
284 
285 
286     -- Eng Change
287     IF  g_unexp_eco_rec.change_mgmt_type_code = FND_API.G_MISS_CHAR
288     OR  g_unexp_eco_rec.change_mgmt_type_code IS NULL
289     THEN
290         g_unexp_eco_rec.change_mgmt_type_code := Eng_Globals.G_CHANGE_ORDER ;
291     END IF;
292 
293     IF g_unexp_eco_rec.assignee_id = FND_API.G_MISS_NUM
294     THEN
298     IF  g_unexp_eco_rec.source_type_code = FND_API.G_MISS_CHAR
295         g_unexp_eco_rec.assignee_id := NULL;
296     END IF;
297 
299     OR  g_unexp_eco_rec.source_type_code IS NULL
300     THEN
301         g_unexp_eco_rec.source_type_code := NULL ;
302     END IF;
303 
304     IF g_unexp_eco_rec.source_id = FND_API.G_MISS_NUM
305     THEN
306         g_unexp_eco_rec.source_id := NULL;
307     END IF;
308 
309     IF g_ECO_rec.internal_use_only IS NULL OR
310        g_ECO_rec.internal_use_only = FND_API.G_MISS_NUM
311     THEN
312        g_ECO_rec.internal_use_only := 1 ; -- 1 : Yes
313     END IF;
314 
315     IF g_ECO_rec.need_by_date = FND_API.G_MISS_DATE THEN
316        g_ECO_rec.need_by_date :=  NULL ;
317     END IF;
318 
319     IF  g_ECO_rec.effort = FND_API.G_MISS_NUM
320     THEN
321        g_ECO_rec.effort := NULL ;
322     END IF;
323 
324     g_unexp_eco_rec.change_id := Get_Change_Id;
325 
326     --  Done defaulting attributes
327 
328     x_ECO_rec := g_ECO_rec;
329     x_Unexp_ECO_rec := g_Unexp_ECO_Rec;
330     x_return_status := 'S';
331 
332 END Attribute_Defaulting;
333 
334 --  Procedure Entity_Defaulting
335 
336 PROCEDURE Entity_Defaulting
337 (   p_ECO_rec                       IN  ENG_Eco_PUB.Eco_Rec_Type
338 ,   p_Unexp_ECO_rec		    IN  ENG_Eco_PUB.Eco_unexposed_Rec_Type
339 ,   p_Old_ECO_rec	 	    IN  ENG_Eco_PUB.Eco_Rec_Type
340 ,   p_Old_Unexp_ECO_rec		    IN  ENG_Eco_PUB.Eco_unexposed_Rec_Type
341 ,   p_control_rec                   IN  BOM_BO_PUB.Control_Rec_Type :=
342                                         BOM_BO_PUB.G_DEFAULT_CONTROL_REC
343 ,   x_ECO_rec                       IN OUT NOCOPY ENG_Eco_PUB.Eco_Rec_Type
344 ,   x_Unexp_ECO_rec		    IN OUT NOCOPY ENG_Eco_PUB.Eco_unexposed_Rec_Type
345 ,   x_return_status		    OUT NOCOPY VARCHAR2
346 ,   x_Mesg_Token_Tbl		    OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
347 )
348 IS
349 l_process_name		VARCHAR2(30) := NULL;
350 l_ECO_rec		ENG_Eco_PUB.Eco_Rec_Type := p_ECO_rec;
351 l_Unexp_ECO_rec		ENG_Eco_PUB.Eco_unexposed_Rec_Type := p_Unexp_ECO_rec;
352 l_processed		BOOLEAN := FALSE;
353 l_Token_Tbl		Error_Handler.Token_Tbl_Type;
354 l_Mesg_Token_Tbl	Error_Handler.Mesg_Token_Tbl_Type;
355 l_err_text		VARCHAR2(2000) := NULL;
356 
357 
358 -- Added for bug 3591945
359 l_sql_stmt		VARCHAR2(2000);
360 l_default_hierarchy_flag NUMBER;
361 
362 /* Cursor to fetch the default hierarchy set for the change header type */
363 CURSOR c_change_default_hierarchy (
364 		cp_change_type_id IN NUMBER,
365 		cp_organization_id IN NUMBER
366 		) IS
367 SELECT pos.organization_structure_id, pos.NAME
368 FROM per_organization_structures pos
369 WHERE pos.organization_structure_id in (SELECT hierarchy_id
370 		FROM ENG_TYPE_ORG_HIERARCHIES
371 		WHERE change_type_id = cp_change_type_id
372 		AND organization_id = cp_organization_id
373 		AND default_hierarchy_flag = 'Y');
374 BEGIN
375 
376     l_token_tbl(1).token_name := 'ECO_NAME';
377     l_token_tbl(1).token_value := p_ECO_Rec.ECO_Name;
378 
379     x_return_status := FND_API.G_RET_STS_SUCCESS;
380 
381     IF l_ECO_rec.priority_code = FND_API.G_MISS_CHAR
382     THEN
383     	l_ECO_rec.priority_code := NULL;
384     END IF;
385 
386     IF l_ECO_rec.approval_list_name = FND_API.G_MISS_CHAR
387     THEN
388     	l_ECO_rec.approval_list_name := NULL;
389     END IF;
390 
391     IF l_ECO_rec.ECO_department_name = FND_API.G_MISS_CHAR
392     THEN
393     	l_ECO_rec.ECO_Department_name := NULL;
394     END IF;
395 
396     IF l_Unexp_ECO_rec.status_type = FND_API.G_MISS_NUM
397     THEN
398     	l_Unexp_ECO_rec.status_type := NULL;
399     END IF;
400 
401     IF l_Unexp_ECO_rec.approval_status_type = FND_API.G_MISS_NUM
402     THEN
403     	l_Unexp_ECO_rec.approval_status_type := NULL;
404     END IF;
405 
406     IF l_ECO_rec.reason_code = FND_API.G_MISS_CHAR
407     THEN
408     	l_ECO_rec.reason_code := NULL;
409     END IF;
410 
411     IF l_ECO_rec.eng_implementation_cost = FND_API.G_MISS_NUM
412     THEN
413     	l_ECO_rec.eng_implementation_cost := NULL;
414     END IF;
415 
416     IF l_ECO_rec.mfg_implementation_cost = FND_API.G_MISS_NUM
417     THEN
418     	l_ECO_rec.mfg_implementation_cost := NULL;
419     END IF;
420 
421     IF l_ECO_rec.cancellation_comments = FND_API.G_MISS_CHAR
422     THEN
423     	l_ECO_rec.cancellation_comments := NULL;
424     END IF;
425 
426     IF l_ECO_rec.requestor = FND_API.G_MISS_CHAR
427     THEN
428     	l_ECO_rec.requestor := NULL;
429     END IF;
430 
431     IF l_ECO_rec.description = FND_API.G_MISS_CHAR
432     THEN
433     	l_ECO_rec.description := NULL;
434     END IF;
435 
436     /* Added by MK on 11/29/00 Bug #1508078
437     -- Entity Defaulting
438     -- Set null to unexposed data columns
439     --
440     */
441     IF l_Unexp_ECO_rec.initiation_date = FND_API.G_MISS_DATE
442     THEN
443         l_Unexp_ECO_rec.initiation_date     := NULL ;
444     END IF ;
445 
446     IF l_Unexp_ECO_rec.implementation_date = FND_API.G_MISS_DATE
447     THEN
448         l_Unexp_ECO_rec.implementation_date := NULL ;
449     END IF ;
450 
451     IF  l_Unexp_ECO_rec.cancellation_date = FND_API.G_MISS_DATE
452     THEN
453         l_Unexp_ECO_rec.cancellation_date   := NULL ;
454     END IF ;
455 
456     IF  l_ECO_rec.approval_date = FND_API.G_MISS_DATE
457     THEN
458         l_ECO_rec.approval_date       := NULL ;
459     END IF ;
460 
464     END IF ;
461     IF  l_ECO_rec.approval_request_date = FND_API.G_MISS_DATE
462     THEN
463         l_ECO_rec.approval_request_date := NULL ;
465 
466     -- Eng Change
467     IF l_ECO_rec.change_management_type = FND_API.G_MISS_CHAR
468     THEN
469         l_ECO_rec.change_management_type := NULL;
470     END IF;
471 
472     -- Eng Change
473     IF l_Unexp_ECO_rec.change_mgmt_type_code = FND_API.G_MISS_CHAR
474     THEN
475         l_Unexp_ECO_rec.change_mgmt_type_code := NULL;
476     END IF;
477 
478     -- Eng Change
479     IF l_ECO_rec.assignee = FND_API.G_MISS_CHAR
480     THEN
481         l_ECO_rec.assignee := NULL;
482     END IF;
483 
484 /*    -- Eng Change
485     IF l_ECO_rec.assignee_company_name = FND_API.G_MISS_CHAR
486     THEN
487         l_ECO_rec.assignee := NULL;
488     END IF;
489 */
490     -- Eng Change
491     IF l_Unexp_ECO_rec.assignee_id = FND_API.G_MISS_NUM
492     THEN
493         l_Unexp_ECO_rec.assignee_id := NULL;
494     END IF;
495 
496     IF l_ECO_rec.source_type = FND_API.G_MISS_CHAR
497     THEN
498         l_ECO_rec.source_type := NULL;
499     END IF;
500 
501     IF  l_Unexp_ECO_rec.source_type_code = FND_API.G_MISS_CHAR
502     THEN
503         l_Unexp_ECO_rec.source_type_code := NULL ;
504     END IF;
505 
506     IF l_ECO_rec.source_name = FND_API.G_MISS_CHAR
507     THEN
508         l_ECO_rec.source_name := NULL;
509     END IF;
510 
511     IF g_unexp_eco_rec.source_id = FND_API.G_MISS_NUM
512     THEN
513         g_unexp_eco_rec.source_id := NULL;
514     END IF;
515 
516     IF  g_ECO_rec.effort = FND_API.G_MISS_NUM
517     THEN
518        g_ECO_rec.effort := NULL ;
519     END IF;
520 
521     IF l_ECO_rec.internal_use_only IS NULL OR
522        l_ECO_rec.internal_use_only = FND_API.G_MISS_NUM
523     THEN
524        l_ECO_rec.internal_use_only := 1 ; -- 1 : Yes
525     END IF;
526 
527     IF l_ECO_rec.need_by_date = FND_API.G_MISS_DATE THEN
528        l_ECO_rec.need_by_date :=  NULL ;
529     END IF;
530 
531 
532     g_ECO_rec := l_ECO_rec;
533     Get_Flex_Eco
534     	 ( p_ECO_rec => g_ECO_rec
535     	 , x_ECO_rec => l_ECO_rec
536     	 );
537 
538         -- Initialize Workflow Process
539 
540     ENG_Globals.Init_Process_Name
541         ( g_Unexp_ECO_rec.change_order_type_id
542         , g_ECO_rec.priority_code
543         , g_Unexp_ECO_rec.organization_id);
544 
545     /*********************************************************************
546       -- If caller is the form, then perform this defaulting upon request.
547       -- If caller is the open interface, perform it for UPDATEs
548       -- Added by AS on 10/07/99 to facilitate ECO form re-architecture.
549     **********************************************************************/
550 
551     IF (p_control_rec.caller_type = 'FORM' AND
552 	NVL(p_control_rec.validation_controller, FND_API.G_MISS_CHAR) =
553 			'PROCESS')
554        OR
555        l_ECO_rec.transaction_type = ENG_Globals.G_OPR_UPDATE
556     THEN
557 	l_processed := FALSE;
558 
559 	IF p_control_rec.caller_type = 'OI'
560 	THEN
561 		ENG_Globals.Check_Approved_For_Process
562 		( p_change_notice => l_ECO_rec.ECO_name
563 		, p_organization_id => l_Unexp_ECO_rec.organization_id
564 		, x_processed => l_processed
565 		, x_err_text => l_err_text
566 		);
567 	ELSIF (p_control_rec.caller_type = 'FORM' AND
568                NVL(p_control_rec.validation_controller, FND_API.G_MISS_CHAR) =
569                         'PROCESS' AND
570                l_Unexp_ECO_rec.approval_status_type not in (1,3))
571 	THEN
572 		l_processed := TRUE;
573 	END IF;
574 
575 	IF l_processed
576     	THEN
577         	-- Issue warning if calling thru open interface. If calling
578 		-- thru form, user will have been asked for confirmation already
579 
580 		IF p_control_rec.caller_type = 'OI' AND
581 		   FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
582         	THEN
583         		Error_Handler.Add_Error_Token
584 	   			( p_Message_Name => 'ENG_APPROVE_WARNING'
585 	   			, p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
586 	   			, x_Mesg_Token_Tbl => l_Mesg_Token_Tbl
587 	   			, p_Token_Tbl => l_Token_Tbl
588 			        , p_message_type       => 'W'
589 	   			);
590         	END IF;
591 
592         	l_Unexp_ECO_rec.approval_status_type := 1;	-- Not Submitted For Approval
593         	l_ECO_rec.approval_request_date := NULL;
594         	l_ECO_rec.approval_date := NULL;
595 
596         	-- Set all "Scheduled" revised items to "Open"
597 
598 	        BEGIN
599 		        UPDATE eng_revised_items
600         		   SET 	status_type = 1,
601         			last_update_date = SYSDATE,
602 	        		last_updated_by = 'XXX',
603 		                last_update_login = 'XXX'
604 		         WHERE organization_id = p_Unexp_ECO_rec.organization_id
605         		   AND change_notice = p_ECO_rec.ECO_name
606 		           AND status_type = 4;
607 		EXCEPTION
608 			WHEN NO_DATA_FOUND THEN
609 				NULL;
610 			WHEN OTHERS THEN
611 				l_err_text := G_PKG_NAME || ' : (Entity Defaulting) '
612 						|| substrb(SQLERRM,1,200);
613             			Error_Handler.Add_Error_Token
614 	   				( p_Message_Text => l_err_text
615 	   				, p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
616 	   				, x_Mesg_Token_Tbl => x_Mesg_Token_Tbl
617 	   				);
618 		END;
619     	END IF;
620     END IF;
621 
622     IF l_Unexp_ECO_rec.cancellation_date IS NULL  AND
623        l_Unexp_ECO_rec.status_type = 5
624     THEN
628     l_processed := FALSE;
625         l_Unexp_ECO_rec.cancellation_date := SYSDATE;
626     END IF;
627 
629 
630     IF l_ECO_rec.transaction_type = ENG_GLOBALS.G_OPR_CREATE OR
631     (l_ECO_rec.priority_code <>
632     p_old_ECO_rec.priority_code OR
633     (l_ECO_rec.priority_code IS NULL AND
634     p_old_ECO_rec.priority_code IS NOT NULL) OR
635     (p_old_ECO_rec.priority_code IS NULL AND
636     l_ECO_rec.priority_code IS NOT NULL))
637     THEN
638 
639         -- If process found, null out Approval List and set other approval details accordingly.
640         -- Also issue warning.
641 
642         ENG_Globals.Init_Process_Name
643         	( p_change_order_type_id => l_Unexp_ECO_rec.change_order_type_id
644 		, p_priority_code	=> l_ECO_rec.priority_code
645 		, p_organization_id => l_Unexp_ECO_rec.organization_id
646 		);
647 
648     	--  Get new Workflow Process name
649 
650     	l_process_name := ENG_Globals.Get_Process_Name;
651 
652 	IF l_process_name IS NOT NULL
653 	THEN
654 	    l_Unexp_ECO_rec.approval_list_id := NULL;
655 	    l_ECO_rec.approval_request_date := NULL;
656 	    l_ECO_rec.approval_date := NULL;
657 	    l_Unexp_ECO_rec.approval_status_type := 1;	-- Not Submitted for Approval
658 
659 	    IF p_control_rec.caller_type = 'OI' AND
660 	       FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
661             THEN
662         	Error_Handler.Add_Error_Token
663 	   			( p_Message_Name => 'ENG_APPROV_DETAILS_CHANGED'
664 	   			, p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
665 	   			, x_Mesg_Token_Tbl => l_Mesg_Token_Tbl
666 	   			, p_Token_Tbl => l_Token_Tbl
667 				, p_message_type       => 'W'
668 	   			);
669 	    END IF;
670         END IF;
671         l_processed := TRUE;
672     END IF;
673 
674     IF l_ECO_rec.transaction_type = ENG_GLOBALS.G_OPR_CREATE OR
675     (l_Unexp_ECO_rec.change_order_type_id <>
676     p_old_Unexp_ECO_rec.change_order_type_id OR
677     (l_Unexp_ECO_rec.change_order_type_id IS NULL AND
678     p_old_Unexp_ECO_rec.change_order_type_id IS NOT NULL))
679     THEN
680 	IF l_processed
681 	THEN
682 	    NULL;
683 	ELSE
684 
685     	    --  Get new Workflow Process name
686 
687             ENG_Globals.Init_Process_Name
688             	( p_change_order_type_id => l_Unexp_ECO_rec.change_order_type_id
689 	  	, p_priority_code	=> l_ECO_rec.priority_code
690 		, p_organization_id => l_Unexp_ECO_rec.organization_id
691 		);
692 
693     	    l_process_name := ENG_Globals.Get_Process_Name;
694 
695             -- If process found, null out Approval List and set other approval details accordingly.
696             -- Also issue warning.
697 
698 	    IF l_process_name IS NOT NULL
699 	    THEN
700 	    	l_Unexp_ECO_rec.approval_list_id := NULL;
701 	    	l_ECO_rec.approval_request_date := NULL;
702 	    	l_ECO_rec.approval_date := NULL;
703 	    	l_Unexp_ECO_rec.approval_status_type := 1;	-- Not Submitted for Approval
704 
705 	    	IF p_control_rec.caller_type = 'OI' AND
706 		   FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
707             	THEN
708         	Error_Handler.Add_Error_Token
709 	   			( p_Message_Name => 'ENG_APPROV_DETAILS_CHANGED'
710 	   			, p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
711 	   			, x_Mesg_Token_Tbl => l_Mesg_Token_Tbl
712 	   			, p_Token_Tbl => l_Token_Tbl
713 				, p_message_type       => 'W'
714 	   			);
715 	    	END IF;
716 	    END IF;
717         END IF;
718     END IF;
719 
720   IF l_ECO_rec.transaction_type = ENG_GLOBALS.G_OPR_CREATE OR
721     (l_Unexp_ECO_rec.approval_list_id <>
722     p_old_Unexp_ECO_rec.approval_list_id OR
723     (l_Unexp_ECO_rec.approval_list_id IS NULL AND
724     p_old_Unexp_ECO_rec.approval_list_id IS NOT NULL) OR
725     (p_old_Unexp_ECO_rec.approval_list_id IS NULL AND
726     l_Unexp_ECO_rec.approval_list_id IS NOT NULL))
727     THEN
728 
729  	-- No approval list or workflow process
730 
731 	IF l_Unexp_ECO_rec.approval_status_type IS NULL AND
732 	   l_process_name IS NULL AND
733 	   l_Unexp_ECO_rec.approval_list_id IS NULL
734 	THEN
735  	  -- Changed to Not Submitted For Approval ,as a part of Approval Status Changes
736 	  /* Fix for bug 6413814 - Approval Status should be
737                            - 'Not Submitted For Approval' for PLM COs
738                            - 'Approved' for ERP ECOs
739              Added an If-Else condition to check for plm_or_erp_change column.
740           */
741           If nvl(l_ECO_rec.plm_or_erp_change,'PLM') = 'PLM' Then
742              l_Unexp_ECO_rec.approval_status_type := 1;
743              l_ECO_rec.approval_date := NULL;
744           Else  /* for ERP Ecos*/
745 	     l_Unexp_ECO_rec.approval_status_type := 5;  --Bug 5904664
746 	      l_ECO_rec.approval_date := SYSDATE;    	   --Bug 5904664
747 	  END IF;
748      END IF;
749 
750 
751  	-- Approval list or (workflow process and not(Approval Requested))
752 
753 	IF l_Unexp_ECO_rec.approval_status_type IS NULL AND
754 	   ((l_process_name IS NOT NULL AND
755 	     NVL(p_old_Unexp_ECO_rec.approval_status_type, 0) <> 3)
756 	    OR
757 	    l_Unexp_ECO_rec.approval_list_id IS NOT NULL)
758 	THEN
759 		l_Unexp_ECO_rec.approval_status_type := 1;
760 		l_ECO_rec.approval_date := NULL;
761 		l_ECO_rec.approval_request_date := NULL;
762         END IF;
763 
764     END IF;
765 
766     IF l_ECO_rec.transaction_type = ENG_GLOBALS.G_OPR_CREATE OR
767     (l_Unexp_ECO_rec.approval_status_type <>
771     (p_old_Unexp_ECO_rec.approval_status_type IS NULL AND
768     p_old_Unexp_ECO_rec.approval_status_type OR
769     (l_Unexp_ECO_rec.approval_status_type IS NULL AND
770     p_old_Unexp_ECO_rec.approval_status_type IS NOT NULL) OR
772     l_Unexp_ECO_rec.approval_status_type IS NOT NULL))
773     THEN
774 
775     	-- No Workflow Process or approval list id
776 
777     	IF l_process_name IS NULL AND
778     	   l_Unexp_ECO_rec.approval_list_id IS NULL AND
779     	   l_Unexp_ECO_rec.approval_status_type IS NULL
780     	THEN
781 	-- Changed to Not Submitted For Approval ,as a part of Approval Status Changes
782 	/* Fix for bug 6413814 - Approval Status should be
783                            - 'Not Submitted For Approval' for PLM COs
784                            - 'Approved' for ERP ECOs
785             Added an If-Else condition to check for plm_or_erp_change column.
786         */
787 
788             If nvl(l_ECO_rec.plm_or_erp_change,'PLM') = 'PLM' Then
789               l_Unexp_ECO_rec.approval_status_type := 1;
790               l_ECO_rec.approval_date := NULL;
791             Else  /* for ERP Ecos*/
792 	      l_Unexp_ECO_rec.approval_status_type := 5;    	  --Bug 5904664
793     	      l_ECO_rec.approval_date := SYSDATE;			  --Bug 5904664
794             END IF;
795     	END IF;
796 
797     	-- Approval requested
798 
799     	IF l_Unexp_ECO_rec.approval_status_type = 3
800     	THEN
801     		l_ECO_rec.approval_request_date := SYSDATE;
802     		l_ECO_rec.approval_date := NULL;
803     	END IF;
804 
805     	-- Approved
806 
807     	IF l_Unexp_ECO_rec.approval_status_type = 5
808     	THEN
809     		l_ECO_rec.approval_date := SYSDATE;
810     	ELSE
811     		l_ECO_rec.approval_date := NULL;
812     	END IF;
813 
814     	-- Not Submitted for Approval or Ready to Approve
815 
816     	IF l_Unexp_ECO_rec.approval_status_type IN (1,2)
817     	THEN
818     		l_ECO_rec.approval_request_date := NULL;
819     	END IF;
820 
821     END IF;
822 
823 
824     /* Added by MK on 11/29/00 Bug #1508078
825     -- Entity Defaulting hierarchy_flag and organization_hierarchy
826     --
827     IF l_ECO_rec.hierarchy_flag IS NULL OR
828        l_ECO_rec.hierarchy_flag = FND_API.G_MISS_NUM
829     THEN
830            l_ECO_rec.hierarchy_flag := 2 ; -- 2 : No
831     END IF ;
832 
833     IF l_ECO_rec.hierarchy_flag <> 1
834     THEN
835            l_ECO_rec.organization_hierarchy := NULL ;
836     END IF ;
837     */
838 
839     IF l_ECO_rec.organization_hierarchy = FND_API.G_MISS_CHAR
840     THEN
841            l_ECO_rec.organization_hierarchy := NULL ;
842     END IF ;
843 
844     -- Changes for bug 3591945
845     -- Set the default hierarchy defined at the change type, if any.
846 
847     IF l_ECO_rec.organization_hierarchy IS NULL
848        AND l_ECO_rec.plm_or_erp_change = 'PLM'
849        AND l_ECO_rec.transaction_type = ENG_GLOBALS.G_OPR_CREATE
850     THEN
851     	l_sql_stmt := 'SELECT 1
852 			FROM AK_CUSTOM_REGION_ITEMS AK_ITEMS, ENG_ATTRIBUTES_SECTIONS_TL ENG_ATTRIBUTES,
853 			     ENG_ATTRIBUTES_SECTIONS_B ENG_ATTRIBUTES_B, EGO_CUSTOMIZATION_EXT  ATTRIBUTE_EXT
854 			WHERE
855 			     AK_ITEMS.ATTRIBUTE_CODE = ENG_ATTRIBUTES.ATTRIBUTE_SECTION_CODE
856 			     AND  ENG_ATTRIBUTES_B.ATTRIBUTE_SECTION_CODE = ENG_ATTRIBUTES.ATTRIBUTE_SECTION_CODE
857 			     AND ENG_ATTRIBUTES_B.ATTRIBUTE_SECTION_FLAG= ''A''
858 			     AND AK_ITEMS.PROPERTY_NAME= ''DISPLAY_SEQUENCE''
859 			     AND AK_ITEMS.CUSTOMIZATION_CODE=ATTRIBUTE_EXT.CUSTOMIZATION_CODE
860 			     AND ATTRIBUTE_EXT.CLASSIFICATION1 =:1
861 			     AND ATTRIBUTE_EXT.CLASSIFICATION2 =  :2
862 			     AND ATTRIBUTE_EXT.REGION_CODE = ''ENG_ADMIN_CONFIGURATIONS''
863 			     AND ATTRIBUTE_EXT.REGION_APPLICATION_ID = ''703''	 AND ENG_ATTRIBUTES.language = USERENV(''lang'')
864 			     AND AK_ITEMS.ATTRIBUTE_CODE =  ''ORGANIZATION_HIERARCHY''	';
865 	BEGIN
866 		l_default_hierarchy_flag := 2;
867 		EXECUTE IMMEDIATE l_sql_stmt INTO l_default_hierarchy_flag USING l_Unexp_ECO_rec.Change_Mgmt_Type_Code, l_Unexp_ECO_rec.Change_Order_Type_Id;
868 	EXCEPTION
869 	WHEN OTHERS THEN
870 		l_default_hierarchy_flag := 2;
871 	END;
872 	IF (l_default_hierarchy_flag = 1)
873 	THEN
874 		OPEN c_change_default_hierarchy(l_Unexp_ECO_rec.Change_Order_Type_Id, l_Unexp_ECO_rec.Organization_Id);
875 		FETCH c_change_default_hierarchy INTO l_Unexp_ECO_rec.Hierarchy_Id, l_ECO_rec.organization_hierarchy;
876 		CLOSE c_change_default_hierarchy;
877 	END IF;
878     END IF;
879     -- End changes for bug 3591945
880    -- Load out record
881 
882    x_ECO_rec := l_ECO_rec;
883    x_Unexp_ECO_rec := l_Unexp_ECO_rec;
884    x_Mesg_Token_Tbl := l_Mesg_Token_Tbl;
885 END Entity_Defaulting;
886 
887 --  Procedure Populate_NULL_Columns
888 
889 PROCEDURE Populate_NULL_Columns
890 (   p_ECO_rec                       IN  ENG_Eco_PUB.Eco_Rec_Type
891 ,   p_Unexp_ECO_rec		    IN  ENG_Eco_PUB.Eco_unexposed_Rec_Type
892 ,   p_Old_ECO_rec	 	    IN  ENG_Eco_PUB.Eco_Rec_Type
893 ,   p_Old_Unexp_ECO_rec		    IN  ENG_Eco_PUB.Eco_unexposed_Rec_Type
894 ,   x_ECO_rec                       IN OUT NOCOPY ENG_Eco_PUB.Eco_Rec_Type
895 ,   x_Unexp_ECO_rec		    IN OUT NOCOPY ENG_Eco_PUB.Eco_unexposed_Rec_Type
896 )
897 IS
898 l_ECO_rec               ENG_Eco_PUB.Eco_Rec_Type := p_ECO_rec;
899 l_Unexp_ECO_rec		ENG_Eco_PUB.Eco_unexposed_Rec_Type := p_Unexp_ECO_rec;
900 BEGIN
901 
902     l_Unexp_ECO_rec.initiation_date := p_old_Unexp_ECO_rec.initiation_date;
906     l_ECO_rec.approval_request_date := p_old_ECO_rec.approval_request_date;
903     l_Unexp_ECO_rec.implementation_date := p_old_Unexp_ECO_rec.implementation_date;
904     l_Unexp_ECO_rec.cancellation_date := p_old_Unexp_ECO_rec.cancellation_date;
905     l_ECO_rec.approval_date := p_old_ECO_rec.approval_date;
907 
908     IF l_Unexp_ECO_rec.requestor_id IS NULL
909     THEN
910    	l_Unexp_ECO_rec.requestor_id := p_Old_Unexp_ECO_rec.requestor_id;
911     END IF;
912 
913     IF l_Unexp_ECO_rec.responsible_org_id IS NULL
914     THEN
915    	l_Unexp_ECO_rec.responsible_org_id := p_Old_Unexp_ECO_rec.responsible_org_id;
916     END IF;
917 
918     IF l_Unexp_ECO_rec.approval_list_id IS NULL
919     THEN
920    	l_Unexp_ECO_rec.approval_list_id := p_Old_Unexp_ECO_rec.approval_list_id;
921     END IF;
922 
923    IF l_Unexp_ECO_rec.change_order_type_id IS NULL
924     THEN
925    	l_Unexp_ECO_rec.change_order_type_id := p_Old_Unexp_ECO_rec.change_order_type_id;
926     END IF;
927 
928     IF l_ECO_rec.attribute7 IS NULL THEN
929         l_ECO_rec.attribute7 := p_old_ECO_rec.attribute7;
930     END IF;
931 
932     IF l_ECO_rec.attribute8 IS NULL THEN
933         l_ECO_rec.attribute8 := p_old_ECO_rec.attribute8;
934     END IF;
935 
936     IF l_ECO_rec.attribute9 IS NULL THEN
937         l_ECO_rec.attribute9 := p_old_ECO_rec.attribute9;
938     END IF;
939 
940     IF l_ECO_rec.attribute10 IS NULL THEN
941         l_ECO_rec.attribute10 := p_old_ECO_rec.attribute10;
942     END IF;
943 
944     IF l_ECO_rec.attribute11 IS NULL THEN
945         l_ECO_rec.attribute11 := p_old_ECO_rec.attribute11;
946     END IF;
947 
948     IF l_ECO_rec.attribute12 IS NULL THEN
949         l_ECO_rec.attribute12 := p_old_ECO_rec.attribute12;
950     END IF;
951 
952     IF l_ECO_rec.attribute13 IS NULL THEN
953         l_ECO_rec.attribute13 := p_old_ECO_rec.attribute13;
954     END IF;
955 
956     IF l_ECO_rec.attribute14 IS NULL THEN
957         l_ECO_rec.attribute14 := p_old_ECO_rec.attribute14;
958     END IF;
959 
960     IF l_ECO_rec.attribute15 IS NULL THEN
961         l_ECO_rec.attribute15 := p_old_ECO_rec.attribute15;
962     END IF;
963 
964     IF l_Unexp_ECO_rec.approval_status_type IS NULL THEN
965         l_Unexp_ECO_rec.approval_status_type := p_old_Unexp_ECO_rec.approval_status_type;
966     END IF;
967 
968     IF l_ECO_rec.description IS NULL THEN
969         l_ECO_rec.description := p_old_ECO_rec.description;
970     END IF;
971 
972     --Bug 6378121, Add status_code in the entity defaulting
973     IF l_Unexp_ECO_rec.status_code IS NULL THEN
974         l_Unexp_ECO_rec.status_code := p_old_Unexp_ECO_rec.status_code;
975     END IF;
976 
977     IF l_Unexp_ECO_rec.status_type IS NULL THEN
978         l_Unexp_ECO_rec.status_type := p_old_Unexp_ECO_rec.status_type;
979     END IF;
980 
981     IF l_ECO_rec.ECO_Department_Name IS NULL THEN
982         l_ECO_rec.ECO_Department_Name := p_old_ECO_rec.ECO_Department_Name;
983     END IF;
984 
985     IF l_ECO_rec.Approval_List_Name IS NULL THEN
986         l_ECO_rec.Approval_List_Name := p_old_ECO_rec.Approval_List_Name;
987     END IF;
988 
989     IF l_ECO_rec.Requestor IS NULL THEN
990         l_ECO_rec.Requestor := p_old_ECO_rec.Requestor;
991     END IF;
992 
993     IF l_ECO_rec.cancellation_comments IS NULL THEN
994         l_ECO_rec.cancellation_comments := p_old_ECO_rec.cancellation_comments;
995     END IF;
996 
997     IF l_ECO_rec.priority_code IS NULL THEN
998         l_ECO_rec.priority_code := p_old_ECO_rec.priority_code;
999     END IF;
1000 
1001     IF l_ECO_rec.reason_code IS NULL THEN
1002         l_ECO_rec.reason_code := p_old_ECO_rec.reason_code;
1003     END IF;
1004 
1005     IF l_ECO_rec.ENG_implementation_cost IS NULL THEN
1006         l_ECO_rec.ENG_implementation_cost := p_old_ECO_rec.ENG_implementation_cost;
1007     END IF;
1008 
1009     IF l_ECO_rec.MFG_implementation_cost IS NULL THEN
1010         l_ECO_rec.MFG_implementation_cost := p_old_ECO_rec.MFG_implementation_cost;
1011     END IF;
1012 
1013     IF l_ECO_rec.attribute_category IS NULL THEN
1014         l_ECO_rec.attribute_category := p_old_ECO_rec.attribute_category;
1015     END IF;
1016 
1017     IF l_ECO_rec.attribute1 IS NULL THEN
1018         l_ECO_rec.attribute1 := p_old_ECO_rec.attribute1;
1019     END IF;
1020 
1021     IF l_ECO_rec.attribute2 IS NULL THEN
1022         l_ECO_rec.attribute2 := p_old_ECO_rec.attribute2;
1023     END IF;
1024 
1025     IF l_ECO_rec.attribute3 IS NULL THEN
1026         l_ECO_rec.attribute3 := p_old_ECO_rec.attribute3;
1027     END IF;
1028 
1029     IF l_ECO_rec.attribute4 IS NULL THEN
1030         l_ECO_rec.attribute4 := p_old_ECO_rec.attribute4;
1031     END IF;
1032 
1033     IF l_ECO_rec.attribute5 IS NULL THEN
1034         l_ECO_rec.attribute5 := p_old_ECO_rec.attribute5;
1035     END IF;
1036 
1037     IF l_ECO_rec.attribute6 IS NULL THEN
1038         l_ECO_rec.attribute6 := p_old_ECO_rec.attribute6;
1039     END IF;
1040 
1041 
1042     /* Added by MK on 11/29/00 Bug #1508078
1043     -- Modified populating hierarchy_flag and organization_hierarchy
1044     -- when these are miss values
1045 
1046     IF l_ECO_rec.hierarchy_flag IS NULL
1047     OR l_ECO_rec.hierarchy_flag = FND_API.G_MISS_NUM
1048     THEN
1049         l_ECO_rec.hierarchy_flag := p_old_ECO_rec.hierarchy_flag;
1050     END IF;
1051     */
1052 
1053     IF l_ECO_rec.organization_hierarchy IS NULL
1054     OR l_ECO_rec.organization_hierarchy = FND_API.G_MISS_CHAR
1055     THEN
1056         l_ECO_rec.organization_hierarchy := p_old_ECO_rec.organization_hierarchy;
1057     END IF;
1058 
1059     --bug 10108394, populating hierarchy_id
1060     IF l_unexp_ECO_rec.hierarchy_id IS NULL
1061     OR l_unexp_ECO_rec.hierarchy_id = FND_API.G_MISS_NUM
1062     THEN
1063         l_unexp_ECO_rec.hierarchy_id := p_old_unexp_ECO_rec.hierarchy_id;
1064     END IF;
1065 
1066     -- Eng Change
1067     IF l_Unexp_ECO_rec.change_mgmt_type_code IS NULL
1068     OR l_Unexp_ECO_rec.change_mgmt_type_code = FND_API.G_MISS_CHAR
1069     THEN
1070        l_Unexp_ECO_rec.change_mgmt_type_code := p_Old_Unexp_ECO_rec.change_mgmt_type_code ;
1071     END IF;
1072 
1073     -- Eng Change
1074     -- User should be able to null out assignee
1075     IF l_Unexp_ECO_rec.assignee_id IS NULL
1076     OR ( l_Unexp_ECO_rec.assignee_id = FND_API.G_MISS_NUM
1077          AND p_Old_Unexp_ECO_rec.assignee_id IS NULL )
1078     THEN
1079        l_Unexp_ECO_rec.assignee_id := p_Old_Unexp_ECO_rec.assignee_id ;
1080     END IF;
1081 
1082 
1083    x_ECO_rec := l_ECO_rec;
1084    x_Unexp_ECO_rec := l_Unexp_ECO_rec;
1085 
1086 END Populate_NULL_Columns;
1087 
1088 END ENG_Default_Eco;