[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;