DBA Data[Home] [Help]

PACKAGE BODY: APPS.BOM_RTG_PUB

Source


1 PACKAGE BODY Bom_Rtg_Pub AS
2 /* $Header: BOMBRTGB.pls 120.6 2006/02/28 03:37:27 grastogi noship $*/
3 /***************************************************************************
4 --
5 --  Copyright (c) 2000 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      BOMBRTGB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package Bom_Rtg_Pub
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  02-AUG-00   Biao Zhang   Initial Creation
21 
22 --
23 -- Conversion from Routing BO Entity to Eco BO Entity
24 -- Conversion from Eco BO Entity to Routing BO Entity
25 --
26 ***************************************************************************/
27 
28         -- Operation Entity
29         /*****************************************************************
30         * Procedure     : Convert_RtgOp_To_ComOp
31         * Parameters IN : Operation Exposed Column Record
32         *                 Operation Unexposed Column Record
33         * Parameters OUT: Common Operation Exposed Exposed Column Record
34         *                 Common operation Unexposed Column Record
35         * Purpose       : This procedure will simply take the operation
36         *                 record and copy its values into the common operation
37         *                 record. Since the record definitions of ECO and routig
38         *                 records is different, this has to done on a field
39         *                 by field basis.
40         ******************************************************************/
41         -- From Routing To Common
42        PROCEDURE Convert_RtgOp_To_ComOp
43        (  p_rtg_operation_rec  IN  Bom_Rtg_Pub.Operation_Rec_Type
44         , p_rtg_op_unexp_rec   IN  Bom_Rtg_Pub.Op_Unexposed_Rec_Type
45         , x_com_operation_rec  IN OUT NOCOPY Bom_Rtg_Pub.Com_Operation_Rec_Type
46         , x_com_op_unexp_rec   IN OUT NOCOPY Bom_Rtg_Pub.Com_Op_Unexposed_Rec_Type
47        )
48        IS
49        BEGIN
50                 x_com_operation_rec.Eco_Name                   := NULL;
51                 x_com_operation_rec.Organization_Code          :=
52                                    p_rtg_operation_rec.Organization_Code;
53                 x_com_operation_rec.Revised_Item_Name          :=
54                                    p_rtg_operation_rec.Assembly_Item_Name;
55                 x_com_operation_rec.New_Revised_Item_Revision  := NULL;
56                 x_com_operation_rec.New_Routing_Revision       := NULL; -- Added by MK on 11/02/00
57                 x_com_operation_rec.From_End_Item_Unit_Number  := NULL; -- Added by MK on 11/02/00
58                 x_com_operation_rec.ACD_Type                   := NULL;
59                 x_com_operation_rec.Alternate_Routing_Code     :=
60                                    p_rtg_operation_rec.Alternate_Routing_Code;
61                 x_com_operation_rec.Operation_Sequence_Number  :=
62                                    p_rtg_operation_rec.Operation_Sequence_Number;
63                 x_com_operation_rec.Operation_Type             :=
64                                    p_rtg_operation_rec.Operation_Type;
65                 x_com_operation_rec.Start_Effective_Date       :=
66                                    p_rtg_operation_rec.Start_Effective_Date;
67                 x_com_operation_rec.New_Operation_Sequence_Number:=
68                              p_rtg_operation_rec.New_Operation_Sequence_Number;
69                 x_com_operation_rec.New_Start_Effective_Date   :=
70                                    p_rtg_operation_rec.New_Start_Effective_Date;
71                 x_com_operation_rec.Old_Operation_Sequence_Number := NULL;
72                 x_com_operation_rec.Old_Start_Effective_Date   := NULL;
73                 x_com_operation_rec.Standard_Operation_Code    :=
74                                    p_rtg_operation_rec.Standard_Operation_Code;
75                 x_com_operation_rec.Department_Code             :=
76                                    p_rtg_operation_rec.Department_Code;
77                 x_com_operation_rec.Op_Lead_Time_Percent       :=
78                                    p_rtg_operation_rec.Op_Lead_Time_Percent;
79                 x_com_operation_rec.Minimum_Transfer_Quantity  :=
80                                  p_rtg_operation_rec.Minimum_Transfer_Quantity;
81                 x_com_operation_rec.Count_Point_Type           :=
82                                    p_rtg_operation_rec.Count_Point_Type;
83                 x_com_operation_rec.Operation_Description      :=
84                                    p_rtg_operation_rec.Operation_Description;
85                 x_com_operation_rec.Disable_Date               :=
86                                    p_rtg_operation_rec.Disable_Date;
87                 x_com_operation_rec.Backflush_Flag             :=
88                                    p_rtg_operation_rec.Backflush_Flag;
89                 x_com_operation_rec.Option_Dependent_Flag      :=
90                                    p_rtg_operation_rec.Option_Dependent_Flag;
91                 x_com_operation_rec.Reference_Flag             :=
92                                    p_rtg_operation_rec.Reference_Flag;
93                 x_com_operation_rec.Process_Seq_Number         :=
94                                    p_rtg_operation_rec.Process_Seq_Number;
95                 x_com_operation_rec.Process_Code               :=
96                                    p_rtg_operation_rec.Process_Code;
97                 x_com_operation_rec.Line_Op_Seq_Number         :=
98                                    p_rtg_operation_rec.Line_Op_Seq_Number;
99                 x_com_operation_rec.Line_Op_Code               :=
100                                    p_rtg_operation_rec.Line_Op_Code;
101                 x_com_operation_rec.Yield                      :=
102                                    p_rtg_operation_rec.Yield ;
103                 x_com_operation_rec.Cumulative_Yield           :=
104                                    p_rtg_operation_rec.Cumulative_Yield;
105                 x_com_operation_rec.Reverse_CUM_Yield          :=
106                                    p_rtg_operation_rec.Reverse_CUM_Yield;
107                 --
108                 -- Following op calculated time columns are no longer used
109                 -- x_com_operation_rec.Calculated_Labor_Time      :=
110                 --                    p_rtg_operation_rec.Calculated_Labor_Time;
111                 -- x_com_operation_rec.Calculated_Machine_Time:=
112                 --                   p_rtg_operation_rec.Calculated_Machine_Time;
113                 -- x_com_operation_rec.Calculated_Elapsed_Time    :=
114                 --                   p_rtg_operation_rec.Calculated_Elapsed_Time;
115 
116                 x_com_operation_rec.User_Labor_Time            :=
117                                    p_rtg_operation_rec.User_Labor_Time;
118                 x_com_operation_rec.User_Machine_Time          :=
119                                    p_rtg_operation_rec.User_Machine_Time;
120                 x_com_operation_rec.Net_Planning_Percent       :=
121                                    p_rtg_operation_rec.Net_Planning_Percent;
122                 x_com_operation_rec.Include_In_Rollup          :=
123                                    p_rtg_operation_rec.Include_In_Rollup;
124                 x_com_operation_rec.Op_Yield_Enabled_Flag      :=
125                                    p_rtg_operation_rec.Op_Yield_Enabled_Flag;
126                 x_com_operation_rec.Cancel_Comments            := NULL;
127                 x_com_operation_rec.Attribute_category         :=
128                                    p_rtg_operation_rec.Attribute_category;
129                 x_com_operation_rec.Attribute1                 :=
130                                    p_rtg_operation_rec.Attribute1;
131                 x_com_operation_rec.Attribute2                 :=
132                                    p_rtg_operation_rec.Attribute2;
133                 x_com_operation_rec.Attribute3                 :=
134                                    p_rtg_operation_rec.Attribute3;
135                 x_com_operation_rec.Attribute4                 :=
136                                    p_rtg_operation_rec.Attribute4;
137                 x_com_operation_rec.Attribute5                 :=
138                                    p_rtg_operation_rec.Attribute5;
139                 x_com_operation_rec.Attribute6                 :=
140                                    p_rtg_operation_rec.Attribute6 ;
141                 x_com_operation_rec.Attribute7                 :=
142                                    p_rtg_operation_rec.Attribute7;
143                 x_com_operation_rec.Attribute8                 :=
144                                    p_rtg_operation_rec.Attribute8;
145                 x_com_operation_rec.Attribute9                 :=
146                                    p_rtg_operation_rec.Attribute9;
147                 x_com_operation_rec.Attribute10                :=
148                                    p_rtg_operation_rec.Attribute10;
149                 x_com_operation_rec.Attribute11                :=
150                                    p_rtg_operation_rec.Attribute11;
151                 x_com_operation_rec.Attribute12                :=
152                                    p_rtg_operation_rec.Attribute12;
153                 x_com_operation_rec.Attribute13                :=
154                                    p_rtg_operation_rec.Attribute13;
155                 x_com_operation_rec.Attribute14                :=
156                                    p_rtg_operation_rec.Attribute14;
157                 x_com_operation_rec.Attribute15                :=
158                                    p_rtg_operation_rec.Attribute15;
159                 x_com_operation_rec.Original_System_Reference  :=
160                            p_rtg_operation_rec.Original_System_Reference;
161                 x_com_operation_rec.Transaction_Type           :=
162                                    p_rtg_operation_rec.Transaction_Type;
163                 x_com_operation_rec.Return_Status              :=
164                                             p_rtg_operation_rec.Return_Status;
165                 x_com_operation_rec.Delete_Group_Name          :=
166                                    p_rtg_operation_rec.Delete_Group_Name;
167                 x_com_operation_rec.DG_Description             :=
168                                    p_rtg_operation_rec.DG_Description;
169                 -- Added by MK 04/10/2001 for eAM changes
170                 x_com_operation_rec.Shutdown_Type               :=
171                                    p_rtg_operation_rec.Shutdown_Type ;
172 		-- Added by deepu for Long description project
173 		x_com_operation_rec.Long_description            :=
174                                    p_rtg_operation_rec.Long_Description;
175 
176 
177 
178                 -- Similarly copy the unexposed record values into an ECO BO
179                 -- compatible record
180 
181                 x_com_op_unexp_rec.Revised_Item_Sequence_Id    := NULL;
182                 x_com_op_unexp_rec.Operation_Sequence_Id       :=
183                                     p_rtg_op_unexp_rec.Operation_Sequence_Id;
184                 x_com_op_unexp_rec.Old_Operation_Sequence_Id   :=NULL;
185                 x_com_op_unexp_rec.Routing_Sequence_Id         :=
186                                     p_rtg_op_unexp_rec.Routing_Sequence_Id;
187                 x_com_op_unexp_rec.Revised_Item_Id             :=
188                                     p_rtg_op_unexp_rec.Assembly_Item_Id;
189                 x_com_op_unexp_rec.Organization_Id             :=
190                                     p_rtg_op_unexp_rec.Organization_Id;
191                 x_com_op_unexp_rec.Standard_Operation_Id       :=
192                                     p_rtg_op_unexp_rec.Standard_Operation_Id;
193                 x_com_op_unexp_rec.Department_Id               :=
194                                     p_rtg_op_unexp_rec.Department_Id;
195                 x_com_op_unexp_rec.Process_Op_Seq_Id           :=
196                                     p_rtg_op_unexp_rec.Process_Op_Seq_Id;
197                 x_com_op_unexp_rec.Line_Op_Seq_Id              :=
198                                     p_rtg_op_unexp_rec.Line_Op_Seq_Id;
199                 x_com_op_unexp_rec.DG_Sequence_Id              :=
200                                     p_rtg_op_unexp_rec.DG_Sequence_Id;
201                 x_com_op_unexp_rec.DG_Description              :=
202                                     p_rtg_op_unexp_rec.DG_Description;
203                 x_com_op_unexp_rec.DG_New                      :=
204                                     p_rtg_op_unexp_rec.DG_New;
205 
206                 x_com_op_unexp_rec.Lowest_acceptable_yield         :=	-- Added for MES Enhancement
207                                     p_rtg_op_unexp_rec.Lowest_acceptable_yield;
208                 x_com_op_unexp_rec.Use_org_settings                :=
209                                     p_rtg_op_unexp_rec.Use_org_settings;
210                 x_com_op_unexp_rec.Queue_mandatory_flag            :=
211                                     p_rtg_op_unexp_rec.Queue_mandatory_flag;
212                 x_com_op_unexp_rec.Run_mandatory_flag              :=
213                                     p_rtg_op_unexp_rec.Run_mandatory_flag;
214                 x_com_op_unexp_rec.To_move_mandatory_flag          :=
215                                     p_rtg_op_unexp_rec.To_move_mandatory_flag;
216                 x_com_op_unexp_rec.Show_next_op_by_default         :=
217                                     p_rtg_op_unexp_rec.Show_next_op_by_default;
218                 x_com_op_unexp_rec.Show_scrap_code                 :=
219                                     p_rtg_op_unexp_rec.Show_scrap_code;
220                 x_com_op_unexp_rec.Show_lot_attrib                 :=
221                                     p_rtg_op_unexp_rec.Show_lot_attrib;
222                 x_com_op_unexp_rec.Track_multiple_res_usage_dates  :=
223                                     p_rtg_op_unexp_rec.Track_multiple_res_usage_dates;	-- End of MES Changes
224 
225                 -- Moved from exp record
226                 x_com_op_unexp_rec.User_Elapsed_Time          :=
227                                     p_rtg_op_unexp_rec.User_Elapsed_Time;
228 
229 
230        END Convert_RtgOp_To_ComOp;
231 
232         /*****************************************************************
233         * Procedure     : Convert_ComOp_To_RtgOp
234         * Parameters IN : Common Operation Exposed Column Record
235         *                 Common Operation Unexposed Column Record
236         * Parameters OUT: Operation Exposed Exposed Column Record
237         *                 Operation Unexposed Column Record
238         * Purpose       : This procedure will simply take the common operation
239         *                 record and copy its values into the operation record.
240         *                 Since the record definitions of ECO and routig
241         *                 records is different, this has to done on a field
242         *                 by field basis.
243         ******************************************************************/
244         -- From Common To Routing
245         PROCEDURE Convert_ComOp_To_RtgOp
246         ( p_com_operation_rec  IN  Bom_Rtg_Pub.Com_Operation_Rec_Type
247         , p_com_op_unexp_rec   IN  Bom_Rtg_Pub.Com_Op_Unexposed_Rec_Type
248         , x_rtg_operation_rec  IN OUT NOCOPY Bom_Rtg_Pub.Operation_Rec_Type
249         , x_rtg_op_unexp_rec   IN OUT NOCOPY Bom_Rtg_Pub.Op_Unexposed_Rec_Type
250         )
251         IS
252         BEGIN
253 
254                 x_rtg_operation_rec.Organization_Code          :=
255                                    p_com_operation_rec.Organization_Code;
256                 x_rtg_operation_rec.Assembly_Item_Name         :=
257                                    p_com_operation_rec.Revised_Item_Name;
258                 x_rtg_operation_rec.Alternate_Routing_Code     :=
259                                    p_com_operation_rec.Alternate_Routing_Code;
260                 x_rtg_operation_rec.Operation_Sequence_Number  :=
261                                    p_com_operation_rec.Operation_Sequence_Number;
262                 x_rtg_operation_rec.Operation_Type             :=
263                                    p_com_operation_rec.Operation_Type;
264                 x_rtg_operation_rec.Start_Effective_Date       :=
265                                    p_com_operation_rec.Start_Effective_Date;
266                 x_rtg_operation_rec.New_Operation_Sequence_Number:=
267                                    p_com_operation_rec.New_Operation_Sequence_Number;
268                 x_rtg_operation_rec.New_Start_Effective_Date   :=
269                                    p_com_operation_rec.New_Start_Effective_Date;
270                 x_rtg_operation_rec.Standard_Operation_Code    :=
271                                    p_com_operation_rec.Standard_Operation_Code;
272                 x_rtg_operation_rec.Department_Code            :=
273                                    p_com_operation_rec.Department_Code;
274                 x_rtg_operation_rec.Op_Lead_Time_Percent       :=
275                                    p_com_operation_rec.Op_Lead_Time_Percent;
276                 x_rtg_operation_rec.Minimum_Transfer_Quantity  :=
277                                    p_com_operation_rec.Minimum_Transfer_Quantity;
278                 x_rtg_operation_rec.Count_Point_Type           :=
279                                    p_com_operation_rec.Count_Point_Type;
280                 x_rtg_operation_rec.Operation_Description      :=
281                                    p_com_operation_rec.Operation_Description;
282                 x_rtg_operation_rec.Disable_Date               :=
283                                    p_com_operation_rec.Disable_Date;
284                 x_rtg_operation_rec.Backflush_Flag             :=
285                                    p_com_operation_rec.Backflush_Flag;
286                 x_rtg_operation_rec.Option_Dependent_Flag      :=
287                                    p_com_operation_rec.Option_Dependent_Flag;
288                 x_rtg_operation_rec.Reference_Flag             :=
289                                    p_com_operation_rec.Reference_Flag;
290                 x_rtg_operation_rec.Process_Seq_Number         :=
291                                    p_com_operation_rec.Process_Seq_Number;
292                 x_rtg_operation_rec.Process_Code               :=
293                                    p_com_operation_rec.Process_Code;
294                 x_rtg_operation_rec.Line_Op_Seq_Number         :=
295                                    p_com_operation_rec.Line_Op_Seq_Number;
296                 x_rtg_operation_rec.Line_Op_Code               :=
297                                    p_com_operation_rec.Line_Op_Code;
298                 x_rtg_operation_rec.Yield                      :=
299                                    p_com_operation_rec.Yield ;
300                 x_rtg_operation_rec.Cumulative_Yield           :=
301                                    p_com_operation_rec.Cumulative_Yield;
302                 x_rtg_operation_rec.Reverse_CUM_Yield          :=
303                                    p_com_operation_rec.Reverse_CUM_Yield;
304                 --
305                 -- Following op calculated time columns are no longer used
306                 -- x_rtg_operation_rec.Calculated_Labor_Time      :=
307                 --                  p_com_operation_rec.Calculated_Labor_Time;
308                 -- x_rtg_operation_rec.Calculated_Machine_Time    :=
309                 --                  p_com_operation_rec.Calculated_Machine_Time;
310                 -- x_rtg_operation_rec.Calculated_Elapsed_Time    :=
311                 --                   p_com_operation_rec.Calculated_Elapsed_Time;
312 
313                 x_rtg_operation_rec.User_Labor_Time            :=
314                                    p_com_operation_rec.User_Labor_Time;
315                 x_rtg_operation_rec.User_Machine_Time          :=
316                                    p_com_operation_rec.User_Machine_Time;
317                 x_rtg_operation_rec.Net_Planning_Percent       :=
318                                    p_com_operation_rec.Net_Planning_Percent;
319                 x_rtg_operation_rec.Include_In_Rollup          :=
320                                    p_com_operation_rec.Include_In_Rollup;
321                 x_rtg_operation_rec.Op_Yield_Enabled_Flag      :=
322                                    p_com_operation_rec.Op_Yield_Enabled_Flag;
323                 x_rtg_operation_rec.Attribute_category         :=
324                                    p_com_operation_rec.Attribute_category;
325                 x_rtg_operation_rec.Attribute1                 :=
326                                    p_com_operation_rec.Attribute1;
327                 x_rtg_operation_rec.Attribute2                 :=
328                                    p_com_operation_rec.Attribute2;
329                 x_rtg_operation_rec.Attribute3                 :=
330                                    p_com_operation_rec.Attribute3;
331                 x_rtg_operation_rec.Attribute4                 :=
332                                    p_com_operation_rec.Attribute4;
333                 x_rtg_operation_rec.Attribute5                 :=
334                                    p_com_operation_rec.Attribute5;
335                 x_rtg_operation_rec.Attribute6                 :=
336                                    p_com_operation_rec.Attribute6;
337                 x_rtg_operation_rec.Attribute7                 :=
338                                    p_com_operation_rec.Attribute7;
339                 x_rtg_operation_rec.Attribute8                 :=
340                                    p_com_operation_rec.Attribute8;
341                 x_rtg_operation_rec.Attribute9                 :=
342                                    p_com_operation_rec.Attribute9;
343                 x_rtg_operation_rec.Attribute10                :=
344                                    p_com_operation_rec.Attribute10;
345                 x_rtg_operation_rec.Attribute11                :=
346                                    p_com_operation_rec.Attribute11;
347                 x_rtg_operation_rec.Attribute12                :=
348                                    p_com_operation_rec.Attribute12;
349                 x_rtg_operation_rec.Attribute13                :=
350                                    p_com_operation_rec.Attribute13;
351                 x_rtg_operation_rec.Attribute14                :=
352                                    p_com_operation_rec.Attribute14;
353                 x_rtg_operation_rec.Attribute15                :=
354                                    p_com_operation_rec.Attribute15;
355                 x_rtg_operation_rec.Original_System_Reference  :=
356                            p_com_operation_rec.Original_System_Reference;
357                 x_rtg_operation_rec.Transaction_Type           :=
358                                    p_com_operation_rec.Transaction_Type;
359                 x_rtg_operation_rec.Return_Status              :=
360                        p_com_operation_rec.Return_Status;
361                 x_rtg_operation_rec.Delete_Group_Name          :=
362                                    p_com_operation_rec.Delete_Group_Name;
363                 x_rtg_operation_rec.DG_Description             :=
364                                    p_com_operation_rec.DG_Description;
365                 -- Added by MK 04/10/2001 for eAM changes
366                 x_rtg_operation_rec.Shutdown_Type               :=
367                                     p_com_operation_rec.Shutdown_Type ;
368 		-- Added by deepu for Long description project
369                 x_rtg_operation_rec.Long_Description            :=
370                                     p_com_operation_rec.Long_Description;
371 
372                 -- Similarly copy the unexposed record values into an ECO BO
373                 -- compatible record
374 
375                 x_rtg_op_unexp_rec.Operation_Sequence_Id       :=
376                                     p_com_op_unexp_rec.Operation_Sequence_Id;
377                 x_rtg_op_unexp_rec.Routing_Sequence_Id         :=
378                                     p_com_op_unexp_rec.Routing_Sequence_Id;
379                 x_rtg_op_unexp_rec.Assembly_Item_Id             :=
380                                     p_com_op_unexp_rec.Revised_Item_Id;
381                 x_rtg_op_unexp_rec.Organization_Id             :=
382                                     p_com_op_unexp_rec.Organization_Id;
383                 x_rtg_op_unexp_rec.Standard_Operation_Id       :=
384                                     p_com_op_unexp_rec.Standard_Operation_Id;
385                 x_rtg_op_unexp_rec.Department_Id               :=
386                                     p_com_op_unexp_rec.Department_Id;
387                 x_rtg_op_unexp_rec.Process_Op_Seq_Id           :=
388                                     p_com_op_unexp_rec.Process_Op_Seq_Id;
389                 x_rtg_op_unexp_rec.Line_Op_Seq_Id              :=
390                                     p_com_op_unexp_rec.Line_Op_Seq_Id;
391                 x_rtg_op_unexp_rec.DG_Sequence_Id              :=
392                                     p_com_op_unexp_rec.DG_Sequence_Id;
393                 x_rtg_op_unexp_rec.DG_Description              :=
394                                     p_com_op_unexp_rec.DG_Description;
395                 x_rtg_op_unexp_rec.DG_New                      :=
396                                     p_com_op_unexp_rec.DG_New;
397 
398                 x_rtg_op_unexp_rec.Lowest_acceptable_yield         :=	-- Added for MES Enhancement
399                                     p_com_op_unexp_rec.Lowest_acceptable_yield;
400                 x_rtg_op_unexp_rec.Use_org_settings                :=
401                                     p_com_op_unexp_rec.Use_org_settings;
402                 x_rtg_op_unexp_rec.Queue_mandatory_flag            :=
403                                     p_com_op_unexp_rec.Queue_mandatory_flag;
404                 x_rtg_op_unexp_rec.Run_mandatory_flag              :=
405                                     p_com_op_unexp_rec.Run_mandatory_flag;
406                 x_rtg_op_unexp_rec.To_move_mandatory_flag          :=
407                                     p_com_op_unexp_rec.To_move_mandatory_flag;
408                 x_rtg_op_unexp_rec.Show_next_op_by_default         :=
409                                     p_com_op_unexp_rec.Show_next_op_by_default;
410                 x_rtg_op_unexp_rec.Show_scrap_code                 :=
411                                     p_com_op_unexp_rec.Show_scrap_code;
412                 x_rtg_op_unexp_rec.Show_lot_attrib                 :=
413                                     p_com_op_unexp_rec.Show_lot_attrib;
414                 x_rtg_op_unexp_rec.Track_multiple_res_usage_dates  :=
415                                     p_com_op_unexp_rec.Track_multiple_res_usage_dates;	-- End of MES Changes
416 
417                 -- Moved from exp record
418                 x_rtg_op_unexp_rec.User_Elapsed_Time           :=
419                                     p_com_op_unexp_rec.User_Elapsed_Time;
420 
421 
422        END Convert_ComOp_To_RtgOp;
423 
424         /*****************************************************************
425         * Procedure     : Convert_EcoOp_To_ComOp
426         * Parameters IN : ECO Operation Exposed Column Record
427         *                 ECO Operation Unexposed Column Record
428         * Parameters OUT: Common Operation Exposed Exposed Column Record
429         *                 Common operation Unexposed Column Record
430         * Purpose       : This procedure will simply take the ECO operation
431         *                 record and copy its values into the common operation
432         *                 record. Since the record definitions of ECO and routig
433         *                 records is different, this has to done on a field
434         *                 by field basis.
435         ******************************************************************/
436         -- From Eco To Common
437         PROCEDURE Convert_EcoOp_To_ComOp
438         ( p_rev_operation_rec  IN  Bom_Rtg_Pub.Rev_Operation_Rec_Type
439         , p_rev_op_unexp_rec   IN  Bom_Rtg_Pub.Rev_Op_Unexposed_Rec_Type
440         , x_com_operation_rec  IN OUT NOCOPY Bom_Rtg_Pub.Com_Operation_Rec_Type
441         , x_com_op_unexp_rec   IN OUT NOCOPY Bom_Rtg_Pub.Com_Op_Unexposed_Rec_Type
442         )
443         IS
444         BEGIN
445 
446                 x_com_operation_rec.Eco_Name                   :=
447                                    p_rev_operation_rec.Eco_Name;
448                 x_com_operation_rec.Organization_Code          :=
449                                    p_rev_operation_rec.Organization_Code;
450                 x_com_operation_rec.Revised_Item_Name          :=
451                                    p_rev_operation_rec.Revised_Item_Name;
452                 x_com_operation_rec.New_Revised_Item_Revision  :=
453                                    p_rev_operation_rec.New_Revised_Item_Revision;
454                 x_com_operation_rec.New_Routing_Revision       :=
455                                    p_rev_operation_rec.New_Routing_Revision ; -- Added by MK on 11/02/00
456                 x_com_operation_rec.From_End_Item_Unit_Number  :=
457                                    p_rev_operation_rec.From_End_Item_Unit_Number ; -- Added by MK on 11/02/00
458                 x_com_operation_rec.ACD_Type   := p_rev_operation_rec.ACD_Type;
459                 x_com_operation_rec.Alternate_Routing_Code     :=
460                                    p_rev_operation_rec.Alternate_Routing_Code;
461                 x_com_operation_rec.Operation_Sequence_Number  :=
462                                    p_rev_operation_rec.Operation_Sequence_Number;
463                 x_com_operation_rec.Operation_Type             :=
464                                    p_rev_operation_rec.Operation_Type;
465                 x_com_operation_rec.Start_Effective_Date       :=
466                                    p_rev_operation_rec.Start_Effective_Date;
467                 x_com_operation_rec.New_Operation_Sequence_Number:=
468                                    p_rev_operation_rec.New_Operation_Sequence_Number;
469                 x_com_operation_rec.New_Start_Effective_Date   := NULL;
470                 x_com_operation_rec.Old_Operation_Sequence_Number :=
471                                    p_rev_operation_rec.Old_Operation_Sequence_Number;
472                 x_com_operation_rec.Old_Start_Effective_Date   :=
473                                    p_rev_operation_rec.Old_Start_Effective_Date;
474                 x_com_operation_rec.Standard_Operation_Code    :=
475                                    p_rev_operation_rec.Standard_Operation_Code;
476                 x_com_operation_rec.Department_Code             :=
477                                    p_rev_operation_rec.Department_Code;
478                 x_com_operation_rec.Op_Lead_Time_Percent       :=
479                                    p_rev_operation_rec.Op_Lead_Time_Percent;
480                 x_com_operation_rec.Minimum_Transfer_Quantity  :=
481                                    p_rev_operation_rec.Minimum_Transfer_Quantity;
482                 x_com_operation_rec.Count_Point_Type           :=
483                                    p_rev_operation_rec.Count_Point_Type;
484                 x_com_operation_rec.Operation_Description      :=
485                                    p_rev_operation_rec.Operation_Description;
486                 x_com_operation_rec.Disable_Date               :=
487                                    p_rev_operation_rec.Disable_Date;
488                 x_com_operation_rec.Backflush_Flag             :=
489                                    p_rev_operation_rec.Backflush_Flag;
490                 x_com_operation_rec.Option_Dependent_Flag      :=
491                                    p_rev_operation_rec.Option_Dependent_Flag;
492                 x_com_operation_rec.Reference_Flag             :=
493                                    p_rev_operation_rec.Reference_Flag;
494                 x_com_operation_rec.Process_Seq_Number         := NULL;
495                 x_com_operation_rec.Process_Code               := NULL;
496                 x_com_operation_rec.Line_Op_Seq_Number         := NULL;
497                 x_com_operation_rec.Line_Op_Code               := NULL;
498                 x_com_operation_rec.Yield                      :=
499                                    p_rev_operation_rec.Yield ;
500                 x_com_operation_rec.Cumulative_Yield           :=
501                                    p_rev_operation_rec.Cumulative_Yield;
502                 x_com_operation_rec.Reverse_CUM_Yield          := NULL;
503 
504                 --
505                 -- Following op calculated time columns are no longer used
506                 -- x_com_operation_rec.Calculated_Labor_Time      := NULL;
507                 -- x_com_operation_rec.Calculated_Machine_Time    := NULL;
508                 -- x_com_operation_rec.Calculated_Elapsed_Time    := NULL;
509 
510                 x_com_operation_rec.User_Labor_Time            := NULL;
511                 x_com_operation_rec.User_Machine_Time          := NULL;
512                 x_com_operation_rec.Net_Planning_Percent       := NULL;
513                 x_com_operation_rec.Include_In_Rollup          := NULL;
514                 x_com_operation_rec.Op_Yield_Enabled_Flag      := NULL;
515                 x_com_operation_rec.Cancel_Comments            :=
516                                    p_rev_operation_rec.Cancel_Comments ; -- Added by MK on 11/27/00
517                 x_com_operation_rec.Attribute_category         :=
518                                    p_rev_operation_rec.Attribute_category;
519                 x_com_operation_rec.Attribute1                 :=
520                                    p_rev_operation_rec.Attribute1;
521                 x_com_operation_rec.Attribute2                 :=
522                                    p_rev_operation_rec.Attribute2;
523                 x_com_operation_rec.Attribute3                 :=
524                                    p_rev_operation_rec.Attribute3;
525                 x_com_operation_rec.Attribute4                 :=
526                                    p_rev_operation_rec.Attribute4;
527                 x_com_operation_rec.Attribute5                 :=
528                                    p_rev_operation_rec.Attribute5;
529                 x_com_operation_rec.Attribute6                 :=
530                                    p_rev_operation_rec.Attribute6;
531                 x_com_operation_rec.Attribute7                 :=
532                                    p_rev_operation_rec.Attribute7;
533                 x_com_operation_rec.Attribute8                 :=
534                                    p_rev_operation_rec.Attribute8;
535                 x_com_operation_rec.Attribute9                 :=
536                                    p_rev_operation_rec.Attribute9;
537                 x_com_operation_rec.Attribute10                :=
538                                    p_rev_operation_rec.Attribute10;
539                 x_com_operation_rec.Attribute11                :=
540                                    p_rev_operation_rec.Attribute11;
541                 x_com_operation_rec.Attribute12                :=
542                                    p_rev_operation_rec.Attribute12;
543                 x_com_operation_rec.Attribute13                :=
544                                    p_rev_operation_rec.Attribute13;
545                 x_com_operation_rec.Attribute14                :=
546                                    p_rev_operation_rec.Attribute14;
547                 x_com_operation_rec.Attribute15                :=
548                                    p_rev_operation_rec.Attribute15;
549                 x_com_operation_rec.Original_System_Reference  :=
550                            p_rev_operation_rec.Original_System_Reference;
551                 x_com_operation_rec.Transaction_Type           :=
552                                    p_rev_operation_rec.Transaction_Type;
553                 x_com_operation_rec.Return_Status              :=
554                 p_rev_operation_rec.Return_Status;
555                 x_com_operation_rec.Delete_Group_Name          := NULL ;
556                 x_com_operation_rec.DG_Description             := NULL ;
557                 -- Added by MK 04/10/2001 for eAM changes
558                 x_com_operation_rec.Shutdown_Type              := NULL ;
559 		-- Added by deepu for Long description project
560 		x_com_operation_rec.Long_description	       := NULL;
561 
562                 -- Similarly copy the unexposed record values into an ECO BO
563                 -- compatible record
564 
565                 x_com_op_unexp_rec.Revised_Item_Sequence_Id    :=
566                                     p_rev_op_unexp_rec.Revised_Item_Sequence_Id;
567                 x_com_op_unexp_rec.Operation_Sequence_Id       :=
568                                     p_rev_op_unexp_rec.Operation_Sequence_Id;
569                 x_com_op_unexp_rec.Old_Operation_Sequence_Id   :=
570                                    p_rev_op_unexp_rec.Old_Operation_Sequence_Id;
571                 x_com_op_unexp_rec.Routing_Sequence_Id         :=
572                                     p_rev_op_unexp_rec.Routing_Sequence_Id;
573                 x_com_op_unexp_rec.Revised_Item_Id             :=
574                                     p_rev_op_unexp_rec.Revised_Item_Id;
575                 x_com_op_unexp_rec.Organization_Id             :=
576                                     p_rev_op_unexp_rec.Organization_Id;
577                 x_com_op_unexp_rec.Standard_Operation_Id       :=
578                                     p_rev_op_unexp_rec.Standard_Operation_Id;
579                 x_com_op_unexp_rec.Department_Id               :=
580                                     p_rev_op_unexp_rec.Department_Id;
581                 x_com_op_unexp_rec.Process_Op_Seq_Id           := NULL;
582                 x_com_op_unexp_rec.Line_Op_Seq_Id              := NULL;
583                 x_com_op_unexp_rec.DG_Sequence_Id              := NULL;
584                 x_com_op_unexp_rec.DG_Description              := NULL;
585                 x_com_op_unexp_rec.DG_New                      := NULL;
586 
587                 x_com_op_unexp_rec.Lowest_acceptable_yield        := NULL;	-- Added for MES Enhancement
588                 x_com_op_unexp_rec.Use_org_settings               := NULL;
589                 x_com_op_unexp_rec.Queue_mandatory_flag           := NULL;
590                 x_com_op_unexp_rec.Run_mandatory_flag             := NULL;
591                 x_com_op_unexp_rec.To_move_mandatory_flag         := NULL;
592                 x_com_op_unexp_rec.Show_next_op_by_default        := NULL;
593                 x_com_op_unexp_rec.Show_scrap_code                := NULL;
594                 x_com_op_unexp_rec.Show_lot_attrib                := NULL;
595                 x_com_op_unexp_rec.Track_multiple_res_usage_dates := NULL;	-- End of MES Changes
596 
597                 -- Moved from exp rec
598                 x_com_op_unexp_rec.User_Elapsed_Time           := NULL;
599 
600 
601         END Convert_EcoOp_To_ComOp;
602 
603         /*****************************************************************
604         * Procedure     : Convert_ComOp_To_EcoOp
605         * Parameters IN : Common Operation Exposed Column Record
606         *                 Common Operation Unexposed Column Record
607         * Parameters OUT: ECO Operation Exposed Exposed Column Record
608         *                 ECO operation Unexposed Column Record
609         * Purpose       : This procedure will simply take the common operation
610         *                 record and copy its values into the ECO operation
611         *                 record. Since the record definitions of ECO and routig
612         *                 records is different, this has to done on a field
613         *                 by field basis.
614         ******************************************************************/
615         -- From Common To Eco
616         PROCEDURE Convert_ComOp_To_EcoOp
617         ( p_com_operation_rec  IN  Bom_Rtg_Pub.Com_Operation_Rec_Type
618         , p_com_op_unexp_rec   IN  Bom_Rtg_Pub.Com_Op_Unexposed_Rec_Type
619         , x_rev_operation_rec  IN OUT NOCOPY Bom_Rtg_Pub.Rev_Operation_Rec_Type
620         , x_rev_op_unexp_rec   IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Unexposed_Rec_Type
621         )
622         IS
623         BEGIN
624 
625                 x_rev_operation_rec.Eco_Name                   :=
626                                    p_com_operation_rec.Eco_Name;
627                 x_rev_operation_rec.Organization_Code          :=
628                                    p_com_operation_rec.Organization_Code;
629                 x_rev_operation_rec.Revised_Item_Name          :=
630                                    p_com_operation_rec.Revised_Item_Name;
631                 x_rev_operation_rec.New_Revised_Item_Revision  :=
632                                    p_com_operation_rec.New_Revised_Item_Revision;
633                 x_rev_operation_rec.New_Routing_Revision       :=
634                                    p_com_operation_rec.New_Routing_Revision ; -- Added by MK on 11/02/00
635                 x_rev_operation_rec.From_End_Item_Unit_Number  :=
636                                    p_com_operation_rec.From_End_Item_Unit_Number ; -- Added by MK on 11/02/00
637                 x_rev_operation_rec.ACD_Type          :=
638                                    p_com_operation_rec.ACD_Type;
639                 x_rev_operation_rec.Alternate_Routing_Code     :=
640                                    p_com_operation_rec.Alternate_Routing_Code;
641                 x_rev_operation_rec.Operation_Sequence_Number  :=
642                                    p_com_operation_rec.Operation_Sequence_Number;
643                 x_rev_operation_rec.Operation_Type             :=
644                                    p_com_operation_rec.Operation_Type;
645                 x_rev_operation_rec.Start_Effective_Date       :=
646                                    p_com_operation_rec.Start_Effective_Date;
647                 x_rev_operation_rec.New_Operation_Sequence_Number:=
648                                    p_com_operation_rec.New_Operation_Sequence_Number;
649                 x_rev_operation_rec.Old_Operation_Sequence_Number:=
650                                    p_com_operation_rec.old_Operation_Sequence_Number;
651                 x_rev_operation_rec.Old_Start_Effective_Date   :=
652                                    p_com_operation_rec.Old_Start_Effective_Date;
653                 x_rev_operation_rec.Standard_Operation_Code    :=
654                                    p_com_operation_rec.Standard_Operation_Code;
655                 x_rev_operation_rec.Department_Code             :=
656                                    p_com_operation_rec.Department_Code;
657                 x_rev_operation_rec.Op_Lead_Time_Percent       :=
658                                    p_com_operation_rec.Op_Lead_Time_Percent;
659                 x_rev_operation_rec.Minimum_Transfer_Quantity  :=
660                                    p_com_operation_rec.Minimum_Transfer_Quantity;
661                 x_rev_operation_rec.Count_Point_Type           :=
662                                    p_com_operation_rec.Count_Point_Type;
663                 x_rev_operation_rec.Operation_Description      :=
664                                    p_com_operation_rec.Operation_Description;
665                 x_rev_operation_rec.Disable_Date               :=
666                                    p_com_operation_rec.Disable_Date;
667                 x_rev_operation_rec.Backflush_Flag             :=
668                                    p_com_operation_rec.Backflush_Flag;
669                 x_rev_operation_rec.Option_Dependent_Flag      :=
670                                    p_com_operation_rec.Option_Dependent_Flag;
671                 x_rev_operation_rec.Reference_Flag             :=
672                                    p_com_operation_rec.Reference_Flag;
673                 x_rev_operation_rec.Yield                      :=
674                                    p_com_operation_rec.Yield ;
675                 x_rev_operation_rec.Cumulative_Yield           :=
676                                    p_com_operation_rec.Cumulative_Yield;
677                 x_rev_operation_rec.cancel_comments      :=
678                                    p_com_operation_rec.cancel_comments;
679                 x_rev_operation_rec.Attribute_category         :=
680                                    p_com_operation_rec.Attribute_category;
681                 x_rev_operation_rec.Attribute1                 :=
682                                    p_com_operation_rec.Attribute1;
683                 x_rev_operation_rec.Attribute2                 :=
684                                    p_com_operation_rec.Attribute2;
685                 x_rev_operation_rec.Attribute3                 :=
686                                    p_com_operation_rec.Attribute3;
687                 x_rev_operation_rec.Attribute4                 :=
688                                    p_com_operation_rec.Attribute4;
689                 x_rev_operation_rec.Attribute5                 :=
690                                    p_com_operation_rec.Attribute5;
691                 x_rev_operation_rec.Attribute6                 :=
692                                    p_com_operation_rec.Attribute6;
693                 x_rev_operation_rec.Attribute7                 :=
694                                    p_com_operation_rec.Attribute7;
695                 x_rev_operation_rec.Attribute8                 :=
696                                    p_com_operation_rec.Attribute8;
697                 x_rev_operation_rec.Attribute9                 :=
698                                    p_com_operation_rec.Attribute9;
699                 x_rev_operation_rec.Attribute10                :=
700                                    p_com_operation_rec.Attribute10;
701                 x_rev_operation_rec.Attribute11                :=
702                                    p_com_operation_rec.Attribute11;
703                 x_rev_operation_rec.Attribute12                :=
704                                    p_com_operation_rec.Attribute12;
705                 x_rev_operation_rec.Attribute13                :=
706                                    p_com_operation_rec.Attribute13;
707                 x_rev_operation_rec.Attribute14                :=
708                                    p_com_operation_rec.Attribute14;
709                 x_rev_operation_rec.Attribute15                :=
710                                    p_com_operation_rec.Attribute15;
711                 x_rev_operation_rec.Original_System_Reference  :=
712                                    p_com_operation_rec.Original_System_Reference;
713                 x_rev_operation_rec.Transaction_Type           :=
714                                    p_com_operation_rec.Transaction_Type;
715                 x_rev_operation_rec.Return_Status              :=
716                                    p_com_operation_rec.Return_Status;
717 
718                 -- Similarly copy the unexposed record values into an ECO BO
719                 -- compatible record
720 
721                 x_rev_op_unexp_rec.Revised_Item_Sequence_Id    :=
722                                     p_com_op_unexp_rec.Revised_Item_Sequence_Id;
723                 x_rev_op_unexp_rec.Operation_Sequence_Id       :=
724                                     p_com_op_unexp_rec.Operation_Sequence_Id;
725                 x_rev_op_unexp_rec.Old_Operation_Sequence_Id   :=
726                                     p_com_op_unexp_rec.Old_Operation_Sequence_Id;
727                 x_rev_op_unexp_rec.Routing_Sequence_Id         :=
728                                     p_com_op_unexp_rec.Routing_Sequence_Id;
729                 x_rev_op_unexp_rec.Revised_Item_Id             :=
730                                    p_com_op_unexp_rec.Revised_Item_Id;
731                 x_rev_op_unexp_rec.Organization_Id             :=
732                                     p_com_op_unexp_rec.Organization_Id;
733                 x_rev_op_unexp_rec.Standard_Operation_Id       :=
734                                     p_com_op_unexp_rec.Standard_Operation_Id;
735                 x_rev_op_unexp_rec.Department_Id               :=
736                                     p_com_op_unexp_rec.Department_Id;
737 
738         END Convert_ComOp_To_EcoOp;
739 
740         /*****************************************************************
741         * Procedure     : Convert_RtgRes_To_EcoRes
742         * Parameters IN : Operation resource Exposed Column Record
743         *                 Operation resource Unexposed Column Record
744         * Parameters OUT: ECO Operation resource Exposed Exposed Column Record
745         *                 ECO Operation resource Unexposed Column Record
746         * Purpose       : This procedure will simply take the operation resource
747         *                 record and copy its values into the ECO resource
748         *                 record. Since the record definitions of ECO and routig
749         *                 records is different, this has to done on a field
750         *                 by field basis.
751         ******************************************************************/
752         -- Operation Resource Entity
753         PROCEDURE Convert_RtgRes_To_EcoRes
754         ( p_rtg_op_resource_rec  IN  Bom_Rtg_Pub.Op_Resource_Rec_Type
755         , p_rtg_op_res_unexp_rec IN  Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
756         , x_rev_op_resource_rec  IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
757         , x_rev_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
758         )
759         IS
760         BEGIN
761                 x_rev_op_resource_rec.Eco_Name                   := NULL;
762                 x_rev_op_resource_rec.Organization_Code          :=
763                                    p_rtg_op_resource_rec.Organization_Code;
764                 x_rev_op_resource_rec.Revised_Item_Name          :=
765                                    p_rtg_op_resource_rec.Assembly_Item_Name;
766                 x_rev_op_resource_rec.New_Revised_Item_Revision  := NULL;
767                 x_rev_op_resource_rec.New_Routing_Revision       := NULL;    -- Added by MK on 11/02/00
768                 x_rev_op_resource_rec.From_End_Item_Unit_Number  := NULL;    -- Added by MK on 11/02/00
769                 x_rev_op_resource_rec.ACD_Type                   := NULL;
770                 x_rev_op_resource_rec.Alternate_Routing_Code     :=
771                                    p_rtg_op_resource_rec.Alternate_Routing_Code;
772                 x_rev_op_resource_rec.Operation_Sequence_Number  :=
773                                    p_rtg_op_resource_rec.Operation_Sequence_Number;
774                 x_rev_op_resource_rec.Operation_Type             :=
775                                    p_rtg_op_resource_rec.Operation_Type;
776                 x_rev_op_resource_rec.OP_Start_Effective_Date    :=
777                                    p_rtg_op_resource_rec.OP_Start_Effective_Date;
778                 x_rev_op_resource_rec.Resource_Sequence_Number   :=
779                                    p_rtg_op_resource_rec.Resource_Sequence_Number;
780                 x_rev_op_resource_rec.Resource_Code              :=
781                                    p_rtg_op_resource_rec.Resource_Code;
782                 x_rev_op_resource_rec.Activity :=p_rtg_op_resource_rec.Activity;
783                 x_rev_op_resource_rec.Standard_Rate_Flag         :=
784                                    p_rtg_op_resource_rec.Standard_Rate_Flag;
785                 x_rev_op_resource_rec.Assigned_Units             :=
786                                    p_rtg_op_resource_rec.Assigned_Units;
787                 x_rev_op_resource_rec.Usage_Rate_Or_amount       :=
788                                    p_rtg_op_resource_rec.Usage_Rate_Or_amount ;
789                 x_rev_op_resource_rec.Usage_Rate_Or_Amount_Inverse :=
790                                    p_rtg_op_resource_rec.Usage_Rate_Or_Amount_Inverse;
791                 x_rev_op_resource_rec.Basis_Type                 :=
792                                    p_rtg_op_resource_rec.Basis_Type;
793                 x_rev_op_resource_rec.Schedule_Flag              :=
794                                    p_rtg_op_resource_rec.Schedule_Flag;
795                 x_rev_op_resource_rec.Resource_Offset_Percent    :=
796                                    p_rtg_op_resource_rec.Resource_Offset_Percent;
797                 x_rev_op_resource_rec.Autocharge_Type            :=
798                                    p_rtg_op_resource_rec.Autocharge_Type;
799                 x_rev_op_resource_rec.Schedule_Sequence_Number   :=
800                                    p_rtg_op_resource_rec.Schedule_Sequence_Number;
801                 x_rev_op_resource_rec.Principle_Flag             :=
802                                    p_rtg_op_resource_rec.Principle_Flag ;
803                 x_rev_op_resource_rec.Attribute_category         :=
804                                    p_rtg_op_resource_rec.Attribute_category;
805                 x_rev_op_resource_rec.Attribute1                 :=
806                                    p_rtg_op_resource_rec.Attribute1;
807                 x_rev_op_resource_rec.Attribute2                 :=
808                                    p_rtg_op_resource_rec.Attribute2;
809                 x_rev_op_resource_rec.Attribute3                 :=
810                                    p_rtg_op_resource_rec.Attribute3;
811                 x_rev_op_resource_rec.Attribute4                 :=
812                                    p_rtg_op_resource_rec.Attribute4;
813                 x_rev_op_resource_rec.Attribute5                 :=
814                                    p_rtg_op_resource_rec.Attribute5;
815                 x_rev_op_resource_rec.Attribute6                 :=
816                                    p_rtg_op_resource_rec.Attribute6;
817                 x_rev_op_resource_rec.Attribute7                 :=
818                                    p_rtg_op_resource_rec.Attribute7;
819                 x_rev_op_resource_rec.Attribute8                 :=
820                                    p_rtg_op_resource_rec.Attribute8;
821                 x_rev_op_resource_rec.Attribute9                 :=
822                                    p_rtg_op_resource_rec.Attribute9;
823                 x_rev_op_resource_rec.Attribute10                :=
824                                    p_rtg_op_resource_rec.Attribute10;
825                 x_rev_op_resource_rec.Attribute11                :=
826                                    p_rtg_op_resource_rec.Attribute11;
827                 x_rev_op_resource_rec.Attribute12                :=
828                                    p_rtg_op_resource_rec.Attribute12;
829                 x_rev_op_resource_rec.Attribute13                :=
830                                    p_rtg_op_resource_rec.Attribute13;
831                 x_rev_op_resource_rec.Attribute14                :=
832                                    p_rtg_op_resource_rec.Attribute14;
833                 x_rev_op_resource_rec.Attribute15                :=
834                                    p_rtg_op_resource_rec.Attribute15;
835                 x_rev_op_resource_rec.Original_System_Reference  :=
836                            p_rtg_op_resource_rec.Original_System_Reference;
837                 x_rev_op_resource_rec.Transaction_Type           :=
838                                    p_rtg_op_resource_rec.Transaction_Type;
839                 x_rev_op_resource_rec.Return_Status              :=
840                                    p_rtg_op_resource_rec.Return_Status;
841                 x_rev_op_resource_rec.Setup_Type :=
842                                    p_rtg_op_resource_rec.Setup_Type;
843 
844                 -- Similarly copy the unexposed record values into an ECO BO
845                 -- compatible record
846 
847                 x_rev_op_res_unexp_rec.Revised_Item_Sequence_Id    := NULL;
848                 x_rev_op_res_unexp_rec.Operation_Sequence_Id       :=
849                                   p_rtg_op_res_unexp_rec.Operation_Sequence_Id;
850                 x_rev_op_res_unexp_rec.Routing_Sequence_Id         :=
851                                   p_rtg_op_res_unexp_rec.Routing_Sequence_Id;
852                 x_rev_op_res_unexp_rec.Revised_Item_Id             :=
853                                   p_rtg_op_res_unexp_rec.Assembly_Item_Id;
854                 x_rev_op_res_unexp_rec.Organization_Id             :=
855                                   p_rtg_op_res_unexp_rec.Organization_Id;
856                 x_rev_op_resource_rec.Substitute_Group_Number     :=
857                                   p_rtg_op_resource_rec.Substitute_Group_Number;
858                 x_rev_op_res_unexp_rec.Substitute_Group_Number    :=
859                                   x_rev_op_resource_rec.Substitute_Group_Number;
860                 x_rev_op_res_unexp_rec.Resource_Id                 :=
861                                   p_rtg_op_res_unexp_rec.Resource_Id;
862                 x_rev_op_res_unexp_rec.Activity_Id                 :=
863                                   p_rtg_op_res_unexp_rec.Activity_Id;
864                 x_rev_op_res_unexp_rec.Setup_Id                    :=
865                                   p_rtg_op_res_unexp_rec.Setup_Id ;
866 
867         END Convert_RtgRes_To_EcoRes;
868 
869         /*****************************************************************
870         * Procedure     : Convert_EcoRes_To_RtgRes
871         * Parameters IN : ECO Operation Resource Exposed Column Record
872         *                 ECO Operation Resource Unexposed Column Record
873         * Parameters OUT: Operation Resource Exposed Exposed Column Record
874         *                 Operation Resource Unexposed Column Record
875         * Purpose       : This procedure will simply take the ECO  resource
876         *                 record and copy its values into the operation resource
877         *                 record. Since the record definitions of ECO and routig
878         *                 records is different, this has to done on a field
879         *                 by field basis.
880         ******************************************************************/
881         PROCEDURE Convert_EcoRes_To_RtgRes
882         (  p_rev_op_resource_rec  IN  Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
883          , p_rev_op_res_unexp_rec IN  Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
884          , x_rtg_op_resource_rec  IN OUT NOCOPY Bom_Rtg_Pub.Op_Resource_Rec_Type
885          , x_rtg_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
886         )
887         IS
888         BEGIN
889 
890                 x_rtg_op_resource_rec.Organization_Code          :=
891                                    p_rev_op_resource_rec.Organization_Code;
892                 x_rtg_op_resource_rec.Assembly_item_name         :=
893                                    p_rev_op_resource_rec.Revised_Item_Name;
894                 x_rtg_op_resource_rec.Alternate_Routing_Code     :=
895                                    p_rev_op_resource_rec.Alternate_Routing_Code;
896                 x_rtg_op_resource_rec.Operation_Sequence_Number  :=
897                                    p_rev_op_resource_rec.Operation_Sequence_Number;
898                 x_rtg_op_resource_rec.Operation_Type             :=
899                                    p_rev_op_resource_rec.Operation_Type;
900                 x_rtg_op_resource_rec.Op_Start_Effective_Date    :=
901                                    p_rev_op_resource_rec.OP_start_Effective_Date;
902                 x_rtg_op_resource_rec.Resource_Sequence_Number   :=
903                                    p_rev_op_resource_rec.Resource_Sequence_Number;
904                 x_rtg_op_resource_rec.Resource_Code              :=
905                                    p_rev_op_resource_rec.Resource_Code ;
906                 x_rtg_op_resource_rec.Activity := p_rev_op_resource_rec.Activity;
907                 x_rtg_op_resource_rec.Standard_Rate_Flag         :=
908                                    p_rev_op_resource_rec.Standard_Rate_Flag;
909                 x_rtg_op_resource_rec.Assigned_Units             :=
910                                    p_rev_op_resource_rec.Assigned_Units;
911                 x_rtg_op_resource_rec.Usage_Rate_Or_amount       :=
912                                    p_rev_op_resource_rec.Usage_Rate_Or_amount ;
913                 x_rtg_op_resource_rec.Usage_Rate_Or_Amount_Inverse :=
914                                    p_rev_op_resource_rec.Usage_Rate_Or_Amount_Inverse;
915                 x_rtg_op_resource_rec.Basis_Type                 :=
916                                    p_rev_op_resource_rec.Basis_Type;
917                 x_rtg_op_resource_rec.Schedule_Flag              :=
918                                    p_rev_op_resource_rec.Schedule_Flag;
919                 x_rtg_op_resource_rec.Resource_Offset_Percent    :=
920                                    p_rev_op_resource_rec.Resource_Offset_Percent;
921                 x_rtg_op_resource_rec.Autocharge_Type            :=
922                                    p_rev_op_resource_rec.Autocharge_Type;
923                 x_rtg_op_resource_rec.Schedule_Sequence_Number   :=
924                                    p_rev_op_resource_rec.Schedule_Sequence_Number;
925                 x_rtg_op_resource_rec.Principle_Flag             :=
926                                    p_rev_op_resource_rec.Principle_Flag ;
927                 x_rtg_op_resource_rec.Attribute_category         :=
928                                    p_rev_op_resource_rec.Attribute_category;
929                 x_rtg_op_resource_rec.Attribute1                 :=
930                                    p_rev_op_resource_rec.Attribute1;
931                 x_rtg_op_resource_rec.Attribute2                 :=
932                                    p_rev_op_resource_rec.Attribute2;
933                 x_rtg_op_resource_rec.Attribute3                 :=
934                                    p_rev_op_resource_rec.Attribute3;
935                 x_rtg_op_resource_rec.Attribute4                 :=
936                                    p_rev_op_resource_rec.Attribute4;
937                 x_rtg_op_resource_rec.Attribute5                 :=
938                                    p_rev_op_resource_rec.Attribute5;
939                 x_rtg_op_resource_rec.Attribute6                 :=
940                                    p_rev_op_resource_rec.Attribute6 ;
941                 x_rtg_op_resource_rec.Attribute7                 :=
942                                    p_rev_op_resource_rec.Attribute7;
943                 x_rtg_op_resource_rec.Attribute8                 :=
944                                    p_rev_op_resource_rec.Attribute8;
945                 x_rtg_op_resource_rec.Attribute9                 :=
946                                    p_rev_op_resource_rec.Attribute9;
947                 x_rtg_op_resource_rec.Attribute10                :=
948                                    p_rev_op_resource_rec.Attribute10;
949                 x_rtg_op_resource_rec.Attribute11                :=
950                                    p_rev_op_resource_rec.Attribute11;
951                 x_rtg_op_resource_rec.Attribute12                :=
952                                    p_rev_op_resource_rec.Attribute12;
953                 x_rtg_op_resource_rec.Attribute13                :=
954                                    p_rev_op_resource_rec.Attribute13;
955                 x_rtg_op_resource_rec.Attribute14                :=
956                                    p_rev_op_resource_rec.Attribute14;
957                 x_rtg_op_resource_rec.Attribute15                :=
958                                    p_rev_op_resource_rec.Attribute15;
959                 x_rtg_op_resource_rec.Original_System_Reference  :=
960                            p_rev_op_resource_rec.Original_System_Reference;
961                 x_rtg_op_resource_rec.Transaction_Type           :=
962                                    p_rev_op_resource_rec.Transaction_Type;
963                 x_rtg_op_resource_rec.Return_Status              :=
964                                    p_rev_op_resource_rec.Return_Status;
965                 x_rtg_op_resource_rec.Setup_Type                 :=
966                                    p_rev_op_resource_rec.Setup_Type ;
967 
968                 -- Similarly copy the unexposed record values into an ECO BO
969                 -- compatible record
970 
971                 x_rtg_op_res_unexp_rec.Operation_Sequence_Id       :=
972                                     p_rev_op_res_unexp_rec.Operation_Sequence_Id;
973                 x_rtg_op_res_unexp_rec.Routing_Sequence_Id         :=
974                                     p_rev_op_res_unexp_rec.Routing_Sequence_Id;
975                 x_rtg_op_res_unexp_rec.Assembly_Item_Id            :=
976                                     p_rev_op_res_unexp_rec.Revised_Item_Id;
977                 x_rtg_op_res_unexp_rec.Organization_Id             :=
978                                     p_rev_op_res_unexp_rec.Organization_Id;
979                 x_rtg_op_resource_rec.Substitute_Group_Number     :=
980                              p_rev_op_resource_rec.Substitute_Group_Number;
981                 x_rtg_op_res_unexp_rec.Substitute_Group_Number    :=
982                              x_rtg_op_resource_rec.Substitute_Group_Number;
983                 x_rtg_op_res_unexp_rec.Resource_Id                 :=
984                                     p_rev_op_res_unexp_rec.Resource_Id;
985                 x_rtg_op_res_unexp_rec.Activity_Id                 :=
986                                     p_rev_op_res_unexp_rec.Activity_Id ;
987                 x_rtg_op_res_unexp_rec.Setup_Id                    :=
988                                     p_rev_op_res_unexp_rec.Setup_Id ;
989 
990         END Convert_EcoRes_To_RtgRes;
991 
992         /*****************************************************************
993         * Procedure     : Convert_RtgSubRes_To_EcoSubRes
994         * Parameters IN : Substitute Resource Exposed Column Record
995         *                 Substitute Resource Unexposed Column Record
996         * Parameters OUT: ECO Substitute Resource Exposed Exposed Column Record
997         *                 ECO Substitute Resource Unexposed Column Record
998         * Purpose       : This procedure will simply take the Sub Resource
999         *                 record and copy its values into the ECO Sub Resource
1000         *                 record. Since the record definitions of ECO and routig
1001         *                 records is different, this has to done on a field
1002         *                 by field basis.
1003         ******************************************************************/
1004         -- Sub Operation Resource Entity
1005         PROCEDURE Convert_RtgSubRes_To_EcoSubRes
1006         ( p_rtg_sub_resource_rec    IN  Bom_Rtg_Pub.Sub_Resource_Rec_Type
1007         , p_rtg_sub_res_unexp_rec   IN  Bom_Rtg_Pub.Sub_Res_Unexposed_Rec_Type
1008         , x_rev_sub_resource_rec    IN OUT NOCOPY Bom_Rtg_Pub.Rev_Sub_Resource_Rec_Type
1009         , x_rev_sub_res_unexp_rec   IN OUT NOCOPY Bom_Rtg_Pub.Rev_Sub_Res_Unexposed_Rec_Type
1010         )
1011         IS
1012         BEGIN
1013 
1014                 x_rev_sub_resource_rec.Eco_Name                   := NULL;
1015                 x_rev_sub_resource_rec.Organization_Code          :=
1016                                 p_rtg_sub_resource_rec.Organization_Code;
1017                 x_rev_sub_resource_rec.Revised_Item_Name          :=
1018                                 p_rtg_sub_resource_rec.Assembly_Item_Name;
1019                 x_rev_sub_resource_rec.New_Revised_Item_Revision  := NULL;
1020                 x_rev_sub_resource_rec.New_Routing_Revision       := NULL;    -- Added by MK on 11/02/00
1021                 x_rev_sub_resource_rec.From_End_Item_Unit_Number  := NULL;    -- Added by MK on 11/02/00
1022                 x_rev_sub_resource_rec.ACD_Type                   := NULL;
1023                 x_rev_sub_resource_rec.Alternate_Routing_Code     :=
1024                                 p_rtg_sub_resource_rec.Alternate_Routing_Code;
1025                 x_rev_sub_resource_rec.Operation_Sequence_Number  :=
1026                                 p_rtg_sub_resource_rec.Operation_Sequence_Number;
1027                 x_rev_sub_resource_rec.Operation_Type             :=
1028                                 p_rtg_sub_resource_rec.Operation_Type;
1029                 x_rev_sub_resource_rec.OP_Start_Effective_Date    :=
1030                                 p_rtg_sub_resource_rec.OP_Start_Effective_Date;
1031                 x_rev_sub_resource_rec.Sub_Resource_code          :=
1032                                 p_rtg_sub_resource_rec.Sub_Resource_code;
1033                 x_rev_sub_resource_rec.New_Sub_Resource_code      :=
1034                                 p_rtg_sub_resource_rec.New_Sub_Resource_code;
1035                 x_rev_sub_resource_rec.Schedule_Sequence_Number   :=
1036                                 p_rtg_sub_resource_rec.Schedule_Sequence_Number ;
1037                 x_rev_sub_resource_rec.Replacement_Group_Number   :=
1038                                 p_rtg_sub_resource_rec.Replacement_Group_Number ;
1039                 x_rev_sub_resource_rec.New_Replacement_Group_Number   := -- bug 3741570
1040                                 p_rtg_sub_resource_rec.New_Replacement_Group_Number ;
1041                 x_rev_sub_resource_rec.Activity :=
1042                                 p_rtg_sub_resource_rec.Activity;
1043                 x_rev_sub_resource_rec.Standard_Rate_Flag         :=
1044                                 p_rtg_sub_resource_rec.Standard_Rate_Flag;
1045                 x_rev_sub_resource_rec.Assigned_Units             :=
1046                                 p_rtg_sub_resource_rec.Assigned_Units;
1047                 x_rev_sub_resource_rec.Usage_Rate_Or_amount       :=
1048                                 p_rtg_sub_resource_rec.Usage_Rate_Or_amount ;
1049                 x_rev_sub_resource_rec.Usage_Rate_Or_Amount_Inverse :=
1050                                 p_rtg_sub_resource_rec.Usage_Rate_Or_Amount_Inverse;
1051                 x_rev_sub_resource_rec.Basis_Type                 :=
1052                                 p_rtg_sub_resource_rec.Basis_Type;
1053                 x_rev_sub_resource_rec.New_Basis_Type             :=
1054                                 p_rtg_sub_resource_rec.New_Basis_Type; /* Added for bug 4689856 */
1055                 x_rev_sub_resource_rec.Schedule_Flag              :=
1056                                 p_rtg_sub_resource_rec.Schedule_Flag;
1057                 x_rev_sub_resource_rec.Resource_Offset_Percent    :=
1058                                 p_rtg_sub_resource_rec.Resource_Offset_Percent;
1059                 x_rev_sub_resource_rec.Autocharge_Type            :=
1060                                 p_rtg_sub_resource_rec.Autocharge_Type;
1061                 x_rev_sub_resource_rec.Principle_Flag             :=
1062                                 p_rtg_sub_resource_rec.Principle_Flag ;
1063                 x_rev_sub_resource_rec.Attribute_category         :=
1064                                 p_rtg_sub_resource_rec.Attribute_category;
1065                 x_rev_sub_resource_rec.Attribute1                 :=
1066                                 p_rtg_sub_resource_rec.Attribute1;
1067                 x_rev_sub_resource_rec.Attribute2                 :=
1068                                 p_rtg_sub_resource_rec.Attribute2;
1069                 x_rev_sub_resource_rec.Attribute3                 :=
1070                                 p_rtg_sub_resource_rec.Attribute3;
1071                 x_rev_sub_resource_rec.Attribute4                 :=
1072                                 p_rtg_sub_resource_rec.Attribute4;
1073                 x_rev_sub_resource_rec.Attribute5                 :=
1074                                 p_rtg_sub_resource_rec.Attribute5;
1075                 x_rev_sub_resource_rec.Attribute6                 :=
1076                                 p_rtg_sub_resource_rec.Attribute6;
1077                 x_rev_sub_resource_rec.Attribute7                 :=
1078                                 p_rtg_sub_resource_rec.Attribute7;
1079                 x_rev_sub_resource_rec.Attribute8                 :=
1080                                 p_rtg_sub_resource_rec.Attribute8;
1081                 x_rev_sub_resource_rec.Attribute9                 :=
1082                                 p_rtg_sub_resource_rec.Attribute9;
1083                 x_rev_sub_resource_rec.Attribute10                :=
1084                                 p_rtg_sub_resource_rec.Attribute10;
1085                 x_rev_sub_resource_rec.Attribute11                :=
1086                                 p_rtg_sub_resource_rec.Attribute11;
1087                 x_rev_sub_resource_rec.Attribute12                :=
1088                                 p_rtg_sub_resource_rec.Attribute12;
1089                 x_rev_sub_resource_rec.Attribute13                :=
1090                                 p_rtg_sub_resource_rec.Attribute13;
1091                 x_rev_sub_resource_rec.Attribute14                :=
1092                                 p_rtg_sub_resource_rec.Attribute14;
1093                 x_rev_sub_resource_rec.Attribute15                :=
1094                                 p_rtg_sub_resource_rec.Attribute15;
1095                 x_rev_sub_resource_rec.Original_System_Reference  :=
1096                                 p_rtg_sub_resource_rec.Original_System_Reference;
1097                 x_rev_sub_resource_rec.Transaction_Type           :=
1098                                 p_rtg_sub_resource_rec.Transaction_Type;
1099                 x_rev_sub_resource_rec.Return_Status              :=
1100                                 p_rtg_sub_resource_rec.Return_Status;
1101                 x_rev_sub_resource_rec.Setup_Type                 :=
1102                                 p_rtg_sub_resource_rec.Setup_Type ;
1103 
1104                 -- Similarly copy the unexposed record values into an ECO BO
1105                 -- compatible record
1106 
1107                 x_rev_sub_res_unexp_rec.Revised_Item_Sequence_Id    := NULL;
1108                 x_rev_sub_res_unexp_rec.Operation_Sequence_Id       :=
1109                                 p_rtg_sub_res_unexp_rec.Operation_Sequence_Id;
1110                 x_rev_sub_res_unexp_rec.Routing_Sequence_Id         :=
1111                                 p_rtg_sub_res_unexp_rec.Routing_Sequence_Id;
1112                 x_rev_sub_res_unexp_rec.Revised_Item_Id             :=
1113                                 p_rtg_sub_res_unexp_rec.Assembly_Item_Id;
1114                 x_rev_sub_res_unexp_rec.Organization_Id             :=
1115                                 p_rtg_sub_res_unexp_rec.Organization_Id;
1116                 x_rev_sub_resource_rec.Substitute_Group_Number     :=
1117                                 p_rtg_sub_resource_rec.Substitute_Group_Number;
1118                 x_rev_sub_res_unexp_rec.Substitute_Group_Number     :=
1119                                 x_rev_sub_resource_rec.Substitute_Group_Number;
1120                 x_rev_sub_res_unexp_rec.Resource_Id                 :=
1121                                 p_rtg_sub_res_unexp_rec.Resource_Id;
1122                 x_rev_sub_res_unexp_rec.New_Resource_Id             :=
1123                                 p_rtg_sub_res_unexp_rec.New_Resource_Id;
1124                 x_rev_sub_res_unexp_rec.Activity_Id                 :=
1125                                 p_rtg_sub_res_unexp_rec.Activity_Id ;
1126                 x_rev_sub_res_unexp_rec.Setup_Id                    :=
1127                                 p_rtg_sub_res_unexp_rec.Setup_ID ;
1128 
1129         END Convert_RtgSubRes_To_EcoSubRes;
1130 
1131         /*****************************************************************
1132         * Procedure     : Convert_EcoSubRes_To_RtgSubRes
1133         * Parameters IN : ECO Substitute Resource Exposed Column Record
1134         *                 ECO Substitute Resource Unexposed Column Record
1135         * Parameters OUT: Substitute Resource Exposed Exposed Column Record
1136         *                 Substitute Resource Unexposed Column Record
1137         * Purpose       : This procedure will simply take the ECO Sub Resource
1138         *                 record and copy its values into the Sub Resource
1139         *                 record. Since the record definitions of ECO and routig
1140         *                 records is different, this has to done on a field
1141         *                 by field basis.
1142         ******************************************************************/
1143         PROCEDURE Convert_EcoSubRes_To_RtgSubRes
1144         ( p_rev_sub_resource_rec  IN  Bom_Rtg_Pub.Rev_Sub_Resource_Rec_Type
1145         , p_rev_sub_res_unexp_rec IN  Bom_Rtg_Pub.Rev_Sub_Res_Unexposed_Rec_Type
1146         , x_rtg_sub_resource_rec  IN OUT NOCOPY Bom_Rtg_Pub.Sub_Resource_Rec_Type
1147         , x_rtg_sub_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Sub_Res_Unexposed_Rec_Type
1148         )
1149         IS
1150         BEGIN
1151 
1152                 x_rtg_sub_resource_rec.Organization_Code          :=
1153                                 p_rev_sub_resource_rec.Organization_Code;
1154                 x_rtg_sub_resource_rec.Assembly_Item_Name         :=
1155                                 p_rev_sub_resource_rec.Revised_Item_Name;
1156                 x_rtg_sub_resource_rec.Alternate_Routing_Code     :=
1157                                 p_rev_sub_resource_rec.Alternate_Routing_Code;
1158                 x_rtg_sub_resource_rec.Operation_Sequence_Number  :=
1159                                 p_rev_sub_resource_rec.Operation_Sequence_Number;
1160                 x_rtg_sub_resource_rec.Operation_Type             :=
1161                                 p_rev_sub_resource_rec.Operation_Type;
1162                 x_rtg_sub_resource_rec.OP_Start_Effective_Date    :=
1163                                 p_rev_sub_resource_rec.OP_Start_Effective_Date;
1164                 x_rtg_sub_resource_rec.Sub_Resource_code          :=
1165                                 p_rev_sub_resource_rec.Sub_Resource_code;
1166                 x_rtg_sub_resource_rec.New_Sub_Resource_code      :=
1167                                 p_rev_sub_resource_rec.New_Sub_Resource_code;
1168                 x_rtg_sub_resource_rec.Schedule_Sequence_Number   :=
1169                                 p_rev_sub_resource_rec.Schedule_Sequence_Number ;
1170                 x_rtg_sub_resource_rec.Replacement_Group_Number   :=
1171                                 p_rev_sub_resource_rec.Replacement_Group_Number ;
1172                 x_rtg_sub_resource_rec.New_Replacement_Group_Number   := -- bug 3741570
1173                                 p_rev_sub_resource_rec.New_Replacement_Group_Number;
1174                 x_rtg_sub_resource_rec.Activity                   :=
1175                                 p_rev_sub_resource_rec.Activity;
1176                 x_rtg_sub_resource_rec.Standard_Rate_Flag         :=
1177                                 p_rev_sub_resource_rec.Standard_Rate_Flag;
1178                 x_rtg_sub_resource_rec.Assigned_Units             :=
1179                                 p_rev_sub_resource_rec.Assigned_Units;
1180                 x_rtg_sub_resource_rec.Usage_Rate_Or_amount       :=
1181                                 p_rev_sub_resource_rec.Usage_Rate_Or_amount ;
1182                 x_rtg_sub_resource_rec.Usage_Rate_Or_Amount_Inverse :=
1183                                 p_rev_sub_resource_rec.Usage_Rate_Or_Amount_Inverse;
1184                 x_rtg_sub_resource_rec.Basis_Type                 :=
1185                                 p_rev_sub_resource_rec.Basis_Type;
1186                 x_rtg_sub_resource_rec.New_Basis_Type             :=
1187                                 p_rev_sub_resource_rec.New_Basis_Type; /* Added for bug 4689856 */
1188                 x_rtg_sub_resource_rec.Schedule_Flag              :=
1189                                 p_rev_sub_resource_rec.Schedule_Flag;
1190                 x_rtg_sub_resource_rec.Resource_Offset_Percent    :=
1191                                 p_rev_sub_resource_rec.Resource_Offset_Percent;
1192                 x_rtg_sub_resource_rec.Autocharge_Type            :=
1193                                 p_rev_sub_resource_rec.Autocharge_Type;
1194                 x_rtg_sub_resource_rec.Principle_Flag             :=
1195                                 p_rev_sub_resource_rec.Principle_Flag ;
1196                 x_rtg_sub_resource_rec.Attribute_category         :=
1197                                 p_rev_sub_resource_rec.Attribute_category;
1198                 x_rtg_sub_resource_rec.Attribute1                 :=
1199                                 p_rev_sub_resource_rec.Attribute1;
1200                 x_rtg_sub_resource_rec.Attribute2                 :=
1201                                 p_rev_sub_resource_rec.Attribute2;
1202                 x_rtg_sub_resource_rec.Attribute3                 :=
1203                                 p_rev_sub_resource_rec.Attribute3;
1204                 x_rtg_sub_resource_rec.Attribute4                 :=
1205                                 p_rev_sub_resource_rec.Attribute4;
1206                 x_rtg_sub_resource_rec.Attribute5                 :=
1207                                 p_rev_sub_resource_rec.Attribute5;
1208                 x_rtg_sub_resource_rec.Attribute6                 :=
1209                                 p_rev_sub_resource_rec.Attribute6 ;
1210                 x_rtg_sub_resource_rec.Attribute7                 :=
1211                                 p_rev_sub_resource_rec.Attribute7;
1212                 x_rtg_sub_resource_rec.Attribute8                 :=
1213                                 p_rev_sub_resource_rec.Attribute8;
1214                 x_rtg_sub_resource_rec.Attribute9                 :=
1215                                 p_rev_sub_resource_rec.Attribute9;
1216                 x_rtg_sub_resource_rec.Attribute10                :=
1217                                 p_rev_sub_resource_rec.Attribute10;
1218                 x_rtg_sub_resource_rec.Attribute11                :=
1219                                 p_rev_sub_resource_rec.Attribute11;
1220                 x_rtg_sub_resource_rec.Attribute12                :=
1221                                 p_rev_sub_resource_rec.Attribute12;
1222                 x_rtg_sub_resource_rec.Attribute13                :=
1223                                 p_rev_sub_resource_rec.Attribute13;
1224                 x_rtg_sub_resource_rec.Attribute14                :=
1225                                 p_rev_sub_resource_rec.Attribute14;
1226                 x_rtg_sub_resource_rec.Attribute15                :=
1227                                 p_rev_sub_resource_rec.Attribute15;
1228                 x_rtg_sub_resource_rec.Original_System_Reference  :=
1229                                 p_rev_sub_resource_rec.Original_System_Reference;
1230                 x_rtg_sub_resource_rec.Transaction_Type           :=
1231                                 p_rev_sub_resource_rec.Transaction_Type;
1232                 x_rtg_sub_resource_rec.Return_Status              :=
1233                                 p_rev_sub_resource_rec.Return_Status;
1234                 x_rtg_sub_resource_rec.Setup_Type                 :=
1235                                 p_rev_sub_resource_rec.Setup_Type;
1236 
1237                 -- Similarly copy the unexposed record values into an ECO BO
1238                 -- compatible record
1239 
1240                 x_rtg_sub_res_unexp_rec.Operation_Sequence_Id      :=
1241                                 p_rev_sub_res_unexp_rec.Operation_Sequence_Id;
1242                 x_rtg_sub_res_unexp_rec.Routing_Sequence_Id        :=
1243                                 p_rev_sub_res_unexp_rec.Routing_Sequence_Id;
1244                 x_rtg_sub_res_unexp_rec.Assembly_Item_Id           :=
1245                                 p_rev_sub_res_unexp_rec.revised_Item_Id;
1246                 x_rtg_sub_res_unexp_rec.Organization_Id            :=
1247                                 p_rev_sub_res_unexp_rec.Organization_Id;
1248                 x_rtg_sub_resource_rec.Substitute_Group_Number    :=
1249                                 p_rev_sub_resource_rec.substitute_Group_Number;
1250                 x_rtg_sub_res_unexp_rec.Substitute_Group_Number    :=
1251                                 x_rtg_sub_resource_rec.Substitute_Group_Number;
1252                 x_rtg_sub_res_unexp_rec.Resource_Id                :=
1253                                 p_rev_sub_res_unexp_rec.Resource_Id;
1254                 x_rtg_sub_res_unexp_rec.New_Resource_Id            :=
1255                                 p_rev_sub_res_unexp_rec.New_Resource_Id;
1256                 x_rtg_sub_res_unexp_rec.Activity_Id                :=
1257                                 p_rev_sub_res_unexp_rec.Activity_Id ;
1258                 x_rtg_sub_res_unexp_rec.Setup_Id                   :=
1259                                 p_rev_sub_res_unexp_rec.Setup_Id ;
1260 
1261 
1262         END Convert_EcoSubRes_To_RtgSubRes ;
1263 
1264 
1265         /********************************************************************
1266         * Function      : Does_Rev_Have_Same_Rtg
1267         * Parameters IN : Routing Revision exposed column record
1268         *                 Assembly Name
1269         *                 Organization Name
1270         * Parameters OUT: N/A
1271         * Purpose       : This function is to check all the records have the
1272         *                 same assembly_item_name and same organization.
1273         *                 This function is callled in the procedure
1274         *                 Check_Records_In_Same_BOM
1275         *********************************************************************/
1276         FUNCTION Does_Rev_Have_Same_Rtg
1277         ( p_rtg_revision_tbl        IN Bom_Rtg_Pub.Rtg_Revision_Tbl_Type
1278         , p_assembly_item_name      IN VARCHAR2
1279         , p_organization_code       IN VARCHAR2
1280         ) RETURN BOOLEAN
1281         IS
1282                 table_index     NUMBER;
1283                 record_count    NUMBER;
1284         BEGIN
1285                 record_count := p_rtg_revision_tbl.COUNT;
1286 
1287                 FOR table_index IN 1..record_count
1288                 LOOP
1289                     IF NVL(p_rtg_revision_tbl(table_index).assembly_item_name,
1290                            FND_API.G_MISS_CHAR) <>
1291                                 NVL(p_assembly_item_name, FND_API.G_MISS_CHAR)
1292                            OR
1293                            NVL(p_rtg_revision_tbl(table_index).organization_code,
1294                                FND_API.G_MISS_CHAR) <>
1295                                 NVL(p_organization_code, FND_API.G_MISS_CHAR)
1296                     THEN
1297                          RETURN FALSE;
1298                     END IF;
1299                 END LOOP;
1300                 RETURN TRUE;
1301         END Does_Rev_Have_Same_Rtg;
1302 
1303         /********************************************************************
1304         * Function      : Does_Op_Have_Same_Rtg
1305         * Parameters IN : Operation exposed column record
1306         *                 Assembly Name
1307         *                 Organization Name
1308         *                 Alternate routing code
1309         * Parameters OUT: N/A
1310         * Purpose       : This function is to check all the records have the
1311         *                 same assembly_item_name and same organization.
1312         *                 This function is callled in the procedure
1313         *                 Check_Records_In_Same_BOM
1314         *********************************************************************/
1315         FUNCTION Does_Op_Have_Same_Rtg
1316         ( p_operation_tbl            IN  Bom_Rtg_Pub.Operation_Tbl_Type
1317         , p_assembly_item_name       IN VARCHAR2
1318         , p_organization_code        IN VARCHAR2
1319         , p_alternate_routing_code   IN VARCHAR2
1320         ) RETURN BOOLEAN
1321         IS
1322                 table_index     NUMBER;
1323                 record_count    NUMBER;
1324         BEGIN
1325                 record_count := p_operation_tbl.COUNT;
1326 
1327                 FOR table_index IN 1..record_count
1328                 LOOP
1329                   IF NVL(p_operation_tbl(table_index).assembly_item_name,
1330                             FND_API.G_MISS_CHAR) <>
1331                               NVL(p_assembly_item_name, FND_API.G_MISS_CHAR)
1332                      OR
1333                      NVL(p_operation_tbl(table_index).organization_code,
1334                            FND_API.G_MISS_CHAR) <>
1335                               NVL(p_organization_code, FND_API.G_MISS_CHAR)
1336                      OR
1337                      NVL(p_operation_tbl(table_index).alternate_routing_code,
1338                               FND_API.G_MISS_CHAR) <>
1339                            NVL(p_alternate_routing_code, FND_API.G_MISS_CHAR)
1340                      AND NVL(p_alternate_routing_code,  FND_API.G_MISS_CHAR)
1341                          <> 'XXXXXXXXXX'
1342                   THEN
1343                     RETURN FALSE;
1344                   END IF;
1345                 END LOOP;
1346 
1347                 RETURN TRUE;
1348         END Does_Op_Have_Same_Rtg;
1349 
1350         /********************************************************************
1351         * Function      : Does_Res_Have_Same_Rtg
1352         * Parameters IN : Operation resource exposed column record
1353         *                 Assembly Name
1354         *                 Organization Name
1355         *                 Alternate routing code
1356         * Parameters OUT: N/A
1357         * Purpose       : This function is to check all the records have the
1358         *                 same assembly_item_name and same organization.
1359         *                 This function is callled in the procedure
1360         *                 Check_Records_In_Same_BOM
1361         *********************************************************************/
1362         FUNCTION Does_Res_Have_Same_Rtg
1363         (p_op_resource_tbl          IN  Bom_Rtg_Pub.Op_Resource_Tbl_Type
1364         , p_assembly_item_name      IN VARCHAR2
1365         , p_organization_code       IN VARCHAR2
1366         , p_alternate_routing_code  IN VARCHAR2
1367         ) RETURN BOOLEAN
1368         IS
1369                 table_index     NUMBER;
1370                 record_count    NUMBER;
1371         BEGIN
1372                 record_count := p_op_resource_tbl .COUNT;
1373 
1374                 FOR table_index IN 1..record_count
1375                 LOOP
1376                      IF NVL(p_op_resource_tbl (table_index).assembly_item_name,
1377                             FND_API.G_MISS_CHAR) <>
1378                             NVL(p_assembly_item_name, FND_API.G_MISS_CHAR)
1379                      OR NVL(p_op_resource_tbl(table_index).organization_code,
1380                             FND_API.G_MISS_CHAR) <>
1381                             NVL(p_organization_code, FND_API.G_MISS_CHAR)
1382                      OR NVL(p_op_resource_tbl(table_index).alternate_routing_code,
1383                             FND_API.G_MISS_CHAR) <>
1384                             NVL(p_alternate_routing_code, FND_API.G_MISS_CHAR)
1385                      AND NVL(p_alternate_routing_code,  FND_API.G_MISS_CHAR)
1386                             <> 'XXXXXXXXXX'
1387                      THEN
1388                          RETURN FALSE;
1389                      END IF;
1390                 END LOOP;
1391 
1392                 RETURN TRUE;
1393         END Does_Res_Have_Same_Rtg;
1394 
1395         /********************************************************************
1396         * Function      : Does_SubRes_Have_Same_Rtg
1397         * Parameters IN : Operation Sub resource exposed column record
1398         *                 Assembly Name
1399         *                 Organization Name
1400         *                 Alternate routing code
1401         * Parameters OUT: N/A
1402         * Purpose       : This function is to check all the records have the
1403         *                 same assembly_item_name and same organization.
1404         *                 This function is callled in the procedure
1405         *                 Check_Records_In_Same_BOM
1406         *********************************************************************/
1407         FUNCTION Does_SubRes_Have_Same_Rtg
1408         ( p_sub_resource_tbl        IN  Bom_Rtg_Pub.Sub_Resource_Tbl_Type
1409         , p_assembly_item_name      IN VARCHAR2
1410         , p_organization_code       IN VARCHAR2
1411         , p_alternate_routing_code  IN VARCHAR2
1412         ) RETURN BOOLEAN
1413         IS
1414                 table_index     NUMBER;
1415                 record_count    NUMBER;
1416         BEGIN
1417                 record_count := p_sub_resource_tbl.COUNT;
1418 
1419                 FOR table_index IN 1..record_count
1420                 LOOP
1421                     IF NVL(p_sub_resource_tbl(table_index).assembly_item_name,
1422                            FND_API.G_MISS_CHAR) <>
1423                            NVL(p_assembly_item_name, FND_API.G_MISS_CHAR)
1424                     OR NVL(p_sub_resource_tbl(table_index).organization_code,
1425                            FND_API.G_MISS_CHAR) <>
1426                            NVL(p_organization_code, FND_API.G_MISS_CHAR)
1427                     OR NVL(p_sub_resource_tbl(table_index).alternate_routing_code,
1428                              FND_API.G_MISS_CHAR) <>
1429                            NVL(p_alternate_routing_code,  FND_API.G_MISS_CHAR)
1430                     AND NVL(p_alternate_routing_code,  FND_API.G_MISS_CHAR)
1431                            <> 'XXXXXXXXXX'
1432                     THEN
1433                        RETURN FALSE;
1434                     END IF;
1435                 END LOOP;
1436 
1437                 RETURN TRUE;
1438         END Does_SubRes_Have_Same_Rtg;
1439 
1440         /********************************************************************
1441         * Function      : Does_OpNw_Have_Same_Rtg
1442         * Parameters IN : Operation Sub resource exposed column record
1443         *                 Assembly Name
1444         *                 Organization Name
1445         *                 Alternate routing code
1446         * Parameters OUT: N/A
1447         * Purpose       : This function is to check all the records have the
1448         *                 same assembly_item_name and same organization.
1449         *                 This function is callled in the procedure
1450         *                 Check_Records_In_Same_BOM
1451         *********************************************************************/
1452         FUNCTION Does_OpNw_Have_Same_Rtg
1453         ( p_op_network_tbl          IN Bom_Rtg_Pub.Op_Network_Tbl_Type
1454         , p_assembly_item_name      IN VARCHAR2
1455         , p_organization_code       IN VARCHAR2
1456         , p_alternate_routing_code  IN VARCHAR2
1457         ) RETURN BOOLEAN
1458         IS
1459                 table_index     NUMBER;
1460                 record_count    NUMBER;
1461         BEGIN
1462                 record_count := p_op_network_tbl.COUNT;
1463                 FOR table_index IN 1..record_count
1464                 LOOP
1465                     IF NVL(p_op_network_tbl(table_index).assembly_item_name,
1466                            FND_API.G_MISS_CHAR) <>
1467                            NVL(p_assembly_item_name, FND_API.G_MISS_CHAR)
1468                     OR NVL(p_op_network_tbl(table_index).organization_code,
1469                            FND_API.G_MISS_CHAR) <>
1470                            NVL(p_organization_code, FND_API.G_MISS_CHAR)
1471                     OR NVL(p_op_network_tbl(table_index).alternate_routing_code,
1472                            FND_API.G_MISS_CHAR) <>
1473                            NVL(p_alternate_routing_code, FND_API.G_MISS_CHAR)
1474                     AND NVL(p_alternate_routing_code,  FND_API.G_MISS_CHAR)
1475                            <> 'XXXXXXXXXX'
1476                     THEN
1477                          RETURN FALSE;
1478                     END IF;
1479                 END LOOP;
1480 
1481                 RETURN TRUE;
1482         END Does_OpNw_Have_Same_Rtg;
1483 
1484 
1485         /********************************************************************
1486         * Procedure     : Check_Records_In_Same_RTG
1487         * Parameters IN : Routing Header exposed column record
1488         *                 Routing revision exposed column table
1489         *                 Operation Exposed Column Table
1490         *                 Resource Exposed Column table
1491         *                 Substitute  Resource Exposed column table
1492         *                 Network Exposed column table
1493         * Parameters OUT: Assembly_item_name
1494         *                 Organization_code
1495         * Purpose       : This procedure is to check all the records have the
1496         *                 same assembly_item_name and same organization.
1497         *                 This procedure is callled in public procedure
1498         *                 Process_Rtg.
1499         *********************************************************************/
1500 
1501         FUNCTION Check_Records_In_Same_RTG
1502         (  p_rtg_header_rec         IN  Bom_Rtg_Pub.Rtg_Header_Rec_Type
1503          , p_rtg_revision_tbl       IN  Bom_Rtg_Pub.Rtg_Revision_Tbl_Type
1504          , p_operation_tbl          IN  Bom_Rtg_Pub.Operation_Tbl_Type
1505          , p_op_resource_tbl        IN  Bom_Rtg_Pub.Op_resource_Tbl_Type
1506          , p_sub_resource_tbl       IN  Bom_Rtg_Pub.Sub_Resource_Tbl_Type
1507          , p_op_network_tbl         IN  Bom_Rtg_Pub.Op_network_Tbl_Type
1508          , x_assembly_item_name     IN OUT NOCOPY VARCHAR2
1509          , x_organization_code      IN OUT NOCOPY VARCHAR2
1510          , x_alternate_routing_code IN OUT NOCOPY VARCHAR2
1511         )
1512         RETURN BOOLEAN
1513         IS
1514                 l_organization_code      VARCHAR2(3);
1515                 l_assembly_item_name     VARCHAR2(81);
1516                 l_alternate_routing_code VARCHAR2(10);
1517                 record_count             NUMBER;
1518         BEGIN
1519 
1520                 ----  if Routing header record exist
1521                 IF (p_rtg_header_rec.assembly_item_name IS NOT NULL AND
1522                     p_rtg_header_rec.assembly_item_name <> FND_API.G_MISS_CHAR)
1523                     OR
1524                     (p_rtg_header_rec.organization_code IS NOT NULL AND
1525                      p_rtg_header_rec.organization_code <> FND_API.G_MISS_CHAR)
1526                     OR
1527                     (p_rtg_header_rec.alternate_routing_code IS NOT NULL AND
1528                      p_rtg_header_rec.alternate_routing_code <>
1529                              FND_API.G_MISS_CHAR)
1530                 THEN
1531                         l_assembly_item_name :=
1532                                         p_rtg_header_rec.assembly_item_name;
1533                         l_organization_code :=
1534                                         p_rtg_header_rec.organization_code;
1535                         l_alternate_routing_code :=
1536                                         p_rtg_header_rec.alternate_routing_code;
1537                         x_assembly_item_name :=
1538                                         p_rtg_header_rec.assembly_item_name;
1539                         x_organization_code :=
1540                                         p_rtg_header_rec.organization_code;
1541                         x_alternate_routing_code :=
1542                                         p_rtg_header_rec.alternate_routing_code;
1543                         IF NOT Does_Rev_Have_Same_Rtg
1544                         ( p_rtg_revision_tbl => p_rtg_revision_tbl
1545                         , p_assembly_item_name => l_assembly_item_name
1546                         , p_organization_code => l_organization_code
1547                         )
1548                         THEN
1549                                 RETURN FALSE;
1550                         END IF;
1551 
1552                         IF NOT Does_Op_Have_Same_Rtg
1553                         ( p_operation_tbl        => p_operation_tbl
1554                         , p_assembly_item_name   => l_assembly_item_name
1555                         , p_organization_code    => l_organization_code
1556                         , p_alternate_routing_code =>
1557                                              l_alternate_routing_code
1558                         )
1559                         THEN
1560                                 RETURN FALSE;
1561                         END IF;
1562 
1563                         IF NOT Does_Res_Have_Same_Rtg
1564                         ( p_op_resource_tbl     => p_op_resource_tbl
1565                         , p_assembly_item_name  => l_assembly_item_name
1566                         , p_organization_code   => l_organization_code
1567                         , p_alternate_routing_code =>
1568                                              l_alternate_routing_code
1569                         )
1570                         THEN
1571                                 RETURN FALSE;
1572                         END IF;
1573 
1574                         IF NOT Does_SubRes_Have_Same_Rtg
1575                         ( p_sub_resource_tbl    => p_sub_resource_tbl
1576                         , p_assembly_item_name  => l_assembly_item_name
1577                         , p_organization_code   => l_organization_code
1578                         , p_alternate_routing_code =>
1579                                              l_alternate_routing_code
1580                         )
1581                         THEN
1582                                 RETURN FALSE;
1583                         END IF;
1584 
1585                         IF NOT Does_OpNw_Have_Same_Rtg
1586                         ( p_op_network_tbl     =>  p_op_network_tbl
1587                         , p_assembly_item_name => l_assembly_item_name
1588                         , p_organization_code  => l_organization_code
1589                         , p_alternate_routing_code =>
1590                                              l_alternate_routing_code
1591                         )
1592                         THEN
1593                                 RETURN FALSE;
1594                         END IF;
1595 
1596 
1597                         RETURN TRUE;
1598 
1599                 END IF;
1600 
1601                 ----  If revision records exist
1602                 record_count := p_rtg_revision_tbl.COUNT;
1603                 IF record_count <> 0
1604                 THEN
1605                         l_assembly_item_name :=
1606                                 p_rtg_revision_tbl(1).assembly_item_name;
1607                         l_organization_code :=
1608                                 p_rtg_revision_tbl(1).organization_code;
1609                         x_assembly_item_name :=
1610                                 p_rtg_revision_tbl(1).assembly_item_name;
1611                         x_organization_code :=
1612                                 p_rtg_revision_tbl(1).organization_code;
1613 
1614                         l_alternate_routing_code := 'XXXXXXXXXX';
1615                         x_alternate_routing_code := 'XXXXXXXXXX';
1616 
1617                         IF record_count > 1
1618                         THEN
1619 
1620                           IF NOT Does_Rev_Have_Same_Rtg
1621                            ( p_rtg_revision_tbl    => p_rtg_revision_tbl
1622                            , p_assembly_item_name  => l_assembly_item_name
1623                            , p_organization_code   => l_organization_code
1624                            )
1625                           THEN
1626                                 RETURN FALSE;
1627                           END IF;
1628                         END IF;
1629 
1630                          IF NOT Does_OP_Have_Same_Rtg
1631                            ( p_operation_tbl       => p_operation_tbl
1632                            , p_assembly_item_name  => l_assembly_item_name
1633                            , p_organization_code   => l_organization_code
1634                            , p_alternate_routing_code =>
1635                                    l_alternate_routing_code
1636                           )
1637                           THEN
1638                                 RETURN FALSE;
1639                           END IF;
1640 
1641                           IF NOT Does_Res_Have_Same_Rtg
1642                            ( p_op_resource_tbl     => p_op_resource_tbl
1643                            , p_assembly_item_name  => l_assembly_item_name
1644                            , p_organization_code   => l_organization_code
1645                            , p_alternate_routing_code =>
1646                                    l_alternate_routing_code
1647                           )
1648                         THEN
1649                                 RETURN FALSE;
1650                         END IF;
1651 
1652                         IF NOT Does_SubRes_Have_Same_Rtg
1653                             ( p_sub_resource_tbl    => p_sub_resource_tbl
1654                             , p_assembly_item_name  => l_assembly_item_name
1655                             , p_organization_code   => l_organization_code
1656                             , p_alternate_routing_code =>
1657                                              l_alternate_routing_code
1658                             )
1659                           THEN
1660                                 RETURN FALSE;
1661                         END IF;
1662 
1663                        IF NOT Does_OpNw_Have_Same_Rtg
1664                         ( p_op_network_tbl     =>  p_op_network_tbl
1665                         , p_assembly_item_name => l_assembly_item_name
1666                         , p_organization_code  => l_organization_code
1667                         , p_alternate_routing_code =>
1668                                              l_alternate_routing_code
1669                         )
1670                         THEN
1671                                 RETURN FALSE;
1672                        END IF;
1673 
1674 
1675                      RETURN TRUE;
1676 
1677 
1678 
1679                 END IF;
1680 
1681                 --  If operation records exist
1682                 record_count := p_operation_tbl.COUNT;
1683                 IF record_count <> 0
1684                 THEN
1685                         l_assembly_item_name :=
1686                                 p_operation_tbl(1).assembly_item_name;
1687                         l_organization_code :=
1688                                 p_operation_tbl(1).organization_code;
1689                         x_assembly_item_name :=
1690                                 p_operation_tbl(1).assembly_item_name;
1691                         x_organization_code :=
1692                                 p_operation_tbl(1).organization_code;
1693 
1694                         l_alternate_routing_code :=
1695                              p_operation_tbl(1).alternate_routing_code;
1696                         x_alternate_routing_code :=
1697                              p_operation_tbl(1).alternate_routing_code;
1698 
1699                         IF record_count > 1
1700                         THEN
1701 
1702                           IF NOT Does_OP_Have_Same_Rtg
1703                            ( p_operation_tbl       => p_operation_tbl
1704                            , p_assembly_item_name  => l_assembly_item_name
1705                            , p_organization_code   => l_organization_code
1706                            , p_alternate_routing_code =>
1707                                    l_alternate_routing_code
1708                           )
1709                           THEN
1710                                 RETURN FALSE;
1711                           END IF;
1712                         END IF;
1713 
1714                         IF NOT Does_Res_Have_Same_Rtg
1715                            ( p_op_resource_tbl     => p_op_resource_tbl
1716                            , p_assembly_item_name  => l_assembly_item_name
1717                            , p_organization_code   => l_organization_code
1718                            , p_alternate_routing_code =>
1719                                    l_alternate_routing_code
1720                           )
1721                         THEN
1722                                 RETURN FALSE;
1723                         END IF;
1724 
1725                         IF NOT Does_SubRes_Have_Same_Rtg
1726                             ( p_sub_resource_tbl    => p_sub_resource_tbl
1727                             , p_assembly_item_name  => l_assembly_item_name
1728                             , p_organization_code   => l_organization_code
1729                             , p_alternate_routing_code =>
1730                                              l_alternate_routing_code
1731                             )
1732                           THEN
1733                                 RETURN FALSE;
1734                         END IF;
1735 
1736                         IF NOT Does_OpNw_Have_Same_Rtg
1737                         ( p_op_network_tbl     =>  p_op_network_tbl
1738                         , p_assembly_item_name => l_assembly_item_name
1739                         , p_organization_code  => l_organization_code
1740                         , p_alternate_routing_code =>
1741                                              l_alternate_routing_code
1742                         )
1743                         THEN
1744                                 RETURN FALSE;
1745                         END IF;
1746 
1747                      RETURN TRUE;
1748 
1749                 END IF;
1750 
1751                 --  If Operation Network records exist
1752                 record_count := p_op_network_tbl.COUNT;
1753                 IF record_count <> 0
1754                 THEN
1755                         l_assembly_item_name :=
1756                                 p_op_network_tbl(1).assembly_item_name;
1757                         l_organization_code :=
1758                                 p_op_network_tbl(1).organization_code;
1759                         x_assembly_item_name :=
1760                                 p_op_network_tbl(1).assembly_item_name;
1761                         x_organization_code :=
1762                                 p_op_network_tbl(1).organization_code;
1763                         l_alternate_routing_code :=
1764                              p_op_network_tbl(1).alternate_routing_code;
1765                         x_alternate_routing_code :=
1766                              p_op_network_tbl(1).alternate_routing_code;
1767 
1768                          IF record_count > 1
1769                          THEN
1770 
1771                           IF NOT Does_OpNw_Have_Same_Rtg
1772                            ( p_op_network_tbl     =>  p_op_network_tbl
1773                            , p_assembly_item_name => l_assembly_item_name
1774                            , p_organization_code  => l_organization_code
1775                            , p_alternate_routing_code =>
1776                            l_alternate_routing_code
1777                           )
1778                           THEN
1779                                 RETURN FALSE;
1780                           END IF;
1781                         END IF;
1782 
1783                         IF NOT Does_OP_Have_Same_Rtg
1784                            ( p_operation_tbl       => p_operation_tbl
1785                            , p_assembly_item_name  => l_assembly_item_name
1786                            , p_organization_code   => l_organization_code
1787                            , p_alternate_routing_code =>
1788                                    l_alternate_routing_code
1789                           )
1790                         THEN
1791                                 RETURN FALSE;
1792                         END IF;
1793 
1794                         IF NOT Does_Res_Have_Same_Rtg
1795                            ( p_op_resource_tbl     => p_op_resource_tbl
1796                            , p_assembly_item_name  => l_assembly_item_name
1797                            , p_organization_code   => l_organization_code
1798                            , p_alternate_routing_code =>
1799                                    l_alternate_routing_code
1800                           )
1801                         THEN
1802                                 RETURN FALSE;
1803                         END IF;
1804 
1805                         IF NOT Does_SubRes_Have_Same_Rtg
1806                             ( p_sub_resource_tbl    => p_sub_resource_tbl
1807                             , p_assembly_item_name  => l_assembly_item_name
1808                             , p_organization_code   => l_organization_code
1809                             , p_alternate_routing_code =>
1810                                              l_alternate_routing_code
1811                             )
1812                         THEN
1813                                 RETURN FALSE;
1814                         END IF;
1815                      RETURN TRUE;
1816 
1817                 END IF;
1818 
1819                 --  If operation resource records exist
1820                 record_count := p_op_resource_tbl.COUNT;
1821                 IF record_count <> 0
1822                 THEN
1823                         l_assembly_item_name :=
1824                                 p_op_resource_tbl(1).assembly_item_name;
1825                         l_organization_code :=
1826                                 p_op_resource_tbl(1).organization_code;
1827                         x_assembly_item_name :=
1828                                 p_op_resource_tbl(1).assembly_item_name;
1829                         x_organization_code :=
1830                                 p_op_resource_tbl(1).organization_code;
1831 
1832                         l_alternate_routing_code :=
1833                              p_op_resource_tbl(1).alternate_routing_code;
1834                         x_alternate_routing_code :=
1835                              p_op_resource_tbl(1).alternate_routing_code;
1836 
1837                         IF NOT Does_Res_Have_Same_Rtg
1838                         ( p_op_resource_tbl     => p_op_resource_tbl
1839                         , p_assembly_item_name  => l_assembly_item_name
1840                         , p_organization_code   => l_organization_code
1841                         , p_alternate_routing_code =>
1842                                              l_alternate_routing_code
1843                         )
1844                         THEN
1845                                 RETURN FALSE;
1846                         END IF;
1847 
1848                         IF record_count > 1
1849                         THEN
1850                           IF NOT Does_Res_Have_Same_Rtg
1851                            ( p_op_resource_tbl     => p_op_resource_tbl
1852                            , p_assembly_item_name  => l_assembly_item_name
1853                            , p_organization_code   => l_organization_code
1854                            , p_alternate_routing_code =>
1855                                    l_alternate_routing_code
1856                           )
1857                           THEN
1858                                 RETURN FALSE;
1859                           END IF;
1860                         END IF;
1861 
1862                          RETURN TRUE;
1863 
1864                 END IF;
1865 
1866 
1867                 --  If operation Substitute resouce records exist
1868                 record_count := p_sub_resource_tbl.COUNT;
1869                 IF record_count <> 0
1870                 THEN
1871                         l_assembly_item_name :=
1872                                 p_sub_resource_tbl(1).assembly_item_name;
1873                         l_organization_code :=
1874                                 p_sub_resource_tbl(1).organization_code;
1875                         x_assembly_item_name :=
1876                                 p_sub_resource_tbl(1).assembly_item_name;
1877                         x_organization_code :=
1878                                 p_sub_resource_tbl(1).organization_code;
1879 
1880                         l_alternate_routing_code :=
1881                              p_sub_resource_tbl(1).alternate_routing_code;
1882                         x_alternate_routing_code :=
1883                              p_sub_resource_tbl(1).alternate_routing_code;
1884 
1885 
1886 
1887                         IF record_count > 1
1888                         THEN
1889                             IF NOT Does_SubRes_Have_Same_Rtg
1890                             ( p_sub_resource_tbl => p_sub_resource_tbl
1891                             , p_assembly_item_name  => l_assembly_item_name
1892                             , p_organization_code   => l_organization_code
1893                             , p_alternate_routing_code =>
1894                                              l_alternate_routing_code
1895                             )
1896                             THEN
1897                                 RETURN FALSE;
1898                             END IF;
1899                         END IF;
1900 
1901                      RETURN TRUE;
1902 
1903                 END IF;
1904 
1905                 --
1906                 -- If nothing to process then return TRUE.
1907                 --
1908                 RETURN TRUE;
1909 
1910         END Check_Records_In_Same_RTG;
1911 
1912 
1913         /********************************************************************
1914         * Procedure     : Process_Rtg
1915         * Parameters IN : Routing Header exposed column record
1916         *                 Routing revision exposed column table
1917         *                 Operation Exposed Column Table
1918         *                 Resource Exposed Column table
1919         *                 Substitute  Resource Exposed column table
1920         *                 Network Exposed column table
1921         * Parameters OUT: Routing Header exposed column record
1922         *                 Routing revision exposed column table
1923         *                 Operation Exposed Column Table
1924         *                 Resource Exposed Column table
1925         *                 Substitute  Resource Exposed column table
1926         *                 Network Exposed column table
1927         * Purpose       : This procedure is the driving procedure of the Rtg
1928         *                 business Obect. It will verify the integrity of the
1929         *                 business object and will call the private API which
1930         *                 further drive the business object to perform business
1931         *                 logic validations.
1932         *********************************************************************/
1933         PROCEDURE Process_Rtg
1934         ( p_bo_identifier           IN  VARCHAR2 := 'RTG'
1935         , p_api_version_number      IN  NUMBER := 1.0
1936         , p_init_msg_list           IN  BOOLEAN := FALSE
1937         , p_rtg_header_rec          IN  Bom_Rtg_Pub.Rtg_Header_Rec_Type
1938                                         :=Bom_Rtg_Pub.G_MISS_RTG_HEADER_REC
1939         , p_rtg_revision_tbl        IN  Bom_Rtg_Pub.Rtg_Revision_Tbl_Type
1940                                         :=Bom_Rtg_Pub.G_MISS_RTG_REVISION_TBL
1941         , p_operation_tbl           IN  Bom_Rtg_Pub.Operation_Tbl_Type
1942                                         :=  Bom_Rtg_Pub.G_MISS_OPERATION_TBL
1943         , p_op_resource_tbl         IN  Bom_Rtg_Pub.Op_Resource_Tbl_Type
1944                                         :=  Bom_Rtg_Pub.G_MISS_OP_RESOURCE_TBL
1945         , p_sub_resource_tbl        IN  Bom_Rtg_Pub.Sub_Resource_Tbl_Type
1946                                        :=  Bom_Rtg_Pub.G_MISS_SUB_RESOURCE_TBL
1947         , p_op_network_tbl          IN  Bom_Rtg_Pub.Op_Network_Tbl_Type
1948                                         :=  Bom_Rtg_Pub.G_MISS_OP_NETWORK_TBL
1949         , x_rtg_header_rec          IN OUT NOCOPY Bom_Rtg_Pub.Rtg_Header_Rec_Type
1950         , x_rtg_revision_tbl        IN OUT NOCOPY Bom_Rtg_Pub.Rtg_Revision_Tbl_Type
1951         , x_operation_tbl           IN OUT NOCOPY Bom_Rtg_Pub.Operation_Tbl_Type
1952         , x_op_resource_tbl         IN OUT NOCOPY Bom_Rtg_Pub.Op_Resource_Tbl_Type
1953         , x_sub_resource_tbl        IN OUT NOCOPY Bom_Rtg_Pub.Sub_Resource_Tbl_Type
1954         , x_op_network_tbl          IN OUT NOCOPY Bom_Rtg_Pub.Op_Network_Tbl_Type
1955         , x_return_status           IN OUT NOCOPY VARCHAR2
1956         , x_msg_count               IN OUT NOCOPY NUMBER
1957         , p_debug                   IN  VARCHAR2 := 'N'
1958         , p_output_dir              IN  VARCHAR2 := NULL
1959         , p_debug_filename          IN  VARCHAR2 := 'RTG_BO_debug.log'
1960         )
1961        IS
1962 
1963        G_EXC_SEV_QUIT_OBJECT       EXCEPTION;
1964        G_EXC_UNEXP_SKIP_OBJECT     EXCEPTION;
1965        l_Mesg_Token_Tbl            Error_Handler.Mesg_Token_Tbl_Type;
1966        l_other_message             VARCHAR2(50);
1967        l_Token_Tbl                 Error_Handler.Token_Tbl_Type;
1968        l_err_text                  VARCHAR2(2000);
1969        l_return_status             VARCHAR2(1);
1970        l_assembly_item_name        VARCHAR2(81);
1971        l_organization_code         VARCHAR2(3);
1972        l_organization_id           NUMBER;
1973        l_alternate_routing_code    VARCHAR2(10);
1974        l_rtg_header_rec            Bom_Rtg_Pub.Rtg_Header_Rec_Type;
1975        l_routing_revision_tbl      Bom_Rtg_Pub.Rtg_Revision_Tbl_Type ;
1976        l_operation_tbl             Bom_Rtg_Pub.Operation_Tbl_Type;
1977        l_op_resource_tbl           Bom_Rtg_Pub.Op_Resource_Tbl_Type ;
1978        l_sub_resource_tbl          Bom_Rtg_Pub.Sub_Resource_Tbl_Type;
1979        l_op_network_tbl            Bom_Rtg_Pub.Op_Network_Tbl_Type;
1980        l_Debug_flag                VARCHAR2(1) := p_debug;
1981 
1982        BEGIN
1983 
1984 --dbms_output.put_line('In Bom_Rtg_Globals . . .' ) ;
1985 --dbms_output.put_line('Set Business Object Idenfier in the System Information. . .' ) ;
1986                 --
1987                 -- Set Business Object Idenfier in the System Information
1988                 -- record.
1989                 --
1990 /* Following code takes care ot setting the desired value after the entry into the Process_Rtg Procedure instead of defaulting the parameters
1991                 IF p_bo_identifier IS NULL THEN
1992                   p_bo_identifier := 'RTG';
1993                 END IF;
1994                 IF p_rtg_header_rec IS NULL THEN
1995                   p_rtg_header_rec := Bom_Rtg_Pub.G_MISS_RTG_HEADER_REC;
1996                 END IF;
1997                 IF p_rtg_revision_tbl IS NULL THEN
1998                   p_rtg_revision_tbl := Bom_Rtg_Pub.G_MISS_RTG_REVISION_TBL;
1999                 END IF;
2000                 IF p_operation_tbl IS NULL THEN
2001                   p_operation_tbl := Bom_Rtg_Pub.G_MISS_OPERATION_TBL;
2002                 END IF;
2003                 IF p_op_resource_tbl IS NULL THEN
2004                   p_op_resource_tbl := Bom_Rtg_Pub.G_MISS_OP_RESOURCE_TBL;
2005                 END IF;
2006                 IF p_sub_resource_tbl IS NULL THEN
2007                   p_sub_resource_tbl := Bom_Rtg_Pub.G_MISS_SUB_RESOURCE_TBL;
2008                 END IF;
2009                 IF p_op_network_tbl IS NULL THEN
2010                   p_op_network_tbl := Bom_Rtg_Pub.G_MISS_OP_NETWORK_TBL;
2011                 END IF;
2012 */
2013                 BOM_Rtg_Globals.Set_Bo_Identifier
2014                             (p_bo_identifier => p_bo_identifier);
2015 
2016 --dbms_output.put_line('End of Setting Business Object Idenfier in the System Information. . .' ) ;
2017                 --
2018                 -- Initialize the message list if the user has set the
2019                 -- Init Message List parameter
2020                 --
2021                 IF p_init_msg_list
2022                 THEN
2023 --dbms_output.put_line('Error_Handler.Initialize. . .' ) ;
2024                         Error_Handler.Initialize;
2025                 END IF;
2026 
2027 
2028                 IF l_Debug_flag IS NULL THEN
2029                   l_Debug_flag := 'N';
2030                 END IF;
2031                 IF l_debug_flag = 'Y'
2032                 THEN
2033 
2034                      IF trim(p_output_dir) IS NULL OR
2035                         trim(p_output_dir) = ''
2036                      THEN
2037                          -- If debug is Y then out dir must be
2038                          -- specified
2039 
2040 
2041 --dbms_output.put_line('Debug Y ,then Add_Error_Token. . .' ) ;
2042 
2043                          Error_Handler.Add_Error_Token
2044                          (  p_Message_text       =>
2045                                    'Debug is set to Y so an output directory' ||
2046                                    ' must be specified. Debug will be turned' ||
2047                                    ' off since no directory is specified'
2048                           , p_Mesg_Token_Tbl     => l_mesg_token_tbl
2049                           , x_Mesg_Token_Tbl     => l_mesg_token_tbl
2050                           , p_Token_Tbl          => l_token_tbl
2051                          );
2052 
2053 --dbms_output.put_line('Debug Y ,then Log_Error. . .' ) ;
2054 
2055                          Bom_Rtg_Error_Handler.Log_Error
2056                          (  p_rtg_header_rec        => p_rtg_header_rec
2057                          ,  p_rtg_revision_tbl      => p_rtg_revision_tbl
2058                          ,  p_operation_tbl         => p_operation_tbl
2059                          ,  p_op_resource_tbl       => p_op_resource_tbl
2060                          ,  p_sub_resource_tbl      => p_sub_resource_tbl
2061                          ,  p_op_network_tbl        => p_op_network_tbl
2062                          ,  p_mesg_token_tbl        => l_mesg_token_tbl
2063                          ,  p_error_status          => 'W'
2064                          ,  p_error_scope           => NULL
2065                          ,  p_error_level           => Error_Handler.G_BO_LEVEL
2066                          , p_other_message          => NULL
2067                          , p_other_mesg_appid       => 'BOM'
2068                          , p_other_status           => NULL
2069                          , p_other_token_tbl        =>
2070                                      Error_Handler.G_MISS_TOKEN_TBL
2071                          , p_entity_index           => 1
2072                          ,  x_rtg_header_rec        => l_rtg_header_rec
2073                          ,  x_rtg_revision_tbl      => l_routing_revision_tbl
2074                          ,  x_operation_tbl         => l_operation_tbl
2075                          ,  x_op_resource_tbl       => l_op_resource_tbl
2076                          ,  x_sub_resource_tbl      => l_sub_resource_tbl
2077                          ,  x_op_network_tbl        => l_op_network_tbl
2078                          );
2079 
2080 
2081                          l_debug_flag := 'N' ;
2082 
2083                      END IF;
2084 
2085                      IF trim(p_debug_filename) IS NULL OR
2086                         trim(p_debug_filename) = ''
2087                      THEN
2088 
2089                          Error_Handler.Add_Error_Token
2090                          (  p_Message_text       =>
2091                                   ' Debug is set to Y so an output filename' ||
2092                                   ' must be specified. Debug will be turned' ||
2093                                   ' off since no filename is specified'
2094                           , p_Mesg_Token_Tbl     => l_mesg_token_tbl
2095                           , x_Mesg_Token_Tbl     => l_mesg_token_tbl
2096                           , p_Token_Tbl          => l_token_tbl
2097                          );
2098 
2099                          Bom_Rtg_Error_Handler.Log_Error
2100                           (  p_rtg_header_rec        => p_rtg_header_rec
2101                           ,  p_rtg_revision_tbl      => p_rtg_revision_tbl
2102                           ,  p_operation_tbl         => p_operation_tbl
2103                           ,  p_op_resource_tbl       => p_op_resource_tbl
2104                           ,  p_sub_resource_tbl      => p_sub_resource_tbl
2105                           ,  p_op_network_tbl        => p_op_network_tbl
2106                           ,  p_mesg_token_tbl        => l_mesg_token_tbl
2107                           ,  p_error_status          => 'W'
2108                           ,  p_error_level           => Error_Handler.G_BO_LEVEL
2109                           , p_error_scope            => NULL
2110                           , p_other_message          => NULL
2111                           , p_other_mesg_appid       => 'BOM'
2112                           , p_other_status           => NULL
2113                           , p_other_token_tbl        =>
2114                                      Error_Handler.G_MISS_TOKEN_TBL
2115                           , p_entity_index           => 1
2116 
2117                           ,  x_rtg_header_rec        => l_rtg_header_rec
2118                           ,  x_rtg_revision_tbl      => l_routing_revision_tbl
2119                           ,  x_operation_tbl         => l_operation_tbl
2120                           ,  x_op_resource_tbl       => l_op_resource_tbl
2121                           ,  x_sub_resource_tbl      => l_sub_resource_tbl
2122                           ,  x_op_network_tbl        => l_op_network_tbl
2123                          );
2124                               l_debug_flag := 'N';
2125 
2126                       END IF;
2127 
2128                       BOM_Rtg_Globals.Set_Debug(l_debug_flag);
2129 
2130                       IF l_debug_flag = 'Y'
2131                       THEN
2132                           Error_Handler.Open_Debug_Session
2133                           (  p_debug_filename     => p_debug_filename
2134                            , p_output_dir         => p_output_dir
2135                            , x_return_status      => l_return_status
2136                            , p_mesg_token_tbl     => l_mesg_token_tbl
2137                            , x_mesg_token_tbl     => l_mesg_token_tbl
2138                           );
2139 
2140                           IF l_return_status <> FND_API.G_RET_STS_SUCCESS
2141                           THEN
2142                                 BOM_Rtg_Globals.Set_Debug('N');
2143                           END IF;
2144                       END IF;
2145                 END IF;
2146 
2147 
2148 IF BOM_Rtg_Globals.get_debug = 'Y' THEN
2149     Error_Handler.Write_Debug('The Routing BO as passed ');
2150     Error_Handler.Write_Debug('-----------------------------------------------------') ;
2151     Error_Handler.Write_Debug('Header Rec - Assembly Item : ' || p_rtg_header_rec.assembly_item_name);
2152     Error_Handler.Write_Debug('Num of Routing Revisions   : ' || p_rtg_revision_tbl.COUNT);
2153     Error_Handler.Write_Debug('Num of Operations          : ' || p_operation_tbl.COUNT);
2154     Error_Handler.Write_Debug('Num of Resources           : ' || p_op_resource_tbl.COUNT);
2155     Error_Handler.Write_Debug('Num of Substitue Resources : ' || p_sub_resource_tbl.COUNT);
2156     Error_Handler.Write_Debug('Num of Operation Network   : ' || p_op_network_tbl.COUNT);
2157     Error_Handler.Write_Debug('-----------------------------------------------------') ;
2158 END IF;
2159 /* Following code is for Patchset G because we are suppressing the OSFM support
2160   as the OSFM team's request. This will be added in Patchset H */
2161   --for OSFM import routings
2162   --IF p_rtg_header_rec.cfm_routing_flag = 3 THEN
2163   --   l_other_message := 'BOM_RBO_NO_OSFM_RTG_SUPPORT';
2164   --   RAISE G_EXC_SEV_QUIT_OBJECT;
2165   --END IF;
2166 
2167                 --
2168                 -- Verify if all the entity record(s) belong to the same
2169                 -- business object
2170                 --
2171 --dbms_output.put_line('Verify if all the entity record(s) belong to the same bo. . .' ) ;
2172 
2173                 IF NOT Check_Records_In_Same_RTG
2174                    (  p_rtg_header_rec          => p_rtg_header_rec
2175                     , p_rtg_revision_tbl        => p_rtg_revision_tbl
2176                     , p_operation_tbl           => p_operation_tbl
2177                     , p_op_resource_tbl         => p_op_resource_tbl
2178                     , p_sub_resource_tbl        => p_sub_resource_tbl
2179                     , p_op_network_tbl          => p_op_network_tbl
2180                     , x_assembly_item_name      => l_assembly_item_name
2181                     , x_organization_code       => l_organization_code
2182                     , x_alternate_routing_code  => l_alternate_routing_code
2183                     )
2184                 THEN
2185                         l_other_message := 'BOM_MUST_BE_IN_SAME_RTG';
2186                         RAISE G_EXC_SEV_QUIT_OBJECT;
2187                 END IF;
2188 
2189                 IF (l_assembly_item_name IS NULL OR
2190                     l_assembly_item_name = FND_API.G_MISS_CHAR)
2191                     OR
2192                     (l_organization_code IS NULL OR
2193                      l_organization_code = FND_API.G_MISS_CHAR)
2194                 THEN
2195                         l_other_message := 'BOM_ASSY_OR_ORG_MISSING';
2196                         RAISE G_EXC_SEV_QUIT_OBJECT;
2197                 END IF;
2198 
2199 
2200                 l_organization_id := BOM_Rtg_Val_To_Id.Organization
2201                                      (  p_organization => l_organization_code
2202                                       , x_err_text => l_err_text
2203                                      );
2204 
2205                 IF l_organization_id IS NULL
2206                 THEN
2207                         l_other_message := 'BOM_ORG_INVALID';
2208                         l_token_tbl(1).token_name := 'ORG_CODE';
2209                         l_token_tbl(1).token_value := l_organization_code;
2210                         RAISE G_EXC_SEV_QUIT_OBJECT;
2211 
2212                 ELSIF l_organization_id = FND_API.G_MISS_NUM
2213                 THEN
2214                         l_other_message := 'BOM_UNEXP_ORG_INVALID';
2215                         RAISE G_EXC_UNEXP_SKIP_OBJECT;
2216                 END IF;
2217 
2218 
2219                 --
2220                 -- Set Organization Id in the System Information record.
2221                 --
2222                 BOM_Rtg_Globals.Set_Org_Id( p_org_id => l_organization_id);
2223 
2224 		--
2225 		-- Set Application Id in the appication context and set the
2226 		-- fine-grained security policy on bom_alternate_designators
2227 		-- table. This is currently applicable only if the application
2228 		-- calling this BO is EAM
2229 		--
2230 		Bom_Set_Context.set_application_id;
2231 
2232 		--
2233                 -- Call the Private API for performing further business
2234                 -- rules validation
2235                 --
2236 --dbms_output.put_line('Call the Private API Process_Rtg. . .' ) ;
2237 
2238                 Bom_Rtg_Pvt.Process_Rtg
2239                 (   p_api_version_number     =>  p_api_version_number
2240                 ,   p_validation_level       =>  FND_API.G_VALID_LEVEL_FULL
2241                 ,   x_return_status          =>  l_return_status
2242                 ,   x_msg_count              =>  x_msg_count
2243                 ,   p_rtg_header_rec         =>  p_rtg_header_rec
2244                 ,   p_rtg_revision_tbl       =>  p_rtg_revision_tbl
2245                 ,   p_operation_tbl          =>  p_operation_tbl
2246                 ,   p_op_resource_tbl        =>  p_op_resource_tbl
2247                 ,   p_sub_resource_tbl       =>  p_sub_resource_tbl
2248                 ,   p_op_network_tbl         =>  p_op_network_tbl
2249                 ,   x_rtg_header_rec         =>  x_rtg_header_rec
2250                 ,   x_rtg_revision_tbl       =>  x_rtg_revision_tbl
2251                 ,   x_operation_tbl          =>  x_operation_tbl
2252                 ,   x_op_resource_tbl        =>  x_op_resource_tbl
2253                 ,   x_sub_resource_tbl       =>  x_sub_resource_tbl
2254                 ,   x_op_network_tbl         =>  x_op_network_tbl
2255                 );
2256 
2257                 BOM_Rtg_Globals.Set_Org_Id( p_org_id    => NULL);
2258                 BOM_Rtg_Globals.Set_Eco_Name( p_eco_name => NULL);
2259 
2260                 IF l_return_status <> 'S'
2261                 THEN
2262                     -- Call Error Handler
2263                     l_token_tbl(1).token_name := 'ASSEMBLY_ITEM_NAME';
2264                     l_token_tbl(1).token_value := l_assembly_item_name;
2265                     l_token_tbl(2).token_name := 'ORGANIZATION_CODE';
2266                     l_token_tbl(2).token_value := l_organization_code;
2267 
2268                     Bom_Rtg_Error_Handler.Log_Error
2269                     (
2270                       p_rtg_header_rec      => p_rtg_header_rec
2271                     , p_rtg_revision_tbl    => p_rtg_revision_tbl
2272                     , p_operation_tbl       => p_operation_tbl
2273                     , p_op_resource_tbl     => p_op_resource_tbl
2274                     , p_sub_resource_tbl    => p_sub_resource_tbl
2275                     , p_op_network_tbl      => p_op_network_tbl
2276                     , p_Mesg_Token_tbl      => Error_Handler.G_MISS_MESG_TOKEN_TBL
2277                     , p_error_status        => l_return_status
2278                     , p_error_scope         => Error_Handler.G_SCOPE_ALL
2279                     , p_error_level         => Error_Handler.G_BO_LEVEL
2280                     , p_other_message       => 'BOM_ERROR_BUSINESS_OBJECT'
2281                     , p_other_status        => l_return_status
2282                     , p_other_token_tbl     => l_token_tbl
2283                     , p_other_mesg_appid    => 'BOM'
2284                     , p_entity_index        => 1
2285                     , x_rtg_header_rec      => l_rtg_header_rec
2286                     , x_rtg_revision_tbl    => l_routing_revision_tbl
2287                     , x_operation_tbl       => l_operation_tbl
2288                     , x_op_resource_tbl     => l_op_resource_tbl
2289                     , x_sub_resource_tbl    => l_sub_resource_tbl
2290                     , x_op_network_tbl      => l_op_network_tbl
2291                     );
2292 
2293                 END IF;
2294 /*
2295                 IF l_return_status <> 'S'
2296                 THEN
2297                     -- Call Error Handler
2298                     l_token_tbl(1).token_name := 'ASSEMBLY_ITEM_NAME';
2299                     l_token_tbl(1).token_value := l_assembly_item_name;
2300                     l_token_tbl(2).token_name := 'ORGANIZATION_CODE';
2301                     l_token_tbl(2).token_value := l_organization_code;
2302 
2303                     Bom_Rtg_Error_Handler.Log_Error
2304                     (
2305                       p_rtg_header_rec      =>
2306                                        Bom_Rtg_Pub.G_MISS_RTG_HEADER_REC
2307                     , p_rtg_revision_tbl    =>
2308                                        Bom_Rtg_Pub.G_MISS_RTG_REVISION_TBL
2309                     , p_operation_tbl       =>
2310                                        Bom_Rtg_Pub.G_MISS_OPERATION_TBL
2311                     , p_op_resource_tbl     =>
2312                                        Bom_Rtg_Pub.G_MISS_OP_RESOURCE_TBL
2313                     , p_sub_resource_tbl    =>
2314                                        Bom_Rtg_Pub.G_MISS_SUB_RESOURCE_TBL
2315                     , p_op_network_tbl      =>
2316                                        Bom_Rtg_Pub.G_MISS_OP_NETWORK_TBL
2317                     , p_Mesg_Token_tbl      => Error_Handler.G_MISS_MESG_TOKEN_TBL
2318                     , p_error_status        => l_return_status
2319                     , p_error_scope         => Error_Handler.G_SCOPE_ALL
2320                     , p_error_level         => Error_Handler.G_BO_LEVEL
2321                     , p_other_message       => 'BOM_ERROR_BUSINESS_OBJECT'
2322                     , p_other_status        => l_return_status
2323                     , p_other_token_tbl     => l_token_tbl
2324                     , p_other_mesg_appid    => 'BOM'
2325                     , p_entity_index        => 1
2326                     , x_rtg_header_rec      => l_rtg_header_rec
2327                     , x_rtg_revision_tbl    => l_rtg_revision_tbl
2328                     , x_operation_tbl       => l_operation_tbl
2329                     , x_op_resource_tbl     => l_op_resource_tbl
2330                     , x_sub_resource_tbl    => l_sub_resource_tbl
2331                     , x_op_network_tbl      => l_op_network_tbl
2332                     );
2333                 END IF;
2334 */
2335                 x_return_status := l_return_status;
2336                 x_msg_count := Error_Handler.Get_Message_Count;
2337                 IF Bom_Rtg_Globals.Get_Debug = 'Y'
2338                 THEN
2339                         Error_Handler.Close_Debug_Session;
2340                 END IF;
2341 
2342        EXCEPTION
2343        WHEN G_EXC_SEV_QUIT_OBJECT THEN
2344 
2345                 -- Call Error Handler
2346                 Bom_Rtg_Error_Handler.Log_Error
2347                 ( p_rtg_header_rec        => p_rtg_header_rec
2348                 , p_rtg_revision_tbl      => p_rtg_revision_tbl
2349                 , p_operation_tbl         => p_operation_tbl
2350                 , p_op_resource_tbl       => p_op_resource_tbl
2351                 , p_sub_resource_tbl      => p_sub_resource_tbl
2352                 , p_op_network_tbl        => p_op_network_tbl
2353                 , p_Mesg_Token_Tbl        => l_Mesg_Token_Tbl
2354                 , p_error_status          => Error_Handler.G_STATUS_ERROR
2355                 , p_error_level           => Error_Handler.G_BO_LEVEL
2356                 , p_error_scope           => Error_Handler.G_SCOPE_ALL
2357                 , p_other_status          => Error_Handler.G_STATUS_NOT_PICKED
2358                 , p_other_message         => l_other_message
2359                 , p_other_token_tbl       => l_token_tbl
2360                 , p_other_mesg_appid      => 'BOM'
2361                 , p_entity_index          => 1
2362                 , x_rtg_header_rec        => l_rtg_header_rec
2363                 , x_rtg_revision_tbl      => l_routing_revision_tbl
2364                 , x_operation_tbl         => l_operation_tbl
2365                 , x_op_resource_tbl       => l_op_resource_tbl
2366                 , x_sub_resource_tbl      => l_sub_resource_tbl
2367                 , x_op_network_tbl        => l_op_network_tbl
2368                 );
2369 
2370                 x_return_status := Error_Handler.G_STATUS_ERROR;
2371                 x_msg_count := Error_Handler.Get_Message_Count;
2372                 IF Bom_Rtg_Globals.Get_Debug = 'Y'
2373                 THEN
2374                         Error_Handler.Close_Debug_Session;
2375                 END IF;
2376 
2377         WHEN G_EXC_UNEXP_SKIP_OBJECT THEN
2378 
2379                 -- Call Error Handler
2380                 Bom_Rtg_Error_Handler.Log_Error
2381                 ( p_rtg_header_rec        => p_rtg_header_rec
2382                 , p_rtg_revision_tbl      => p_rtg_revision_tbl
2383                 , p_operation_tbl         => p_operation_tbl
2384                 , p_op_resource_tbl       => p_op_resource_tbl
2385                 , p_sub_resource_tbl      => p_sub_resource_tbl
2386                 , p_op_network_tbl        => p_op_network_tbl
2387                 , p_Mesg_Token_Tbl        => l_Mesg_Token_Tbl
2388                 , p_error_status          => Error_Handler.G_STATUS_UNEXPECTED
2389                 , p_error_scope           => NULL
2390                 , p_error_level           => Error_Handler.G_BO_LEVEL
2391                 , p_other_status          => Error_Handler.G_STATUS_NOT_PICKED
2392                 , p_other_message         => l_other_message
2393                 , p_other_mesg_appid      => 'BOM'
2394                 , p_other_token_tbl       => l_token_tbl
2395                 , p_entity_index          => 1
2396                 , x_rtg_header_rec        => l_rtg_header_rec
2397                 , x_rtg_revision_tbl      => l_routing_revision_tbl
2398                 , x_operation_tbl         => l_operation_tbl
2399                 , x_op_resource_tbl       => l_op_resource_tbl
2400                 , x_sub_resource_tbl      => l_sub_resource_tbl
2401                 , x_op_network_tbl        => l_op_network_tbl
2402                 );
2403 
2404                 x_return_status := Error_Handler.G_STATUS_UNEXPECTED;
2405                 x_msg_count := Error_Handler.Get_Message_Count;
2406                 IF Bom_Rtg_Globals.Get_Debug = 'Y'
2407                 THEN
2408                         Error_Handler.Close_Debug_Session;
2409                 END IF;
2410 
2411         END Process_Rtg;
2412 
2413 END Bom_Rtg_Pub ;