DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_PROCESS_WO_PUB

Source


1 PACKAGE BODY EAM_PROCESS_WO_PUB AS
2 /* $Header: EAMPWOPB.pls 120.21 2008/06/06 22:30:59 jvittes ship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMPWOPB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_PROCESS_WO_PUB
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  30-JUN-2002    Kenichi Nagumo     Initial Creation
21 ***************************************************************************/
22 g_pkg_name    CONSTANT VARCHAR2(30):= 'EAM_PROCESS_WO_PUB';
23 
24          PROCEDURE DELETE_RELATIONSHIP
25          ( p_api_version                   IN NUMBER
26          , p_init_msg_list                 IN VARCHAR2 := FND_API.G_TRUE
27          , p_commit                        IN VARCHAR2 := FND_API.G_FALSE
28          , p_validation_level              IN NUMBER   := FND_API.G_VALID_LEVEL_FULL
29 
30          , p_parent_object_id              IN NUMBER
31          , p_parent_object_type_id         IN NUMBER
32          , p_child_object_id               IN NUMBER
33          , p_child_object_type_id          IN NUMBER
34          , p_new_parent_object_id          IN NUMBER
35          , p_new_parent_object_type_id     IN NUMBER
36 
37          , x_return_status                 OUT NOCOPY  VARCHAR2
38          , x_msg_count                     OUT NOCOPY  NUMBER
39          , x_msg_data                      OUT NOCOPY  VARCHAR2
40          ) IS
41          BEGIN
42            null;
43          END DELETE_RELATIONSHIP;
44 
45 	PROCEDURE PROCESS_MASTER_CHILD_WO
46         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
47          , p_api_version_number      IN  NUMBER := 1.0
48          , p_init_msg_list           IN  BOOLEAN := FALSE
49          , p_eam_wo_relations_tbl    IN  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
50          , p_eam_wo_tbl              IN  EAM_PROCESS_WO_PUB.eam_wo_tbl_type
51          , p_eam_op_tbl              IN  EAM_PROCESS_WO_PUB.eam_op_tbl_type
52          , p_eam_op_network_tbl      IN  EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
53          , p_eam_res_tbl             IN  EAM_PROCESS_WO_PUB.eam_res_tbl_type
54          , p_eam_res_inst_tbl        IN  EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
55          , p_eam_sub_res_tbl         IN  EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
56          , p_eam_mat_req_tbl         IN  EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
57          , p_eam_direct_items_tbl    IN  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
58          , p_eam_res_usage_tbl       IN  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
59 	 , p_eam_wo_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type
60          , p_eam_wo_quality_tbl      IN  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
61          , p_eam_meter_reading_tbl   IN  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
62  	 , p_eam_counter_prop_tbl    IN  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
63          , p_eam_wo_comp_rebuild_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
64          , p_eam_wo_comp_mr_read_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
65          , p_eam_op_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
66 	 , p_eam_request_tbl         IN  EAM_PROCESS_WO_PUB.eam_request_tbl_type
67          , x_eam_wo_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_tbl_type
68          , x_eam_wo_relations_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
69          , x_eam_op_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_tbl_type
70          , x_eam_op_network_tbl      OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
71          , x_eam_res_tbl             OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_tbl_type
72          , x_eam_res_inst_tbl        OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
73          , x_eam_sub_res_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
74          , x_eam_mat_req_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
75          , x_eam_direct_items_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
76          , x_eam_res_usage_tbl       OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
77          , x_eam_wo_comp_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type
78          , x_eam_wo_quality_tbl      OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
79          , x_eam_meter_reading_tbl   OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
80   	 , x_eam_counter_prop_tbl    OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
81          , x_eam_wo_comp_rebuild_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
82          , x_eam_wo_comp_mr_read_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
83          , x_eam_op_comp_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
84 	 , x_eam_request_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_request_tbl_type
85          , x_return_status           OUT NOCOPY VARCHAR2
86          , x_msg_count               OUT NOCOPY NUMBER
87          , p_commit                  IN  VARCHAR2 := 'N'
88          , p_debug                   IN  VARCHAR2 := 'N'
89          , p_output_dir              IN  VARCHAR2 := NULL
90          , p_debug_filename          IN  VARCHAR2 := 'EAM_WO_DEBUG.log'
91          , p_debug_file_mode         IN  VARCHAR2 := 'w'
92          )IS
93 
94         G_EXC_SEV_QUIT_OBJECT   EXCEPTION;
95         G_EXC_UNEXP_SKIP_OBJECT EXCEPTION;
96         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
97         l_other_message         VARCHAR2(50);
98         l_other_token_tbl       EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
99         l_Token_Tbl             EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
100         l_err_text              VARCHAR2(2000);
101         l_return_status         VARCHAR2(1) := null;
102         l_eam_return_status     VARCHAR2(1) := null;
103         l_msg_count             NUMBER;
104         l_msg_data              VARCHAR2(1000);
105         l_debug                 VARCHAR2(1) := p_debug;
106         l_output_dir            VARCHAR2(512) := p_output_dir;
107         l_debug_filename        VARCHAR2(512) := p_debug_filename;
108         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
109 
110         l_message_text  VARCHAR2(1000);
111         l_entity_index      NUMBER;
112         l_entity_id         VARCHAR2(100);
113         l_message_type      VARCHAR2(100);
114 
115         l_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
116         l_eam_wo_tbl            EAM_PROCESS_WO_PUB.eam_wo_tbl_type := p_eam_wo_tbl;
117         l_eam_wo_relations_tbl  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type := p_eam_wo_relations_tbl;
118         l_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type := p_eam_op_tbl;
119         l_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type := p_eam_op_network_tbl;
120         l_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type := p_eam_res_tbl;
121         l_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type := p_eam_res_inst_tbl;
122         l_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type := p_eam_sub_res_tbl;
123         l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type := p_eam_res_usage_tbl;
124         l_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type := p_eam_mat_req_tbl;
125         l_eam_di_tbl		EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type := p_eam_direct_items_tbl;
126 
127 	l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
128 	l_eam_wo_comp_tbl         EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type := p_eam_wo_comp_tbl;
129 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type := p_eam_wo_quality_tbl;
130 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type := p_eam_meter_reading_tbl;
131 	l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type := p_eam_counter_prop_tbl;
132 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type := p_eam_wo_comp_rebuild_tbl;
133 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type := p_eam_wo_comp_mr_read_tbl;
134 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type := p_eam_op_comp_tbl;
135 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type := p_eam_request_tbl;
136 
137         l_eam_wo_rec_head         EAM_PROCESS_WO_PUB.eam_wo_rec_type;
138         l_eam_op_tbl_head         EAM_PROCESS_WO_PUB.eam_op_tbl_type;
139         l_eam_op_network_tbl_head EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
140         l_eam_res_tbl_head        EAM_PROCESS_WO_PUB.eam_res_tbl_type;
141         l_eam_res_inst_tbl_head   EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
142         l_eam_sub_res_tbl_head    EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
143         l_eam_res_usage_tbl_head  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
144         l_eam_mat_req_tbl_head    EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
145         l_eam_di_tbl_head         EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
146 
147 	l_eam_wo_comp_rec_head		EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
148 	l_eam_wo_comp_tbl_head		EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
149 	l_eam_wo_quality_tbl_head	EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
150 	l_eam_meter_reading_tbl_head	EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
151 	l_eam_wo_comp_rebuild_tbl_head	EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
152 	l_eam_counter_prop_tbl_head	EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
153 	l_eam_wo_comp_mr_read_tbl_head	EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
154 	l_eam_op_comp_tbl_head		EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
155 	l_eam_request_tbl_head		EAM_PROCESS_WO_PUB.eam_request_tbl_type;
156 
157         l_out_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
158         l_out_eam_wo_tbl            EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
159         l_out_eam_wo_relations_tbl  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
160         l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
161         l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
162         l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
163         l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
164         l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
165         l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
166         l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
167         l_out_eam_di_tbl            EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
168         l_out_mesg_token_tbl        EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
169 
170 	l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
171 	l_out_eam_wo_comp_tbl         EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
172 	l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
173 	l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
174 	l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
175 	l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
176 	l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
177 	l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
178 	l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
179 
180         l_out_eam_wo_rec_main            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
181         l_out_eam_wo_tbl_main            EAM_PROCESS_WO_PUB.eam_wo_tbl_type;
182         l_out_eam_wo_rel_tbl_main        EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type;
183         l_out_eam_op_tbl_main            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
184         l_out_eam_op_network_tbl_main    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
185         l_out_eam_res_tbl_main           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
186         l_out_eam_res_inst_tbl_main      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
187         l_out_eam_sub_res_tbl_main       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
188         l_out_eam_res_usage_tbl_main     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
189         l_out_eam_mat_req_tbl_main       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
190         l_out_eam_di_tbl_main            EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
191         l_out_mesg_token_tbl_main        EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
192 
193 	l_out_eam_wo_comp_rec_main	EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
194 	l_out_eam_wo_comp_tbl_main	EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
195 	l_out_eam_wo_quality_tbl_main	EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
196 	l_ou_eam_meter_reading_tbl_m	EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
197 	l_out_eam_counter_prop_tbl_m    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
198 	l_ou_eam_wo_comp_rebuild_tbl_m	EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
199 	l_ou_eam_wo_comp_mr_read_tbl_m	EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
200 	l_out_eam_op_comp_tbl_main	EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
201 	l_out_eam_request_tbl_main	EAM_PROCESS_WO_PUB.eam_request_tbl_type;
202 
203         l_debug_flag            VARCHAR2(1) := p_debug;
204 
205         l_batch_id              NUMBER :=null;
206         l_header_id             NUMBER :=null;
207         l_header_id_tbl         EAM_PROCESS_WO_PUB.header_id_tbl_type;
208 
209 	l_wo_relationship_exc_tbl EAM_PROCESS_WO_PUB.wo_relationship_exc_tbl_type;
210 
211 	--Added for bug#4563210
212 	l_temp_wip_entity_id	NUMBER;
213 	l_wo_name		VARCHAR2(240);
214 
215 
216 
217 --	l_test_eam_wo_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
218 
219 
220         BEGIN
221 
222 
223 	--
224         -- Initialize the message list if the user has set the Init Message List parameter
225         --
226         IF p_init_msg_list
227         THEN
228             EAM_ERROR_MESSAGE_PVT.Initialize;
229         END IF;
230 
231 
232 
233         SAVEPOINT EAM_PR_MASTER_CHILD_WO;
234 
235 
236         if p_eam_wo_tbl.count <> 0 then
237           l_eam_wo_rec := p_eam_wo_tbl(p_eam_wo_tbl.first);
238         end if;
239 
240 
241         -- Set the global variable for debug.
242         EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
243 
244         IF l_debug_flag = 'Y'
245         THEN
246 
247             IF trim(p_output_dir) IS NULL OR trim(p_output_dir) = ''
248             THEN
249 
250             -- If debug is Y then out dir must be specified
251 
252                 l_out_mesg_token_tbl := l_mesg_token_tbl;
253                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
254                 ( p_Message_text       => 'Debug is set to Y so an output directory' || ' must be specified. Debug will be turned' || ' off since no directory is specified'
255                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
256                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
257                 , p_Token_Tbl          => l_token_tbl
258                  );
259                 l_mesg_token_tbl := l_out_mesg_token_tbl;
260 
261                 l_out_eam_wo_rec            := l_eam_wo_rec;
262                 l_out_eam_op_tbl            := l_eam_op_tbl;
263                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
264                 l_out_eam_res_tbl           := l_eam_res_tbl;
265                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
266                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
267                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
268                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
269                 l_out_eam_di_tbl            := l_eam_di_tbl;
270 
271 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
272 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
273 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
274 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
275 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
276 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
277 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
278 		l_out_eam_request_tbl         := l_eam_request_tbl;
279 
280                 EAM_ERROR_MESSAGE_PVT.Log_Error
281                 (  p_eam_wo_rec             => l_eam_wo_rec
282                 ,  p_eam_op_tbl             => l_eam_op_tbl
283                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
284                 ,  p_eam_res_tbl            => l_eam_res_tbl
285                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
286                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
287                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
288                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
289                 ,  p_eam_direct_items_tbl        => l_eam_di_tbl
290                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
291                 ,  p_error_status           => 'W'
292                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
293                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
294                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
295                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
296                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
297                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
298                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
299                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
300                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
301                 ,  x_eam_direct_items_tbl        => l_out_eam_di_tbl
302                  );
303 
304                 l_eam_wo_rec            := l_out_eam_wo_rec;
305                 l_eam_op_tbl            := l_out_eam_op_tbl;
306                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
307                 l_eam_res_tbl           := l_out_eam_res_tbl;
308                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
309                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
310                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
311                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
312                 l_eam_di_tbl            := l_out_eam_di_tbl;
313 
314 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
315 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
316 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
317 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
318 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
319 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
320 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
321 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
322 
323 
324                 l_debug_flag := 'N';
325 
326             END IF;
327 
328             IF trim(p_debug_filename) IS NULL OR trim(p_debug_filename) = ''
329             THEN
330 
331                 l_out_mesg_token_tbl := l_mesg_token_tbl;
332                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
333                 ( p_Message_text       => 'Debug is set to Y so an output filename' || ' must be specified. Debug will be turned' || ' off since no filename is specified'
334                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
335                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
336                 , p_Token_Tbl          => l_token_tbl
337                  );
338                 l_mesg_token_tbl := l_out_mesg_token_tbl;
339 
340                 l_out_eam_wo_rec            := l_eam_wo_rec;
341                 l_out_eam_op_tbl            := l_eam_op_tbl;
342                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
343                 l_out_eam_res_tbl           := l_eam_res_tbl;
344                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
345                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
346                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
347                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
348                 l_out_eam_di_tbl            := l_eam_di_tbl;
349 
350 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
351 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
352 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
353 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
354 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
355 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
356 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
357 		l_out_eam_request_tbl         := l_eam_request_tbl;
358 
359                 EAM_ERROR_MESSAGE_PVT.Log_Error
360                 (  p_eam_wo_rec             => l_eam_wo_rec
361                 ,  p_eam_op_tbl             => l_eam_op_tbl
362                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
363                 ,  p_eam_res_tbl            => l_eam_res_tbl
364                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
365                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
366                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
367                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
368                 ,  p_eam_direct_items_tbl   => l_eam_di_tbl
369                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
370                 ,  p_error_status           => 'W'
371                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
372                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
373                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
374                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
375                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
376                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
377                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
378                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
379                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
380                 ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
381                  );
382 
383                 l_eam_wo_rec            := l_out_eam_wo_rec;
384                 l_eam_op_tbl            := l_out_eam_op_tbl;
385                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
386                 l_eam_res_tbl           := l_out_eam_res_tbl;
387                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
388                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
389                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
390                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
391                 l_eam_di_tbl            := l_out_eam_di_tbl;
392 
393 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
394 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
395 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
396 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
397 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
398 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
399 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
400 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
401 
402                 l_debug_flag := 'N';
403 
404             END IF;
405 
406             EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
407 
408             IF l_debug_flag = 'Y'
409             THEN
410                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
411                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
412                 (  p_debug_filename     => p_debug_filename
413                 ,  p_output_dir         => p_output_dir
414                 ,  p_debug_file_mode    => l_debug_file_mode
415                 ,  x_return_status      => l_return_status
416                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
417                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
418                  );
419                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
420 
421                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
422                 THEN
423                     EAM_PROCESS_WO_PVT.Set_Debug('N');
424                 END IF;
425             END IF;
426 
427         END IF;
428 
429 
430 
431 
432         l_return_status     := FND_API.G_RET_STS_SUCCESS;
433         l_eam_return_status := FND_API.G_RET_STS_SUCCESS;
434         x_return_status     := FND_API.G_RET_STS_SUCCESS;
435 
436         l_eam_wo_tbl.delete;
437         l_eam_wo_relations_tbl.delete;
438         l_eam_op_tbl.delete;
439         l_eam_op_network_tbl.delete;
440         l_eam_res_tbl.delete;
441         l_eam_res_inst_tbl.delete;
442         l_eam_sub_res_tbl.delete;
443         l_eam_mat_req_tbl.delete;
444         l_eam_di_tbl.delete;
445         l_eam_res_usage_tbl.delete;
446 	l_eam_wo_comp_tbl.delete;
447 	l_eam_wo_quality_tbl.delete;
448 	l_eam_meter_reading_tbl.delete;
449 	l_eam_counter_prop_tbl.delete;
450 	l_eam_wo_comp_rebuild_tbl.delete;
451 	l_eam_wo_comp_mr_read_tbl.delete;
452 	l_eam_op_comp_tbl.delete;
453 	l_eam_request_tbl.delete;
454 
455         l_eam_wo_tbl            := p_eam_wo_tbl;
456         l_eam_wo_relations_tbl  := p_eam_wo_relations_tbl;
457         l_eam_op_tbl            := p_eam_op_tbl;
458         l_eam_op_network_tbl    := p_eam_op_network_tbl;
459         l_eam_res_tbl           := p_eam_res_tbl;
460         l_eam_res_inst_tbl      := p_eam_res_inst_tbl;
461         l_eam_sub_res_tbl       := p_eam_sub_res_tbl;
462         l_eam_mat_req_tbl       := p_eam_mat_req_tbl;
463         l_eam_di_tbl            := p_eam_direct_items_tbl;
464 	l_eam_res_usage_tbl     := p_eam_res_usage_tbl;
465 	l_eam_wo_comp_tbl	:= p_eam_wo_comp_tbl;
466 	l_eam_wo_quality_tbl	:= p_eam_wo_quality_tbl;
467 	l_eam_meter_reading_tbl := p_eam_meter_reading_tbl;
468 	l_eam_counter_prop_tbl  := p_eam_counter_prop_tbl;
469 	l_eam_wo_comp_rebuild_tbl := p_eam_wo_comp_rebuild_tbl;
470 	l_eam_wo_comp_mr_read_tbl := p_eam_wo_comp_mr_read_tbl;
471 	l_eam_op_comp_tbl	:= p_eam_op_comp_tbl;
472 	l_eam_request_tbl	:= p_eam_request_tbl;
473 
474         l_out_eam_wo_tbl.delete;
475         l_out_eam_wo_relations_tbl.delete;
476         l_out_eam_op_tbl.delete;
477         l_out_eam_op_network_tbl.delete;
478         l_out_eam_res_tbl.delete;
479         l_out_eam_res_inst_tbl.delete;
480         l_out_eam_sub_res_tbl.delete;
481         l_out_eam_mat_req_tbl.delete;
482         l_out_eam_di_tbl.delete;
483 	l_out_eam_res_usage_tbl.delete;
484 	l_out_eam_wo_comp_tbl.delete;
485 	l_out_eam_wo_quality_tbl.delete;
486 	l_out_eam_meter_reading_tbl.delete;
487 	l_out_eam_counter_prop_tbl.delete;
488 	l_out_eam_wo_comp_rebuild_tbl.delete;
489 	l_out_eam_wo_comp_mr_read_tbl.delete;
490 	l_out_eam_op_comp_tbl.delete;
491 	l_out_eam_request_tbl.delete;
492 
493 	l_out_eam_wo_tbl            := p_eam_wo_tbl;
494         l_out_eam_wo_relations_tbl  := p_eam_wo_relations_tbl;
495         l_out_eam_op_tbl            := p_eam_op_tbl;
496         l_out_eam_op_network_tbl    := p_eam_op_network_tbl;
497         l_out_eam_res_tbl           := p_eam_res_tbl;
498         l_out_eam_res_inst_tbl      := p_eam_res_inst_tbl;
499         l_out_eam_sub_res_tbl       := p_eam_sub_res_tbl;
500 	l_out_eam_res_usage_tbl     := p_eam_res_usage_tbl;
501         l_out_eam_mat_req_tbl       := p_eam_mat_req_tbl;
502         l_out_eam_di_tbl            := p_eam_direct_items_tbl;
503 	l_out_eam_wo_comp_tbl	    := p_eam_wo_comp_tbl;
504 	l_out_eam_wo_quality_tbl    := p_eam_wo_quality_tbl;
505 	l_out_eam_meter_reading_tbl := p_eam_meter_reading_tbl;
506 	l_out_eam_counter_prop_tbl  := p_eam_counter_prop_tbl;
507 	l_out_eam_wo_comp_rebuild_tbl := p_eam_wo_comp_rebuild_tbl;
508 	l_out_eam_wo_comp_mr_read_tbl := p_eam_wo_comp_mr_read_tbl;
509 	l_out_eam_op_comp_tbl	      := p_eam_op_comp_tbl;
510 	l_out_eam_request_tbl	      := p_eam_request_tbl;
511 
512         l_out_eam_wo_tbl_main.delete;
513         l_out_eam_wo_rel_tbl_main.delete;
514         l_out_eam_op_tbl_main.delete;
515         l_out_eam_op_network_tbl_main.delete;
516         l_out_eam_res_tbl_main.delete;
517         l_out_eam_res_inst_tbl_main.delete;
518         l_out_eam_sub_res_tbl_main.delete;
519         l_out_eam_mat_req_tbl_main.delete;
520         l_out_eam_di_tbl_main.delete;
521 	l_out_eam_res_usage_tbl_main.delete;
522 	l_out_eam_wo_comp_tbl_main.delete;
523 	l_out_eam_wo_quality_tbl_main.delete;
524 	l_ou_eam_meter_reading_tbl_m.delete;
525 	l_out_eam_counter_prop_tbl_m.delete;
526 	l_ou_eam_wo_comp_rebuild_tbl_m.delete;
527 	l_ou_eam_wo_comp_mr_read_tbl_m.delete;
528 	l_out_eam_op_comp_tbl_main.delete;
529 	l_out_eam_request_tbl_main.delete;
530 	l_out_eam_counter_prop_tbl_m.delete;
531 
532         l_out_eam_wo_tbl_main            := p_eam_wo_tbl;
533         l_out_eam_wo_rel_tbl_main        := p_eam_wo_relations_tbl;
534         l_out_eam_op_tbl_main            := p_eam_op_tbl;
535         l_out_eam_op_network_tbl_main    := p_eam_op_network_tbl;
536         l_out_eam_res_tbl_main           := p_eam_res_tbl;
537         l_out_eam_res_inst_tbl_main      := p_eam_res_inst_tbl;
538         l_out_eam_sub_res_tbl_main       := p_eam_sub_res_tbl;
539 	l_out_eam_res_usage_tbl_main     := p_eam_res_usage_tbl;
540         l_out_eam_mat_req_tbl_main       := p_eam_mat_req_tbl;
541         l_out_eam_di_tbl_main            := p_eam_direct_items_tbl;
542 	l_out_eam_wo_comp_tbl_main	 := p_eam_wo_comp_tbl;
543 	l_out_eam_wo_quality_tbl_main	 := p_eam_wo_quality_tbl;
544  	l_ou_eam_meter_reading_tbl_m	 := p_eam_meter_reading_tbl;
545         l_out_eam_counter_prop_tbl       := p_eam_counter_prop_tbl;
546 	l_ou_eam_wo_comp_rebuild_tbl_m	 := p_eam_wo_comp_rebuild_tbl;
547 	l_ou_eam_wo_comp_mr_read_tbl_m	 := p_eam_wo_comp_mr_read_tbl;
548 	l_out_eam_op_comp_tbl_main	 := p_eam_op_comp_tbl;
549 	l_out_eam_request_tbl_main	 := p_eam_request_tbl;
550 
551         x_eam_wo_tbl.delete;
552         x_eam_wo_relations_tbl.delete;
553         x_eam_op_tbl.delete;
554         x_eam_op_network_tbl.delete;
555         x_eam_res_tbl.delete;
556         x_eam_res_inst_tbl.delete;
557         x_eam_sub_res_tbl.delete;
558         x_eam_mat_req_tbl.delete;
559         x_eam_direct_items_tbl.delete;
560 	x_eam_res_usage_tbl.delete;
561 	x_eam_wo_comp_tbl.delete;
562 	x_eam_wo_quality_tbl.delete;
563 	x_eam_meter_reading_tbl.delete;
564 	x_eam_counter_prop_tbl.delete;
565 	x_eam_wo_comp_rebuild_tbl.delete;
566 	x_eam_wo_comp_mr_read_tbl.delete;
567 	x_eam_op_comp_tbl.delete;
568 
569         x_eam_wo_tbl              := p_eam_wo_tbl;
570         x_eam_wo_relations_tbl    := p_eam_wo_relations_tbl;
571         x_eam_op_tbl              := p_eam_op_tbl;
572         x_eam_op_network_tbl      := p_eam_op_network_tbl;
573         x_eam_res_tbl             := p_eam_res_tbl;
574         x_eam_res_inst_tbl        := p_eam_res_inst_tbl;
575         x_eam_sub_res_tbl         := p_eam_sub_res_tbl;
576 	x_eam_res_usage_tbl       := p_eam_res_usage_tbl;
577         x_eam_mat_req_tbl         := p_eam_mat_req_tbl;
578         x_eam_direct_items_tbl    := p_eam_direct_items_tbl;
579 	x_eam_res_usage_tbl	  := p_eam_res_usage_tbl;
580 	x_eam_wo_comp_tbl	  := p_eam_wo_comp_tbl;
581 	x_eam_wo_quality_tbl      := p_eam_wo_quality_tbl;
582 	x_eam_meter_reading_tbl   := p_eam_meter_reading_tbl;
583 	x_eam_counter_prop_tbl    := p_eam_counter_prop_tbl;
584 	x_eam_wo_comp_rebuild_tbl := p_eam_wo_comp_rebuild_tbl;
585 	x_eam_wo_comp_mr_read_tbl := p_eam_wo_comp_mr_read_tbl;
586 	x_eam_op_comp_tbl         := p_eam_op_comp_tbl;
587 
588 
589 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Calling CHECK_BO_NETWORK ...') ; END IF ;
590 
591 
592         CHECK_BO_NETWORK
593         ( p_eam_wo_tbl              => l_eam_wo_tbl
594         , p_eam_wo_relations_tbl    => l_eam_wo_relations_tbl
595         , p_eam_op_tbl              => l_eam_op_tbl
596         , p_eam_op_network_tbl      => l_eam_op_network_tbl
597         , p_eam_res_tbl             => l_eam_res_tbl
598         , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
599         , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
600         , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
601         , p_eam_direct_items_tbl    => l_eam_di_tbl
602 	, p_eam_res_usage_tbl	    => l_eam_res_usage_tbl
603 	, p_eam_wo_comp_tbl         => l_eam_wo_comp_tbl
604         , p_eam_wo_quality_tbl      => l_eam_wo_quality_tbl
605         , p_eam_meter_reading_tbl   => l_eam_meter_reading_tbl
606         , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
607         , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl
608         , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl
609         , p_eam_op_comp_tbl         => l_eam_op_comp_tbl
610 	, p_eam_request_tbl         => l_eam_request_tbl
611         , x_eam_wo_tbl              => l_out_eam_wo_tbl
612         , x_eam_wo_relations_tbl    => l_out_eam_wo_relations_tbl
613         , x_eam_op_tbl              => l_out_eam_op_tbl
614         , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
615         , x_eam_res_tbl             => l_out_eam_res_tbl
616         , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
617         , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
618         , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
619         , x_eam_direct_items_tbl    => l_out_eam_di_tbl
620 	, x_eam_res_usage_tbl	    => l_out_eam_res_usage_tbl
621 	, x_eam_wo_comp_tbl         => l_out_eam_wo_comp_tbl
622         , x_eam_wo_quality_tbl      => l_out_eam_wo_quality_tbl
623         , x_eam_meter_reading_tbl   => l_out_eam_meter_reading_tbl
624         , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
625         , x_eam_wo_comp_rebuild_tbl => l_out_eam_wo_comp_rebuild_tbl
626         , x_eam_wo_comp_mr_read_tbl => l_out_eam_wo_comp_mr_read_tbl
627         , x_eam_op_comp_tbl         => l_out_eam_op_comp_tbl
628 	, x_eam_request_tbl         => l_out_eam_request_tbl
629         , x_batch_id                => l_batch_id
630         , x_header_id_tbl           => l_header_id_tbl
631         , x_return_status           => l_return_status
632         );
633 
634 
635         l_eam_wo_tbl           := l_out_eam_wo_tbl;
636         l_eam_wo_relations_tbl := l_out_eam_wo_relations_tbl;
637         l_eam_op_tbl           := l_out_eam_op_tbl;
638         l_eam_op_network_tbl   := l_out_eam_op_network_tbl;
639         l_eam_res_tbl          := l_out_eam_res_tbl;
640         l_eam_res_inst_tbl     := l_out_eam_res_inst_tbl;
641         l_eam_sub_res_tbl      := l_out_eam_sub_res_tbl;
642 	l_eam_res_usage_tbl    := l_out_eam_res_usage_tbl;
643         l_eam_mat_req_tbl      := l_out_eam_mat_req_tbl;
644         l_eam_di_tbl           := l_out_eam_di_tbl;
645 	l_eam_wo_comp_tbl         := l_out_eam_wo_comp_tbl;
646 	l_eam_wo_quality_tbl      := l_out_eam_wo_quality_tbl;
647 	l_eam_meter_reading_tbl   := l_out_eam_meter_reading_tbl;
648 	l_eam_counter_prop_tbl	  := l_out_eam_counter_prop_tbl;
649 	l_eam_wo_comp_rebuild_tbl := l_out_eam_wo_comp_rebuild_tbl;
650 	l_eam_wo_comp_mr_read_tbl := l_out_eam_wo_comp_mr_read_tbl;
651 	l_eam_op_comp_tbl         := l_out_eam_op_comp_tbl;
652 	l_eam_request_tbl         := l_out_eam_request_tbl;
653 
654         l_out_eam_wo_tbl.delete;
655         l_out_eam_wo_relations_tbl.delete;
656         l_out_eam_op_tbl.delete;
657         l_out_eam_op_network_tbl.delete;
658         l_out_eam_res_tbl.delete;
659         l_out_eam_res_inst_tbl.delete;
660         l_out_eam_sub_res_tbl.delete;
661 	l_out_eam_res_usage_tbl.delete;
662         l_out_eam_mat_req_tbl.delete;
663         l_out_eam_di_tbl.delete;
664 	l_out_eam_wo_comp_tbl.delete;
665 	l_out_eam_wo_quality_tbl.delete;
666 	l_out_eam_meter_reading_tbl.delete;
667 	l_out_eam_counter_prop_tbl.delete;
668 	l_out_eam_wo_comp_rebuild_tbl.delete;
669 	l_out_eam_wo_comp_mr_read_tbl.delete;
670 	l_out_eam_op_comp_tbl.delete;
671 	l_out_eam_request_tbl.delete;
672 
673 
674 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('CHECK_BO_NETWORK completed with status ='||l_return_status) ; END IF ;
675 
676         if nvl(l_return_status,FND_API.G_RET_STS_ERROR) <> FND_API.G_RET_STS_SUCCESS then
677 
678                 l_out_mesg_token_tbl  := l_mesg_token_tbl;
679                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
680                 (  p_message_name  => 'EAM_WN_BO_NET_ERR'
681                 , p_token_tbl     => l_token_tbl
682                 , p_mesg_token_tbl     => l_mesg_token_tbl
683                 , x_mesg_token_tbl     => l_out_mesg_token_tbl
684                 );
685                 l_mesg_token_tbl      := l_out_mesg_token_tbl;
686 
687                 l_out_eam_wo_rec            := l_eam_wo_rec;
688                 l_out_eam_op_tbl            := l_eam_op_tbl;
689                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
690                 l_out_eam_res_tbl           := l_eam_res_tbl;
691                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
692                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
693                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
694                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
695                 l_out_eam_di_tbl            := l_eam_di_tbl;
696 
697 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
698 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
699 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
700 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
701 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
702 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
703 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
704 		l_out_eam_request_tbl         := l_eam_request_tbl;
705 
706                 EAM_ERROR_MESSAGE_PVT.Log_Error
707                 (  p_eam_wo_rec             => l_eam_wo_rec
708                 ,  p_eam_op_tbl             => l_eam_op_tbl
709                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
710                 ,  p_eam_res_tbl            => l_eam_res_tbl
711                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
712                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
713                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
714                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
715                 ,  p_eam_direct_items_tbl   => l_eam_di_tbl
716                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
717                 ,  p_error_status           => 'W'
718                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
719                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
720                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
721                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
722                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
723                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
724                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
725                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
726                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
727                 ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
728                  );
729 
730                 l_eam_wo_rec            := l_out_eam_wo_rec;
731                 l_eam_op_tbl            := l_out_eam_op_tbl;
732                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
733                 l_eam_res_tbl           := l_out_eam_res_tbl;
734                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
735                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
736                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
737                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
738                 l_eam_di_tbl            := l_out_eam_di_tbl;
739 
740 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
741 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
742 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
743 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
744 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
745 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
746 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
747 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
748 
749                 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
750                 THEN
751                    EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
752                    EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
753                 END IF;
754 
755 
756                 l_eam_return_status := FND_API.G_RET_STS_ERROR;
757                 x_return_status     := FND_API.G_RET_STS_ERROR;
758                 x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
759                 return;
760         end if;
761 
762 
763         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
764         THEN
765             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
766             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
767         END IF;
768 
769 
770 
771         -- Start Processing each of the work orders
772 
773         if l_header_id_tbl.count > 0 then
774 
775 
776 
777           for i in l_header_id_tbl.first..l_header_id_tbl.last loop
778 
779             l_header_id := l_header_id_tbl(i).header_id;
780 
781             l_eam_wo_rec_head.transaction_type := null;
782             if l_eam_wo_tbl.count > 0 then
783             for j in l_eam_wo_tbl.first..l_eam_wo_tbl.last loop
784               if l_eam_wo_tbl(j).header_id = l_header_id then
785                 l_eam_wo_rec_head := l_eam_wo_tbl(j);
786               end if;
787             end loop;
788 
789           end if;
790 
791           if l_eam_op_tbl.count > 0 then
792             l_eam_op_tbl_head.delete;
793             for j in l_eam_op_tbl.first..l_eam_op_tbl.last loop
794               if l_eam_op_tbl(j).header_id = l_header_id then
795                 l_eam_op_tbl_head(l_eam_op_tbl_head.count+1) := l_eam_op_tbl(j);
796               end if;
797             end loop;
798           end if;
799 
800           if l_eam_op_network_tbl.count > 0 then
801             l_eam_op_network_tbl_head.delete;
802             for j in l_eam_op_network_tbl.first..l_eam_op_network_tbl.last loop
803               if l_eam_op_network_tbl(j).header_id = l_header_id then
804                 l_eam_op_network_tbl_head(l_eam_op_network_tbl_head.count+1) := l_eam_op_network_tbl(j);
805               end if;
806             end loop;
807           end if;
808 
809           if l_eam_res_tbl.count > 0 then
810             l_eam_res_tbl_head.delete;
811             for j in l_eam_res_tbl.first..l_eam_res_tbl.last loop
812               if l_eam_res_tbl(j).header_id = l_header_id then
813                 l_eam_res_tbl_head(l_eam_res_tbl_head.count+1) := l_eam_res_tbl(j);
814               end if;
815             end loop;
816           end if;
817 
818           if l_eam_res_inst_tbl.count > 0 then
819             l_eam_res_inst_tbl_head.delete;
820             for j in l_eam_res_inst_tbl.first..l_eam_res_inst_tbl.last loop
821               if l_eam_res_inst_tbl(j).header_id = l_header_id then
822                 l_eam_res_inst_tbl_head(l_eam_res_inst_tbl_head.count+1) := l_eam_res_inst_tbl(j);
823               end if;
824             end loop;
825           end if;
826 
827           if l_eam_sub_res_tbl.count > 0 then
828             l_eam_sub_res_tbl_head.delete;
829             for j in l_eam_sub_res_tbl.first..l_eam_sub_res_tbl.last loop
830               if l_eam_sub_res_tbl(j).header_id = l_header_id then
831                 l_eam_sub_res_tbl_head(l_eam_sub_res_tbl_head.count+1) := l_eam_sub_res_tbl(j);
832               end if;
833             end loop;
834           end if;
835 
836           if l_eam_mat_req_tbl.count > 0 then
837             l_eam_mat_req_tbl_head.delete;
838             for j in l_eam_mat_req_tbl.first..l_eam_mat_req_tbl.last loop
839               if l_eam_mat_req_tbl(j).header_id = l_header_id then
840                 l_eam_mat_req_tbl_head(l_eam_mat_req_tbl_head.count+1) := l_eam_mat_req_tbl(j);
841               end if;
842             end loop;
843           end if;
844 
845           if l_eam_di_tbl.count > 0 then
846             l_eam_di_tbl_head.delete;
847             for j in l_eam_di_tbl.first..l_eam_di_tbl.last loop
848               if l_eam_di_tbl(j).header_id = l_header_id then
849                 l_eam_di_tbl_head(l_eam_di_tbl_head.count+1) := l_eam_di_tbl(j);
850               end if;
851             end loop;
852           end if;
853 
854 	if l_eam_res_usage_tbl.count > 0 then
855             l_eam_res_usage_tbl_head.delete;
856             for j in l_eam_res_usage_tbl.first..l_eam_res_usage_tbl.last loop
857               if l_eam_res_usage_tbl(j).header_id = l_header_id then
858                 l_eam_res_usage_tbl_head(l_eam_res_usage_tbl_head.count+1) := l_eam_res_usage_tbl(j);
859               end if;
860             end loop;
861           end if;
862 
863 	 l_eam_wo_comp_rec_head.transaction_type := null;
864             if l_eam_wo_comp_tbl.count > 0 then
865             for j in l_eam_wo_comp_tbl.first..l_eam_wo_comp_tbl.last loop
866               if l_eam_wo_comp_tbl(j).header_id = l_header_id then
867                 l_eam_wo_comp_rec_head := l_eam_wo_comp_tbl(j);
868               end if;
869             end loop;
870 
871           end if;
872 
873 /*	 if l_eam_wo_comp_tbl.count > 0 then
874             l_eam_wo_comp_tbl_head.delete;
875             for j in l_eam_wo_comp_tbl.first..l_eam_wo_comp_tbl.last loop
876               if l_eam_wo_comp_tbl(j).header_id = l_header_id then
877                 l_eam_wo_comp_tbl_head(l_eam_wo_comp_tbl_head.count+1) := l_eam_wo_comp_tbl(j);
878               end if;
879             end loop;
880           end if;
881 */
882 
883 
884 	 if l_eam_wo_quality_tbl.count > 0 then
885             l_eam_wo_quality_tbl_head.delete;
886             for j in l_eam_wo_quality_tbl.first..l_eam_wo_quality_tbl.last loop
887               if l_eam_wo_quality_tbl(j).header_id = l_header_id then
888                 l_eam_wo_quality_tbl_head(l_eam_wo_quality_tbl_head.count+1) := l_eam_wo_quality_tbl(j);
889               end if;
890             end loop;
891           end if;
892 
893 	  if l_eam_meter_reading_tbl.count > 0 then
894             l_eam_meter_reading_tbl_head.delete;
895             for j in l_eam_meter_reading_tbl.first..l_eam_meter_reading_tbl.last loop
896               if l_eam_meter_reading_tbl(j).header_id = l_header_id then
897                 l_eam_meter_reading_tbl_head(l_eam_meter_reading_tbl_head.count+1) := l_eam_meter_reading_tbl(j);
898               end if;
899             end loop;
900           end if;
901 
902 	  if l_eam_counter_prop_tbl.count > 0 then
903             l_eam_counter_prop_tbl_head.delete;
904             for j in l_eam_counter_prop_tbl.first..l_eam_counter_prop_tbl.last loop
905               if l_eam_counter_prop_tbl(j).header_id = l_header_id then
906                 l_eam_counter_prop_tbl_head(l_eam_counter_prop_tbl_head.count+1) := l_eam_counter_prop_tbl(j);
907               end if;
908             end loop;
909           end if;
910 
911 	  if l_eam_wo_comp_rebuild_tbl.count > 0 then
912             l_eam_wo_comp_rebuild_tbl_head.delete;
913             for j in l_eam_wo_comp_rebuild_tbl.first..l_eam_wo_comp_rebuild_tbl.last loop
914               if l_eam_wo_comp_rebuild_tbl(j).header_id = l_header_id then
915                 l_eam_wo_comp_rebuild_tbl_head(l_eam_wo_comp_rebuild_tbl_head.count+1) := l_eam_wo_comp_rebuild_tbl(j);
916               end if;
917             end loop;
918           end if;
919 
920 	   if l_eam_wo_comp_mr_read_tbl.count > 0 then
921             l_eam_wo_comp_mr_read_tbl_head.delete;
922             for j in l_eam_wo_comp_mr_read_tbl.first..l_eam_wo_comp_mr_read_tbl.last loop
923               if l_eam_wo_comp_mr_read_tbl(j).header_id = l_header_id then
924                 l_eam_wo_comp_mr_read_tbl_head(l_eam_wo_comp_mr_read_tbl_head.count+1) := l_eam_wo_comp_mr_read_tbl(j);
925               end if;
926             end loop;
927           end if;
928 
929 	   if l_eam_op_comp_tbl.count > 0 then
930             l_eam_op_comp_tbl_head.delete;
931             for j in l_eam_op_comp_tbl.first..l_eam_op_comp_tbl.last loop
932               if l_eam_op_comp_tbl(j).header_id = l_header_id then
933                 l_eam_op_comp_tbl_head(l_eam_op_comp_tbl_head.count+1) := l_eam_op_comp_tbl(j);
934               end if;
935             end loop;
936           end if;
937 
938 	   if l_eam_request_tbl.count > 0 then
939             l_eam_request_tbl_head.delete;
940 
941             for j in l_eam_request_tbl.first..l_eam_request_tbl.last loop
942 	    	if l_eam_request_tbl(j).header_id = l_header_id then
943 	      	    l_eam_request_tbl_head(l_eam_request_tbl_head.count+1) := l_eam_request_tbl(j);
944 		end if;
945             end loop;
946           end if;
947 
948           SAVEPOINT Single_WO_Process;
949 
950 
951           -- Insert a dummy message into the message stack before each work order
952           -- is processed. If the WO got processed without errors, then this dummy message
953           -- is deleted. Else it stays there and serves as a seperator between
954           -- the messages generated by different work orders.
955           l_mesg_token_tbl.delete;
956           l_token_tbl.delete;
957 
958           l_token_tbl(1).token_name  := 'Header Id';
959           l_token_tbl(1).token_value :=  l_eam_wo_rec_head.header_id;
960 
961           l_out_mesg_token_tbl  := l_mesg_token_tbl;
962           EAM_ERROR_MESSAGE_PVT.Add_Error_Token
963                 (  p_message_name  => 'EAM_WN_GEN_WARNING'
964                 , p_token_tbl     => l_token_tbl
965                 , p_mesg_token_tbl     => l_mesg_token_tbl
966                 , x_mesg_token_tbl     => l_out_mesg_token_tbl
967                 );
968           l_mesg_token_tbl      := l_out_mesg_token_tbl;
969 
970 
971           EAM_ERROR_MESSAGE_PVT.Translate_And_Insert_Messages
972           (  p_mesg_token_tbl     => l_mesg_token_tbl
973            , p_error_level        => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
974            , p_entity_index       => l_eam_wo_rec_head.row_id
975            , p_application_id     => 'EAM'
976            );
977 
978 
979 
980            PROCESS_WO
981            (  p_bo_identifier           => 'EAM'
982             , p_api_version_number      => 1.0
983             , p_init_msg_list           => FALSE
984             , p_commit                  => 'N'
985             , p_eam_wo_rec              => l_eam_wo_rec_head
986             , p_eam_op_tbl              => l_eam_op_tbl_head
987             , p_eam_op_network_tbl      => l_eam_op_network_tbl_head
988             , p_eam_res_tbl             => l_eam_res_tbl_head
989             , p_eam_res_inst_tbl        => l_eam_res_inst_tbl_head
990             , p_eam_sub_res_tbl         => l_eam_sub_res_tbl_head
991             , p_eam_res_usage_tbl       => l_eam_res_usage_tbl_head
992             , p_eam_mat_req_tbl         => l_eam_mat_req_tbl_head
993             , p_eam_direct_items_tbl    => l_eam_di_tbl
994   	    , p_eam_wo_comp_rec         => l_eam_wo_comp_rec_head
995 	    , p_eam_wo_quality_tbl      => l_eam_wo_quality_tbl_head
996 	    , p_eam_meter_reading_tbl   => l_eam_meter_reading_tbl_head
997 	    , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl_head
998 	    , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl_head
999 	    , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl_head
1000   	    , p_eam_op_comp_tbl         => l_eam_op_comp_tbl_head
1001 	    , p_eam_request_tbl         => l_eam_request_tbl_head
1002             , x_eam_wo_rec              => l_out_eam_wo_rec
1003             , x_eam_op_tbl              => l_out_eam_op_tbl
1004             , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
1005             , x_eam_res_tbl             => l_out_eam_res_tbl
1006             , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
1007             , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
1008             , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
1009             , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
1010             , x_eam_direct_items_tbl    => l_out_eam_di_tbl
1011 	    , x_eam_wo_comp_rec         => l_out_eam_wo_comp_rec
1012 	    , x_eam_wo_quality_tbl      => l_out_eam_wo_quality_tbl
1013 	    , x_eam_meter_reading_tbl   => l_out_eam_meter_reading_tbl
1014 	    , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
1015 	    , x_eam_wo_comp_rebuild_tbl => l_out_eam_wo_comp_rebuild_tbl
1016 	    , x_eam_wo_comp_mr_read_tbl => l_out_eam_wo_comp_mr_read_tbl
1017 	    , x_eam_op_comp_tbl         => l_out_eam_op_comp_tbl
1018 	    , x_eam_request_tbl         => l_out_eam_request_tbl
1019             , x_return_status           => l_return_status
1020             , x_msg_count               => l_msg_count
1021             , p_debug                   => l_debug_flag
1022             , p_output_dir              => l_output_dir
1023             , p_debug_filename          => l_debug_filename
1024             , p_debug_file_mode         => 'a'
1025            );
1026 
1027 	--added for bug 4563210
1028 	if l_eam_wo_rec_head.transaction_type = EAM_PROCESS_WO_PUB.G_OPR_CREATE
1029                  and l_return_status = 'S' then
1030                          l_eam_wo_list(l_eam_wo_list.count + 1) := l_out_eam_wo_rec.wip_entity_name;
1031         end if;
1032 
1033 --   IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Size of the list of newly created work orders:'||l_eam_wo_list.count) ; END IF ;
1034 
1035            if l_out_eam_wo_rec.transaction_type is not null then
1036              l_eam_wo_tbl(l_out_eam_wo_rec.row_id) := l_out_eam_wo_rec;
1037            end if;
1038 
1039            if l_out_eam_op_tbl.count <> 0 then
1040              for j in l_out_eam_op_tbl.first..l_out_eam_op_tbl.last loop
1041                if l_out_eam_op_tbl(j).row_id is null then
1042                  l_out_eam_op_tbl(j).row_id := l_eam_op_tbl.count+1;
1043                end if;
1044                l_eam_op_tbl(l_out_eam_op_tbl(j).row_id) := l_out_eam_op_tbl(j);
1045              end loop;
1046            end if;
1047 
1048          if l_out_eam_op_network_tbl.count <> 0 then
1049            for j in l_out_eam_op_network_tbl.first..l_out_eam_op_network_tbl.last loop
1050              if l_out_eam_op_network_tbl(j).row_id is null then
1051                l_out_eam_op_network_tbl(j).row_id := l_eam_op_network_tbl.count+1;
1052              end if;
1053              l_eam_op_network_tbl(l_out_eam_op_network_tbl(j).row_id) := l_out_eam_op_network_tbl(j);
1054            end loop;
1055          end if;
1056 
1057          if l_out_eam_res_tbl.count <> 0 then
1058            for j in l_out_eam_res_tbl.first..l_out_eam_res_tbl.last loop
1059              if l_out_eam_res_tbl(j).row_id is null then
1060                l_out_eam_res_tbl(j).row_id := l_eam_res_tbl.count+1;
1061              end if;
1062              l_eam_res_tbl(l_out_eam_res_tbl(j).row_id) := l_out_eam_res_tbl(j);
1063            end loop;
1064          end if;
1065 
1066          if l_out_eam_res_inst_tbl.count <> 0 then
1067            for j in l_out_eam_res_inst_tbl.first..l_out_eam_res_inst_tbl.last loop
1068              if l_out_eam_res_inst_tbl(j).row_id is null then
1069                l_out_eam_res_inst_tbl(j).row_id := l_eam_res_inst_tbl.count+1;
1070              end if;
1071              l_eam_res_inst_tbl(l_out_eam_res_inst_tbl(j).row_id) := l_out_eam_res_inst_tbl(j);
1072            end loop;
1073          end if;
1074 
1075          if l_out_eam_sub_res_tbl.count <> 0 then
1076            for j in l_out_eam_sub_res_tbl.first..l_out_eam_sub_res_tbl.last loop
1077              if l_out_eam_sub_res_tbl(j).row_id is null then
1078                l_out_eam_sub_res_tbl(j).row_id := l_eam_sub_res_tbl.count+1;
1079              end if;
1080              l_eam_sub_res_tbl(l_out_eam_sub_res_tbl(j).row_id) := l_out_eam_sub_res_tbl(j);
1081            end loop;
1082          end if;
1083 
1084          if l_out_eam_mat_req_tbl.count <> 0 then
1085            for j in l_out_eam_mat_req_tbl.first..l_out_eam_mat_req_tbl.last loop
1086              if l_out_eam_mat_req_tbl(j).row_id is null then
1087                l_out_eam_mat_req_tbl(j).row_id := l_eam_mat_req_tbl.count+1;
1088              end if;
1089              l_eam_mat_req_tbl(l_out_eam_mat_req_tbl(j).row_id) := l_out_eam_mat_req_tbl(j);
1090            end loop;
1091          end if;
1092 
1093          if l_out_eam_di_tbl.count <> 0 then
1094            for j in l_out_eam_di_tbl.first..l_out_eam_di_tbl.last loop
1095              if l_out_eam_di_tbl(j).row_id is null then
1096                l_out_eam_di_tbl(j).row_id := l_eam_di_tbl.count+1;
1097              end if;
1098              l_eam_di_tbl(l_out_eam_di_tbl(j).row_id) := l_out_eam_di_tbl(j);
1099            end loop;
1100          end if;
1101 
1102          if l_out_eam_res_usage_tbl.count <> 0 then
1103            for j in l_out_eam_res_usage_tbl.first..l_out_eam_res_usage_tbl.last loop
1104              if l_out_eam_res_usage_tbl(j).row_id is null then
1105                l_out_eam_res_usage_tbl(j).row_id := l_eam_res_usage_tbl.count+1;
1106              end if;
1107              l_eam_res_usage_tbl(l_out_eam_res_usage_tbl(j).row_id) := l_out_eam_res_usage_tbl(j);
1108            end loop;
1109          end if;
1110 
1111 
1112 	 if l_out_eam_wo_comp_rec.transaction_type is not null then
1113              l_eam_wo_comp_tbl(l_out_eam_wo_comp_rec.row_id) := l_out_eam_wo_comp_rec;
1114          end if;
1115 
1116 	  if l_out_eam_wo_quality_tbl.count <> 0 then
1117            for j in l_out_eam_wo_quality_tbl.first..l_out_eam_wo_quality_tbl.last loop
1118              if l_out_eam_wo_quality_tbl(j).row_id is null then
1119                l_out_eam_wo_quality_tbl(j).row_id := l_eam_wo_quality_tbl.count+1;
1120              end if;
1121              l_eam_wo_quality_tbl(l_out_eam_wo_quality_tbl(j).row_id) := l_out_eam_wo_quality_tbl(j);
1122            end loop;
1123          end if;
1124 
1125 	if l_out_eam_meter_reading_tbl.count <> 0 then
1126            for j in l_out_eam_meter_reading_tbl.first..l_out_eam_meter_reading_tbl.last loop
1127              if l_out_eam_meter_reading_tbl(j).row_id is null then
1128                l_out_eam_meter_reading_tbl(j).row_id := l_eam_meter_reading_tbl.count+1;
1129              end if;
1130              l_eam_meter_reading_tbl(l_out_eam_meter_reading_tbl(j).row_id) := l_out_eam_meter_reading_tbl(j);
1131            end loop;
1132          end if;
1133 
1134 	if l_out_eam_counter_prop_tbl.count <> 0 then
1135            for j in l_out_eam_counter_prop_tbl.first..l_out_eam_counter_prop_tbl.last loop
1136              if l_out_eam_counter_prop_tbl(j).row_id is null then
1137                l_out_eam_counter_prop_tbl(j).row_id := l_eam_counter_prop_tbl.count+1;
1138              end if;
1139              l_eam_counter_prop_tbl(l_out_eam_counter_prop_tbl(j).row_id) := l_out_eam_counter_prop_tbl(j);
1140            end loop;
1141          end if;
1142 
1143 
1144 	if l_out_eam_wo_comp_rebuild_tbl.count <> 0 then
1145            for j in l_out_eam_wo_comp_rebuild_tbl.first..l_out_eam_wo_comp_rebuild_tbl.last loop
1146              if l_out_eam_wo_comp_rebuild_tbl(j).row_id is null then
1147                l_out_eam_wo_comp_rebuild_tbl(j).row_id := l_eam_wo_comp_rebuild_tbl.count+1;
1148              end if;
1149              l_eam_wo_comp_rebuild_tbl(l_out_eam_wo_comp_rebuild_tbl(j).row_id) := l_out_eam_wo_comp_rebuild_tbl(j);
1150            end loop;
1151          end if;
1152 
1153 	if l_out_eam_wo_comp_mr_read_tbl.count <> 0 then
1154            for j in l_out_eam_wo_comp_mr_read_tbl.first..l_out_eam_wo_comp_mr_read_tbl.last loop
1155              if l_out_eam_wo_comp_mr_read_tbl(j).row_id is null then
1156                l_out_eam_wo_comp_mr_read_tbl(j).row_id := l_eam_wo_comp_mr_read_tbl.count+1;
1157              end if;
1158              l_eam_wo_comp_mr_read_tbl(l_out_eam_wo_comp_mr_read_tbl(j).row_id) := l_out_eam_wo_comp_mr_read_tbl(j);
1159            end loop;
1160          end if;
1161 
1162 	if l_out_eam_op_comp_tbl.count <> 0 then
1163            for j in l_out_eam_op_comp_tbl.first..l_out_eam_op_comp_tbl.last loop
1164              if l_out_eam_op_comp_tbl(j).row_id is null then
1165                l_out_eam_op_comp_tbl(j).row_id := l_eam_op_comp_tbl.count+1;
1166              end if;
1167              l_eam_op_comp_tbl(l_out_eam_op_comp_tbl(j).row_id) := l_out_eam_op_comp_tbl(j);
1168            end loop;
1169          end if;
1170 
1171 	if l_out_eam_request_tbl.count <> 0 then
1172            for j in l_out_eam_request_tbl.first..l_out_eam_request_tbl.last loop
1173              if l_out_eam_request_tbl(j).row_id is null then
1174                l_out_eam_request_tbl(j).row_id := l_eam_request_tbl.count+1;
1175              end if;
1176              l_eam_request_tbl(l_out_eam_request_tbl(j).row_id) := l_out_eam_request_tbl(j);
1177            end loop;
1178          end if;
1179 
1180 
1181          -- IF WO creation/updation failed, then rollback
1182          -- till start of this current WO process start
1183          IF nvl(l_return_status,'Q') <> 'S' THEN
1184            rollback to Single_WO_Process;
1185 
1186           l_eam_return_status := FND_API.G_RET_STS_ERROR;
1187           x_return_status     := FND_API.G_RET_STS_ERROR;
1188 
1189           -- Also disregard all relations pertaining to this work
1190           -- order as not valid;
1191           if l_eam_wo_relations_tbl.count <> 0 then
1192           for j in l_eam_wo_relations_tbl.first..l_eam_wo_relations_tbl.last loop
1193 
1194             if l_eam_wo_relations_tbl(j).parent_header_id     = l_header_id or
1195                l_eam_wo_relations_tbl(j).child_header_id      = l_header_id or
1196                l_eam_wo_relations_tbl(j).top_level_header_id  = l_header_id then
1197               l_eam_wo_relations_tbl(j).return_status := FND_API.G_RET_STS_ERROR;
1198             end if;
1199 
1200           end loop;
1201           end if;
1202 
1203          ELSE
1204 
1205          -- Delete the general warning message from both the fnd and eam message stacks
1206          fnd_msg_pub.delete_msg(p_msg_index => fnd_msg_pub.Count_Msg);
1207 
1208          EAM_ERROR_MESSAGE_PVT.Delete_Message;
1209 
1210    	     x_msg_count := EAM_ERROR_MESSAGE_PVT.GET_MESSAGE_COUNT();
1211 
1212 
1213 
1214           -- Populate the wip_entity_id for newly created work orders
1215           -- into the corresponding records in the relations PL/SQL table
1216 
1217           if l_eam_wo_relations_tbl.count > 0 then
1218           for j in l_eam_wo_relations_tbl.first..l_eam_wo_relations_tbl.last loop
1219 
1220             if l_eam_wo_relations_tbl(j).parent_header_id = l_header_id then
1221               l_eam_wo_relations_tbl(j).parent_object_id := l_out_eam_wo_rec.wip_entity_id;
1222             end if;
1223 
1224             if l_eam_wo_relations_tbl(j).child_header_id = l_header_id then
1225               l_eam_wo_relations_tbl(j).child_object_id := l_out_eam_wo_rec.wip_entity_id;
1226             end if;
1227 
1228             if l_eam_wo_relations_tbl(j).top_level_header_id = l_header_id then
1229               l_eam_wo_relations_tbl(j).top_level_object_id := l_out_eam_wo_rec.wip_entity_id;
1230             end if;
1231 
1232           end loop;
1233           end if;
1234 
1235          END IF;
1236 
1237 
1238         end loop;
1239         end if;
1240 
1241 
1242 
1243 
1244 
1245 
1246 
1247 
1248         -- Set the global variable for debug.
1249         EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
1250 
1251         IF l_debug_flag = 'Y'
1252         THEN
1253 
1254             IF trim(p_output_dir) IS NULL OR trim(p_output_dir) = ''
1255             THEN
1256 
1257             -- If debug is Y then out dir must be specified
1258 
1259                 l_out_mesg_token_tbl := l_mesg_token_tbl;
1260                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
1261                 ( p_Message_text       => 'Debug is set to Y so an output directory' || ' must be specified. Debug will be turned' || ' off since no directory is specified'
1262                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
1263                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
1264                 , p_Token_Tbl          => l_token_tbl
1265                  );
1266                 l_mesg_token_tbl := l_out_mesg_token_tbl;
1267 
1268                 l_out_eam_wo_rec            := l_eam_wo_rec;
1269                 l_out_eam_op_tbl            := l_eam_op_tbl;
1270                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1271                 l_out_eam_res_tbl           := l_eam_res_tbl;
1272                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1273                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1274                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1275                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1276                 l_out_eam_di_tbl            := l_eam_di_tbl;
1277 
1278                 EAM_ERROR_MESSAGE_PVT.Log_Error
1279                 (  p_eam_wo_rec             => l_eam_wo_rec
1280                 ,  p_eam_op_tbl             => l_eam_op_tbl
1281                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1282                 ,  p_eam_res_tbl            => l_eam_res_tbl
1283                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1284                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1285                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1286                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1287                 ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1288                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
1289                 ,  p_error_status           => 'W'
1290                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
1291                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
1292                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
1293                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1294                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
1295                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1296                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1297                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1298                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1299                 ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1300                  );
1301 
1302                 l_eam_wo_rec            := l_out_eam_wo_rec;
1303                 l_eam_op_tbl            := l_out_eam_op_tbl;
1304                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1305                 l_eam_res_tbl           := l_out_eam_res_tbl;
1306                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1307                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1308                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1309                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1310                 l_eam_di_tbl            := l_out_eam_di_tbl;
1311 
1312 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1313 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1314 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1315 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1316 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1317 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1318 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1319 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1320 
1321                 l_debug_flag := 'N';
1322 
1323             END IF;
1324 
1325             IF trim(p_debug_filename) IS NULL OR trim(p_debug_filename) = ''
1326             THEN
1327 
1328                 l_out_mesg_token_tbl := l_mesg_token_tbl;
1329                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
1330                 ( p_Message_text       => 'Debug is set to Y so an output filename' || ' must be specified. Debug will be turned' || ' off since no filename is specified'
1331                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
1332                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
1333                 , p_Token_Tbl          => l_token_tbl
1334                  );
1335                 l_mesg_token_tbl := l_out_mesg_token_tbl;
1336 
1337                 l_out_eam_wo_rec            := l_eam_wo_rec;
1338                 l_out_eam_op_tbl            := l_eam_op_tbl;
1339                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1340                 l_out_eam_res_tbl           := l_eam_res_tbl;
1341                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1342                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1343                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1344                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1345                 l_out_eam_di_tbl            := l_eam_di_tbl;
1346 
1347 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1348 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1349 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1350 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1351 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1352 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1353 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1354 		l_out_eam_request_tbl         := l_eam_request_tbl;
1355 
1356                 EAM_ERROR_MESSAGE_PVT.Log_Error
1357                 (  p_eam_wo_rec             => l_eam_wo_rec
1358                 ,  p_eam_op_tbl             => l_eam_op_tbl
1359                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1360                 ,  p_eam_res_tbl            => l_eam_res_tbl
1361                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1362                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1363                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1364                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1365                 ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1366                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
1367                 ,  p_error_status           => 'W'
1368                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
1369                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
1370                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
1371                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1372                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
1373                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1374                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1375                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1376                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1377                 ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1378                  );
1379 
1380                 l_eam_wo_rec            := l_out_eam_wo_rec;
1381                 l_eam_op_tbl            := l_out_eam_op_tbl;
1382                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1383                 l_eam_res_tbl           := l_out_eam_res_tbl;
1384                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1385                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1386                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1387                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1388                 l_eam_di_tbl            := l_out_eam_di_tbl;
1389 
1390 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1391 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1392 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1393 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1394 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1395 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1396 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1397 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1398 
1399                 l_debug_flag := 'N';
1400 
1401             END IF;
1402 
1403             EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
1404 
1405             IF l_debug_flag = 'Y'
1406             THEN
1407                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
1408                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
1409                 (  p_debug_filename     => p_debug_filename
1410                 ,  p_output_dir         => p_output_dir
1411                 ,  p_debug_file_mode    => 'a'
1412                 ,  x_return_status      => l_return_status
1413                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
1414                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
1415                  );
1416                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
1417 
1418                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1419                 THEN
1420                     EAM_PROCESS_WO_PVT.Set_Debug('N');
1421                 END IF;
1422             END IF;
1423 
1424         END IF;
1425 
1426 
1427         if p_eam_wo_tbl.count <> 0 then
1428           l_eam_wo_rec := p_eam_wo_tbl(p_eam_wo_tbl.first);
1429         end if;
1430 
1431 
1432 
1433         if l_eam_wo_relations_tbl.count > 0 then
1434         -- Start processing the relationships
1435         for i in 1..l_eam_wo_relations_tbl.count loop
1436 
1437           if nvl(l_eam_wo_relations_tbl(i).return_status,'Z') = 'Z'  OR
1438              l_eam_wo_relations_tbl(i).return_status = '' OR
1439              l_eam_wo_relations_tbl(i).return_status = ' '  then
1440 
1441           if l_eam_wo_relations_tbl(i).transaction_type =
1442             EAM_PROCESS_WO_PUB.G_OPR_CREATE then
1443 
1444              /* Added for bug#4563210 - Start */
1445 
1446 
1447 	     l_temp_wip_entity_id := l_eam_wo_relations_tbl(i).PARENT_OBJECT_ID;
1448 
1449          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Check_Wo_Dates procedure ... ') ; END IF ;
1450 
1451 	     FOR l_temp_index in 1..2 LOOP
1452 
1453 	      if (l_eam_wo_relations_tbl(i).parent_relationship_type = 1) then
1454 
1455 
1456 	          EAM_WO_NETWORK_DEFAULT_PVT.Check_Wo_Dates
1457 	          (
1458 	           p_api_version                   => 1.0,
1459 	           p_init_msg_list                 => FND_API.G_FALSE,
1460 	           p_commit                        => FND_API.G_FALSE,
1461 	           p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1462 	           p_wip_entity_id                 => l_temp_wip_entity_id,
1463 	           x_return_status                 => l_return_status,
1464 	           x_msg_count                     => l_msg_count,
1465 	           x_msg_data                      => l_msg_data
1466 	           );
1467 
1468             IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y' AND l_temp_index = 1 ) THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Check_Wo_Dates for parent wo completed with status of '||l_return_status) ; END IF ;
1469             IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y' AND l_temp_index = 2 ) THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Check_Wo_Dates for child wo completed with status of '||l_return_status) ; END IF ;
1470         	IF l_return_status = FND_API.G_RET_STS_ERROR OR
1471 		   l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1472 
1473 		   	--Before inserting the error message, insert the confirmation message of work order creation.
1474 				x_return_status     := l_return_status;
1475 				x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
1476 				l_eam_return_status := FND_API.G_RET_STS_ERROR;
1477 
1478 				if l_eam_wo_list.count > 0 then
1479 					for l_new_wo_list in l_eam_wo_list.first..l_eam_wo_list.last loop
1480 						eam_execution_jsp.add_message(p_app_short_name => 'EAM',
1481 								p_msg_name => 'EAM_CREATE_WORKORDER_CONFIRM',
1482 								p_token1 => 'WORKORDER', p_value1 => l_eam_wo_list(l_new_wo_list));
1483 					end loop;
1484 				end if;
1485 				l_eam_wo_list.delete;
1486 				--Insert the error message.
1487 				select wip_entity_name into l_wo_name
1488 				from wip_entities
1489 				where wip_entity_id = l_temp_wip_entity_id;
1490 
1491 				eam_execution_jsp.add_message(p_app_short_name => 'EAM',
1492 					      	p_msg_name => 'EAM_WO_CHK_DATES_ERR',
1493 						p_token1 => 'WORKORDER', p_value1 => l_wo_name);
1494 
1495 				x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
1496 				l_eam_return_status := FND_API.G_RET_STS_ERROR;
1497 		end if;
1498              end if;
1499               l_temp_wip_entity_id := l_eam_wo_relations_tbl(i).CHILD_OBJECT_ID;
1500              END LOOP;
1501 	    /* Added for bug#4563210 - End */
1502 
1503             if l_eam_wo_relations_tbl(i).parent_relationship_type in (1,3,4) then
1504 
1505              SAVEPOINT Add_WO_To_Network_Start;
1506 
1507          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Add_WO_To_Network procedure ... ') ; END IF ;
1508 
1509               EAM_WO_NETWORK_DEFAULT_PVT.Add_WO_To_Network(
1510                 p_api_version                   => 1.0,
1511                 p_init_msg_list                 => FND_API.G_FALSE,
1512                 p_commit                        => FND_API.G_FALSE,
1513                 p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1514 
1515                 p_child_object_id               => l_eam_wo_relations_tbl(i).child_object_id,
1516                 p_child_object_type_id          => l_eam_wo_relations_tbl(i).child_object_type_id,
1517                 p_parent_object_id              => l_eam_wo_relations_tbl(i).parent_object_id,
1518                 p_parent_object_type_id         => l_eam_wo_relations_tbl(i).parent_object_type_id,
1519                 p_adjust_parent                 => l_eam_wo_relations_tbl(i).adjust_parent,
1520                 p_relationship_type             => l_eam_wo_relations_tbl(i).parent_relationship_type,
1521 
1522                 x_return_status                 => l_return_status,
1523                 x_msg_count                     => l_msg_count,
1524                 x_msg_data                      => l_msg_data,
1525                 x_mesg_token_tbl                => l_mesg_token_tbl
1526                );
1527 
1528                l_eam_wo_relations_tbl(i).return_status := l_return_status;
1529 
1530                if l_return_status <> 'S' then
1531 
1532                  l_eam_return_status := FND_API.G_RET_STS_ERROR;
1533                  x_return_status     := FND_API.G_RET_STS_ERROR;
1534 
1535                  rollback to Add_Wo_To_Network_Start;
1536 
1537                 l_out_eam_wo_rec            := l_eam_wo_rec;
1538                 l_out_eam_op_tbl            := l_eam_op_tbl;
1539                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1540                 l_out_eam_res_tbl           := l_eam_res_tbl;
1541                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1542                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1543                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1544                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1545                 l_out_eam_di_tbl            := l_eam_di_tbl;
1546 
1547 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1548 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1549 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1550 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1551 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1552 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1553 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1554 		l_out_eam_request_tbl         := l_eam_request_tbl;
1555 
1556     EAM_ERROR_MESSAGE_PVT.Log_Error
1557         (  p_eam_wo_rec             => l_eam_wo_rec
1558         ,  p_eam_op_tbl             => l_eam_op_tbl
1559         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1560         ,  p_eam_res_tbl            => l_eam_res_tbl
1561         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1562         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1563         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1564         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1565         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1566         ,  p_mesg_token_tbl         => l_mesg_token_tbl
1567         ,  p_error_status           => FND_API.G_RET_STS_ERROR
1568         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
1569         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
1570         ,  p_other_message          => l_other_message
1571         ,  p_other_token_tbl        => l_other_token_tbl
1572         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
1573         ,  x_eam_wo_rec             => l_out_eam_wo_rec
1574         ,  x_eam_op_tbl             => l_out_eam_op_tbl
1575         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1576         ,  x_eam_res_tbl            => l_out_eam_res_tbl
1577         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1578         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1579         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1580         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1581         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1582        );
1583 
1584                 l_eam_wo_rec            := l_out_eam_wo_rec;
1585                 l_eam_op_tbl            := l_out_eam_op_tbl;
1586                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1587                 l_eam_res_tbl           := l_out_eam_res_tbl;
1588                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1589                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1590                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1591                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1592                 l_eam_di_tbl            := l_out_eam_di_tbl;
1593 
1594 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1595 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1596 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1597 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1598 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1599 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1600 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1601 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1602 
1603 
1604                end if;
1605 
1606 
1607             elsif l_eam_wo_relations_tbl(i).parent_relationship_type = 2 then
1608 
1609               SAVEPOINT Add_Dependency_Start;
1610          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Add_Dependency procedure ... ') ; END IF ;
1611 
1612               EAM_WO_NETWORK_DEFAULT_PVT.Add_Dependency
1613               (
1614                 p_api_version                   => 1.0,
1615                 p_init_msg_list                 => FND_API.G_FALSE,
1616                 p_commit                        => FND_API.G_FALSE,
1617                 p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1618 
1619                 p_prior_object_id               => l_eam_wo_relations_tbl(i).parent_object_id,
1620                 p_prior_object_type_id          => l_eam_wo_relations_tbl(i).parent_object_type_id,
1621                 p_next_object_id                => l_eam_wo_relations_tbl(i).child_object_id,
1622                 p_next_object_type_id           => l_eam_wo_relations_tbl(i).child_object_type_id,
1623 
1624                 x_return_status                 => l_return_status,
1625                 x_msg_count                     => l_msg_count,
1626                 x_msg_data                      => l_msg_data,
1627                 x_mesg_token_tbl                => l_mesg_token_tbl
1628                );
1629 
1630                l_eam_wo_relations_tbl(i).return_status := l_return_status;
1631 
1632                if l_return_status <> 'S' then
1633 
1634                  l_eam_return_status := FND_API.G_RET_STS_ERROR;
1635                  x_return_status     := FND_API.G_RET_STS_ERROR;
1636 
1637 
1638                  rollback to Add_Dependency_Start;
1639 
1640                 l_out_eam_wo_rec            := l_eam_wo_rec;
1641                 l_out_eam_op_tbl            := l_eam_op_tbl;
1642                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1643                 l_out_eam_res_tbl           := l_eam_res_tbl;
1644                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1645                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1646                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1647                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1648                 l_out_eam_di_tbl            := l_eam_di_tbl;
1649 
1650 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1651 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1652 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1653 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1654 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1655 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1656 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1657 		l_out_eam_request_tbl         := l_eam_request_tbl;
1658 
1659     EAM_ERROR_MESSAGE_PVT.Log_Error
1660         (  p_eam_wo_rec             => l_eam_wo_rec
1661         ,  p_eam_op_tbl             => l_eam_op_tbl
1662         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1663         ,  p_eam_res_tbl            => l_eam_res_tbl
1664         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1665         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1666         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1667         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1668         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1669         ,  p_mesg_token_tbl         => l_mesg_token_tbl
1670         ,  p_error_status           => FND_API.G_RET_STS_ERROR
1671         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
1672         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
1673         ,  p_other_message          => l_other_message
1674         ,  p_other_token_tbl        => l_other_token_tbl
1675         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
1676         ,  x_eam_wo_rec             => l_out_eam_wo_rec
1677         ,  x_eam_op_tbl             => l_out_eam_op_tbl
1678         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1679         ,  x_eam_res_tbl            => l_out_eam_res_tbl
1680         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1681         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1682         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1683         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1684         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1685        );
1686 
1687                 l_eam_wo_rec            := l_out_eam_wo_rec;
1688                 l_eam_op_tbl            := l_out_eam_op_tbl;
1689                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1690                 l_eam_res_tbl           := l_out_eam_res_tbl;
1691                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1692                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1693                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1694                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1695                 l_eam_di_tbl            := l_out_eam_di_tbl;
1696 
1697 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1698 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1699 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1700 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1701 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1702 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1703 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1704 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1705 
1706                end if;
1707 
1708             end if;
1709 
1710           elsif l_eam_wo_relations_tbl(i).transaction_type =
1711             EAM_PROCESS_WO_PUB.G_OPR_DELETE then
1712 
1713             if l_eam_wo_relations_tbl(i).parent_relationship_type in (1,3,4) then
1714 
1715               SAVEPOINT Delink_Relation_Start;
1716 
1717          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Delink_Child_From_parent procedure ... ') ; END IF ;
1718 
1719               EAM_WO_NETWORK_DEFAULT_PVT.Delink_Child_From_Parent
1720               (
1721                 p_api_version                   => 1.0,
1722                 p_init_msg_list                 => FND_API.G_FALSE,
1723                 p_commit                        => FND_API.G_FALSE,
1724                 p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1725 
1726                 p_child_object_id               => l_eam_wo_relations_tbl(i).child_object_id,
1727                 p_child_object_type_id          => l_eam_wo_relations_tbl(i).child_object_type_id,
1728                 p_parent_object_id              => l_eam_wo_relations_tbl(i).parent_object_id,
1729                 p_parent_object_type_id         => l_eam_wo_relations_tbl(i).parent_object_type_id,
1730                 p_relationship_type             => l_eam_wo_relations_tbl(i).parent_relationship_type,
1731 
1732                 x_return_status                 => l_return_status,
1733                 x_msg_count                     => l_msg_count,
1734                 x_msg_data                      => l_msg_data ,
1735                 x_mesg_token_tbl                => l_mesg_token_tbl
1736               );
1737 
1738                l_eam_wo_relations_tbl(i).return_status := l_return_status;
1739 
1740 
1741 
1742                if l_return_status <> 'S' then
1743 
1744                  l_eam_return_status := FND_API.G_RET_STS_ERROR;
1745                  x_return_status     := FND_API.G_RET_STS_ERROR;
1746 
1747 
1748                  rollback to Delink_Relation_Start;
1749 
1750                 l_out_eam_wo_rec            := l_eam_wo_rec;
1751                 l_out_eam_op_tbl            := l_eam_op_tbl;
1752                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1753                 l_out_eam_res_tbl           := l_eam_res_tbl;
1754                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1755                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1756                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1757                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1758                 l_out_eam_di_tbl            := l_eam_di_tbl;
1759 
1760 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1761 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1762 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1763 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1764 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1765 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1766 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1767 		l_out_eam_request_tbl         := l_eam_request_tbl;
1768 
1769     EAM_ERROR_MESSAGE_PVT.Log_Error
1770         (  p_eam_wo_rec             => l_eam_wo_rec
1771         ,  p_eam_op_tbl             => l_eam_op_tbl
1772         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1773         ,  p_eam_res_tbl            => l_eam_res_tbl
1774         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1775         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1776         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1777         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1778         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1779         ,  p_mesg_token_tbl         => l_mesg_token_tbl
1780         ,  p_error_status           => FND_API.G_RET_STS_ERROR
1781         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
1782         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
1783         ,  p_other_message          => l_other_message
1784         ,  p_other_token_tbl        => l_other_token_tbl
1785         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
1786         ,  x_eam_wo_rec             => l_out_eam_wo_rec
1787         ,  x_eam_op_tbl             => l_out_eam_op_tbl
1788         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1789         ,  x_eam_res_tbl            => l_out_eam_res_tbl
1790         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1791         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1792         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1793         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1794         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1795        );
1796 
1797                 l_eam_wo_rec            := l_out_eam_wo_rec;
1798                 l_eam_op_tbl            := l_out_eam_op_tbl;
1799                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1800                 l_eam_res_tbl           := l_out_eam_res_tbl;
1801                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1802                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1803                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1804                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1805                 l_eam_di_tbl            := l_out_eam_di_tbl;
1806 
1807 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1808 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1809 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1810 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1811 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1812 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1813 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1814 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1815 
1816                end if;
1817 
1818 
1819             elsif l_eam_wo_relations_tbl(i).parent_relationship_type = 2 then
1820 
1821               SAVEPOINT Delete_Dependency_Start;
1822          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Delete_Dependency procedure ... ') ; END IF ;
1823 
1824               EAM_WO_NETWORK_DEFAULT_PVT.Delete_Dependency
1825               (
1826                 p_api_version                   => 1.0,
1827                 p_init_msg_list                 => FND_API.G_FALSE,
1828                 p_commit                        => FND_API.G_FALSE,
1829                 p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1830 
1831                 p_prior_object_id               => l_eam_wo_relations_tbl(i).parent_object_id,
1832                 p_prior_object_type_id          => l_eam_wo_relations_tbl(i).parent_object_type_id,
1833                 p_next_object_id                => l_eam_wo_relations_tbl(i).child_object_id,
1834                 p_next_object_type_id           => l_eam_wo_relations_tbl(i).child_object_type_id,
1835 
1836                 x_return_status                 => l_return_status,
1837                 x_msg_count                     => l_msg_count,
1838                 x_msg_data                      => l_msg_data,
1839                 x_mesg_token_tbl                => l_mesg_token_tbl
1840               );
1841 
1842                l_eam_wo_relations_tbl(i).return_status := l_return_status;
1843 
1844 
1845 
1846                if l_return_status <> 'S' then
1847 
1848                  l_eam_return_status := FND_API.G_RET_STS_ERROR;
1849                  x_return_status     := FND_API.G_RET_STS_ERROR;
1850 
1851 
1852                  rollback to Delete_Dependency_Start;
1853 
1854 
1855                 l_out_eam_wo_rec            := l_eam_wo_rec;
1856                 l_out_eam_op_tbl            := l_eam_op_tbl;
1857                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1858                 l_out_eam_res_tbl           := l_eam_res_tbl;
1859                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1860                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1861                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1862                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1863                 l_out_eam_di_tbl            := l_eam_di_tbl;
1864 
1865 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1866 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1867 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1868 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1869 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1870 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1871 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1872 		l_out_eam_request_tbl         := l_eam_request_tbl;
1873 
1874     EAM_ERROR_MESSAGE_PVT.Log_Error
1875         (  p_eam_wo_rec             => l_eam_wo_rec
1876         ,  p_eam_op_tbl             => l_eam_op_tbl
1877         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
1878         ,  p_eam_res_tbl            => l_eam_res_tbl
1879         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
1880         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
1881         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
1882         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
1883         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
1884         ,  p_mesg_token_tbl         => l_mesg_token_tbl
1885         ,  p_error_status           => FND_API.G_RET_STS_ERROR
1886         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
1887         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
1888         ,  p_other_message          => l_other_message
1889         ,  p_other_token_tbl        => l_other_token_tbl
1890         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
1891         ,  x_eam_wo_rec             => l_out_eam_wo_rec
1892         ,  x_eam_op_tbl             => l_out_eam_op_tbl
1893         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
1894         ,  x_eam_res_tbl            => l_out_eam_res_tbl
1895         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
1896         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
1897         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
1898         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
1899         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
1900        );
1901 
1902                 l_eam_wo_rec            := l_out_eam_wo_rec;
1903                 l_eam_op_tbl            := l_out_eam_op_tbl;
1904                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
1905                 l_eam_res_tbl           := l_out_eam_res_tbl;
1906                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
1907                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
1908                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
1909                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
1910                 l_eam_di_tbl            := l_out_eam_di_tbl;
1911 
1912 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
1913 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
1914 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
1915 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
1916 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
1917 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
1918 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
1919 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
1920 
1921                end if;
1922 
1923 
1924             end if;
1925 
1926           end if;
1927 
1928           end if;
1929 
1930         end loop;
1931         end if;
1932 
1933 
1934         -- If there were any work orders processed, then
1935         -- Call Validate Structure. If it returns error, then rollback everything
1936 
1937         IF l_eam_wo_tbl.count <> 0  and l_eam_wo_tbl(l_eam_wo_tbl.first).validate_structure = 'Y' then -- added for bug# 3544860
1938 
1939          IF ( EAM_PROCESS_WO_PVT.Get_Debug = 'Y') THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Entering the Validate_Structure procedure ... ') ; END IF ;
1940 
1941     EAM_WO_NETWORK_VALIDATE_PVT.Validate_Structure
1942         (
1943         p_api_version                   => 1.0,
1944         p_init_msg_list                 => FND_API.G_FALSE,
1945         p_commit                        => FND_API.G_FALSE,
1946         p_validation_level              => FND_API.G_VALID_LEVEL_FULL,
1947 
1948         p_work_object_id                => l_eam_wo_tbl(l_eam_wo_tbl.first).wip_entity_id,
1949         p_work_object_type_id           => 1,
1950         p_exception_logging             => 'Y',
1951 
1952     	p_validate_status	        => 'N',
1953 	p_output_errors			=> 'N',
1954 
1955         x_return_status                 => l_return_status,
1956         x_msg_count                     => l_msg_count,
1957         x_msg_data                      => l_msg_data,
1958 	x_wo_relationship_exc_tbl	=> l_wo_relationship_exc_tbl
1959         );
1960 
1961 
1962     IF l_return_status = FND_API.G_RET_STS_ERROR OR
1963        l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1964 
1965 	x_return_status     := l_return_status; -- added for bug# 3544860
1966 
1967     l_out_mesg_token_tbl  := l_mesg_token_tbl;
1968     EAM_ERROR_MESSAGE_PVT.Add_Error_Token
1969       (  p_message_name  => 'EAM_WN_MAIN_VALIDATE_STRUCT'
1970        , p_token_tbl     => l_token_tbl
1971        , p_mesg_token_tbl     => l_mesg_token_tbl
1972        , x_mesg_token_tbl     => l_out_mesg_token_tbl
1973     );
1974     l_mesg_token_tbl      := l_out_mesg_token_tbl;
1975 
1976                 l_out_eam_wo_rec            := l_eam_wo_rec;
1977                 l_out_eam_op_tbl            := l_eam_op_tbl;
1978                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
1979                 l_out_eam_res_tbl           := l_eam_res_tbl;
1980                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
1981                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
1982                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
1983                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
1984                 l_out_eam_di_tbl            := l_eam_di_tbl;
1985 
1986 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
1987 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
1988 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
1989 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
1990 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
1991 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
1992 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
1993 		l_out_eam_request_tbl         := l_eam_request_tbl;
1994 
1995 
1996     EAM_ERROR_MESSAGE_PVT.Log_Error
1997         (  p_eam_wo_rec             => l_eam_wo_rec
1998         ,  p_eam_op_tbl             => l_eam_op_tbl
1999         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
2000         ,  p_eam_res_tbl            => l_eam_res_tbl
2001         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
2002         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
2003         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
2004         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
2005         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
2006         ,  p_mesg_token_tbl         => l_mesg_token_tbl
2007         ,  p_error_status           => FND_API.G_RET_STS_ERROR
2008         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
2009         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
2010         ,  p_other_message          => l_other_message
2011         ,  p_other_token_tbl        => l_other_token_tbl
2012         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
2013         ,  x_eam_wo_rec             => l_out_eam_wo_rec
2014         ,  x_eam_op_tbl             => l_out_eam_op_tbl
2015         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
2016         ,  x_eam_res_tbl            => l_out_eam_res_tbl
2017         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
2018         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
2019         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
2020         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
2021         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
2022        );
2023 
2024                 l_eam_wo_rec            := l_out_eam_wo_rec;
2025                 l_eam_op_tbl            := l_out_eam_op_tbl;
2026                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
2027                 l_eam_res_tbl           := l_out_eam_res_tbl;
2028                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
2029                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
2030                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
2031                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
2032                 l_eam_di_tbl            := l_out_eam_di_tbl;
2033 
2034 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
2035 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
2036 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
2037 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
2038 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
2039 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
2040 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
2041 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
2042 
2043       ROLLBACK TO EAM_PR_MASTER_CHILD_WO;
2044 
2045     END IF;
2046 
2047         END IF;
2048 	-- end of fix for bug# 3544860
2049 
2050         x_eam_wo_tbl.delete;
2051         x_eam_wo_relations_tbl.delete;
2052         x_eam_op_tbl.delete;
2053         x_eam_op_network_tbl.delete;
2054         x_eam_res_tbl.delete;
2055         x_eam_res_inst_tbl.delete;
2056         x_eam_sub_res_tbl.delete;
2057         x_eam_mat_req_tbl.delete;
2058         x_eam_direct_items_tbl.delete;
2059 	x_eam_res_usage_tbl.delete;
2060 
2061 	 x_eam_res_usage_tbl.delete;
2062 	 x_eam_wo_comp_tbl.delete;
2063 	 x_eam_wo_quality_tbl.delete;
2064 	 x_eam_meter_reading_tbl.delete;
2065 	 x_eam_counter_prop_tbl.delete;
2066 	 x_eam_wo_comp_rebuild_tbl.delete;
2067 	 x_eam_wo_comp_mr_read_tbl.delete;
2068 	 x_eam_op_comp_tbl.delete;
2069 	 x_eam_request_tbl.delete;
2070 
2071 	x_eam_wo_tbl              := l_eam_wo_tbl;
2072         x_eam_wo_relations_tbl    := l_eam_wo_relations_tbl;
2073         x_eam_op_tbl              := l_eam_op_tbl;
2074         x_eam_op_network_tbl      := l_eam_op_network_tbl;
2075         x_eam_res_tbl             := l_eam_res_tbl;
2076         x_eam_res_inst_tbl        := l_eam_res_inst_tbl;
2077         x_eam_sub_res_tbl         := l_eam_sub_res_tbl;
2078         x_eam_mat_req_tbl         := l_eam_mat_req_tbl;
2079         x_eam_direct_items_tbl    := l_eam_di_tbl;
2080 
2081 	 x_eam_res_usage_tbl		:= l_eam_res_usage_tbl;
2082 	 x_eam_wo_comp_tbl		:= l_eam_wo_comp_tbl;
2083 	 x_eam_wo_quality_tbl		:= l_eam_wo_quality_tbl;
2084 	 x_eam_meter_reading_tbl	:= l_eam_meter_reading_tbl;
2085 	 x_eam_counter_prop_tbl		:= l_eam_counter_prop_tbl;
2086 	 x_eam_wo_comp_rebuild_tbl	:= l_eam_wo_comp_rebuild_tbl;
2087 	 x_eam_wo_comp_mr_read_tbl	:= l_eam_wo_comp_mr_read_tbl;
2088 	 x_eam_op_comp_tbl		:= l_eam_op_comp_tbl;
2089 	 x_eam_request_tbl		:= l_eam_request_tbl;
2090 
2091         if nvl(l_eam_return_status,FND_API.G_RET_STS_ERROR) <> FND_API.G_RET_STS_SUCCESS then
2092           x_return_status := FND_API.G_RET_STS_ERROR;
2093         end if;
2094 
2095         x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
2096 
2097         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
2098         THEN
2099             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
2100             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
2101         END IF;
2102 
2103         -- Standard check of p_commit.
2104         IF p_commit = 'Y' THEN
2105                 COMMIT WORK;
2106         END IF;
2107 
2108         EXCEPTION
2109 
2110           WHEN OTHERS THEN
2111 
2112         x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
2113 
2114       EAM_ERROR_MESSAGE_PVT.Add_Error_Token
2115         (  p_message_name  => 'EAM_WN_UNKNOWN_ERROR'
2116          , p_token_tbl     => l_token_tbl
2117          , p_mesg_token_tbl     => l_mesg_token_tbl
2118          , x_mesg_token_tbl     => l_out_mesg_token_tbl
2119       );
2120       l_mesg_token_tbl := l_out_mesg_token_tbl;
2121 
2122                 l_out_eam_wo_rec            := l_eam_wo_rec;
2123                 l_out_eam_op_tbl            := l_eam_op_tbl;
2124                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
2125                 l_out_eam_res_tbl           := l_eam_res_tbl;
2126                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
2127                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
2128                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
2129                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
2130                 l_out_eam_di_tbl            := l_eam_di_tbl;
2131 
2132 		l_out_eam_wo_comp_rec         := l_eam_wo_comp_rec;
2133 		l_out_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
2134 		l_out_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
2135 		l_out_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
2136 		l_out_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
2137 		l_out_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
2138 		l_out_eam_op_comp_tbl         := l_eam_op_comp_tbl;
2139 		l_out_eam_request_tbl         := l_eam_request_tbl;
2140 
2141 
2142                EAM_ERROR_MESSAGE_PVT.Log_Error
2143         (  p_eam_wo_rec             => l_eam_wo_rec
2144         ,  p_eam_op_tbl             => l_eam_op_tbl
2145         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
2146         ,  p_eam_res_tbl            => l_eam_res_tbl
2147         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
2148         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
2149         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
2150         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
2151         ,  p_eam_direct_items_tbl   => l_eam_di_tbl
2152         ,  p_mesg_token_tbl         => l_mesg_token_tbl
2153         ,  p_error_status           => FND_API.G_RET_STS_ERROR
2154         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_RECORD
2155         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
2156         ,  p_other_message          => l_other_message
2157         ,  p_other_token_tbl        => l_other_token_tbl
2158         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_WO_LEVEL
2159         ,  x_eam_wo_rec             => l_out_eam_wo_rec
2160         ,  x_eam_op_tbl             => l_out_eam_op_tbl
2161         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
2162         ,  x_eam_res_tbl            => l_out_eam_res_tbl
2163         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
2164         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
2165         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
2166         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
2167         ,  x_eam_direct_items_tbl   => l_out_eam_di_tbl
2168        );
2169 
2170                 l_eam_wo_rec            := l_out_eam_wo_rec;
2171                 l_eam_op_tbl            := l_out_eam_op_tbl;
2172                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
2173                 l_eam_res_tbl           := l_out_eam_res_tbl;
2174                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
2175                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
2176                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
2177                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
2178                 l_eam_di_tbl            := l_out_eam_di_tbl;
2179 
2180 		l_eam_wo_comp_rec         :=  l_out_eam_wo_comp_rec;
2181 		l_eam_wo_quality_tbl      :=  l_out_eam_wo_quality_tbl;
2182 		l_eam_meter_reading_tbl   :=  l_out_eam_meter_reading_tbl;
2183 		l_eam_counter_prop_tbl    :=  l_out_eam_counter_prop_tbl;
2184 		l_eam_wo_comp_rebuild_tbl :=  l_out_eam_wo_comp_rebuild_tbl;
2185 		l_eam_wo_comp_mr_read_tbl :=  l_out_eam_wo_comp_mr_read_tbl;
2186 		l_eam_op_comp_tbl         :=  l_out_eam_op_comp_tbl;
2187 		l_eam_request_tbl         :=  l_out_eam_request_tbl;
2188 
2189         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
2190         THEN
2191             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
2192             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
2193         END IF;
2194 
2195 
2196      END PROCESS_MASTER_CHILD_WO;
2197 
2198 
2199 
2200 
2201 
2202 
2203 
2204 
2205 
2206 
2207         -- This procedure loops through all the input records and finds
2208         -- out the list of headers that the user has passed
2209 
2210         PROCEDURE CHECK_BO_NETWORK
2211         ( p_eam_wo_tbl              IN  EAM_PROCESS_WO_PUB.eam_wo_tbl_type
2212         , p_eam_wo_relations_tbl    IN  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
2213         , p_eam_op_tbl              IN  EAM_PROCESS_WO_PUB.eam_op_tbl_type
2214         , p_eam_op_network_tbl      IN  EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
2215         , p_eam_res_tbl             IN  EAM_PROCESS_WO_PUB.eam_res_tbl_type
2216         , p_eam_res_inst_tbl        IN  EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
2217         , p_eam_sub_res_tbl         IN  EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
2218         , p_eam_mat_req_tbl         IN  EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
2219         , p_eam_direct_items_tbl    IN  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
2220         , p_eam_res_usage_tbl       IN  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
2221 	, p_eam_wo_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type
2222         , p_eam_wo_quality_tbl      IN  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
2223         , p_eam_meter_reading_tbl   IN  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
2224         , p_eam_counter_prop_tbl    IN  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
2225         , p_eam_wo_comp_rebuild_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
2226         , p_eam_wo_comp_mr_read_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
2227         , p_eam_op_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
2228 	, p_eam_request_tbl         IN  EAM_PROCESS_WO_PUB.eam_request_tbl_type
2229         , x_eam_wo_tbl              OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_tbl_type
2230         , x_eam_wo_relations_tbl    OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
2231         , x_eam_op_tbl              OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_op_tbl_type
2232         , x_eam_op_network_tbl      OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
2233         , x_eam_res_tbl             OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_res_tbl_type
2234         , x_eam_res_inst_tbl        OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
2235         , x_eam_sub_res_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
2236         , x_eam_mat_req_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
2237         , x_eam_direct_items_tbl    OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
2238         , x_eam_res_usage_tbl       OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
2239 	, x_eam_wo_comp_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type
2240         , x_eam_wo_quality_tbl      OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
2241         , x_eam_meter_reading_tbl   OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
2242         , x_eam_counter_prop_tbl    OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
2243         , x_eam_wo_comp_rebuild_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
2244         , x_eam_wo_comp_mr_read_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
2245         , x_eam_op_comp_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
2246 	, x_eam_request_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_request_tbl_type
2247         , x_batch_id                OUT NOCOPY NUMBER
2248         , x_header_id_tbl           OUT NOCOPY EAM_PROCESS_WO_PUB.header_id_tbl_type
2249         , x_return_status           OUT NOCOPY VARCHAR2
2250         ) IS
2251           l_batch_id                NUMBER;
2252           l_header_id_tbl           EAM_PROCESS_WO_PUB.header_id_tbl_type;
2253           l_count                   NUMBER;
2254           l_header_id               NUMBER;
2255           l_found                   VARCHAR2(1) := FND_API.G_FALSE;
2256           l_return_status           VARCHAR2(1);
2257 
2258           l_eam_wo_tbl              EAM_PROCESS_WO_PUB.eam_wo_tbl_type
2259                                     := p_eam_wo_tbl;
2260           l_eam_wo_relations_tbl    EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
2261                                     := p_eam_wo_relations_tbl;
2262           l_eam_op_tbl              EAM_PROCESS_WO_PUB.eam_op_tbl_type
2263                                     := p_eam_op_tbl;
2264           l_eam_op_network_tbl      EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
2265                                     := p_eam_op_network_tbl;
2266           l_eam_res_tbl             EAM_PROCESS_WO_PUB.eam_res_tbl_type
2267                                     := p_eam_res_tbl;
2268           l_eam_res_inst_tbl        EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
2269                                     := p_eam_res_inst_tbl;
2270           l_eam_sub_res_tbl         EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
2271                                     := p_eam_sub_res_tbl;
2272           l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
2273                                    := p_eam_res_usage_tbl;
2274           l_eam_mat_req_tbl         EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
2275                                     := p_eam_mat_req_tbl;
2276           l_eam_direct_items_tbl    EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
2277                                     := p_eam_direct_items_tbl;
2278 
2279 	l_eam_wo_comp_tbl         EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type
2280 					:= p_eam_wo_comp_tbl;
2281 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
2282 					:= p_eam_wo_quality_tbl;
2283 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
2284 					:= p_eam_meter_reading_tbl;
2285 	l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
2286 					:= p_eam_counter_prop_tbl;
2287 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
2288 					:= p_eam_wo_comp_rebuild_tbl;
2289 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
2290 					:= p_eam_wo_comp_mr_read_tbl;
2291 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
2292 					:= p_eam_op_comp_tbl;
2293 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type
2294 					:= p_eam_request_tbl;
2295 
2296         BEGIN
2297 
2298           l_return_status := FND_API.G_RET_STS_SUCCESS;
2299 
2300           l_batch_id := null;
2301 
2302           if l_eam_wo_tbl.count > 0 then
2303           FOR i in l_eam_wo_tbl.first..l_eam_wo_tbl.last LOOP
2304             IF l_eam_wo_tbl(i).batch_id is null or l_eam_wo_tbl(i).header_id is null then
2305               l_return_status := FND_API.G_RET_STS_ERROR;
2306               return;
2307             END IF;
2308             l_eam_wo_tbl(i).row_id := i;
2309             IF l_batch_id = null THEN
2310               l_batch_id := l_eam_wo_tbl(i).batch_id;
2311             ELSIF l_batch_id <> l_eam_wo_tbl(i).batch_id THEN
2312               l_return_status := FND_API.G_RET_STS_ERROR;
2313             END IF;
2314             l_header_id := l_eam_wo_tbl(i).header_id;
2315             l_found := FND_API.G_FALSE;
2316             if l_header_id_tbl.count > 0 then
2317             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2318               if l_header_id = l_header_id_tbl(j).header_id then
2319                 l_found := FND_API.G_TRUE;
2320               end if;
2321             end loop;
2322             end if;
2323             if l_found = FND_API.G_FALSE then
2324               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2325             end if;
2326           END LOOP;
2327           end if;
2328 
2329 
2330           if l_eam_op_tbl.count > 0 then
2331           FOR i in l_eam_op_tbl.first..l_eam_op_tbl.last LOOP
2332             IF l_eam_op_tbl(i).batch_id is null or l_eam_op_tbl(i).header_id is null then
2333               l_return_status := FND_API.G_RET_STS_ERROR;
2334               return;
2335             END IF;
2336             l_eam_op_tbl(i).row_id := i;
2337             IF l_batch_id = null THEN
2338               l_batch_id := l_eam_op_tbl(i).batch_id;
2339             ELSIF l_batch_id <> l_eam_op_tbl(i).batch_id THEN
2340               l_return_status := FND_API.G_RET_STS_ERROR;
2341             END IF;
2342             l_header_id := l_eam_op_tbl(i).header_id;
2343             l_found := FND_API.G_FALSE;
2344             if l_header_id_tbl.count > 0 then
2345             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2346               if l_header_id = l_header_id_tbl(j).header_id then
2347                 l_found := FND_API.G_TRUE;
2348               end if;
2349             end loop;
2350             end if;
2351             if l_found = FND_API.G_FALSE then
2352               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2353             end if;
2354           END LOOP;
2355           end if;
2356 
2357 
2358           if l_eam_op_network_tbl.count > 0 then
2359           FOR i in l_eam_op_network_tbl.first..l_eam_op_network_tbl.last LOOP
2360             IF l_eam_op_network_tbl(i).batch_id is null or l_eam_op_network_tbl(i).header_id is null then
2361               l_return_status := FND_API.G_RET_STS_ERROR;
2362               return;
2363             END IF;
2364             l_eam_op_network_tbl(i).row_id := i;
2365             IF l_batch_id = null THEN
2366               l_batch_id := l_eam_op_network_tbl(i).batch_id;
2367             ELSIF l_batch_id <> l_eam_op_network_tbl(i).batch_id THEN
2368               l_return_status := FND_API.G_RET_STS_ERROR;
2369             END IF;
2370             l_header_id := l_eam_op_network_tbl(i).header_id;
2371             l_found := FND_API.G_FALSE;
2372             if l_header_id_tbl.count > 0 then
2373             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2374               if l_header_id = l_header_id_tbl(j).header_id then
2375                 l_found := FND_API.G_TRUE;
2376               end if;
2377             end loop;
2378             end if;
2379             if l_found = FND_API.G_FALSE then
2380               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2381             end if;
2382           END LOOP;
2383           end if;
2384 
2385           if l_eam_res_tbl.count > 0 then
2386           FOR i in l_eam_res_tbl.first..l_eam_res_tbl.last LOOP
2387             IF l_eam_res_tbl(i).batch_id is null or l_eam_res_tbl(i).header_id is null then
2388               l_return_status := FND_API.G_RET_STS_ERROR;
2389               return;
2390             END IF;
2391             l_eam_res_tbl(i).row_id := i;
2392             IF l_batch_id = null THEN
2393               l_batch_id := l_eam_res_tbl(i).batch_id;
2394             ELSIF l_batch_id <> l_eam_res_tbl(i).batch_id THEN
2395               l_return_status := FND_API.G_RET_STS_ERROR;
2396             END IF;
2397             l_header_id := l_eam_res_tbl(i).header_id;
2398             l_found := FND_API.G_FALSE;
2399             if l_header_id_tbl.count > 0 then
2400             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2401               if l_header_id = l_header_id_tbl(j).header_id then
2402                 l_found := FND_API.G_TRUE;
2403               end if;
2404             end loop;
2405             end if;
2406             if l_found = FND_API.G_FALSE then
2407               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2408             end if;
2409           END LOOP;
2410           end if;
2411 
2412 	  if l_eam_res_inst_tbl.count > 0 then
2413           FOR i in l_eam_res_inst_tbl.first..l_eam_res_inst_tbl.last LOOP
2414             IF l_eam_res_inst_tbl(i).batch_id is null or l_eam_res_inst_tbl(i).header_id is null then
2415               l_return_status := FND_API.G_RET_STS_ERROR;
2416               return;
2417             END IF;
2418             l_eam_res_inst_tbl(i).row_id := i;
2419             IF l_batch_id = null THEN
2420               l_batch_id := l_eam_res_inst_tbl(i).batch_id;
2421             ELSIF l_batch_id <> l_eam_res_inst_tbl(i).batch_id THEN
2422               l_return_status := FND_API.G_RET_STS_ERROR;
2423             END IF;
2424             l_header_id := l_eam_res_inst_tbl(i).header_id;
2425             l_found := FND_API.G_FALSE;
2426             if l_header_id_tbl.count > 0 then
2427             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2428               if l_header_id = l_header_id_tbl(j).header_id then
2429                 l_found := FND_API.G_TRUE;
2430               end if;
2431             end loop;
2432             end if;
2433             if l_found = FND_API.G_FALSE then
2434               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2435             end if;
2436           END LOOP;
2437           end if;
2438 
2439           if l_eam_sub_res_tbl.count > 0 then
2440           FOR i in l_eam_sub_res_tbl.first..l_eam_sub_res_tbl.last LOOP
2441             IF l_eam_sub_res_tbl(i).batch_id is null or l_eam_sub_res_tbl(i).header_id is null then
2442               l_return_status := FND_API.G_RET_STS_ERROR;
2443               return;
2444             END IF;
2445             l_eam_sub_res_tbl(i).row_id := i;
2446             IF l_batch_id = null THEN
2447               l_batch_id := l_eam_sub_res_tbl(i).batch_id;
2448             ELSIF l_batch_id <> l_eam_sub_res_tbl(i).batch_id THEN
2449               l_return_status := FND_API.G_RET_STS_ERROR;
2450             END IF;
2451             l_header_id := l_eam_sub_res_tbl(i).header_id;
2452             l_found := FND_API.G_FALSE;
2453             if l_header_id_tbl.count > 0 then
2454             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2455               if l_header_id = l_header_id_tbl(j).header_id then
2456                 l_found := FND_API.G_TRUE;
2457               end if;
2458             end loop;
2459             end if;
2460             if l_found = FND_API.G_FALSE then
2461               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2462             end if;
2463           END LOOP;
2464           end if;
2465 
2466 	 if l_eam_res_usage_tbl.count > 0 then
2467           FOR i in l_eam_res_usage_tbl.first..l_eam_res_usage_tbl.last LOOP
2468             IF l_eam_res_usage_tbl(i).batch_id is null or l_eam_res_usage_tbl(i).header_id is null then
2469               l_return_status := FND_API.G_RET_STS_ERROR;
2470               return;
2471             END IF;
2472             l_eam_res_usage_tbl(i).row_id := i;
2473             IF l_batch_id = null THEN
2474               l_batch_id := l_eam_res_usage_tbl(i).batch_id;
2475             ELSIF l_batch_id <> l_eam_res_usage_tbl(i).batch_id THEN
2476               l_return_status := FND_API.G_RET_STS_ERROR;
2477             END IF;
2478             l_header_id := l_eam_res_usage_tbl(i).header_id;
2479             l_found := FND_API.G_FALSE;
2480             if l_header_id_tbl.count > 0 then
2481             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2482               if l_header_id = l_header_id_tbl(j).header_id then
2483                 l_found := FND_API.G_TRUE;
2484               end if;
2485             end loop;
2486             end if;
2487             if l_found = FND_API.G_FALSE then
2488               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2489             end if;
2490           END LOOP;
2491           end if;
2492 
2493           if l_eam_mat_req_tbl.count > 0 then
2494           FOR i in l_eam_mat_req_tbl.first..l_eam_mat_req_tbl.last LOOP
2495             IF l_eam_mat_req_tbl(i).batch_id is null or l_eam_mat_req_tbl(i).header_id is null then
2496               l_return_status := FND_API.G_RET_STS_ERROR;
2497               return;
2498             END IF;
2499             l_eam_mat_req_tbl(i).row_id := i;
2500             IF l_batch_id = null THEN
2501               l_batch_id := l_eam_mat_req_tbl(i).batch_id;
2502             ELSIF l_batch_id <> l_eam_mat_req_tbl(i).batch_id THEN
2503               l_return_status := FND_API.G_RET_STS_ERROR;
2504             END IF;
2505             l_header_id := l_eam_mat_req_tbl(i).header_id;
2506             l_found := FND_API.G_FALSE;
2507             if l_header_id_tbl.count > 0 then
2508             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2509               if l_header_id = l_header_id_tbl(j).header_id then
2510                 l_found := FND_API.G_TRUE;
2511               end if;
2512             end loop;
2513             end if;
2514             if l_found = FND_API.G_FALSE then
2515               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2516             end if;
2517           END LOOP;
2518           end if;
2519 
2520           if l_eam_direct_items_tbl.count > 0 then
2521           FOR i in l_eam_direct_items_tbl.first..l_eam_direct_items_tbl.last LOOP
2522             IF l_eam_direct_items_tbl(i).batch_id is null or l_eam_direct_items_tbl(i).header_id is null then
2523               l_return_status := FND_API.G_RET_STS_ERROR;
2524               return;
2525             END IF;
2526             l_eam_direct_items_tbl(i).row_id := i;
2527             IF l_batch_id = null THEN
2528               l_batch_id := l_eam_direct_items_tbl(i).batch_id;
2529             ELSIF l_batch_id <> l_eam_direct_items_tbl(i).batch_id THEN
2530               l_return_status := FND_API.G_RET_STS_ERROR;
2531             END IF;
2532             l_header_id := l_eam_direct_items_tbl(i).header_id;
2533             l_found := FND_API.G_FALSE;
2534             if l_header_id_tbl.count > 0 then
2535             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2536               if l_header_id = l_header_id_tbl(j).header_id then
2537                 l_found := FND_API.G_TRUE;
2538               end if;
2539             end loop;
2540             end if;
2541             if l_found = FND_API.G_FALSE then
2542               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2543             end if;
2544           END LOOP;
2545           end if;
2546 
2547 	if l_eam_wo_comp_tbl.count > 0 then
2548 
2549           FOR i in l_eam_wo_comp_tbl.first..l_eam_wo_comp_tbl.last LOOP
2550             IF l_eam_wo_comp_tbl(i).batch_id is null or l_eam_wo_comp_tbl(i).header_id is null then
2551               l_return_status := FND_API.G_RET_STS_ERROR;
2552               return;
2553             END IF;
2554             l_eam_wo_comp_tbl(i).row_id := i;
2555             IF l_batch_id = null THEN
2556               l_batch_id := l_eam_wo_comp_tbl(i).batch_id;
2557             ELSIF l_batch_id <> l_eam_wo_comp_tbl(i).batch_id THEN
2558               l_return_status := FND_API.G_RET_STS_ERROR;
2559             END IF;
2560             l_header_id := l_eam_wo_comp_tbl(i).header_id;
2561             l_found := FND_API.G_FALSE;
2562             if l_header_id_tbl.count > 0 then
2563             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2564               if l_header_id = l_header_id_tbl(j).header_id then
2565                 l_found := FND_API.G_TRUE;
2566               end if;
2567             end loop;
2568             end if;
2569             if l_found = FND_API.G_FALSE then
2570               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2571             end if;
2572           END LOOP;
2573           end if;
2574 
2575 	if l_eam_wo_quality_tbl.count > 0 then
2576           FOR i in l_eam_wo_quality_tbl.first..l_eam_wo_quality_tbl.last LOOP
2577             IF l_eam_wo_quality_tbl(i).batch_id is null or l_eam_wo_quality_tbl(i).header_id is null then
2578               l_return_status := FND_API.G_RET_STS_ERROR;
2579               return;
2580             END IF;
2581             l_eam_wo_quality_tbl(i).row_id := i;
2582             IF l_batch_id = null THEN
2583               l_batch_id := l_eam_wo_quality_tbl(i).batch_id;
2584             ELSIF l_batch_id <> l_eam_wo_quality_tbl(i).batch_id THEN
2585               l_return_status := FND_API.G_RET_STS_ERROR;
2586             END IF;
2587             l_header_id := l_eam_wo_quality_tbl(i).header_id;
2588             l_found := FND_API.G_FALSE;
2589             if l_header_id_tbl.count > 0 then
2590             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2591               if l_header_id = l_header_id_tbl(j).header_id then
2592                 l_found := FND_API.G_TRUE;
2593               end if;
2594             end loop;
2595             end if;
2596             if l_found = FND_API.G_FALSE then
2597               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2598             end if;
2599           END LOOP;
2600           end if;
2601 
2602 	  if l_eam_meter_reading_tbl.count > 0 then
2603           FOR i in l_eam_meter_reading_tbl.first..l_eam_meter_reading_tbl.last LOOP
2604             IF l_eam_meter_reading_tbl(i).batch_id is null or l_eam_meter_reading_tbl(i).header_id is null then
2605               l_return_status := FND_API.G_RET_STS_ERROR;
2606               return;
2607             END IF;
2608             l_eam_meter_reading_tbl(i).row_id := i;
2609             IF l_batch_id = null THEN
2610               l_batch_id := l_eam_meter_reading_tbl(i).batch_id;
2611             ELSIF l_batch_id <> l_eam_meter_reading_tbl(i).batch_id THEN
2612               l_return_status := FND_API.G_RET_STS_ERROR;
2613             END IF;
2614             l_header_id := l_eam_meter_reading_tbl(i).header_id;
2615             l_found := FND_API.G_FALSE;
2616             if l_header_id_tbl.count > 0 then
2617             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2618               if l_header_id = l_header_id_tbl(j).header_id then
2619                 l_found := FND_API.G_TRUE;
2620               end if;
2621             end loop;
2622             end if;
2623             if l_found = FND_API.G_FALSE then
2624               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2625             end if;
2626           END LOOP;
2627           end if;
2628 
2629 	 if l_eam_counter_prop_tbl.count > 0 then
2630           FOR i in l_eam_counter_prop_tbl.first..l_eam_counter_prop_tbl.last LOOP
2631             IF l_eam_counter_prop_tbl(i).batch_id is null or l_eam_counter_prop_tbl(i).header_id is null then
2632               l_return_status := FND_API.G_RET_STS_ERROR;
2633               return;
2634             END IF;
2635             l_eam_counter_prop_tbl(i).row_id := i;
2636             IF l_batch_id = null THEN
2637               l_batch_id := l_eam_counter_prop_tbl(i).batch_id;
2638             ELSIF l_batch_id <> l_eam_counter_prop_tbl(i).batch_id THEN
2639               l_return_status := FND_API.G_RET_STS_ERROR;
2640             END IF;
2641             l_header_id := l_eam_counter_prop_tbl(i).header_id;
2642             l_found := FND_API.G_FALSE;
2643             if l_header_id_tbl.count > 0 then
2644             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2645               if l_header_id = l_header_id_tbl(j).header_id then
2646                 l_found := FND_API.G_TRUE;
2647               end if;
2648             end loop;
2649             end if;
2650             if l_found = FND_API.G_FALSE then
2651               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2652             end if;
2653           END LOOP;
2654           end if;
2655 
2656 	   if l_eam_wo_comp_rebuild_tbl.count > 0 then
2657           FOR i in l_eam_wo_comp_rebuild_tbl.first..l_eam_wo_comp_rebuild_tbl.last LOOP
2658             IF l_eam_wo_comp_rebuild_tbl(i).batch_id is null or l_eam_wo_comp_rebuild_tbl(i).header_id is null then
2659               l_return_status := FND_API.G_RET_STS_ERROR;
2660               return;
2661             END IF;
2662             l_eam_wo_comp_rebuild_tbl(i).row_id := i;
2663             IF l_batch_id = null THEN
2664               l_batch_id := l_eam_wo_comp_rebuild_tbl(i).batch_id;
2665             ELSIF l_batch_id <> l_eam_wo_comp_rebuild_tbl(i).batch_id THEN
2666               l_return_status := FND_API.G_RET_STS_ERROR;
2667             END IF;
2668             l_header_id := l_eam_wo_comp_rebuild_tbl(i).header_id;
2669             l_found := FND_API.G_FALSE;
2670             if l_header_id_tbl.count > 0 then
2671             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2672               if l_header_id = l_header_id_tbl(j).header_id then
2673                 l_found := FND_API.G_TRUE;
2674               end if;
2675             end loop;
2676             end if;
2677             if l_found = FND_API.G_FALSE then
2678               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2679             end if;
2680           END LOOP;
2681           end if;
2682 
2683 	    if l_eam_wo_comp_mr_read_tbl.count > 0 then
2684           FOR i in l_eam_wo_comp_mr_read_tbl.first..l_eam_wo_comp_mr_read_tbl.last LOOP
2685             IF l_eam_wo_comp_mr_read_tbl(i).batch_id is null or l_eam_wo_comp_mr_read_tbl(i).header_id is null then
2686               l_return_status := FND_API.G_RET_STS_ERROR;
2687               return;
2688             END IF;
2689             l_eam_wo_comp_mr_read_tbl(i).row_id := i;
2690             IF l_batch_id = null THEN
2691               l_batch_id := l_eam_wo_comp_mr_read_tbl(i).batch_id;
2692             ELSIF l_batch_id <> l_eam_wo_comp_mr_read_tbl(i).batch_id THEN
2693               l_return_status := FND_API.G_RET_STS_ERROR;
2694             END IF;
2695             l_header_id := l_eam_wo_comp_mr_read_tbl(i).header_id;
2696             l_found := FND_API.G_FALSE;
2697             if l_header_id_tbl.count > 0 then
2698             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2699               if l_header_id = l_header_id_tbl(j).header_id then
2700                 l_found := FND_API.G_TRUE;
2701               end if;
2702             end loop;
2703             end if;
2704             if l_found = FND_API.G_FALSE then
2705               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2706             end if;
2707           END LOOP;
2708           end if;
2709 
2710 	    if l_eam_op_comp_tbl.count > 0 then
2711           FOR i in l_eam_op_comp_tbl.first..l_eam_op_comp_tbl.last LOOP
2712             IF l_eam_op_comp_tbl(i).batch_id is null or l_eam_op_comp_tbl(i).header_id is null then
2713               l_return_status := FND_API.G_RET_STS_ERROR;
2714               return;
2715             END IF;
2716             l_eam_op_comp_tbl(i).row_id := i;
2717             IF l_batch_id = null THEN
2718               l_batch_id := l_eam_op_comp_tbl(i).batch_id;
2719             ELSIF l_batch_id <> l_eam_op_comp_tbl(i).batch_id THEN
2720               l_return_status := FND_API.G_RET_STS_ERROR;
2721             END IF;
2722             l_header_id := l_eam_op_comp_tbl(i).header_id;
2723             l_found := FND_API.G_FALSE;
2724             if l_header_id_tbl.count > 0 then
2725             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2726               if l_header_id = l_header_id_tbl(j).header_id then
2727                 l_found := FND_API.G_TRUE;
2728               end if;
2729             end loop;
2730             end if;
2731             if l_found = FND_API.G_FALSE then
2732               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2733             end if;
2734           END LOOP;
2735           end if;
2736 
2737 	     if l_eam_request_tbl.count > 0 then
2738           FOR i in l_eam_request_tbl.first..l_eam_request_tbl.last LOOP
2739             IF l_eam_request_tbl(i).batch_id is null or l_eam_request_tbl(i).header_id is null then
2740               l_return_status := FND_API.G_RET_STS_ERROR;
2741               return;
2742             END IF;
2743             l_eam_request_tbl(i).row_id := i;
2744             IF l_batch_id = null THEN
2745               l_batch_id := l_eam_request_tbl(i).batch_id;
2746             ELSIF l_batch_id <> l_eam_request_tbl(i).batch_id THEN
2747               l_return_status := FND_API.G_RET_STS_ERROR;
2748             END IF;
2749             l_header_id := l_eam_request_tbl(i).header_id;
2750             l_found := FND_API.G_FALSE;
2751             if l_header_id_tbl.count > 0 then
2752             for j in l_header_id_tbl.first..l_header_id_tbl.last loop
2753               if l_header_id = l_header_id_tbl(j).header_id then
2754                 l_found := FND_API.G_TRUE;
2755               end if;
2756             end loop;
2757             end if;
2758             if l_found = FND_API.G_FALSE then
2759               l_header_id_tbl(l_header_id_tbl.count+1).header_id := l_header_id;
2760             end if;
2761           END LOOP;
2762           end if;
2763 
2764 
2765          -- If return status is not success, then set all records as unprocessed
2766          if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2767 
2768            for i in l_eam_wo_tbl.first..l_eam_wo_tbl.last loop
2769              if l_eam_wo_tbl(i).transaction_type is not null then
2770                l_eam_wo_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2771              end if;
2772            end loop;
2773 
2774            for i in l_eam_wo_relations_tbl.first..l_eam_wo_relations_tbl.last loop
2775              if l_eam_wo_relations_tbl(i).transaction_type is not null then
2776                l_eam_wo_relations_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2777              end if;
2778            end loop;
2779 
2780            for i in l_eam_op_tbl.first..l_eam_op_tbl.last loop
2781              if l_eam_op_tbl(i).transaction_type is not null then
2782                l_eam_op_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2783              end if;
2784            end loop;
2785 
2786            for i in l_eam_op_network_tbl.first..l_eam_op_tbl.last loop
2787              if l_eam_op_network_tbl(i).transaction_type is not null then
2788                l_eam_op_network_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2789              end if;
2790            end loop;
2791 
2792            for i in l_eam_res_tbl.first..l_eam_res_tbl.last loop
2793              if l_eam_res_tbl(i).transaction_type is not null then
2794                l_eam_res_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2795              end if;
2796            end loop;
2797 
2798            for i in l_eam_res_inst_tbl.first..l_eam_res_inst_tbl.last loop
2799              if l_eam_res_inst_tbl(i).transaction_type is not null then
2800                l_eam_res_inst_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2801              end if;
2802            end loop;
2803 
2804            for i in l_eam_sub_res_tbl.first..l_eam_sub_res_tbl.last loop
2805              if l_eam_sub_res_tbl(i).transaction_type is not null then
2806                l_eam_sub_res_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2807              end if;
2808            end loop;
2809 
2810 
2811            for i in l_eam_res_usage_tbl.first..l_eam_res_usage_tbl.last loop
2812              if l_eam_res_usage_tbl(i).transaction_type is not null then
2813                l_eam_res_usage_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2814              end if;
2815            end loop;
2816 
2817            for i in l_eam_mat_req_tbl.first..l_eam_mat_req_tbl.last loop
2818              if l_eam_mat_req_tbl(i).transaction_type is not null then
2819                l_eam_mat_req_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2820              end if;
2821            end loop;
2822 
2823            for i in l_eam_direct_items_tbl.first..l_eam_direct_items_tbl.last loop
2824              if l_eam_direct_items_tbl(i).transaction_type is not null then
2825                l_eam_direct_items_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2826              end if;
2827 
2828 	  for i in l_eam_wo_comp_tbl.first..l_eam_wo_comp_tbl.last loop
2829              if l_eam_wo_comp_tbl(i).transaction_type is not null then
2830                l_eam_wo_comp_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2831              end if;
2832            end loop;
2833 
2834 	 for i in l_eam_wo_quality_tbl.first..l_eam_wo_quality_tbl.last loop
2835              if l_eam_wo_quality_tbl(i).transaction_type is not null then
2836                l_eam_wo_quality_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2837              end if;
2838            end loop;
2839 
2840 	 for i in l_eam_meter_reading_tbl.first..l_eam_meter_reading_tbl.last loop
2841              if l_eam_meter_reading_tbl(i).transaction_type is not null then
2842                l_eam_meter_reading_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2843              end if;
2844            end loop;
2845 
2846 	 for i in l_eam_counter_prop_tbl.first..l_eam_counter_prop_tbl.last loop
2847              if l_eam_counter_prop_tbl(i).transaction_type is not null then
2848                l_eam_counter_prop_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2849              end if;
2850            end loop;
2851 
2852 	 for i in l_eam_wo_comp_rebuild_tbl.first..l_eam_wo_comp_rebuild_tbl.last loop
2853              if l_eam_wo_comp_rebuild_tbl(i).transaction_type is not null then
2854                l_eam_wo_comp_rebuild_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2855              end if;
2856            end loop;
2857 
2858 	 for i in l_eam_wo_comp_mr_read_tbl.first..l_eam_wo_comp_mr_read_tbl.last loop
2859              if l_eam_wo_comp_mr_read_tbl(i).transaction_type is not null then
2860                l_eam_wo_comp_mr_read_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2861              end if;
2862            end loop;
2863 
2864 	 for i in l_eam_op_comp_tbl.first..l_eam_op_comp_tbl.last loop
2865              if l_eam_op_comp_tbl(i).transaction_type is not null then
2866                l_eam_op_comp_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2867              end if;
2868            end loop;
2869 
2870 	 for i in l_eam_request_tbl.first..l_eam_request_tbl.last loop
2871              if l_eam_request_tbl(i).transaction_type is not null then
2872                l_eam_request_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2873              end if;
2874            end loop;
2875 
2876            end loop;
2877 
2878          end if;
2879 
2880          x_eam_wo_tbl              := l_eam_wo_tbl;
2881          x_eam_wo_relations_tbl    := l_eam_wo_relations_tbl;
2882          x_eam_op_tbl              := l_eam_op_tbl;
2883          x_eam_op_network_tbl      := l_eam_op_network_tbl;
2884          x_eam_res_tbl             := l_eam_res_tbl;
2885          x_eam_res_inst_tbl        := l_eam_res_inst_tbl;
2886          x_eam_sub_res_tbl         := l_eam_sub_res_tbl;
2887 	 x_eam_res_usage_tbl	   := l_eam_res_usage_tbl;
2888          x_eam_res_usage_tbl       := l_eam_res_usage_tbl;
2889          x_eam_mat_req_tbl         := l_eam_mat_req_tbl;
2890          x_eam_direct_items_tbl    := l_eam_direct_items_tbl;
2891 
2892 	x_eam_wo_comp_tbl		:= l_eam_wo_comp_tbl        ;
2893 	x_eam_wo_quality_tbl     	:= l_eam_wo_quality_tbl     ;
2894 	x_eam_meter_reading_tbl  	:= l_eam_meter_reading_tbl  ;
2895 	x_eam_counter_prop_tbl   	:= l_eam_counter_prop_tbl   ;
2896 	x_eam_wo_comp_rebuild_tbl	:= l_eam_wo_comp_rebuild_tbl;
2897 	x_eam_wo_comp_mr_read_tbl	:= l_eam_wo_comp_mr_read_tbl;
2898 	x_eam_op_comp_tbl        	:= l_eam_op_comp_tbl        ;
2899 	x_eam_request_tbl        	:= l_eam_request_tbl     ;
2900 
2901           x_batch_id      := l_batch_id;
2902           x_header_id_tbl := l_header_id_tbl;
2903           x_return_status := l_return_status;
2904           return;
2905 
2906          EXCEPTION
2907 
2908            WHEN OTHERS THEN
2909              l_return_status := FND_API.G_RET_STS_ERROR;
2910          -- set all records as unprocessed
2911 
2912            for i in l_eam_wo_tbl.first..l_eam_wo_tbl.last loop
2913              if l_eam_wo_tbl(i).transaction_type is not null then
2914                l_eam_wo_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2915              end if;
2916            end loop;
2917 
2918            for i in l_eam_wo_relations_tbl.first..l_eam_wo_relations_tbl.last loop
2919              if l_eam_wo_relations_tbl(i).transaction_type is not null then
2920                l_eam_wo_relations_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2921              end if;
2922            end loop;
2923 
2924            for i in l_eam_op_tbl.first..l_eam_op_tbl.last loop
2925              if l_eam_op_tbl(i).transaction_type is not null then
2926                l_eam_op_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2927              end if;
2928            end loop;
2929 
2930            for i in l_eam_op_network_tbl.first..l_eam_op_tbl.last loop
2931              if l_eam_op_network_tbl(i).transaction_type is not null then
2932                l_eam_op_network_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2933              end if;
2934            end loop;
2935 
2936            for i in l_eam_res_tbl.first..l_eam_res_tbl.last loop
2937              if l_eam_res_tbl(i).transaction_type is not null then
2938                l_eam_res_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2939              end if;
2940            end loop;
2941 
2942            for i in l_eam_res_inst_tbl.first..l_eam_res_inst_tbl.last loop
2943              if l_eam_res_inst_tbl(i).transaction_type is not null then
2944                l_eam_res_inst_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2945              end if;
2946            end loop;
2947 
2948            for i in l_eam_sub_res_tbl.first..l_eam_sub_res_tbl.last loop
2949              if l_eam_sub_res_tbl(i).transaction_type is not null then
2950                l_eam_sub_res_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2951              end if;
2952            end loop;
2953 
2954            for i in l_eam_mat_req_tbl.first..l_eam_mat_req_tbl.last loop
2955              if l_eam_mat_req_tbl(i).transaction_type is not null then
2956                l_eam_mat_req_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2957              end if;
2958            end loop;
2959 
2960            for i in l_eam_direct_items_tbl.first..l_eam_direct_items_tbl.last loop
2961              if l_eam_direct_items_tbl(i).transaction_type is not null then
2962                l_eam_direct_items_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2963              end if;
2964            end loop;
2965 
2966            for i in l_eam_res_usage_tbl.first..l_eam_res_usage_tbl.last loop
2967              if l_eam_res_usage_tbl(i).transaction_type is not null then
2968                l_eam_res_usage_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2969              end if;
2970            end loop;
2971 
2972            for i in l_eam_wo_comp_tbl.first..l_eam_wo_comp_tbl.last loop
2973              if l_eam_wo_comp_tbl(i).transaction_type is not null then
2974                l_eam_wo_comp_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2975              end if;
2976            end loop;
2977 
2978            for i in l_eam_wo_quality_tbl.first..l_eam_wo_quality_tbl.last loop
2979              if l_eam_wo_quality_tbl(i).transaction_type is not null then
2980                l_eam_wo_quality_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2981              end if;
2982            end loop;
2983 
2984 	   for i in l_eam_meter_reading_tbl.first..l_eam_meter_reading_tbl.last loop
2985              if l_eam_meter_reading_tbl(i).transaction_type is not null then
2986                l_eam_meter_reading_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2987              end if;
2988            end loop;
2989 
2990 	   for i in l_eam_counter_prop_tbl.first..l_eam_counter_prop_tbl.last loop
2991              if l_eam_counter_prop_tbl(i).transaction_type is not null then
2992                l_eam_counter_prop_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2993              end if;
2994            end loop;
2995 
2996            for i in l_eam_wo_comp_rebuild_tbl.first..l_eam_wo_comp_rebuild_tbl.last loop
2997              if l_eam_wo_comp_rebuild_tbl(i).transaction_type is not null then
2998                l_eam_wo_comp_rebuild_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
2999              end if;
3000            end loop;
3001 
3002            for i in l_eam_wo_comp_mr_read_tbl.first..l_eam_wo_comp_mr_read_tbl.last loop
3003              if l_eam_wo_comp_mr_read_tbl(i).transaction_type is not null then
3004                l_eam_wo_comp_mr_read_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
3005              end if;
3006            end loop;
3007 
3008            for i in l_eam_op_comp_tbl.first..l_eam_op_comp_tbl.last loop
3009              if l_eam_op_comp_tbl(i).transaction_type is not null then
3010                l_eam_op_comp_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
3011              end if;
3012            end loop;
3013 
3014            for i in l_eam_request_tbl.first..l_eam_request_tbl.last loop
3015              if l_eam_request_tbl(i).transaction_type is not null then
3016                l_eam_request_tbl(i).return_status := FND_API.G_RET_STS_ERROR;
3017              end if;
3018            end loop;
3019 
3020 
3021         END CHECK_BO_NETWORK;
3022 
3023 
3024 
3025 
3026     /********************************************************************
3027     * Procedure: Process_WO
3028     * Parameters IN:
3029     *         EAM Work Order column record
3030     *         Operation column table
3031     *         Operation Networks column Table
3032     *         Resource column Table
3033     *         Substitute Resource column table
3034     *         Material Requirements column table
3035     *         Direct Items column table
3036     * Parameters OUT:
3037     *         EAM Work Order column record
3038     *         Operation column table
3039     *         Operation Networks column Table
3040     *         Resource column Table
3041     *         Substitute Resource column table
3042     *         Material Requirements column table
3043     *         Direct Items column table
3044     * Purpose:
3045     *         This procedure is the driving procedure of the EAM
3046     *         business Obect. It will verify the integrity of the
3047     *         business object and will call the private API which
3048     *         further drive the business object to perform business
3049     *         logic validations.
3050     *********************************************************************/
3051 
3052       PROCEDURE PROCESS_WO
3053         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
3054          , p_api_version_number      IN  NUMBER := 1.0
3055          , p_init_msg_list           IN  BOOLEAN := FALSE
3056          , p_commit                  IN  VARCHAR2 := 'N'
3057          , p_eam_wo_rec              IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
3058          , p_eam_op_tbl              IN EAM_PROCESS_WO_PUB.eam_op_tbl_type
3059          , p_eam_op_network_tbl      IN EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
3060          , p_eam_res_tbl             IN EAM_PROCESS_WO_PUB.eam_res_tbl_type
3061          , p_eam_res_inst_tbl        IN EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
3062          , p_eam_sub_res_tbl         IN EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
3063          , p_eam_res_usage_tbl       IN EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
3064          , p_eam_mat_req_tbl         IN EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
3065          , p_eam_direct_items_tbl    IN EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
3066          , p_eam_wo_comp_rec         IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type
3067          , p_eam_wo_quality_tbl      IN  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
3068          , p_eam_meter_reading_tbl   IN  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
3069 	 , p_eam_counter_prop_tbl    IN  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
3070          , p_eam_wo_comp_rebuild_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
3071          , p_eam_wo_comp_mr_read_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
3072          , p_eam_op_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
3073 	 , p_eam_request_tbl         IN  EAM_PROCESS_WO_PUB.eam_request_tbl_type
3074          , x_eam_wo_rec              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
3075          , x_eam_op_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_tbl_type
3076          , x_eam_op_network_tbl      OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
3077          , x_eam_res_tbl             OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_tbl_type
3078          , x_eam_res_inst_tbl        OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
3079          , x_eam_sub_res_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
3080          , x_eam_res_usage_tbl       OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
3081          , x_eam_mat_req_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
3082          , x_eam_direct_items_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
3083  	 , x_eam_wo_comp_rec         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type
3084          , x_eam_wo_quality_tbl      OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
3085          , x_eam_meter_reading_tbl   OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
3086  	 , x_eam_counter_prop_tbl    OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
3087          , x_eam_wo_comp_rebuild_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
3088          , x_eam_wo_comp_mr_read_tbl OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
3089          , x_eam_op_comp_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
3090 	 , x_eam_request_tbl         OUT NOCOPY  EAM_PROCESS_WO_PUB.eam_request_tbl_type
3091          , x_return_status           OUT NOCOPY VARCHAR2
3092          , x_msg_count               OUT NOCOPY NUMBER
3093          , p_debug                   IN  VARCHAR2 := 'N'
3094          , p_output_dir              IN  VARCHAR2 := NULL
3095          , p_debug_filename          IN  VARCHAR2 := 'EAM_WO_DEBUG.log'
3096          , p_debug_file_mode         IN  VARCHAR2 := 'w'
3097          ) IS
3098 
3099         G_EXC_SEV_QUIT_OBJECT   EXCEPTION;
3100         G_EXC_UNEXP_SKIP_OBJECT EXCEPTION;
3101         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
3102         l_other_message         VARCHAR2(50);
3103         l_Token_Tbl             EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
3104         l_err_text              VARCHAR2(2000);
3105         l_return_status         VARCHAR2(1);
3106         l_debug_file_mode       VARCHAR2(1) := p_debug_file_mode;
3107 
3108         l_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
3109         l_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
3110         l_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
3111         l_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
3112         l_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
3113         l_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
3114         l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
3115         l_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
3116         l_eam_direct_items_tbl       EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
3117 
3118 	l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
3119 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
3120 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
3121  	l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
3122 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
3123 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
3124 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
3125 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
3126 
3127         l_out_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
3128         l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
3129         l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
3130         l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
3131         l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
3132         l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
3133         l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
3134         l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
3135         l_out_eam_direct_items_tbl       EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
3136         l_out_mesg_token_tbl        EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
3137 
3138 	l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
3139 	l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
3140 	l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
3141  	l_out_eam_counter_prop_tbl        EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
3142 	l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
3143 	l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
3144 	l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
3145 	l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
3146 
3147         l_debug_flag            VARCHAR2(1) := p_debug;
3148 	l_msg_count		NUMBER;
3149         l_msg_data              VARCHAR2(4000); /* Failure Entry Project */
3150 
3151 
3152 
3153 		l_test_eam_wo_rec EAM_PROCESS_WO_PUB.eam_wo_rec_type;
3154 
3155 BEGIN
3156 
3157         l_eam_wo_rec            := p_eam_wo_rec;
3158         l_eam_op_tbl            := p_eam_op_tbl;
3159         l_eam_op_network_tbl    := p_eam_op_network_tbl;
3160         l_eam_res_tbl           := p_eam_res_tbl;
3161         l_eam_res_inst_tbl      := p_eam_res_inst_tbl;
3162         l_eam_sub_res_tbl       := p_eam_sub_res_tbl;
3163         l_eam_res_usage_tbl     := p_eam_res_usage_tbl;
3164         l_eam_mat_req_tbl       := p_eam_mat_req_tbl;
3165         l_eam_direct_items_tbl  := p_eam_direct_items_tbl;
3166 
3167 	l_eam_wo_comp_rec         := p_eam_wo_comp_rec;
3168 	l_eam_wo_quality_tbl      := p_eam_wo_quality_tbl;
3169 	l_eam_meter_reading_tbl   := p_eam_meter_reading_tbl;
3170 	l_eam_counter_prop_tbl    := p_eam_counter_prop_tbl;
3171 	l_eam_wo_comp_rebuild_tbl := p_eam_wo_comp_rebuild_tbl;
3172 	l_eam_wo_comp_mr_read_tbl := p_eam_wo_comp_mr_read_tbl;
3173 	l_eam_op_comp_tbl         := p_eam_op_comp_tbl;
3174 	l_eam_request_tbl     	  := p_eam_request_tbl;
3175 
3176 
3177         --
3178         -- Set Business Object Idenfier in the System Information record.
3179         --
3180         EAM_ERROR_MESSAGE_PVT.Set_Bo_Identifier
3181                     (p_bo_identifier    =>  p_bo_identifier);
3182 
3183         --
3184         -- Initialize the message list if the user has set the Init Message List parameter
3185         --
3186         IF p_init_msg_list
3187         THEN
3188             EAM_ERROR_MESSAGE_PVT.Initialize;
3189         END IF;
3190 
3191 	-- Set the global variable for debug.
3192         EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
3193 
3194         IF l_debug_flag = 'Y'
3195         THEN
3196 
3197             IF trim(p_output_dir) IS NULL OR trim(p_output_dir) = ''
3198             THEN
3199 
3200             -- If debug is Y then out dir must be specified
3201 
3202                 l_out_mesg_token_tbl := l_mesg_token_tbl;
3203                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
3204                 ( p_Message_text       => 'Debug is set to Y so an output directory' || ' must be specified. Debug will be turned' || ' off since no directory is specified'
3205                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
3206                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
3207                 , p_Token_Tbl          => l_token_tbl
3208                  );
3209                 l_mesg_token_tbl := l_out_mesg_token_tbl;
3210 
3211                 l_out_eam_wo_rec            := l_eam_wo_rec;
3212                 l_out_eam_op_tbl            := l_eam_op_tbl;
3213                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
3214                 l_out_eam_res_tbl           := l_eam_res_tbl;
3215                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3216                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3217                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3218                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3219                 l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3220 		l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3221 
3222 		l_out_eam_wo_comp_rec          := l_eam_wo_comp_rec;
3223 		l_out_eam_wo_quality_tbl       := l_eam_wo_quality_tbl;
3224 		l_out_eam_meter_reading_tbl    := l_eam_meter_reading_tbl;
3225 		l_out_eam_wo_comp_rebuild_tbl  := l_eam_wo_comp_rebuild_tbl;
3226 		l_out_eam_counter_prop_tbl     := l_eam_counter_prop_tbl;
3227 		l_out_eam_wo_comp_mr_read_tbl  := l_eam_wo_comp_mr_read_tbl;
3228 		l_out_eam_op_comp_tbl          := l_eam_op_comp_tbl;
3229 		l_out_eam_request_tbl          := l_eam_request_tbl;
3230 
3231                 EAM_ERROR_MESSAGE_PVT.Log_Error
3232                 (  p_eam_wo_rec             => l_eam_wo_rec
3233                 ,  p_eam_op_tbl             => l_eam_op_tbl
3234                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
3235                 ,  p_eam_res_tbl            => l_eam_res_tbl
3236                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
3237                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
3238                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
3239                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
3240                 ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
3241                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
3242                 ,  p_error_status           => 'W'
3243                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
3244                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
3245                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
3246                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
3247                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
3248                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
3249                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
3250                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
3251                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
3252                 ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
3253                  );
3254 
3255                 l_eam_wo_rec            := l_out_eam_wo_rec;
3256                 l_eam_op_tbl            := l_out_eam_op_tbl;
3257                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
3258                 l_eam_res_tbl           := l_out_eam_res_tbl;
3259                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
3260                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
3261                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
3262                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
3263                 l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
3264 
3265 		l_eam_wo_comp_rec         := l_out_eam_wo_comp_rec        ;
3266 		l_eam_wo_quality_tbl      := l_out_eam_wo_quality_tbl     ;
3267 		l_eam_meter_reading_tbl   := l_out_eam_meter_reading_tbl  ;
3268 		l_eam_wo_comp_rebuild_tbl := l_out_eam_wo_comp_rebuild_tbl;
3269 		l_eam_counter_prop_tbl    := l_out_eam_counter_prop_tbl   ;
3270 		l_eam_wo_comp_mr_read_tbl := l_out_eam_wo_comp_mr_read_tbl;
3271 		l_eam_op_comp_tbl         := l_out_eam_op_comp_tbl        ;
3272 		l_eam_request_tbl         := l_out_eam_request_tbl        ;
3273 
3274                 l_debug_flag := 'N';
3275 
3276             END IF;
3277 
3278             IF trim(p_debug_filename) IS NULL OR trim(p_debug_filename) = ''
3279             THEN
3280 
3281                 l_out_mesg_token_tbl := l_mesg_token_tbl;
3282                 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
3283                 ( p_Message_text       => 'Debug is set to Y so an output filename' || ' must be specified. Debug will be turned' || ' off since no filename is specified'
3284                 , p_Mesg_Token_Tbl     => l_mesg_token_tbl
3285                 , x_Mesg_Token_Tbl     => l_out_mesg_token_tbl
3286                 , p_Token_Tbl          => l_token_tbl
3287                  );
3288                 l_mesg_token_tbl := l_out_mesg_token_tbl;
3289 
3290                 l_out_eam_wo_rec            := l_eam_wo_rec;
3291                 l_out_eam_op_tbl            := l_eam_op_tbl;
3292                 l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
3293                 l_out_eam_res_tbl           := l_eam_res_tbl;
3294                 l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3295                 l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3296                 l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3297                 l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3298                 l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3299 
3300 		l_out_eam_wo_comp_rec          := l_eam_wo_comp_rec;
3301 		l_out_eam_wo_quality_tbl       := l_eam_wo_quality_tbl;
3302 		l_out_eam_meter_reading_tbl    := l_eam_meter_reading_tbl;
3303 		l_out_eam_wo_comp_rebuild_tbl  := l_eam_wo_comp_rebuild_tbl;
3304 		l_out_eam_counter_prop_tbl     := l_eam_counter_prop_tbl;
3305 		l_out_eam_wo_comp_mr_read_tbl  := l_eam_wo_comp_mr_read_tbl;
3306 		l_out_eam_op_comp_tbl          := l_eam_op_comp_tbl;
3307 		l_out_eam_request_tbl          := l_eam_request_tbl;
3308 
3309                 EAM_ERROR_MESSAGE_PVT.Log_Error
3310                 (  p_eam_wo_rec             => l_eam_wo_rec
3311                 ,  p_eam_op_tbl             => l_eam_op_tbl
3312                 ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
3313                 ,  p_eam_res_tbl            => l_eam_res_tbl
3314                 ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
3315                 ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
3316                 ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
3317                 ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
3318                 ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
3319                 ,  p_Mesg_Token_Tbl         => l_Mesg_Token_Tbl
3320                 ,  p_error_status           => 'W'
3321                 ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
3322                 ,  x_eam_wo_rec             => l_out_eam_wo_rec
3323                 ,  x_eam_op_tbl             => l_out_eam_op_tbl
3324                 ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
3325                 ,  x_eam_res_tbl            => l_out_eam_res_tbl
3326                 ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
3327                 ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
3328                 ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
3329                 ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
3330                 ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
3331                  );
3332 
3333                 l_eam_wo_rec            := l_out_eam_wo_rec;
3334                 l_eam_op_tbl            := l_out_eam_op_tbl;
3335                 l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
3336                 l_eam_res_tbl           := l_out_eam_res_tbl;
3337                 l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
3338                 l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
3339                 l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
3340                 l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
3341                 l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
3342 
3343 		l_eam_wo_comp_rec         := l_out_eam_wo_comp_rec        ;
3344 		l_eam_wo_quality_tbl      := l_out_eam_wo_quality_tbl     ;
3345 		l_eam_meter_reading_tbl   := l_out_eam_meter_reading_tbl  ;
3346 		l_eam_wo_comp_rebuild_tbl := l_out_eam_wo_comp_rebuild_tbl;
3347 		l_eam_counter_prop_tbl    := l_out_eam_counter_prop_tbl   ;
3348 		l_eam_wo_comp_mr_read_tbl := l_out_eam_wo_comp_mr_read_tbl;
3349 		l_eam_op_comp_tbl         := l_out_eam_op_comp_tbl        ;
3350 		l_eam_request_tbl         := l_out_eam_request_tbl        ;
3351 
3352 		l_debug_flag := 'N';
3353 
3354             END IF;
3355 
3356             EAM_PROCESS_WO_PVT.Set_Debug(l_debug_flag);
3357 
3358             IF l_debug_flag = 'Y'
3359             THEN
3360                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
3361                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
3362                 (  p_debug_filename     => p_debug_filename
3363                 ,  p_output_dir         => p_output_dir
3364                 ,  p_debug_file_mode    => l_debug_file_mode
3365                 ,  x_return_status      => l_return_status
3366                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
3367                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
3368                  );
3369                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
3370 
3371                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
3372                 THEN
3373                     EAM_PROCESS_WO_PVT.Set_Debug('N');
3374                 END IF;
3375             END IF;
3376 
3377         END IF;
3378 
3379 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug('The BO as passed '); end if;
3380 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug('WO Rec: ' || p_eam_wo_rec.wip_entity_id); end if;
3381 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug('Num of operations: ' || p_eam_op_tbl.COUNT); end if;
3382 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of resources: ' || p_eam_res_tbl.COUNT); END IF;
3383 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of materials: ' || p_eam_mat_req_tbl.COUNT); END IF;
3384 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of direct items: ' || p_eam_direct_items_tbl.COUNT); END IF;
3385 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of sub resources: ' || p_eam_sub_res_tbl.COUNT); END IF;
3386 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of resource inst: ' || p_eam_res_inst_tbl.COUNT); END IF;
3387 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of op networks: ' || p_eam_op_network_tbl.COUNT); END IF;
3388 
3389 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('WO Completion Rec WID: ' || l_eam_wo_comp_rec.wip_entity_id); END IF;
3390 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of qua records: ' || p_eam_wo_quality_tbl.COUNT); END IF;
3391 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of meter rdg recs: ' || p_eam_meter_reading_tbl.COUNT); END IF;
3392 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of counter prop recs: ' || p_eam_counter_prop_tbl.COUNT); END IF;
3393 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of completion rebld recs: ' || p_eam_wo_comp_rebuild_tbl.COUNT); END IF;
3394 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of completion meter rdg recs: ' || p_eam_wo_comp_mr_read_tbl.COUNT); END IF;
3395 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of op completion recs: ' || p_eam_op_comp_tbl.COUNT); END IF;
3396 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Num of work request recs: ' || p_eam_request_tbl.COUNT); END IF;
3397 
3398 
3399         --
3400         -- Verify if all the entity record(s) belong to the same business object
3401         --
3402 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Entering Check_BO_Record procedure, BO record validation'); END IF;
3403 
3404        CHECK_BO_RECORD
3405          ( p_eam_wo_rec                    =>  l_eam_wo_rec
3406          , p_eam_op_tbl                    =>  l_eam_op_tbl
3407          , p_eam_op_network_tbl            =>  l_eam_op_network_tbl
3408          , p_eam_res_tbl                   =>  l_eam_res_tbl
3409          , p_eam_res_inst_tbl              =>  l_eam_res_inst_tbl
3410          , p_eam_sub_res_tbl               =>  l_eam_sub_res_tbl
3411          , p_eam_res_usage_tbl             =>  l_eam_res_usage_tbl
3412          , p_eam_mat_req_tbl               =>  l_eam_mat_req_tbl
3413          , p_eam_direct_items_tbl          =>  l_eam_direct_items_tbl
3414  	 , p_eam_wo_comp_rec		   =>  l_eam_wo_comp_rec
3415 	 , p_eam_wo_quality_tbl		   =>  l_eam_wo_quality_tbl
3416 	 , p_eam_meter_reading_tbl	   =>  l_eam_meter_reading_tbl
3417 	 , p_eam_counter_prop_tbl	   =>  l_eam_counter_prop_tbl
3418 	 , p_eam_wo_comp_rebuild_tbl	   =>  l_eam_wo_comp_rebuild_tbl
3419 	 , p_eam_wo_comp_mr_read_tbl	   =>  l_eam_wo_comp_mr_read_tbl
3420 	 , p_eam_op_comp_tbl		   =>  l_eam_op_comp_tbl
3421 	 , p_eam_request_tbl		   =>  l_eam_request_tbl
3422          , x_return_status                 =>  l_return_status
3423        );
3424 
3425 
3426 
3427         IF l_return_status <> 'S' THEN
3428             RAISE G_EXC_SEV_QUIT_OBJECT;
3429         END IF;
3430 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('BO record validation Passed'); END IF;
3431 
3432         --
3433         -- Call the Private API for performing further business rules validation
3434         --
3435 
3436 IF (p_eam_wo_rec.transaction_type IS NOT NULL)
3437    OR (p_eam_op_tbl.COUNT > 0) OR (p_eam_op_network_tbl.COUNT >0)
3438    OR (p_eam_res_tbl.COUNT >0) OR (p_eam_res_inst_tbl.COUNT >0) OR (p_eam_sub_res_tbl.COUNT >0)
3439    OR (p_eam_mat_req_tbl.COUNT >0) OR (p_eam_direct_items_tbl.COUNT >0) OR (p_eam_res_usage_tbl.COUNT>0)
3440 THEN
3441 
3442 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Entering the PROCESS_WO private procedure'); END IF;
3443 
3444 EAM_PROCESS_WO_PVT.PROCESS_WO
3445         (  p_api_version_number            =>  p_api_version_number
3446          , x_return_status                 =>  x_return_status
3447          , x_msg_count                     =>  x_msg_count
3448          , p_eam_wo_rec                    =>  p_eam_wo_rec
3449          , p_eam_op_tbl                    =>  p_eam_op_tbl
3450          , p_eam_op_network_tbl            =>  p_eam_op_network_tbl
3451          , p_eam_res_tbl                   =>  p_eam_res_tbl
3452          , p_eam_res_inst_tbl              =>  p_eam_res_inst_tbl
3453          , p_eam_sub_res_tbl               =>  p_eam_sub_res_tbl
3454          , p_eam_res_usage_tbl             =>  p_eam_res_usage_tbl
3455          , p_eam_mat_req_tbl               =>  p_eam_mat_req_tbl
3456          , p_eam_direct_items_tbl          =>  p_eam_direct_items_tbl
3457          , x_eam_wo_rec                    =>  x_eam_wo_rec
3458          , x_eam_op_tbl                    =>  x_eam_op_tbl
3459          , x_eam_op_network_tbl            =>  x_eam_op_network_tbl
3460          , x_eam_res_tbl                   =>  x_eam_res_tbl
3461          , x_eam_res_inst_tbl              =>  x_eam_res_inst_tbl
3462          , x_eam_sub_res_tbl               =>  x_eam_sub_res_tbl
3463          , x_eam_res_usage_tbl             =>  x_eam_res_usage_tbl
3464          , x_eam_mat_req_tbl               =>  x_eam_mat_req_tbl
3465          , x_eam_direct_items_tbl          =>  x_eam_direct_items_tbl
3466          );
3467 
3468         l_return_status := x_return_status;
3469         IF l_return_status <> 'S'
3470         THEN
3471 
3472         l_eam_wo_rec            := x_eam_wo_rec;
3473         l_eam_op_tbl            := x_eam_op_tbl;
3474         l_eam_op_network_tbl    := x_eam_op_network_tbl;
3475         l_eam_res_tbl           := x_eam_res_tbl;
3476         l_eam_res_inst_tbl      := x_eam_res_inst_tbl;
3477         l_eam_sub_res_tbl       := x_eam_sub_res_tbl;
3478         l_eam_res_usage_tbl     := x_eam_res_usage_tbl;
3479         l_eam_mat_req_tbl       := x_eam_mat_req_tbl;
3480         l_eam_direct_items_tbl  := x_eam_direct_items_tbl;
3481 
3482         -- Call Error Handler
3483 
3484         l_token_tbl(1).token_name := 'WIP_ENTITY_NAME';
3485         l_token_tbl(1).token_value := p_eam_wo_rec.wip_entity_name;
3486         l_token_tbl(2).token_name := 'ORGANIZATION_ID';
3487         l_token_tbl(2).token_value := p_eam_wo_rec.organization_id;
3488 
3489         l_out_eam_wo_rec            := l_eam_wo_rec;
3490         l_out_eam_op_tbl            := l_eam_op_tbl;
3491         l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
3492         l_out_eam_res_tbl           := l_eam_res_tbl;
3493         l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3494         l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3495         l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3496         l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3497         l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3498 
3499         EAM_ERROR_MESSAGE_PVT.Log_Error
3500         (  p_eam_wo_rec             => l_eam_wo_rec
3501         ,  p_eam_op_tbl             => l_eam_op_tbl
3502         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
3503         ,  p_eam_res_tbl            => l_eam_res_tbl
3504         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
3505         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
3506         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
3507         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
3508         ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
3509         ,  p_mesg_token_tbl         => l_mesg_token_tbl
3510         ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
3511         ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_ALL
3512         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
3513         ,  p_other_message          => l_other_message
3514         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
3515         ,  p_other_token_tbl        => l_token_tbl
3516         ,  x_eam_wo_rec             => l_out_eam_wo_rec
3517         ,  x_eam_op_tbl             => l_out_eam_op_tbl
3518         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
3519         ,  x_eam_res_tbl            => l_out_eam_res_tbl
3520         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
3521         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
3522         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
3523         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
3524         ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
3525         );
3526 
3527         l_eam_wo_rec            := l_out_eam_wo_rec;
3528         l_eam_op_tbl            := l_out_eam_op_tbl;
3529         l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
3530         l_eam_res_tbl           := l_out_eam_res_tbl;
3531         l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
3532         l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
3533         l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
3534         l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
3535         l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
3536 
3537         x_eam_wo_rec            := l_eam_wo_rec;
3538         x_eam_op_tbl            := l_eam_op_tbl;
3539         x_eam_op_network_tbl    := l_eam_op_network_tbl;
3540         x_eam_res_tbl           := l_eam_res_tbl;
3541         x_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3542         x_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3543         x_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3544         x_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3545         x_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3546            END IF;
3547 
3548 --removed code for failure entry and shifted it to EAMVWOPB.pls
3549 
3550 
3551         x_return_status := l_return_status;
3552         x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
3553 
3554         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3555         THEN
3556             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3557 	    IF p_eam_request_tbl.COUNT = 0 THEN
3558 	            EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3559 	    END IF;
3560         END IF;
3561 
3562 
3563         -- Standard check of p_commit.
3564         IF p_commit = 'Y' THEN
3565                 COMMIT WORK;
3566         END IF;
3567 
3568 
3569 	IF p_eam_request_tbl.COUNT > 0 THEN
3570 		FOR mm in p_eam_request_tbl.FIRST..p_eam_request_tbl.LAST LOOP
3571 			IF p_eam_request_tbl(mm).wip_entity_id IS NULL THEN
3572 				l_eam_request_tbl(mm).wip_entity_id := x_eam_wo_rec.wip_entity_id;
3573 			END IF;
3574 		END LOOP;
3575 	END IF;
3576 
3577 END IF;
3578 
3579 	IF (p_eam_wo_comp_rec.transaction_type is not null) THEN
3580 
3581 
3582 		EAM_PROCESS_WO_PVT.COMP_UNCOMP_WORKORDER
3583 		(
3584 		  p_eam_wo_comp_rec            => p_eam_wo_comp_rec
3585 		, p_eam_wo_quality_tbl         => p_eam_wo_quality_tbl
3586 		, p_eam_meter_reading_tbl      => p_eam_meter_reading_tbl
3587 		, p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
3588 		, p_eam_wo_comp_rebuild_tbl    => p_eam_wo_comp_rebuild_tbl
3589 		, p_eam_wo_comp_mr_read_tbl    => p_eam_wo_comp_mr_read_tbl
3590 		, x_eam_wo_comp_rec            => x_eam_wo_comp_rec
3591 		, x_eam_wo_quality_tbl         => x_eam_wo_quality_tbl
3592 		, x_eam_meter_reading_tbl      => x_eam_meter_reading_tbl
3593 		, x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
3594 		, x_eam_wo_comp_rebuild_tbl    => x_eam_wo_comp_rebuild_tbl
3595 		, x_eam_wo_comp_mr_read_tbl    => x_eam_wo_comp_mr_read_tbl
3596 		, x_return_status              => l_return_status
3597 		, x_msg_count                  => l_msg_count
3598 		);
3599 
3600 	        x_return_status := l_return_status;
3601 		x_msg_count := l_msg_count;
3602 
3603 		 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3604 	        THEN
3605 		    EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3606 	            EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3607 	        END IF;
3608 
3609 
3610 	END IF;
3611 
3612 	IF p_eam_op_comp_tbl.COUNT > 0 THEN
3613 
3614 		EAM_PROCESS_WO_PVT.COMP_UNCOMP_OPERATION
3615 		(
3616 		  p_eam_op_compl_tbl	    => p_eam_op_comp_tbl
3617 		, p_eam_wo_quality_tbl      => p_eam_wo_quality_tbl
3618 		, x_eam_op_comp_tbl         => x_eam_op_comp_tbl
3619 		, x_eam_wo_quality_tbl      => x_eam_wo_quality_tbl
3620 		, x_return_status           => l_return_status
3621 		, x_msg_count               => l_msg_count
3622 		);
3623 
3624 	        x_return_status := l_return_status;
3625 		x_msg_count := l_msg_count;
3626 
3627 		 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3628 	        THEN
3629 		    EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3630 	            EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3631 	        END IF;
3632 
3633 
3634 	END IF;
3635 
3636 
3637 	IF p_eam_request_tbl.COUNT > 0 THEN
3638 
3639 		EAM_PROCESS_WO_PVT.SERVICE_WORKREQUEST_ASSO
3640 		(
3641 		  p_eam_request_tbl	    => l_eam_request_tbl
3642 		, x_eam_request_tbl         => x_eam_request_tbl
3643 		, x_return_status           => l_return_status
3644 		, x_msg_count               => l_msg_count
3645 		);
3646 
3647 	        x_return_status := l_return_status;
3648 		x_msg_count := l_msg_count;
3649 
3650 		 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3651 	        THEN
3652 		    EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3653 	            EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3654 	        END IF;
3655 
3656 
3657 	END IF;
3658 
3659     EXCEPTION
3660     WHEN G_EXC_SEV_QUIT_OBJECT THEN
3661 
3662         -- baroy
3663         -- This exception is raised only by the CHECK_BO_RECORD
3664         -- procedure. In that procedure, the error message has already
3665         -- been logged. There is no need to do it again.
3666 
3667 
3668 
3669         x_return_status := EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR;
3670         x_msg_count     := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
3671 
3672         x_eam_wo_rec            := l_eam_wo_rec;
3673         x_eam_op_tbl            := l_eam_op_tbl;
3674         x_eam_op_network_tbl    := l_eam_op_network_tbl;
3675         x_eam_res_tbl           := l_eam_res_tbl;
3676         x_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3677         x_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3678         x_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3679         x_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3680         x_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3681 
3682 	x_eam_wo_comp_rec         := l_eam_wo_comp_rec;
3683 	x_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
3684 	x_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
3685 	x_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
3686 	x_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
3687 	x_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
3688 	x_eam_op_comp_tbl         := l_eam_op_comp_tbl;
3689 	x_eam_request_tbl     	  := l_eam_request_tbl;
3690 
3691         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3692         THEN
3693             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3694             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3695         END IF;
3696 
3697 
3698     WHEN G_EXC_UNEXP_SKIP_OBJECT THEN
3699 
3700     -- Call Error Handler
3701 
3702         l_out_eam_wo_rec            := l_eam_wo_rec;
3703         l_out_eam_op_tbl            := l_eam_op_tbl;
3704         l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
3705         l_out_eam_res_tbl           := l_eam_res_tbl;
3706         l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3707         l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3708         l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3709         l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3710         l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3711 
3712 	l_out_eam_wo_comp_rec          := l_eam_wo_comp_rec;
3713 	l_out_eam_wo_quality_tbl       := l_eam_wo_quality_tbl;
3714 	l_out_eam_meter_reading_tbl    := l_eam_meter_reading_tbl;
3715 	l_out_eam_wo_comp_rebuild_tbl  := l_eam_wo_comp_rebuild_tbl;
3716 	l_out_eam_counter_prop_tbl     := l_eam_counter_prop_tbl;
3717 	l_out_eam_wo_comp_mr_read_tbl  := l_eam_wo_comp_mr_read_tbl;
3718 	l_out_eam_op_comp_tbl          := l_eam_op_comp_tbl;
3719 	l_out_eam_request_tbl          := l_eam_request_tbl;
3720 
3721         EAM_ERROR_MESSAGE_PVT.Log_Error
3722         (  p_eam_wo_rec             => l_eam_wo_rec
3723         ,  p_eam_op_tbl             => l_eam_op_tbl
3724         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
3725         ,  p_eam_res_tbl            => l_eam_res_tbl
3726         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
3727         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
3728         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
3729         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
3730         ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
3731         ,  p_mesg_token_tbl         => l_mesg_token_tbl
3732         ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_UNEXPECTED
3733         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
3734         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_NOT_PICKED
3735         ,  p_other_message          => l_other_message
3736         ,  p_other_token_tbl        => l_token_tbl
3737         ,  x_eam_wo_rec             => l_out_eam_wo_rec
3738         ,  x_eam_op_tbl             => l_out_eam_op_tbl
3739         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
3740         ,  x_eam_res_tbl            => l_out_eam_res_tbl
3741         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
3742         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
3743         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
3744         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
3745         ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
3746         );
3747 
3748         l_eam_wo_rec            := l_out_eam_wo_rec;
3749         l_eam_op_tbl            := l_out_eam_op_tbl;
3750         l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
3751         l_eam_res_tbl           := l_out_eam_res_tbl;
3752         l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
3753         l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
3754         l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
3755         l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
3756         l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
3757 
3758 	l_eam_wo_comp_rec         := l_out_eam_wo_comp_rec        ;
3759 	l_eam_wo_quality_tbl      := l_out_eam_wo_quality_tbl     ;
3760 	l_eam_meter_reading_tbl   := l_out_eam_meter_reading_tbl  ;
3761 	l_eam_wo_comp_rebuild_tbl := l_out_eam_wo_comp_rebuild_tbl;
3762 	l_eam_counter_prop_tbl    := l_out_eam_counter_prop_tbl   ;
3763 	l_eam_wo_comp_mr_read_tbl := l_out_eam_wo_comp_mr_read_tbl;
3764 	l_eam_op_comp_tbl         := l_out_eam_op_comp_tbl        ;
3765 	l_eam_request_tbl         := l_out_eam_request_tbl        ;
3766 
3767         x_eam_wo_rec            := l_eam_wo_rec;
3768         x_eam_op_tbl            := l_eam_op_tbl;
3769         x_eam_op_network_tbl    := l_eam_op_network_tbl;
3770         x_eam_res_tbl           := l_eam_res_tbl;
3771         x_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3772         x_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3773         x_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3774         x_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3775         x_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3776 
3777 	x_eam_wo_comp_rec         := l_eam_wo_comp_rec;
3778 	x_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
3779 	x_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
3780 	x_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
3781 	x_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
3782 	x_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
3783 	x_eam_op_comp_tbl         := l_eam_op_comp_tbl;
3784 	x_eam_request_tbl     	  := l_eam_request_tbl;
3785 
3786         x_return_status := EAM_ERROR_MESSAGE_PVT.G_STATUS_UNEXPECTED;
3787         x_msg_count     := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
3788 
3789         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3790         THEN
3791             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3792             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3793         END IF;
3794 
3795 
3796     WHEN OTHERS THEN
3797 
3798         -- Call Error Handler
3799 
3800       EAM_ERROR_MESSAGE_PVT.Add_Error_Token
3801         (  p_message_name  => 'EAM_PR_WO_UNKNOWN_ERROR'
3802          , p_token_tbl     => l_token_tbl
3803          , p_mesg_token_tbl     => l_mesg_token_tbl
3804          , x_mesg_token_tbl     => l_out_mesg_token_tbl
3805       );
3806       l_mesg_token_tbl := l_out_mesg_token_tbl;
3807 
3808       l_other_message := 'EAM_PR_WO_CSEV_SKIP';
3809 
3810         l_out_eam_wo_rec            := l_eam_wo_rec;
3811         l_out_eam_op_tbl            := l_eam_op_tbl;
3812         l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
3813         l_out_eam_res_tbl           := l_eam_res_tbl;
3814         l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3815         l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3816         l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3817         l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3818         l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3819 
3820 	l_out_eam_wo_comp_rec          := l_eam_wo_comp_rec;
3821 	l_out_eam_wo_quality_tbl       := l_eam_wo_quality_tbl;
3822 	l_out_eam_meter_reading_tbl    := l_eam_meter_reading_tbl;
3823 	l_out_eam_wo_comp_rebuild_tbl  := l_eam_wo_comp_rebuild_tbl;
3824 	l_out_eam_counter_prop_tbl     := l_eam_counter_prop_tbl;
3825 	l_out_eam_wo_comp_mr_read_tbl  := l_eam_wo_comp_mr_read_tbl;
3826 	l_out_eam_op_comp_tbl          := l_eam_op_comp_tbl;
3827 	l_out_eam_request_tbl          := l_eam_request_tbl;
3828 
3829         EAM_ERROR_MESSAGE_PVT.Log_Error
3830         (  p_eam_wo_rec             => l_eam_wo_rec
3831         ,  p_eam_op_tbl             => l_eam_op_tbl
3832         ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
3833         ,  p_eam_res_tbl            => l_eam_res_tbl
3834         ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
3835         ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
3836         ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
3837         ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
3838         ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
3839         ,  p_mesg_token_tbl         => l_mesg_token_tbl
3840         ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_UNEXPECTED
3841         ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
3842         ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
3843         ,  p_other_message          => l_other_message
3844         ,  x_eam_wo_rec             => l_out_eam_wo_rec
3845         ,  x_eam_op_tbl             => l_out_eam_op_tbl
3846         ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
3847         ,  x_eam_res_tbl            => l_out_eam_res_tbl
3848         ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
3849         ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
3850         ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
3851         ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
3852         ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
3853         );
3854 
3855         l_eam_wo_rec            := l_out_eam_wo_rec;
3856         l_eam_op_tbl            := l_out_eam_op_tbl;
3857         l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
3858         l_eam_res_tbl           := l_out_eam_res_tbl;
3859         l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
3860         l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
3861         l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
3862         l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
3863         l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
3864 
3865 	l_eam_wo_comp_rec         := l_out_eam_wo_comp_rec        ;
3866 	l_eam_wo_quality_tbl      := l_out_eam_wo_quality_tbl     ;
3867 	l_eam_meter_reading_tbl   := l_out_eam_meter_reading_tbl  ;
3868 	l_eam_wo_comp_rebuild_tbl := l_out_eam_wo_comp_rebuild_tbl;
3869 	l_eam_counter_prop_tbl    := l_out_eam_counter_prop_tbl   ;
3870 	l_eam_wo_comp_mr_read_tbl := l_out_eam_wo_comp_mr_read_tbl;
3871 	l_eam_op_comp_tbl         := l_out_eam_op_comp_tbl        ;
3872 	l_eam_request_tbl         := l_out_eam_request_tbl        ;
3873 
3874         x_eam_wo_rec            := l_eam_wo_rec;
3875         x_eam_op_tbl            := l_eam_op_tbl;
3876         x_eam_op_network_tbl    := l_eam_op_network_tbl;
3877         x_eam_res_tbl           := l_eam_res_tbl;
3878         x_eam_res_inst_tbl      := l_eam_res_inst_tbl;
3879         x_eam_sub_res_tbl       := l_eam_sub_res_tbl;
3880         x_eam_res_usage_tbl     := l_eam_res_usage_tbl;
3881         x_eam_mat_req_tbl       := l_eam_mat_req_tbl;
3882         x_eam_direct_items_tbl  := l_eam_direct_items_tbl;
3883 
3884 	x_eam_wo_comp_rec         := l_eam_wo_comp_rec;
3885 	x_eam_wo_quality_tbl      := l_eam_wo_quality_tbl;
3886 	x_eam_meter_reading_tbl   := l_eam_meter_reading_tbl;
3887 	x_eam_counter_prop_tbl    := l_eam_counter_prop_tbl;
3888 	x_eam_wo_comp_rebuild_tbl := l_eam_wo_comp_rebuild_tbl;
3889 	x_eam_wo_comp_mr_read_tbl := l_eam_wo_comp_mr_read_tbl;
3890 	x_eam_op_comp_tbl         := l_eam_op_comp_tbl;
3891 	x_eam_request_tbl     	  := l_eam_request_tbl;
3892 
3893         x_return_status := EAM_ERROR_MESSAGE_PVT.G_STATUS_UNEXPECTED;
3894         x_msg_count     := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
3895 
3896         IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
3897         THEN
3898             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
3899             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
3900         END IF;
3901 
3902 
3903 END PROCESS_WO;
3904 
3905 
3906 
3907  PROCEDURE EXPLODE_ACTIVITY
3908        (  p_api_version             IN  NUMBER   := 1.0
3909         , p_init_msg_list           IN  VARCHAR2 := fnd_api.g_false
3910         , p_commit                  IN  VARCHAR2 := fnd_api.g_false
3911         , p_validation_level        IN  NUMBER   := fnd_api.g_valid_level_full
3912         , p_organization_id         IN  NUMBER
3913         , p_asset_activity_id       IN  NUMBER
3914         , p_wip_entity_id           IN  NUMBER
3915         , p_start_date              IN  DATE
3916         , p_completion_date         IN  DATE
3917         , p_rev_datetime            IN  DATE     := SYSDATE
3918         , p_entity_type             IN  NUMBER   := 6
3919         , x_return_status           OUT NOCOPY VARCHAR2
3920         , x_msg_count               OUT NOCOPY NUMBER
3921         , x_msg_data                OUT NOCOPY VARCHAR2
3922         )
3923         IS
3924 
3925         l_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
3926         l_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
3927         l_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
3928         l_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
3929         l_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
3930         l_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
3931         l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
3932         l_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
3933         l_eam_direct_items_tbl       EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
3934 
3935         x_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
3936         x_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
3937         x_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
3938         x_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
3939         x_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
3940         x_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
3941         x_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
3942         x_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
3943         x_eam_direct_items_tbl       EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
3944 
3945         BEGIN
3946 
3947         l_eam_wo_rec.WIP_ENTITY_ID                := p_wip_entity_id;
3948         l_eam_wo_rec.ORGANIZATION_ID              := p_organization_id;
3949         l_eam_wo_rec.ASSET_ACTIVITY_ID            := p_asset_activity_id;
3950         l_eam_wo_rec.REQUESTED_START_DATE         := p_start_date;
3951         l_eam_wo_rec.DUE_DATE                     := p_completion_date;
3952         l_eam_wo_rec.BOM_REVISION_DATE            := p_rev_datetime;
3953         l_eam_wo_rec.ROUTING_REVISION_DATE        := p_rev_datetime;
3954         l_eam_wo_rec.SOURCE_LINE_ID               := null;
3955         l_eam_wo_rec.SOURCE_CODE                  := 'EZ_WO';
3956         l_eam_wo_rec.RETURN_STATUS                := null;
3957         l_eam_wo_rec.TRANSACTION_TYPE             := 2;
3958 
3959 
3960         EAM_PROCESS_WO_PVT.PROCESS_WO
3961         ( p_api_version_number            =>  p_api_version
3962         , x_return_status                 =>  x_return_status
3963         , x_msg_count                     =>  x_msg_count
3964         , p_eam_wo_rec                    =>  l_eam_wo_rec
3965         , p_eam_op_tbl                    =>  l_eam_op_tbl
3966         , p_eam_op_network_tbl            =>  l_eam_op_network_tbl
3967         , p_eam_res_tbl                   =>  l_eam_res_tbl
3968         , p_eam_res_inst_tbl              =>  l_eam_res_inst_tbl
3969         , p_eam_sub_res_tbl               =>  l_eam_sub_res_tbl
3970         , p_eam_res_usage_tbl             =>  l_eam_res_usage_tbl
3971         , p_eam_mat_req_tbl               =>  l_eam_mat_req_tbl
3972         , p_eam_direct_items_tbl               =>  l_eam_direct_items_tbl
3973         , x_eam_wo_rec                    =>  x_eam_wo_rec
3974         , x_eam_op_tbl                    =>  x_eam_op_tbl
3975         , x_eam_op_network_tbl            =>  x_eam_op_network_tbl
3976         , x_eam_res_tbl                   =>  x_eam_res_tbl
3977         , x_eam_res_inst_tbl              =>  x_eam_res_inst_tbl
3978         , x_eam_sub_res_tbl               =>  x_eam_sub_res_tbl
3979         , x_eam_res_usage_tbl             =>  x_eam_res_usage_tbl
3980         , x_eam_mat_req_tbl               =>  x_eam_mat_req_tbl
3981         , x_eam_direct_items_tbl               =>  x_eam_direct_items_tbl
3982         );
3983 
3984 END EXPLODE_ACTIVITY;
3985 
3986 
3987 
3988 
3989 
3990 
3991 
3992 PROCEDURE CHECK_BO_RECORD
3993         ( p_eam_wo_rec              IN  EAM_PROCESS_WO_PUB.eam_wo_rec_type
3994         , p_eam_op_tbl              IN  EAM_PROCESS_WO_PUB.eam_op_tbl_type
3995         , p_eam_op_network_tbl      IN  EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
3996         , p_eam_res_tbl             IN  EAM_PROCESS_WO_PUB.eam_res_tbl_type
3997         , p_eam_res_inst_tbl        IN  EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
3998         , p_eam_sub_res_tbl         IN  EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
3999         , p_eam_res_usage_tbl       IN  EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
4000         , p_eam_mat_req_tbl         IN  EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
4001         , p_eam_direct_items_tbl    IN  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
4002 	, p_eam_wo_comp_rec         IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type
4003         , p_eam_wo_quality_tbl      IN  EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type
4004         , p_eam_meter_reading_tbl   IN  EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type
4005 	, p_eam_counter_prop_tbl    IN  EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type
4006         , p_eam_wo_comp_rebuild_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type
4007         , p_eam_wo_comp_mr_read_tbl IN  EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type
4008         , p_eam_op_comp_tbl         IN  EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type
4009 	, p_eam_request_tbl         IN  EAM_PROCESS_WO_PUB.eam_request_tbl_type
4010         , x_return_status           OUT NOCOPY VARCHAR2
4011         )
4012         IS
4013 
4014         -- baroy
4015         l_wip_entity_id   NUMBER       := NULL;
4016         l_organization_id NUMBER       := NULL;
4017         l_other_message   VARCHAR2(50) := NULL;
4018         l_mesg_token_tbl  EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
4019         l_token_tbl       EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
4020 
4021         l_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
4022         l_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
4023         l_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
4024         l_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
4025         l_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
4026         l_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
4027         l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
4028         l_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
4029         l_eam_direct_items_tbl  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
4030 
4031 	l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
4032 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
4033 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
4034         l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
4035 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
4036 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
4037 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
4038 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type ;
4039 
4040         l_out_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
4041         l_out_eam_op_tbl            EAM_PROCESS_WO_PUB.eam_op_tbl_type;
4042         l_out_eam_op_network_tbl    EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
4043         l_out_eam_res_tbl           EAM_PROCESS_WO_PUB.eam_res_tbl_type;
4044         l_out_eam_res_inst_tbl      EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
4045         l_out_eam_sub_res_tbl       EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
4046         l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
4047         l_out_eam_mat_req_tbl       EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
4048         l_out_eam_direct_items_tbl  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
4049 
4050 	l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
4051 	l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
4052 	l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
4053         l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
4054 	l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
4055 	l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
4056 	l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
4057 	l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type ;
4058 
4059         -- baroy
4060 
4061         BEGIN
4062 
4063 
4064            l_eam_wo_rec            := p_eam_wo_rec;
4065            l_eam_op_tbl            := p_eam_op_tbl;
4066            l_eam_op_network_tbl    := p_eam_op_network_tbl;
4067            l_eam_res_tbl           := p_eam_res_tbl;
4068            l_eam_res_inst_tbl      := p_eam_res_inst_tbl;
4069            l_eam_sub_res_tbl       := p_eam_sub_res_tbl;
4070            l_eam_res_usage_tbl     := p_eam_res_usage_tbl;
4071            l_eam_mat_req_tbl       := p_eam_mat_req_tbl;
4072            l_eam_direct_items_tbl  := p_eam_direct_items_tbl;
4073 
4074 	   l_eam_wo_comp_rec		:= p_eam_wo_comp_rec;
4075   	   l_eam_wo_quality_tbl		:= p_eam_wo_quality_tbl;
4076 	   l_eam_meter_reading_tbl	:= p_eam_meter_reading_tbl;
4077 	   l_eam_counter_prop_tbl	:= p_eam_counter_prop_tbl;
4078 	   l_eam_wo_comp_rebuild_tbl	:= p_eam_wo_comp_rebuild_tbl;
4079 	   l_eam_wo_comp_mr_read_tbl	:= p_eam_wo_comp_mr_read_tbl;
4080 	   l_eam_op_comp_tbl		:= p_eam_op_comp_tbl;
4081 	   l_eam_request_tbl		:= p_eam_request_tbl;
4082 
4083            -- baroy - If Parent record is null, then find the first non-null weid and orgid
4084            --         from the child tables
4085 
4086 
4087            IF p_eam_wo_rec.transaction_type is null and (p_eam_wo_comp_rec.transaction_type is null and p_eam_request_tbl.COUNT >0 )then
4088 
4089              FOR J in 1 .. 1 LOOP
4090 
4091                FOR I IN 1..p_eam_op_tbl.COUNT LOOP
4092                  -- If there is an entity with error, then flag it and exit.
4093                  IF p_eam_op_tbl(I).transaction_type is not null and
4094                     (p_eam_op_tbl(I).wip_entity_id is null or
4095                      p_eam_op_tbl(I).organization_id is null) then
4096                    l_other_message := 'EAM_WO_OP_REC_INVALID';
4097                    EXIT;
4098                  END IF;
4099                  IF p_eam_op_tbl(I).wip_entity_id is not null AND
4100                     p_eam_op_tbl(I).organization_Id is not null
4101                  THEN
4102                     l_wip_entity_id   := p_eam_op_tbl(I).wip_entity_id;
4103                     l_organization_id := p_eam_op_tbl(I).organization_id;
4104                     EXIT;
4105                  END IF;
4106                END LOOP;
4107                IF l_wip_entity_id is not null or
4108                   l_other_message is not null then exit; end if;
4109 
4110                FOR I IN 1..p_eam_op_network_tbl.COUNT LOOP
4111                  -- If there is an entity with error, then flag it and exit.
4112                  IF p_eam_op_network_tbl(I).transaction_type is not null and
4113                     (p_eam_op_network_tbl(I).wip_entity_id is null or
4114                      p_eam_op_network_tbl(I).organization_id is null) then
4115                    l_other_message := 'EAM_WO_OPN_REC_INVALID';
4116                    EXIT;
4117                  END IF;
4118                  IF p_eam_op_network_tbl(I).wip_entity_id is not null AND
4119                     p_eam_op_network_tbl(I).organization_id is not null
4120                  THEN
4121                     l_wip_entity_id   := p_eam_op_network_tbl(I).wip_entity_id;
4122                     l_organization_id := p_eam_op_network_tbl(I).organization_id;
4123                     EXIT;
4124                  END IF;
4125                END LOOP;
4126                IF l_wip_entity_id is not null or
4127                   l_other_message is not null then exit; end if;
4128 
4129                FOR I IN 1..p_eam_res_tbl.COUNT LOOP
4130                  -- If there is an entity with error, then flag it and exit.
4131                  IF p_eam_res_tbl(I).transaction_type is not null and
4132                     (p_eam_res_tbl(I).wip_entity_id is null or
4133                      p_eam_res_tbl(I).organization_id is null) then
4134                    l_other_message := 'EAM_WO_RES_REC_INVALID';
4135                    EXIT;
4136                  END IF;
4137                  IF p_eam_res_tbl(I).wip_entity_id is not null AND
4138                     p_eam_res_tbl(I).organization_id is not null
4139                  THEN
4140                     l_wip_entity_id   := p_eam_res_tbl(I).wip_entity_id;
4141                     l_organization_id := p_eam_res_tbl(I).organization_id;
4142                     EXIT;
4143                  END IF;
4144                END LOOP;
4145                IF l_wip_entity_id is not null or
4146                   l_other_message is not null then exit; end if;
4147 
4148                FOR I IN 1..p_eam_res_inst_tbl.COUNT LOOP
4149                  -- If there is an entity with error, then flag it and exit.
4150                  IF p_eam_res_inst_tbl(I).transaction_type is not null and
4151                     (p_eam_res_inst_tbl(I).wip_entity_id is null or
4152                      p_eam_res_inst_tbl(I).organization_id is null) then
4153                    l_other_message := 'EAM_WO_RESI_REC_INVALID';
4154                    EXIT;
4155                  END IF;
4156                  IF p_eam_res_inst_tbl(I).wip_entity_id is not null AND
4157                     p_eam_res_inst_tbl(I).organization_id is not null
4158                  THEN
4159                     l_wip_entity_id   := p_eam_res_inst_tbl(I).wip_entity_id;
4160                     l_organization_id := p_eam_res_inst_tbl(I).organization_id;
4161                     EXIT;
4162                  END IF;
4163                END LOOP;
4164                IF l_wip_entity_id is not null or
4165                   l_other_message is not null then exit; end if;
4166 
4167                FOR I IN 1..p_eam_sub_res_tbl.COUNT LOOP
4168                  -- If there is an entity with error, then flag it and exit.
4169                  IF p_eam_sub_res_tbl(I).transaction_type is not null and
4170                     (p_eam_sub_res_tbl(I).wip_entity_id is null or
4171                      p_eam_sub_res_tbl(I).organization_id is null) then
4172                    l_other_message := 'EAM_WO_SURES_REC_INVALID';
4173                    EXIT;
4174                  END IF;
4175                  IF p_eam_sub_res_tbl(I).wip_entity_id is not null AND
4176                     p_eam_sub_res_tbl(I).organization_id is not null
4177                  THEN
4178                     l_wip_entity_id   := p_eam_sub_res_tbl(I).wip_entity_id;
4179                     l_organization_id := p_eam_sub_res_tbl(I).organization_id;
4180                     EXIT;
4181                  END IF;
4182                END LOOP;
4183                IF l_wip_entity_id is not null or
4184                   l_other_message is not null then exit; end if;
4185 
4186                FOR I IN 1..p_eam_res_usage_tbl.COUNT LOOP
4187                  -- If there is an entity with error, then flag it and exit.
4188                  IF p_eam_res_usage_tbl(I).transaction_type is not null and
4189                     (p_eam_res_usage_tbl(I).wip_entity_id is null or
4190                      p_eam_res_usage_tbl(I).organization_id is null) then
4191                    l_other_message := 'EAM_WO_RESU_REC_INVALID';
4192                    EXIT;
4193                  END IF;
4194                  IF p_eam_res_usage_tbl(I).wip_entity_id is not null AND
4195                     p_eam_res_usage_tbl(I).organization_id is not null
4196                  THEN
4197                     l_wip_entity_id   := p_eam_res_usage_tbl(I).wip_entity_id;
4198                     l_organization_id := p_eam_res_usage_tbl(I).organization_id;
4199                     EXIT;
4200                  END IF;
4201                END LOOP;
4202                IF l_wip_entity_id is not null or
4203                   l_other_message is not null then exit; end if;
4204 
4205                FOR I IN 1..p_eam_direct_items_tbl.COUNT LOOP
4206                  -- If there is an entity with error, then flag it and exit.
4207                  IF p_eam_direct_items_tbl(I).transaction_type is not null and
4208                     (p_eam_direct_items_tbl(I).wip_entity_id is null or
4209                      p_eam_direct_items_tbl(I).organization_id is null) then
4210                    l_other_message := 'EAM_WO_DI_REC_INVALID';
4211                    EXIT;
4212                  END IF;
4213                  IF p_eam_direct_items_tbl(I).wip_entity_id is not null AND
4214                     p_eam_direct_items_tbl(I).organization_id is not null
4215                  THEN
4216                     l_wip_entity_id   := p_eam_direct_items_tbl(I).wip_entity_id;
4217                     l_organization_id := p_eam_direct_items_tbl(I).organization_id;
4218                     EXIT;
4219                  END IF;
4220                END LOOP;
4221                IF l_wip_entity_id is not null or
4222                   l_other_message is not null then exit; end if;
4223 
4224                FOR I IN 1..p_eam_mat_req_tbl.COUNT LOOP
4225                  -- If there is an entity with error, then flag it and exit.
4226                  IF p_eam_mat_req_tbl(I).transaction_type is not null and
4227                     (p_eam_mat_req_tbl(I).wip_entity_id is null or
4228                      p_eam_mat_req_tbl(I).organization_id is null) then
4229                    l_other_message := 'EAM_WO_MAT_REC_INVALID';
4230                    EXIT;
4231                  END IF;
4232                  IF p_eam_mat_req_tbl(I).wip_entity_id is not null AND
4233                     p_eam_mat_req_tbl(I).organization_id is not null
4234                  THEN
4235                     l_wip_entity_id   := p_eam_mat_req_tbl(I).wip_entity_id;
4236                     l_organization_id := p_eam_mat_req_tbl(I).organization_id;
4237                     EXIT;
4238                  END IF;
4239                END LOOP;
4240 
4241              END LOOP;
4242 
4243              -- If there is no weid even in the child tables, or if one of the
4244              -- entities had error in them, then return false
4245              IF (l_wip_entity_id is null or l_other_message is not null) --AND
4246                  --p_eam_wo_comp_rec.transaction_type IS NULL AND
4247                  --p_eam_op_comp_tbl.COUNT = 0 AND
4248                  --p_eam_request_tbl.COUNT = 0)
4249              then
4250 
4251              x_return_status := 'E';
4252 
4253                l_out_eam_wo_rec            := l_eam_wo_rec;
4254                l_out_eam_op_tbl            := l_eam_op_tbl;
4255                l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
4256                l_out_eam_res_tbl           := l_eam_res_tbl;
4257                l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
4258                l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
4259                l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
4260                l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
4261                l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
4262 
4263                -- Log the error
4264                EAM_ERROR_MESSAGE_PVT.Log_Error
4265                  (  p_eam_wo_rec             => l_eam_wo_rec
4266                  ,  p_eam_op_tbl             => l_eam_op_tbl
4267                  ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
4268                  ,  p_eam_res_tbl            => l_eam_res_tbl
4269                  ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
4270                  ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
4271                  ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
4272                  ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
4273                  ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
4274                  ,  p_mesg_token_tbl         => l_mesg_token_tbl
4275                  ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4276                  ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_ALL
4277                  ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
4278                  ,  p_other_message          => l_other_message
4279                  ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4280                  ,  p_other_token_tbl        => l_token_tbl
4281                  ,  x_eam_wo_rec             => l_out_eam_wo_rec
4282                  ,  x_eam_op_tbl             => l_out_eam_op_tbl
4283                  ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
4284                  ,  x_eam_res_tbl            => l_out_eam_res_tbl
4285                  ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
4286                  ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
4287                  ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
4288                  ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
4289                  ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
4290                );
4291 
4292                l_eam_wo_rec            := l_out_eam_wo_rec;
4293                l_eam_op_tbl            := l_out_eam_op_tbl;
4294                l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
4295                l_eam_res_tbl           := l_out_eam_res_tbl;
4296                l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
4297                l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
4298                l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
4299                l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
4300                l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
4301 
4302              END IF;
4303 
4304              RETURN;
4305 
4306            ELSE
4307 
4308              l_wip_entity_id   := p_eam_wo_rec.wip_entity_id;
4309              l_organization_id := p_eam_wo_rec.organization_id;
4310            END IF;
4311            -- end - baroy
4312 
4313 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating OP record'); END IF;
4314 
4315            FOR I IN 1..p_eam_op_tbl.COUNT LOOP
4316                IF p_eam_op_tbl(I).wip_entity_id is not null AND (
4317                   p_eam_op_tbl(I).wip_entity_id <> l_wip_entity_id OR
4318                   p_eam_op_tbl(I).organization_id <> l_organization_id)
4319                THEN
4320                   x_return_status := 'E';
4321                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4322                END IF;
4323            END LOOP;
4324 
4325 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating OPN record'); END IF;
4326 
4327            FOR I IN 1..p_eam_op_network_tbl.COUNT LOOP
4328                IF p_eam_op_network_tbl(I).wip_entity_id is not null AND (
4329                   p_eam_op_network_tbl(I).wip_entity_id <> l_wip_entity_id OR
4330                   p_eam_op_network_tbl(I).organization_id <> l_organization_id)
4331                THEN
4332                   x_return_status := 'E';
4333                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4334                END IF;
4335            END LOOP;
4336 
4337 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating RES record'); END IF;
4338 
4339            FOR I IN 1..p_eam_res_tbl.COUNT LOOP
4340 
4341                IF p_eam_res_tbl(I).wip_entity_id is not null AND (
4342                   p_eam_res_tbl(I).wip_entity_id <> l_wip_entity_id OR
4343                   p_eam_res_tbl(I).organization_id <> l_organization_id)
4344                THEN
4345 	          x_return_status := 'E';
4346                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4347                END IF;
4348            END LOOP;
4349 
4350 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating RES_INST record'); END IF;
4351 
4352            FOR I IN 1..p_eam_res_inst_tbl.COUNT LOOP
4353                IF p_eam_res_inst_tbl(I).wip_entity_id is not null AND (
4354                   p_eam_res_inst_tbl(I).wip_entity_id <> l_wip_entity_id OR
4355                   p_eam_res_inst_tbl(I).organization_id <> l_organization_id)
4356                THEN
4357                   x_return_status := 'E';
4358                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4359                END IF;
4360            END LOOP;
4361 
4362 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating SUB_RES record'); END IF;
4363 
4364            FOR I IN 1..p_eam_sub_res_tbl.COUNT LOOP
4365                IF p_eam_sub_res_tbl(I).wip_entity_id is not null AND (
4366                   p_eam_sub_res_tbl(I).wip_entity_id <> l_wip_entity_id OR
4367                   p_eam_sub_res_tbl(I).organization_id <> l_organization_id)
4368                THEN
4369                   x_return_status := 'E';
4370                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4371                END IF;
4372            END LOOP;
4373 
4374 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating RES_USAGE record'); END IF;
4375 
4376            FOR I IN 1..p_eam_res_usage_tbl.COUNT LOOP
4377                IF p_eam_res_usage_tbl(I).wip_entity_id is not null AND (
4378                   p_eam_res_usage_tbl(I).wip_entity_id <> l_wip_entity_id OR
4379                   p_eam_res_usage_tbl(I).organization_id <> l_organization_id)
4380                THEN
4381                   x_return_status := 'E';
4382                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4383                END IF;
4384            END LOOP;
4385 
4386 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating MAT_REQ record'); END IF;
4387 
4388            FOR I IN 1..p_eam_mat_req_tbl.COUNT LOOP
4389                IF p_eam_mat_req_tbl(I).wip_entity_id is not null AND (
4390                   p_eam_mat_req_tbl(I).wip_entity_id <> l_wip_entity_id OR
4391                   p_eam_mat_req_tbl(I).organization_id <> l_organization_id)
4392                THEN
4393                   x_return_status := 'E';
4394                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4395                END IF;
4396            END LOOP;
4397 
4398 IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating DI record'); END IF;
4399 
4400            FOR I IN 1..p_eam_direct_items_tbl.COUNT LOOP
4401                IF p_eam_direct_items_tbl(I).wip_entity_id is not null AND (
4402                   p_eam_direct_items_tbl(I).wip_entity_id <> l_wip_entity_id OR
4403                   p_eam_direct_items_tbl(I).organization_id <> l_organization_id)
4404                THEN
4405                   x_return_status := 'E';
4406                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4407                END IF;
4408            END LOOP;
4409 
4410            IF x_return_status = 'E' THEN
4411              -- Log the error
4412 
4413              l_out_eam_wo_rec            := l_eam_wo_rec;
4414              l_out_eam_op_tbl            := l_eam_op_tbl;
4415              l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
4416              l_out_eam_res_tbl           := l_eam_res_tbl;
4417              l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
4418              l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
4419              l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
4420              l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
4421              l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
4422 
4423              EAM_ERROR_MESSAGE_PVT.Log_Error
4424                (  p_eam_wo_rec             => l_eam_wo_rec
4425                ,  p_eam_op_tbl             => l_eam_op_tbl
4426                ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
4427                ,  p_eam_res_tbl            => l_eam_res_tbl
4428                ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
4429                ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
4430                ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
4431                ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
4432                ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
4433                ,  p_mesg_token_tbl         => l_mesg_token_tbl
4434                ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4435                ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_ALL
4436                ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
4437                ,  p_other_message          => l_other_message
4438                ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4439                ,  p_other_token_tbl        => l_token_tbl
4440                ,  x_eam_wo_rec             => l_out_eam_wo_rec
4441                ,  x_eam_op_tbl             => l_out_eam_op_tbl
4442                ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
4443                ,  x_eam_res_tbl            => l_out_eam_res_tbl
4444                ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
4445                ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
4446                ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
4447                ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
4448                ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
4449              );
4450 
4451              l_eam_wo_rec            := l_out_eam_wo_rec;
4452              l_eam_op_tbl            := l_out_eam_op_tbl;
4453              l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
4454              l_eam_res_tbl           := l_out_eam_res_tbl;
4455              l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
4456              l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
4457              l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
4458              l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
4459              l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl;
4460 
4461              RETURN;
4462            END IF;
4463 
4464      -- Add check for work order completion reocrds.Need to add for operation
4465      -- comlpetions and work/service request records
4466 
4467      IF p_eam_wo_comp_rec.transaction_type IS NOT NULL THEN
4468 
4469 
4470 
4471 
4472 	  l_wip_entity_id   := p_eam_wo_comp_rec.wip_entity_id;
4473           l_organization_id := p_eam_wo_comp_rec.organization_id;
4474 
4475 	   l_eam_wo_quality_tbl		:= p_eam_wo_quality_tbl;
4476 	   l_eam_meter_reading_tbl	:= p_eam_meter_reading_tbl;
4477 	   l_eam_wo_comp_rebuild_tbl	:= p_eam_wo_comp_rebuild_tbl;
4478 	   l_eam_wo_comp_mr_read_tbl	:= p_eam_wo_comp_mr_read_tbl;
4479 
4480 
4481 	  IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating Quality record'); END IF;
4482 
4483            FOR I IN 1..l_eam_wo_quality_tbl.COUNT LOOP
4484                IF p_eam_wo_quality_tbl(I).wip_entity_id is not null AND (
4485                   p_eam_wo_quality_tbl(I).wip_entity_id <> l_wip_entity_id OR
4486                   p_eam_wo_quality_tbl(I).organization_id <> l_organization_id)
4487                THEN
4488                   x_return_status := 'E';
4489                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4490                END IF;
4491            END LOOP;
4492 
4493    	  IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating Meter record'); END IF;
4494 
4495            FOR I IN 1..l_eam_meter_reading_tbl.COUNT LOOP
4496                IF p_eam_meter_reading_tbl(I).wip_entity_id is not null AND (
4497                   p_eam_meter_reading_tbl(I).wip_entity_id <> l_wip_entity_id
4498                   )
4499                THEN
4500                   x_return_status := 'E';
4501                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4502                END IF;
4503            END LOOP;
4504 
4505 	   IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating Counter Properties record'); END IF;
4506 
4507            FOR I IN 1..l_eam_counter_prop_tbl.COUNT LOOP
4508                IF p_eam_counter_prop_tbl(I).wip_entity_id is not null AND (
4509                   p_eam_counter_prop_tbl(I).wip_entity_id <> l_wip_entity_id
4510                   )
4511                THEN
4512                   x_return_status := 'E';
4513                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4514                END IF;
4515            END LOOP;
4516 
4517 
4518 	   IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating Meter Completion record'); END IF;
4519 
4520            FOR I IN 1..l_eam_wo_comp_rebuild_tbl.COUNT LOOP
4521                IF p_eam_wo_comp_rebuild_tbl(I).wip_entity_id is not null AND (
4522                   p_eam_wo_comp_rebuild_tbl(I).wip_entity_id <> l_wip_entity_id OR
4523                   p_eam_wo_comp_rebuild_tbl(I).organization_id <> l_organization_id)
4524                THEN
4525                   x_return_status := 'E';
4526                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4527                END IF;
4528            END LOOP;
4529 
4530 	    IF EAM_PROCESS_WO_PVT.get_debug = 'Y' then EAM_ERROR_MESSAGE_PVT.write_debug('Validating Rebuild Completion record'); END IF;
4531 
4532            FOR I IN 1..l_eam_wo_comp_mr_read_tbl.COUNT LOOP
4533                IF p_eam_wo_comp_mr_read_tbl(I).wip_entity_id is not null AND (
4534                   p_eam_wo_comp_mr_read_tbl(I).wip_entity_id <> l_wip_entity_id OR
4535                   p_eam_wo_comp_mr_read_tbl(I).organization_id <> l_organization_id)
4536                THEN
4537                   x_return_status := 'E';
4538                   l_other_message := 'EAM_WO_BO_REC_INVALID';
4539                END IF;
4540            END LOOP;
4541 
4542 	IF x_return_status = 'E' THEN
4543 	 -- Log the error
4544 
4545              /* l_out_eam_wo_rec            := l_eam_wo_rec;
4546              l_out_eam_op_tbl            := l_eam_op_tbl;
4547              l_out_eam_op_network_tbl    := l_eam_op_network_tbl;
4548              l_out_eam_res_tbl           := l_eam_res_tbl;
4549              l_out_eam_res_inst_tbl      := l_eam_res_inst_tbl;
4550              l_out_eam_sub_res_tbl       := l_eam_sub_res_tbl;
4551              l_out_eam_res_usage_tbl     := l_eam_res_usage_tbl;
4552              l_out_eam_mat_req_tbl       := l_eam_mat_req_tbl;
4553              l_out_eam_direct_items_tbl  := l_eam_direct_items_tbl;
4554 
4555              EAM_ERROR_MESSAGE_PVT.Log_Error
4556                (  p_eam_wo_rec             => l_eam_wo_rec
4557                ,  p_eam_op_tbl             => l_eam_op_tbl
4558                ,  p_eam_op_network_tbl     => l_eam_op_network_tbl
4559                ,  p_eam_res_tbl            => l_eam_res_tbl
4560                ,  p_eam_res_inst_tbl       => l_eam_res_inst_tbl
4561                ,  p_eam_sub_res_tbl        => l_eam_sub_res_tbl
4562                ,  p_eam_res_usage_tbl      => l_eam_res_usage_tbl
4563                ,  p_eam_mat_req_tbl        => l_eam_mat_req_tbl
4564                ,  p_eam_direct_items_tbl   => l_eam_direct_items_tbl
4565                ,  p_mesg_token_tbl         => l_mesg_token_tbl
4566                ,  p_error_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4567                ,  p_error_scope            => EAM_ERROR_MESSAGE_PVT.G_SCOPE_ALL
4568                ,  p_error_level            => EAM_ERROR_MESSAGE_PVT.G_BO_LEVEL
4569                ,  p_other_message          => l_other_message
4570                ,  p_other_status           => EAM_ERROR_MESSAGE_PVT.G_STATUS_ERROR
4571                ,  p_other_token_tbl        => l_token_tbl
4572                ,  x_eam_wo_rec             => l_out_eam_wo_rec
4573                ,  x_eam_op_tbl             => l_out_eam_op_tbl
4574                ,  x_eam_op_network_tbl     => l_out_eam_op_network_tbl
4575                ,  x_eam_res_tbl            => l_out_eam_res_tbl
4576                ,  x_eam_res_inst_tbl       => l_out_eam_res_inst_tbl
4577                ,  x_eam_sub_res_tbl        => l_out_eam_sub_res_tbl
4578                ,  x_eam_res_usage_tbl      => l_out_eam_res_usage_tbl
4579                ,  x_eam_mat_req_tbl        => l_out_eam_mat_req_tbl
4580                ,  x_eam_direct_items_tbl   => l_out_eam_direct_items_tbl
4581              );
4582 
4583              l_eam_wo_rec            := l_out_eam_wo_rec;
4584              l_eam_op_tbl            := l_out_eam_op_tbl;
4585              l_eam_op_network_tbl    := l_out_eam_op_network_tbl;
4586              l_eam_res_tbl           := l_out_eam_res_tbl;
4587              l_eam_res_inst_tbl      := l_out_eam_res_inst_tbl;
4588              l_eam_sub_res_tbl       := l_out_eam_sub_res_tbl;
4589              l_eam_res_usage_tbl     := l_out_eam_res_usage_tbl;
4590              l_eam_mat_req_tbl       := l_out_eam_mat_req_tbl;
4591              l_eam_direct_items_tbl  := l_out_eam_direct_items_tbl; */
4592 
4593              RETURN;
4594       END IF;
4595     END IF;  -- End of check for work order completion record
4596 
4597 
4598            x_return_status := 'S';
4599            RETURN;
4600 
4601 END CHECK_BO_RECORD;
4602 
4603 
4604 
4605 
4606  PROCEDURE COPY_WORKORDER
4607         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
4608          , p_api_version_number      IN  NUMBER := 1.0
4609          , p_init_msg_list           IN  VARCHAR2 := fnd_api.g_false
4610          , p_commit                  IN  VARCHAR2 := fnd_api.g_false
4611          , p_wip_entity_id           IN  NUMBER
4612          , p_organization_id         IN  NUMBER
4613          , x_eam_wo_rec              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
4614          , x_eam_op_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_tbl_type
4615          , x_eam_op_network_tbl      OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
4616          , x_eam_res_tbl             OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_tbl_type
4617          , x_eam_res_inst_tbl        OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
4618          , x_eam_res_usage_tbl       OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
4619          , x_eam_mat_req_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
4620          , x_eam_direct_items_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
4621          , x_return_status           OUT NOCOPY VARCHAR2
4622          , x_msg_count               OUT NOCOPY NUMBER
4623          ) IS
4624 
4625 	l_eam_wo_rec               EAM_PROCESS_WO_PUB.eam_wo_rec_type;
4626 	l_eam_op_tbl               EAM_PROCESS_WO_PUB.eam_op_tbl_type;
4627 	l_eam_op_network_tbl       EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
4628 	l_eam_res_tbl              EAM_PROCESS_WO_PUB.eam_res_tbl_type;
4629 	l_eam_sub_res_tbl	   EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
4630 	l_eam_res_inst_tbl         EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
4631 	l_eam_res_usage_tbl        EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
4632 	l_eam_mat_req_tbl          EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
4633 	l_eam_di_tbl		   EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
4634 	l_eam_wo_comp_rec               EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
4635 	l_eam_wo_quality_tbl            EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
4636 	l_eam_meter_reading_tbl         EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
4637 	l_eam_counter_prop_tbl		EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
4638 	l_eam_wo_comp_rebuild_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
4639 	l_eam_wo_comp_mr_read_tbl       EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
4640 	l_eam_op_comp_tbl               EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
4641 	l_eam_request_tbl               EAM_PROCESS_WO_PUB.eam_request_tbl_type;
4642 
4643 	l_out_eam_wo_rec		EAM_PROCESS_WO_PUB.eam_wo_rec_type;
4644 	l_out_eam_op_tbl		EAM_PROCESS_WO_PUB.eam_op_tbl_type;
4645 	l_out_eam_op_network_tbl	EAM_PROCESS_WO_PUB.eam_op_network_tbl_type;
4646 	l_out_eam_res_tbl		EAM_PROCESS_WO_PUB.eam_res_tbl_type;
4647 	l_out_eam_res_inst_tbl		EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type;
4648 	l_out_eam_sub_res_tbl		EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type;
4649 	l_out_eam_res_usage_tbl		EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
4650 	l_out_eam_mat_req_tbl		EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type;
4651 	l_out_eam_di_tbl		EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type;
4652 	l_out_eam_wo_comp_rec           EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
4653 	l_out_eam_wo_quality_tbl        EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
4654 	l_out_eam_meter_reading_tbl     EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
4655 	l_out_eam_counter_prop_tbl	EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
4656 	l_out_eam_wo_comp_rebuild_tbl   EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
4657 	l_out_eam_wo_comp_mr_read_tbl   EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
4658 	l_out_eam_op_comp_tbl           EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
4659 	l_out_eam_request_tbl           EAM_PROCESS_WO_PUB.eam_request_tbl_type;
4660 
4661 	l_return_status			VARCHAR2(1);
4662 	l_msg_count			NUMBER;
4663 	l_output_dir			VARCHAR2(512);
4664 	l_op_count			NUMBER;
4665 	l_eam_op_rec               EAM_PROCESS_WO_PUB.eam_op_rec_type;
4666 	l_eam_op_network_rec       EAM_PROCESS_WO_PUB.eam_op_network_rec_type;
4667 	l_eam_res_rec              EAM_PROCESS_WO_PUB.eam_res_rec_type;
4668 	l_eam_res_inst_rec	   EAM_PROCESS_WO_PUB.eam_res_inst_rec_type;
4669 	l_eam_res_usage_rec        EAM_PROCESS_WO_PUB.eam_res_usage_rec_type;
4670 	l_eam_mat_req_rec          EAM_PROCESS_WO_PUB.eam_mat_req_rec_type;
4671 	l_eam_di_rec		   EAM_PROCESS_WO_PUB.eam_direct_items_rec_type;
4672 
4673 	TYPE wkorder_op_tbl_type            is TABLE OF number INDEX BY BINARY_INTEGER;
4674 	TYPE wkorder_op_netwrk_tbl_type     is TABLE OF number INDEX BY BINARY_INTEGER;
4675 
4676 	l_wkorder_op_tbl	     wkorder_op_tbl_type;
4677 	l_wkorder_op_netwrk_tbl	     wkorder_op_netwrk_tbl_type;
4678 
4679 	l_op_index		NUMBER;
4680 	l_op_res_index		NUMBER;
4681 	l_op_res_inst_index	NUMBER;
4682 	l_op_network_index	NUMBER;
4683 	l_op_material_index	NUMBER;
4684 	l_op_direct_item_index	NUMBER;
4685 
4686 	l_old_activity_id	NUMBER;
4687 
4688 	CURSOR l_operations is
4689 	select
4690 		wip_entity_id		,
4691 		organization_id		,
4692 		operation_seq_num 	,
4693 		standard_operation_id	,
4694 		department_id         	,
4695 		operation_sequence_id 	,
4696 		description           	,
4697 		minimum_transfer_quantity	,
4698 		count_point_type      ,
4699 		backflush_flag        ,
4700 		shutdown_type         ,
4701 		first_unit_start_date             ,
4702 		last_unit_completion_date        ,
4703 		attribute_category    ,
4704 		attribute1            ,
4705 		attribute2            ,
4706 		attribute3            ,
4707 		attribute4            ,
4708 		attribute5            ,
4709 		attribute6            ,
4710 		attribute7            ,
4711 		attribute8            ,
4712 		attribute9            ,
4713 		attribute10           ,
4714 		attribute11           ,
4715 		attribute12           ,
4716 		attribute13           ,
4717 		attribute14           ,
4718 		attribute15           ,
4719 		long_description
4720 	from wip_operations
4721 	where wip_entity_id = p_wip_entity_id;
4722 
4723 	CURSOR l_op_resources is
4724 	select
4725 		wor.wip_entity_id		    ,
4726 		wor.organization_id		    ,
4727 		wor.operation_seq_num               ,
4728 		wor.resource_seq_num                ,
4729 		wor.resource_id                     ,
4730 		wor.uom_code                        ,
4731 		wor.basis_type                      ,
4732 		wor.usage_rate_or_amount            ,
4733 		wor.activity_id                     ,
4734 		wor.scheduled_flag                  ,
4735 		wor.firm_flag			    ,
4736 		wor.assigned_units                  ,
4737 		wor.maximum_assigned_units          ,
4738 		wor.autocharge_type                 ,
4739 		wor.standard_rate_flag              ,
4740 		wor.applied_resource_units          ,
4741 		wor.applied_resource_value          ,
4742 		wor.start_date                      ,
4743 		wor.completion_date                 ,
4744 		wor.schedule_seq_num                ,
4745 		wor.substitute_group_num            ,
4746 		wor.replacement_group_num           ,
4747 		wor.attribute_category              ,
4748 		wor.attribute1                      ,
4749 		wor.attribute2                      ,
4750 		wor.attribute3                      ,
4751 		wor.attribute4                      ,
4752 		wor.attribute5                      ,
4753 		wor.attribute6                      ,
4754 		wor.attribute7                      ,
4755 		wor.attribute8                      ,
4756 		wor.attribute9                      ,
4757 		wor.attribute10                     ,
4758 		wor.attribute11                     ,
4759 		wor.attribute12                     ,
4760 		wor.attribute13                     ,
4761 		wor.attribute14                     ,
4762 		wor.attribute15                     ,
4763 		wor.department_id
4764 	 from   wip_operations wo,
4765 	        wip_operation_resources wor
4766 	 where wo.wip_entity_id = p_wip_entity_id
4767 	   and wor.wip_entity_id = p_wip_entity_id
4768 	   and wo.operation_seq_num = wor.operation_seq_num;
4769 
4770 	 CURSOR l_resource_instances is
4771 	 select
4772 		wori.wip_entity_id       	,
4773 		wori.organization_id     	,
4774 		wori.operation_seq_num   	,
4775 		wori.resource_seq_num    	,
4776 		wori.instance_id         	,
4777 		wori.serial_number      	,
4778 		wori.start_date       		,
4779 		wori.completion_date     	,
4780 		wori.batch_id
4781 	 from  wip_op_resource_instances wori,
4782 	       wip_operation_resources wor
4783 	 where wor.wip_entity_id = p_wip_entity_id
4784 	   and wori.wip_entity_id = p_wip_entity_id
4785 	   and wori.operation_seq_num = wor.operation_seq_num
4786 	   and wori.resource_seq_num = wor.resource_seq_num;
4787 
4788 	CURSOR l_op_network IS
4789 		SELECT
4790 			wip_entity_id		 ,
4791 			organization_id		 ,
4792 			prior_operation          ,
4793 			next_operation		 ,
4794 			attribute_category       ,
4795 			attribute1               ,
4796 			attribute2               ,
4797 			attribute3               ,
4798 			attribute4               ,
4799 			attribute5               ,
4800 			attribute6               ,
4801 			attribute7               ,
4802 			attribute8               ,
4803 			attribute9               ,
4804 			attribute10              ,
4805 			attribute11              ,
4806 			attribute12              ,
4807 			attribute13              ,
4808 			attribute14              ,
4809 			attribute15
4810 		FROM
4811 			wip_operation_networks
4812 	       WHERE    wip_entity_id = p_wip_entity_id;
4813 
4814 		 CURSOR l_op_material IS
4815 			SELECT
4816 			wip_entity_id              ,
4817 			organization_id            ,
4818 			operation_seq_num          ,
4819 			inventory_item_id          ,
4820 			quantity_per_assembly      ,
4821 			department_id              ,
4822 			wip_supply_type            ,
4823 			date_required              ,
4824 			required_quantity          ,
4825 			released_quantity          ,
4826 			quantity_issued            ,
4827 			supply_subinventory        ,
4828 			supply_locator_id          ,
4829 			mrp_net_flag               ,
4830 			mps_required_quantity      ,
4831 			mps_date_required          ,
4832 			component_sequence_id      ,
4833 			comments                   ,
4834 			attribute_category         ,
4835 			attribute1                 ,
4836 			attribute2                 ,
4837 			attribute3                 ,
4838 			attribute4                 ,
4839 			attribute5                 ,
4840 			attribute6                 ,
4841 			attribute7                 ,
4842 			attribute8                 ,
4843 			attribute9                 ,
4844 			attribute10                ,
4845 			attribute11                ,
4846 			attribute12                ,
4847 			attribute13                ,
4848 			attribute14                ,
4849 			attribute15                ,
4850 			auto_request_material      ,
4851 			suggested_vendor_name      ,
4852 			vendor_id                  ,
4853 			unit_price
4854 		  FROM  wip_requirement_operations wro
4855 		  WHERE wro.wip_entity_id = p_wip_entity_id
4856 		    AND wro.organization_id = p_organization_id;
4857 
4858 		    CURSOR l_op_direct_item IS
4859 			SELECT
4860 			description                    ,
4861 			purchasing_category_id         ,
4862 			direct_item_sequence_id        ,
4863 			operation_seq_num              ,
4864 			department_id                  ,
4865 			wip_entity_id                  ,
4866 			organization_id                ,
4867 			suggested_vendor_name	       ,
4868 			suggested_vendor_id            ,
4869 			suggested_vendor_site	       ,
4870 			suggested_vendor_site_id       ,
4871 			suggested_vendor_contact       ,
4872 			suggested_vendor_contact_id    ,
4873 			suggested_vendor_phone         ,
4874 			suggested_vendor_item_num      ,
4875 			unit_price                     ,
4876 			auto_request_material	       ,
4877 			required_quantity              ,
4878 			uom                            ,
4879 			need_by_date                   ,
4880 			attribute_category             ,
4881 			attribute1                     ,
4882 			attribute2                     ,
4883 			attribute3                     ,
4884 			attribute4                     ,
4885 			attribute5                     ,
4886 			attribute6                     ,
4887 			attribute7                     ,
4888 			attribute8                     ,
4889 			attribute9                     ,
4890 			attribute10                    ,
4891 			attribute11		       ,
4892 			attribute12                    ,
4893 			attribute13                    ,
4894 			attribute14                    ,
4895 			attribute15
4896 		FROM    wip_eam_direct_items wedi
4897                 WHERE   wedi.wip_entity_id = p_wip_entity_id
4898                 AND     wedi.organization_id = p_organization_id;
4899 
4900 	 BEGIN
4901 
4902 	l_op_index		:=1;
4903 	l_op_res_index		:=1;
4904 	l_op_res_inst_index	:=1;
4905 	l_op_network_index	:=1;
4906 	l_op_material_index	:=1;
4907 	l_op_direct_item_index	:=1;
4908 
4909  -- Get Work Order Header information
4910 	EAM_WO_UTILITY_PVT.Query_Row(
4911 		p_wip_entity_id     => p_wip_entity_id ,
4912 		p_organization_id   => p_organization_id,
4913 		x_eam_wo_rec        => l_eam_wo_rec,
4914 		x_Return_status     => l_Return_status
4915 	);
4916 
4917 	l_eam_wo_rec.header_id			:= 1;
4918 	l_eam_wo_rec.batch_id			:= 1;
4919 	l_eam_wo_rec.wip_entity_name		:= null;
4920 	l_eam_wo_rec.wip_entity_id		:= null;
4921 
4922 
4923 	l_old_activity_id			:= l_eam_wo_rec.asset_activity_id;
4924 	l_eam_wo_rec.asset_activity_id		:= null;
4925 	l_eam_wo_rec.transaction_type		:= EAM_PROCESS_WO_PVT.G_OPR_CREATE;
4926 	l_eam_wo_rec.return_status		:= null;
4927 
4928 	l_eam_wo_rec.date_released		:= null;
4929 	l_eam_wo_rec.cycle_id			:= null;
4930 	l_eam_wo_rec.seq_id			:= null;
4931 	l_eam_wo_rec.pm_schedule_id		:= null;
4932 	l_eam_wo_rec.parent_wip_entity_id	:= null;
4933 	l_eam_wo_rec.pending_flag               := null;
4934 	l_eam_wo_rec.status_type                := 17;  --draft
4935 	l_eam_wo_rec.user_defined_status_id     := 17;  --draft
4936 
4937 	FOR opRec IN l_operations LOOP
4938 
4939 		l_eam_op_rec.header_id		:= 1;
4940 		l_eam_op_rec.batch_id		:= 1;
4941 		l_eam_op_rec.wip_entity_id	:= null;
4942 		l_eam_op_rec.transaction_type	:= EAM_PROCESS_WO_PVT.G_OPR_CREATE;
4943 		l_eam_op_rec.return_status	:= null;
4944 
4945 		l_eam_op_rec.organization_id          := opRec.organization_id;
4946 		l_eam_op_rec.operation_seq_num        := opRec.operation_seq_num;
4947 		l_eam_op_rec.department_id            := opRec.department_id;
4948 		l_eam_op_rec.operation_sequence_id    := opRec.operation_sequence_id;
4949 		l_eam_op_rec.description              := opRec.description;
4950 		l_eam_op_rec.minimum_transfer_quantity:= opRec.minimum_transfer_quantity;
4951 		l_eam_op_rec.count_point_type         := opRec.count_point_type;
4952 		l_eam_op_rec.backflush_flag           := opRec.backflush_flag;
4953 		l_eam_op_rec.shutdown_type            := opRec.shutdown_type;
4954 		l_eam_op_rec.start_date               := opRec.first_unit_start_date;
4955 		l_eam_op_rec.completion_date          := opRec.last_unit_completion_date;
4956 		l_eam_op_rec.attribute_category       := opRec.attribute_category;
4957 		l_eam_op_rec.attribute1               := opRec.attribute1;
4958 		l_eam_op_rec.attribute2               := opRec.attribute2;
4959 		l_eam_op_rec.attribute3               := opRec.attribute3;
4960 		l_eam_op_rec.attribute4               := opRec.attribute4;
4961 		l_eam_op_rec.attribute5               := opRec.attribute5;
4962 		l_eam_op_rec.attribute6               := opRec.attribute6;
4963 		l_eam_op_rec.attribute7               := opRec.attribute7;
4964 		l_eam_op_rec.attribute8               := opRec.attribute8;
4965 		l_eam_op_rec.attribute9               := opRec.attribute9;
4966 		l_eam_op_rec.attribute10              := opRec.attribute10;
4967 		l_eam_op_rec.attribute11              := opRec.attribute11;
4968 		l_eam_op_rec.attribute12              := opRec.attribute12;
4969 		l_eam_op_rec.attribute13              := opRec.attribute13;
4970 		l_eam_op_rec.attribute14              := opRec.attribute14;
4971 		l_eam_op_rec.attribute15              := opRec.attribute15;
4972 		l_eam_op_rec.long_description         := opRec.long_description;
4973 
4974 		l_eam_op_tbl(l_op_index) := l_eam_op_rec;
4975 
4976 		l_op_index := l_op_index +1;
4977 	END LOOP;
4978 
4979 	FOR opRes IN l_op_resources LOOP
4980 		l_eam_res_rec.header_id		:= 1;
4981 		l_eam_res_rec.batch_id		:= 1;
4982 		l_eam_res_rec.wip_entity_id	:= null;
4983 		l_eam_res_rec.transaction_type	:= EAM_PROCESS_WO_PVT.G_OPR_CREATE;
4984 		l_eam_res_rec.return_status	:= null;
4985 
4986 		l_eam_res_rec.organization_id             := opRes.organization_id        ;
4987 		l_eam_res_rec.operation_seq_num           := opRes.operation_seq_num      ;
4988 		l_eam_res_rec.resource_seq_num            := opRes.resource_seq_num       ;
4989 		l_eam_res_rec.resource_id                 := opRes.resource_id            ;
4990 		l_eam_res_rec.uom_code                    := opRes.uom_code               ;
4991 		l_eam_res_rec.basis_type                  := opRes.basis_type             ;
4992 		l_eam_res_rec.usage_rate_or_amount        := opRes.usage_rate_or_amount   ;
4993 		l_eam_res_rec.activity_id                 := opRes.activity_id            ;
4994 		l_eam_res_rec.scheduled_flag              := opRes.scheduled_flag         ;
4995 		l_eam_res_rec.firm_flag			  := opRes.firm_flag		  ;
4996 		l_eam_res_rec.assigned_units              := opRes.assigned_units         ;
4997 		l_eam_res_rec.maximum_assigned_units      := opRes.maximum_assigned_units ;
4998 		l_eam_res_rec.autocharge_type             := opRes.autocharge_type        ;
4999 		l_eam_res_rec.standard_rate_flag          := opRes.standard_rate_flag     ;
5000 		l_eam_res_rec.start_date                  := opRes.start_date             ;
5001 		l_eam_res_rec.completion_date             := opRes.completion_date        ;
5002 		l_eam_res_rec.schedule_seq_num            := opRes.schedule_seq_num       ;
5003 		l_eam_res_rec.substitute_group_num        := opRes.substitute_group_num   ;
5004 		l_eam_res_rec.replacement_group_num       := opRes.replacement_group_num  ;
5005 		l_eam_res_rec.attribute_category          := opRes.attribute_category     ;
5006 		l_eam_res_rec.attribute1                  := opRes.attribute1             ;
5007 		l_eam_res_rec.attribute2                  := opRes.attribute2             ;
5008 		l_eam_res_rec.attribute3                  := opRes.attribute3             ;
5009 		l_eam_res_rec.attribute4                  := opRes.attribute4             ;
5010 		l_eam_res_rec.attribute5                  := opRes.attribute5             ;
5011 		l_eam_res_rec.attribute6                  := opRes.attribute6             ;
5012 		l_eam_res_rec.attribute7                  := opRes.attribute7             ;
5013 		l_eam_res_rec.attribute8                  := opRes.attribute8             ;
5014 		l_eam_res_rec.attribute9                  := opRes.attribute9             ;
5015 		l_eam_res_rec.attribute10                 := opRes.attribute10            ;
5016 		l_eam_res_rec.attribute11                 := opRes.attribute11            ;
5017 		l_eam_res_rec.attribute12                 := opRes.attribute12            ;
5018 		l_eam_res_rec.attribute13                 := opRes.attribute13            ;
5019 		l_eam_res_rec.attribute14                 := opRes.attribute14            ;
5020 		l_eam_res_rec.attribute15                 := opRes.attribute15            ;
5021 		l_eam_res_rec.department_id               := opRes.department_id          ;
5022 
5023 		l_eam_res_tbl(l_op_res_index) := l_eam_res_rec;
5024 
5025 		l_op_res_index := l_op_res_index +1;
5026 
5027 	END LOOP;
5028 
5029 	FOR opResInst IN l_resource_instances LOOP
5030 
5031 		l_eam_res_inst_rec.header_id		:= 1;
5032 		l_eam_res_inst_rec.batch_id		:= 1;
5033 		l_eam_res_inst_rec.wip_entity_id	:= null;
5034 		l_eam_res_inst_rec.transaction_type	:= EAM_PROCESS_WO_PVT.G_OPR_CREATE;
5035 		l_eam_res_inst_rec.return_status	:= null;
5036 
5037 		l_eam_res_inst_rec.organization_id     := opResInst.organization_id    ;
5038 		l_eam_res_inst_rec.operation_seq_num   := opResInst.operation_seq_num  ;
5039 		l_eam_res_inst_rec.resource_seq_num    := opResInst.resource_seq_num   ;
5040 		l_eam_res_inst_rec.instance_id         := opResInst.instance_id        ;
5041 		l_eam_res_inst_rec.serial_number       := opResInst.serial_number      ;
5042 		l_eam_res_inst_rec.start_date          := opResInst.start_date         ;
5043 		l_eam_res_inst_rec.completion_date     := opResInst.completion_date    ;
5044 		l_eam_res_inst_rec.top_level_batch_id  := opResInst.batch_id ;
5045 
5046 		l_eam_res_inst_tbl(l_op_res_inst_index) := l_eam_res_inst_rec;
5047 
5048 		l_op_res_inst_index := l_op_res_inst_index +1;
5049 	END LOOP;
5050 
5051 
5052  	FOR opNetwork IN l_op_network LOOP
5053 
5054 		l_eam_op_network_rec.header_id := 1;
5055 		l_eam_op_network_rec.batch_id := 1;
5056 		l_eam_op_network_rec.wip_entity_id := null;
5057 		l_eam_op_network_rec.transaction_type := EAM_PROCESS_WO_PVT.G_OPR_CREATE;
5058 		l_eam_op_network_rec.return_status	:= null;
5059 
5060 		l_eam_op_network_rec.organization_id     := opNetwork.organization_id     ;
5061 		l_eam_op_network_rec.prior_operation     := opNetwork.prior_operation     ;
5062 		l_eam_op_network_rec.next_operation      := opNetwork.next_operation      ;
5063 		l_eam_op_network_rec.attribute_category  := opNetwork.attribute_category  ;
5064 		l_eam_op_network_rec.attribute1          := opNetwork.attribute1          ;
5065 		l_eam_op_network_rec.attribute2          := opNetwork.attribute2          ;
5066 		l_eam_op_network_rec.attribute3          := opNetwork.attribute3          ;
5067 		l_eam_op_network_rec.attribute4          := opNetwork.attribute4          ;
5068 		l_eam_op_network_rec.attribute5          := opNetwork.attribute5          ;
5069 		l_eam_op_network_rec.attribute6          := opNetwork.attribute6          ;
5070 		l_eam_op_network_rec.attribute7          := opNetwork.attribute7          ;
5071 		l_eam_op_network_rec.attribute8          := opNetwork.attribute8          ;
5072 		l_eam_op_network_rec.attribute9          := opNetwork.attribute9          ;
5073 		l_eam_op_network_rec.attribute10         := opNetwork.attribute10         ;
5074 		l_eam_op_network_rec.attribute11         := opNetwork.attribute11         ;
5075 		l_eam_op_network_rec.attribute12         := opNetwork.attribute12         ;
5076 		l_eam_op_network_rec.attribute13         := opNetwork.attribute13         ;
5077 		l_eam_op_network_rec.attribute14         := opNetwork.attribute14         ;
5078 		l_eam_op_network_rec.attribute15         := opNetwork.attribute15         ;
5079 
5080 		l_eam_op_network_tbl(l_op_network_index) := l_eam_op_network_rec;
5081 
5082 		l_op_network_index := l_op_network_index +1;
5083 
5084 	END LOOP;
5085 
5086  	FOR opMaterial IN l_op_material LOOP
5087 
5088 		l_eam_mat_req_rec.header_id := 1;
5089 		l_eam_mat_req_rec.batch_id := 1;
5090 		l_eam_mat_req_rec.wip_entity_id := null;
5091 		l_eam_mat_req_rec.transaction_type := EAM_PROCESS_WO_PVT.G_OPR_CREATE;
5092 		l_eam_mat_req_rec.return_status	:= null;
5093 
5094 		l_eam_mat_req_rec.organization_id          := opMaterial.organization_id        ;
5095 		l_eam_mat_req_rec.operation_seq_num        := opMaterial.operation_seq_num      ;
5096 		l_eam_mat_req_rec.inventory_item_id        := opMaterial.inventory_item_id      ;
5097 		l_eam_mat_req_rec.quantity_per_assembly    := opMaterial.quantity_per_assembly  ;
5098 		l_eam_mat_req_rec.department_id            := opMaterial.department_id          ;
5099 		l_eam_mat_req_rec.wip_supply_type          := opMaterial.wip_supply_type        ;
5100 		l_eam_mat_req_rec.date_required            := opMaterial.date_required          ;
5101 		l_eam_mat_req_rec.required_quantity        := opMaterial.required_quantity      ;
5102 		l_eam_mat_req_rec.supply_subinventory      := opMaterial.supply_subinventory    ;
5103 		l_eam_mat_req_rec.supply_locator_id        := opMaterial.supply_locator_id      ;
5104 		l_eam_mat_req_rec.mrp_net_flag             := opMaterial.mrp_net_flag           ;
5105 		l_eam_mat_req_rec.component_sequence_id    := opMaterial.component_sequence_id  ;
5106 		l_eam_mat_req_rec.comments                 := opMaterial.comments               ;
5107 		l_eam_mat_req_rec.attribute_category       := opMaterial.attribute_category     ;
5108 		l_eam_mat_req_rec.attribute1               := opMaterial.attribute1             ;
5109 		l_eam_mat_req_rec.attribute2               := opMaterial.attribute2             ;
5110 		l_eam_mat_req_rec.attribute3               := opMaterial.attribute3             ;
5111 		l_eam_mat_req_rec.attribute4               := opMaterial.attribute4             ;
5112 		l_eam_mat_req_rec.attribute5               := opMaterial.attribute5             ;
5113 		l_eam_mat_req_rec.attribute6               := opMaterial.attribute6             ;
5114 		l_eam_mat_req_rec.attribute7               := opMaterial.attribute7             ;
5115 		l_eam_mat_req_rec.attribute8               := opMaterial.attribute8             ;
5116 		l_eam_mat_req_rec.attribute9               := opMaterial.attribute9             ;
5117 		l_eam_mat_req_rec.attribute10              := opMaterial.attribute10            ;
5118 		l_eam_mat_req_rec.attribute11              := opMaterial.attribute11            ;
5119 		l_eam_mat_req_rec.attribute12              := opMaterial.attribute12            ;
5120 		l_eam_mat_req_rec.attribute13              := opMaterial.attribute13            ;
5121 		l_eam_mat_req_rec.attribute14              := opMaterial.attribute14            ;
5122 		l_eam_mat_req_rec.attribute15              := opMaterial.attribute15            ;
5123 		l_eam_mat_req_rec.auto_request_material    := opMaterial.auto_request_material  ;
5124 		l_eam_mat_req_rec.suggested_vendor_name    := opMaterial.suggested_vendor_name  ;
5125 		l_eam_mat_req_rec.vendor_id                := opMaterial.vendor_id              ;
5126 		l_eam_mat_req_rec.unit_price               := opMaterial.unit_price             ;
5127 
5128 		l_eam_mat_req_tbl(l_op_material_index) := l_eam_mat_req_rec;
5129 
5130 		l_op_material_index := l_op_material_index +1;
5131 	END LOOP;
5132 
5133 	FOR opDirectItem IN l_op_direct_item LOOP
5134 
5135 		l_eam_di_rec.header_id := 1;
5136 		l_eam_di_rec.batch_id := 1;
5137 		l_eam_di_rec.wip_entity_id := null;
5138 		l_eam_di_rec.transaction_type := EAM_PROCESS_WO_PVT.G_OPR_CREATE;
5139 		l_eam_di_rec.return_status	:= null;
5140 
5141 		l_eam_di_rec.description                  := opDirectItem.description                  ;
5142 		l_eam_di_rec.purchasing_category_id       := opDirectItem.purchasing_category_id       ;
5143 		l_eam_di_rec.operation_seq_num            := opDirectItem.operation_seq_num            ;
5144 		l_eam_di_rec.department_id                := opDirectItem.department_id                ;
5145 		l_eam_di_rec.organization_id              := opDirectItem.organization_id              ;
5146 		l_eam_di_rec.suggested_vendor_name	  := opDirectItem.suggested_vendor_name	  ;
5147 		l_eam_di_rec.suggested_vendor_id          := opDirectItem.suggested_vendor_id          ;
5148 		l_eam_di_rec.suggested_vendor_site	  := opDirectItem.suggested_vendor_site	  ;
5149 		l_eam_di_rec.suggested_vendor_site_id     := opDirectItem.suggested_vendor_site_id     ;
5150 		l_eam_di_rec.suggested_vendor_contact     := opDirectItem.suggested_vendor_contact     ;
5151 		l_eam_di_rec.suggested_vendor_contact_id  := opDirectItem.suggested_vendor_contact_id  ;
5152 		l_eam_di_rec.suggested_vendor_phone       := opDirectItem.suggested_vendor_phone       ;
5153 		l_eam_di_rec.suggested_vendor_item_num    := opDirectItem.suggested_vendor_item_num    ;
5154 		l_eam_di_rec.unit_price                   := opDirectItem.unit_price                   ;
5155 		l_eam_di_rec.auto_request_material	  := opDirectItem.auto_request_material	  ;
5156 		l_eam_di_rec.required_quantity            := opDirectItem.required_quantity            ;
5157 		l_eam_di_rec.uom                          := opDirectItem.uom                          ;
5158 		l_eam_di_rec.need_by_date                 := opDirectItem.need_by_date                 ;
5159 		l_eam_di_rec.attribute_category           := opDirectItem.attribute_category           ;
5160 		l_eam_di_rec.attribute1                   := opDirectItem.attribute1                   ;
5161 		l_eam_di_rec.attribute2                   := opDirectItem.attribute2                   ;
5162 		l_eam_di_rec.attribute3                   := opDirectItem.attribute3                   ;
5163 		l_eam_di_rec.attribute4                   := opDirectItem.attribute4                   ;
5164 		l_eam_di_rec.attribute5                   := opDirectItem.attribute5                   ;
5165 		l_eam_di_rec.attribute6                   := opDirectItem.attribute6                   ;
5166 		l_eam_di_rec.attribute7                   := opDirectItem.attribute7                   ;
5167 		l_eam_di_rec.attribute8                   := opDirectItem.attribute8                   ;
5168 		l_eam_di_rec.attribute9                   := opDirectItem.attribute9                   ;
5169 		l_eam_di_rec.attribute10                  := opDirectItem.attribute10                  ;
5170 		l_eam_di_rec.attribute11                  := opDirectItem.attribute11                  ;
5171 		l_eam_di_rec.attribute12                  := opDirectItem.attribute12                  ;
5172 		l_eam_di_rec.attribute13                  := opDirectItem.attribute13                  ;
5173 		l_eam_di_rec.attribute14                  := opDirectItem.attribute14                  ;
5174 		l_eam_di_rec.attribute15                  := opDirectItem.attribute15                  ;
5175 
5176 		l_eam_di_tbl(l_op_direct_item_index) := l_eam_di_rec;
5177 
5178 		l_op_direct_item_index := l_op_direct_item_index +1;
5179 	END LOOP;
5180 
5181       EAM_WORKORDER_UTIL_PKG.log_path(l_output_dir);
5182 
5183 	 EAM_PROCESS_WO_PUB.Process_WO
5184                                    ( p_bo_identifier           => 'EAM'
5185                                    , p_init_msg_list           => TRUE
5186                                    , p_api_version_number      => 1.0
5187                                    , p_commit                  => 'N'
5188                                    , p_eam_wo_rec              => l_eam_wo_rec
5189                                    , p_eam_op_tbl              => l_eam_op_tbl
5190                                    , p_eam_op_network_tbl      => l_eam_op_network_tbl
5191                                    , p_eam_res_tbl             => l_eam_res_tbl
5192                                    , p_eam_res_inst_tbl        => l_eam_res_inst_tbl
5193                                    , p_eam_sub_res_tbl         => l_eam_sub_res_tbl
5194                                    , p_eam_res_usage_tbl       => l_eam_res_usage_tbl
5195                                    , p_eam_mat_req_tbl         => l_eam_mat_req_tbl
5196                                    , p_eam_direct_items_tbl    => l_eam_di_tbl
5197                                    , p_eam_wo_comp_rec         => l_eam_wo_comp_rec
5198                                    , p_eam_wo_quality_tbl      => l_eam_wo_quality_tbl
5199                                    , p_eam_meter_reading_tbl   => l_eam_meter_reading_tbl
5200 		 	           , p_eam_counter_prop_tbl    => l_eam_counter_prop_tbl
5201                                    , p_eam_wo_comp_rebuild_tbl => l_eam_wo_comp_rebuild_tbl
5202                                    , p_eam_wo_comp_mr_read_tbl => l_eam_wo_comp_mr_read_tbl
5203                                    , p_eam_op_comp_tbl         => l_eam_op_comp_tbl
5204                                    , p_eam_request_tbl         => l_eam_request_tbl
5205                                    , x_eam_wo_rec              => l_out_eam_wo_rec
5206                                    , x_eam_op_tbl              => l_out_eam_op_tbl
5207                                    , x_eam_op_network_tbl      => l_out_eam_op_network_tbl
5208                                    , x_eam_res_tbl             => l_out_eam_res_tbl
5209                                    , x_eam_res_inst_tbl        => l_out_eam_res_inst_tbl
5210                                    , x_eam_sub_res_tbl         => l_out_eam_sub_res_tbl
5211                                    , x_eam_res_usage_tbl       => l_out_eam_res_usage_tbl
5212                                    , x_eam_mat_req_tbl         => l_out_eam_mat_req_tbl
5213                                    , x_eam_direct_items_tbl    => l_out_eam_di_tbl
5214                                    , x_eam_wo_comp_rec         => l_out_eam_wo_comp_rec
5215                                    , x_eam_wo_quality_tbl      => l_out_eam_wo_quality_tbl
5216                                    , x_eam_meter_reading_tbl   => l_out_eam_meter_reading_tbl
5217 			           , x_eam_counter_prop_tbl    => l_out_eam_counter_prop_tbl
5218                                    , x_eam_wo_comp_rebuild_tbl => l_out_eam_wo_comp_rebuild_tbl
5219                                    , x_eam_wo_comp_mr_read_tbl => l_out_eam_wo_comp_mr_read_tbl
5220                                    , x_eam_op_comp_tbl         => l_out_eam_op_comp_tbl
5221                                    , x_eam_request_tbl         => l_out_eam_request_tbl
5222                                    , x_return_status           => x_return_status
5223                                    , x_msg_count               => x_msg_count
5224                                    , p_debug                   =>  NVL(fnd_profile.value('EAM_DEBUG'), 'N')
5225                                    , p_debug_filename          => 'CopyWorkOrder.log'
5226                                    , p_output_dir              => l_output_dir
5227                                    , p_debug_file_mode         => 'w'
5228                                );
5229 
5230 	update wip_discrete_jobs
5231 	   set primary_item_id = l_old_activity_id
5232 	 where wip_entity_id = l_out_eam_wo_rec.wip_entity_id;
5233 
5234 	 update wip_operations wo
5235 	    set STANDARD_OPERATION_ID = ( select STANDARD_OPERATION_ID from wip_operations wo1
5236 					   where wo.OPERATION_SEQ_NUM = wo1.OPERATION_SEQ_NUM
5237 					   and wo1.wip_entity_id = p_wip_entity_id
5238 					   )
5239 	    where wip_entity_id = l_out_eam_wo_rec.wip_entity_id;
5240 
5241 	l_out_eam_wo_rec.asset_activity_id := l_old_activity_id;
5242 
5243 	x_eam_wo_rec		:=	l_out_eam_wo_rec;
5244 	x_eam_op_tbl            :=	l_out_eam_op_tbl;
5245 	x_eam_op_network_tbl    :=	l_out_eam_op_network_tbl;
5246 	x_eam_res_tbl           :=	l_out_eam_res_tbl;
5247 	x_eam_res_inst_tbl      :=	l_out_eam_res_inst_tbl;
5248 	x_eam_res_usage_tbl     :=	l_out_eam_res_usage_tbl;
5249 	x_eam_mat_req_tbl       :=	l_out_eam_mat_req_tbl;
5250 	x_eam_direct_items_tbl  :=	l_out_eam_di_tbl;
5251 
5252 	 END COPY_WORKORDER;
5253 
5254 
5255 
5256 
5257 
5258 	     /********************************************************************
5259     * Procedure: Process_WO
5260     * Parameters IN:
5261     *         EAM Work Order column record
5262     *         Operation column table
5263     *         Operation Networks column Table
5264     *         Resource column Table
5265     *         Substitute Resource column table
5266     *         Material Requirements column table
5267     *         Direct Items column table
5268     * Parameters OUT:
5269     *         EAM Work Order column record
5270     *         Operation column table
5271     *         Operation Networks column Table
5272     *         Resource column Table
5273     *         Substitute Resource column table
5274     *         Material Requirements column table
5275     *         Direct Items column table
5276     * Purpose:
5277     *         This procedure is the driving procedure of the EAM
5278     *         business Obect. It will verify the integrity of the
5279     *         business object and will call the private API which
5280     *         further drive the business object to perform business
5281     *         logic validations.
5282     *********************************************************************/
5283 
5284       PROCEDURE PROCESS_WO
5285         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
5286          , p_api_version_number      IN  NUMBER := 1.0
5287          , p_init_msg_list           IN  BOOLEAN := FALSE
5288          , p_commit                  IN  VARCHAR2 := 'N'
5289          , p_eam_wo_rec              IN EAM_PROCESS_WO_PUB.eam_wo_rec_type
5290          , p_eam_op_tbl              IN EAM_PROCESS_WO_PUB.eam_op_tbl_type
5291          , p_eam_op_network_tbl      IN EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
5292          , p_eam_res_tbl             IN EAM_PROCESS_WO_PUB.eam_res_tbl_type
5293          , p_eam_res_inst_tbl        IN EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
5294          , p_eam_sub_res_tbl         IN EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
5295          , p_eam_res_usage_tbl       IN EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
5296          , p_eam_mat_req_tbl         IN EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
5297          , p_eam_direct_items_tbl    IN EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
5298          , x_eam_wo_rec              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
5299          , x_eam_op_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_tbl_type
5300          , x_eam_op_network_tbl      OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
5301          , x_eam_res_tbl             OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_tbl_type
5302          , x_eam_res_inst_tbl        OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
5303          , x_eam_sub_res_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
5304          , x_eam_res_usage_tbl       OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type
5305          , x_eam_mat_req_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
5306          , x_eam_direct_items_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
5307          , x_return_status           OUT NOCOPY VARCHAR2
5308          , x_msg_count               OUT NOCOPY NUMBER
5309          , p_debug                   IN  VARCHAR2 := 'N'
5310          , p_output_dir              IN  VARCHAR2 := NULL
5311          , p_debug_filename          IN  VARCHAR2 := 'EAM_WO_DEBUG.log'
5312          , p_debug_file_mode         IN  VARCHAR2 := 'w'
5313          )
5314 	 IS
5315 
5316 
5317 	l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
5318 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
5319 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
5320  	l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
5321 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
5322 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
5323 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
5324 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
5325 
5326    	l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
5327 	l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
5328 	l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
5329  	l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
5330 	l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
5331 	l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
5332 	l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
5333 	l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
5334 
5335 BEGIN
5336 	EAM_PROCESS_WO_PUB.PROCESS_WO(
5337 		  p_bo_identifier		=> p_bo_identifier
5338 		, p_api_version_number		=> p_api_version_number
5339 		, p_init_msg_list		=> p_init_msg_list
5340 		, p_commit			=> p_commit
5341 		, p_eam_wo_rec			=> p_eam_wo_rec
5342 		, p_eam_op_tbl			=> p_eam_op_tbl
5343 		, p_eam_op_network_tbl		=> p_eam_op_network_tbl
5344 		, p_eam_res_tbl			=> p_eam_res_tbl
5345 		, p_eam_res_inst_tbl		=> p_eam_res_inst_tbl
5346 		, p_eam_sub_res_tbl		=> p_eam_sub_res_tbl
5347 		, p_eam_res_usage_tbl		=> p_eam_res_usage_tbl
5348 		, p_eam_mat_req_tbl		=> p_eam_mat_req_tbl
5349 		, p_eam_direct_items_tbl	=> p_eam_direct_items_tbl
5350 		, p_eam_wo_comp_rec		=> l_eam_wo_comp_rec
5351 		, p_eam_wo_quality_tbl		=> l_eam_wo_quality_tbl
5352 		, p_eam_meter_reading_tbl	=> l_eam_meter_reading_tbl
5353 		, p_eam_counter_prop_tbl	=> l_eam_counter_prop_tbl
5354 		, p_eam_wo_comp_rebuild_tbl	=> l_eam_wo_comp_rebuild_tbl
5355 		, p_eam_wo_comp_mr_read_tbl	=> l_eam_wo_comp_mr_read_tbl
5356 		, p_eam_op_comp_tbl		=> l_eam_op_comp_tbl
5357 		, p_eam_request_tbl		=> l_eam_request_tbl
5358 		, x_eam_wo_rec			=> x_eam_wo_rec
5359 		, x_eam_op_tbl			=> x_eam_op_tbl
5360 		, x_eam_op_network_tbl		=> x_eam_op_network_tbl
5361 		, x_eam_res_tbl			=> x_eam_res_tbl
5362 		, x_eam_res_inst_tbl		=> x_eam_res_inst_tbl
5363 		, x_eam_sub_res_tbl		=> x_eam_sub_res_tbl
5364 		, x_eam_res_usage_tbl		=> x_eam_res_usage_tbl
5365 		, x_eam_mat_req_tbl		=> x_eam_mat_req_tbl
5366 		, x_eam_direct_items_tbl	=> x_eam_direct_items_tbl
5367 		, x_eam_wo_comp_rec		=> l_out_eam_wo_comp_rec
5368 		, x_eam_wo_quality_tbl		=> l_out_eam_wo_quality_tbl
5369 		, x_eam_meter_reading_tbl	=> l_out_eam_meter_reading_tbl
5370 		, x_eam_counter_prop_tbl	=> l_out_eam_counter_prop_tbl
5371 		, x_eam_wo_comp_rebuild_tbl	=> l_out_eam_wo_comp_rebuild_tbl
5372 		, x_eam_wo_comp_mr_read_tbl	=> l_out_eam_wo_comp_mr_read_tbl
5373 		, x_eam_op_comp_tbl		=> l_out_eam_op_comp_tbl
5374 		, x_eam_request_tbl		=> l_out_eam_request_tbl
5375 		, x_return_status		=> x_return_status
5376 		, x_msg_count			=> x_msg_count
5377 		, p_debug			=> p_debug
5378 		, p_output_dir			=> p_output_dir
5379 		, p_debug_filename		=> p_debug_filename
5380 		, p_debug_file_mode		=> p_debug_file_mode
5381 
5382 	);
5383 
5384 
5385 END PROCESS_WO;
5386 
5387 
5388 
5389 
5390 
5391 PROCEDURE PROCESS_MASTER_CHILD_WO
5392         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
5393          , p_api_version_number      IN  NUMBER := 1.0
5394          , p_init_msg_list           IN  BOOLEAN := FALSE
5395          , p_eam_wo_relations_tbl    IN  EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
5396          , p_eam_wo_tbl              IN  EAM_PROCESS_WO_PUB.eam_wo_tbl_type
5397          , p_eam_op_tbl              IN  EAM_PROCESS_WO_PUB.eam_op_tbl_type
5398          , p_eam_op_network_tbl      IN  EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
5399          , p_eam_res_tbl             IN  EAM_PROCESS_WO_PUB.eam_res_tbl_type
5400          , p_eam_res_inst_tbl        IN  EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
5401          , p_eam_sub_res_tbl         IN  EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
5402          , p_eam_mat_req_tbl         IN  EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
5403          , p_eam_direct_items_tbl    IN  EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
5404          , x_eam_wo_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_tbl_type
5405          , x_eam_wo_relations_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_relations_tbl_type
5406          , x_eam_op_tbl              OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_tbl_type
5407          , x_eam_op_network_tbl      OUT NOCOPY EAM_PROCESS_WO_PUB.eam_op_network_tbl_type
5408          , x_eam_res_tbl             OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_tbl_type
5409          , x_eam_res_inst_tbl        OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_inst_tbl_type
5410          , x_eam_sub_res_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_sub_res_tbl_type
5411          , x_eam_mat_req_tbl         OUT NOCOPY EAM_PROCESS_WO_PUB.eam_mat_req_tbl_type
5412          , x_eam_direct_items_tbl    OUT NOCOPY EAM_PROCESS_WO_PUB.eam_direct_items_tbl_type
5413          , x_return_status           OUT NOCOPY VARCHAR2
5414          , x_msg_count               OUT NOCOPY NUMBER
5415          , p_commit                  IN  VARCHAR2 := 'N'
5416          , p_debug                   IN  VARCHAR2 := 'N'
5417          , p_output_dir              IN  VARCHAR2 := NULL
5418          , p_debug_filename          IN  VARCHAR2 := 'EAM_WO_DEBUG.log'
5419          , p_debug_file_mode         IN  VARCHAR2 := 'w'
5420          ) IS
5421 
5422         l_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
5423 
5424 	l_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
5425 	l_eam_wo_comp_tbl         EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
5426 	l_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
5427 	l_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
5428 	l_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
5429 	l_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
5430 	l_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
5431 	l_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
5432 	l_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
5433 
5434         l_out_eam_res_usage_tbl     EAM_PROCESS_WO_PUB.eam_res_usage_tbl_type;
5435 
5436 	l_out_eam_wo_comp_rec         EAM_PROCESS_WO_PUB.eam_wo_comp_rec_type;
5437 	l_out_eam_wo_comp_tbl         EAM_PROCESS_WO_PUB.eam_wo_comp_tbl_type;
5438 	l_out_eam_wo_quality_tbl      EAM_PROCESS_WO_PUB.eam_wo_quality_tbl_type;
5439 	l_out_eam_meter_reading_tbl   EAM_PROCESS_WO_PUB.eam_meter_reading_tbl_type;
5440 	l_out_eam_wo_comp_rebuild_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_rebuild_tbl_type;
5441 	l_out_eam_counter_prop_tbl    EAM_PROCESS_WO_PUB.eam_counter_prop_tbl_type;
5442 	l_out_eam_wo_comp_mr_read_tbl EAM_PROCESS_WO_PUB.eam_wo_comp_mr_read_tbl_type;
5443 	l_out_eam_op_comp_tbl         EAM_PROCESS_WO_PUB.eam_op_comp_tbl_type;
5444 	l_out_eam_request_tbl         EAM_PROCESS_WO_PUB.eam_request_tbl_type;
5445 
5446 BEGIN
5447 	 EAM_PROCESS_WO_PUB.PROCESS_MASTER_CHILD_WO
5448 	(   p_bo_identifier			=> p_bo_identifier
5449 	  , p_api_version_number		=> p_api_version_number
5450 	  , p_init_msg_list			=> p_init_msg_list
5451 	  , p_eam_wo_relations_tbl		=> p_eam_wo_relations_tbl
5452 	  , p_eam_wo_tbl			=> p_eam_wo_tbl
5453 	  , p_eam_op_tbl			=> p_eam_op_tbl
5454 	  , p_eam_op_network_tbl		=> p_eam_op_network_tbl
5455 	  , p_eam_res_tbl			=> p_eam_res_tbl
5456 	  , p_eam_res_inst_tbl			=> p_eam_res_inst_tbl
5457 	  , p_eam_sub_res_tbl			=> p_eam_sub_res_tbl
5458 	  , p_eam_mat_req_tbl			=> p_eam_mat_req_tbl
5459 	  , p_eam_direct_items_tbl		=> p_eam_direct_items_tbl
5460 	  , p_eam_res_usage_tbl			=> l_eam_res_usage_tbl
5461 	  , p_eam_wo_comp_tbl			=> l_eam_wo_comp_tbl
5462 	  , p_eam_wo_quality_tbl      		=> l_eam_wo_quality_tbl
5463 	  , p_eam_meter_reading_tbl   		=> l_eam_meter_reading_tbl
5464 	  , p_eam_counter_prop_tbl    		=> l_eam_counter_prop_tbl
5465 	  , p_eam_wo_comp_rebuild_tbl 		=> l_eam_wo_comp_rebuild_tbl
5466 	  , p_eam_wo_comp_mr_read_tbl 		=> l_eam_wo_comp_mr_read_tbl
5467 	  , p_eam_op_comp_tbl         		=> l_eam_op_comp_tbl
5468 	  , p_eam_request_tbl         		=> l_eam_request_tbl
5469 	  , x_eam_wo_tbl              		=> x_eam_wo_tbl
5470 	  , x_eam_wo_relations_tbl    		=> x_eam_wo_relations_tbl
5471 	  , x_eam_op_tbl              		=> x_eam_op_tbl
5472 	  , x_eam_op_network_tbl      		=> x_eam_op_network_tbl
5473 	  , x_eam_res_tbl             		=> x_eam_res_tbl
5474 	  , x_eam_res_inst_tbl			=> x_eam_res_inst_tbl
5475 	  , x_eam_sub_res_tbl         		=> x_eam_sub_res_tbl
5476 	  , x_eam_mat_req_tbl         		=> x_eam_mat_req_tbl
5477 	  , x_eam_direct_items_tbl    		=> x_eam_direct_items_tbl
5478 	  , x_eam_res_usage_tbl       		=> l_out_eam_res_usage_tbl
5479 	  , x_eam_wo_comp_tbl         		=> l_out_eam_wo_comp_tbl
5480 	  , x_eam_wo_quality_tbl      		=> l_out_eam_wo_quality_tbl
5481 	  , x_eam_meter_reading_tbl   		=> l_out_eam_meter_reading_tbl
5482 	  , x_eam_counter_prop_tbl    		=> l_out_eam_counter_prop_tbl
5483 	  , x_eam_wo_comp_rebuild_tbl 		=> l_out_eam_wo_comp_rebuild_tbl
5484 	  , x_eam_wo_comp_mr_read_tbl 		=> l_out_eam_wo_comp_mr_read_tbl
5485 	  , x_eam_op_comp_tbl         		=> l_out_eam_op_comp_tbl
5486 	  , x_eam_request_tbl         		=> l_out_eam_request_tbl
5487 	  , x_return_status			=> x_return_status
5488 	  , x_msg_count               		=> x_msg_count
5489 	  , p_commit                  		=> p_commit
5490 	  , p_debug                   		=> p_debug
5491 	  , p_output_dir              		=> p_output_dir
5492 	  , p_debug_filename          		=> p_debug_filename
5493 	  , p_debug_file_mode         		=> p_debug_file_mode
5494 	);
5495 
5496 
5497 END PROCESS_MASTER_CHILD_WO;
5498 
5499 
5500 END EAM_PROCESS_WO_PUB;