41:
42:
43: BEGIN
44:
45: pnp_debug_pkg.log('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM (+)');
46:
47: l_info := 'Initializing counters ';
48: pnp_debug_pkg.log(l_info);
49:
44:
45: pnp_debug_pkg.log('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM (+)');
46:
47: l_info := 'Initializing counters ';
48: pnp_debug_pkg.log(l_info);
49:
50: l_count_lines := 0;
51: l_count_success := 0;
52: l_count_failure := 0;
51: l_count_success := 0;
52: l_count_failure := 0;
53:
54: l_info := 'Checking for EAM installation ';
55: pnp_debug_pkg.log(l_info);
56:
57: IF fnd_installation.get (
58: appl_id => 426,
59: dep_appl_id => 426,
63: null;
64: END IF;
65:
66: IF (l_installation_status not in ('I','S')) THEN
67: pnp_debug_pkg.log('EAM is not installed ...');
68: RETURN;
69: END IF;
70:
71: l_cursor := dbms_sql.open_cursor;
80: || ''''||TO_DATE('31/12/4712','DD/MM/YYYY') || ''''
81: ||')';
82:
83: l_info := 'Figuring location type lookup code ';
84: pnp_debug_pkg.log(l_info);
85:
86: IF p_locn_type IS NOT NULL THEN
87: l_locn_type := p_locn_type;
88: l_query :=
90:
91: END IF;
92:
93: l_info := 'Figuring location code ';
94: pnp_debug_pkg.log(l_info);
95:
96: IF p_locn_code_from IS NOT NULL AND p_locn_code_to IS NOT NULL THEN
97: l_locn_code_from := p_locn_code_from;
98: l_locn_code_to := p_locn_code_to;
123: END IF;
124:
125: l_query := l_query || ' ORDER BY location_id ';
126: l_info := 'Figuring out the max id number in the mtl_eam_asset_num_interface ';
127: pnp_debug_pkg.log(l_info);
128:
129: dbms_sql.parse(l_cursor, l_query, dbms_sql.native);
130:
131: IF p_locn_type IS NOT NULL THEN
171:
172: l_process_flag := TRUE;
173: l_count_lines := l_count_lines + 1;
174:
175: pnp_debug_pkg.put_log_msg('*******************************************************************************');
176:
177: fnd_message.set_name ('PN','PN_XPEAM_SLNO');
178: fnd_message.set_token ('SL_NO', to_char(l_count_lines));
179: l_message := fnd_message.get;
176:
177: fnd_message.set_name ('PN','PN_XPEAM_SLNO');
178: fnd_message.set_token ('SL_NO', to_char(l_count_lines));
179: l_message := fnd_message.get;
180: pnp_debug_pkg.put_log_msg(l_message);
181:
182: fnd_message.set_name ('PN','PN_XPEAM_PROC');
183: fnd_message.set_token ('LOC_CODE',location_rec.location_code);
184: fnd_message.set_token ('ST_DATE',location_rec.active_start_date);
183: fnd_message.set_token ('LOC_CODE',location_rec.location_code);
184: fnd_message.set_token ('ST_DATE',location_rec.active_start_date);
185: fnd_message.set_token ('END_DATE',NVL(location_rec.active_end_date,TO_DATE('31/12/4712','DD/MM/YYYY')));
186: l_message := fnd_message.get;
187: pnp_debug_pkg.put_log_msg(l_message);
188:
189: l_info := 'Calling EAM API to validate data ';
190: pnp_debug_pkg.log(l_info);
191:
186: l_message := fnd_message.get;
187: pnp_debug_pkg.put_log_msg(l_message);
188:
189: l_info := 'Calling EAM API to validate data ';
190: pnp_debug_pkg.log(l_info);
191:
192: BEGIN
193: pnp_debug_pkg.log('EAM_PN_EXTRACTION_PUB.PN_EAM_EXPORT_MODE (+)');
194:
189: l_info := 'Calling EAM API to validate data ';
190: pnp_debug_pkg.log(l_info);
191:
192: BEGIN
193: pnp_debug_pkg.log('EAM_PN_EXTRACTION_PUB.PN_EAM_EXPORT_MODE (+)');
194:
195: eam_pn_extraction_pub.pn_eam_export_mode(
196: p_api_version => 1.0,
197: p_pn_location_id => location_rec.location_id,
203: x_insert_status => l_insert_status,
204: x_return_status => l_return_status,
205: x_msg_count => l_msg_count,
206: x_msg_data => l_msg_data);
207: pnp_debug_pkg.log('EAM_PN_EXTRACTION_PUB.PN_EAM_EXPORT_MODE (-)');
208: EXCEPTION
209: WHEN OTHERS THEN
210: l_process_flag := FALSE;
211: l_count_failure := l_count_failure + 1;
208: EXCEPTION
209: WHEN OTHERS THEN
210: l_process_flag := FALSE;
211: l_count_failure := l_count_failure + 1;
212: pnp_debug_pkg.put_log_msg('Failure Number: ('||to_char(l_count_failure) ||')'||
213: 'Error while calling EAM API for location :'||location_rec.location_code);
214: END;
215:
216: IF l_insert = 1 AND l_process_flag THEN
215:
216: IF l_insert = 1 AND l_process_flag THEN
217:
218: l_info := 'Figuring out how location code maps to serial number ';
219: pnp_debug_pkg.log(l_info);
220:
221: IF LENGTH(location_rec.location_code) > 30 THEN
222: l_serial_num := SUBSTR(location_rec.location_code, 1, 20) ||
223: SUBSTR(TO_CHAR(location_rec.location_id),1,10);
229:
230: fnd_message.set_name ('PN','PN_XPEAM_INS');
231: fnd_message.set_token ('TBL', 'MTL_EAM_ASSET_NUM_INTERFACE');
232: l_message := fnd_message.get;
233: pnp_debug_pkg.put_log_msg(l_message);
234:
235:
236: BEGIN
237:
236: BEGIN
237:
238: fnd_message.set_name ('PN','PN_XPEAM_INSERTING');
239: l_message := '*** '||fnd_message.get||' ...';
240: pnp_debug_pkg.put_log_msg(l_message);
241:
242:
243: INSERT INTO mtl_eam_asset_num_interface(
244: inventory_item_id,
288:
289: fnd_message.set_name ('PN','PN_XPEAM_LOC');
290: fnd_message.set_token ('LOC_CODE', TO_CHAR(l_serial_num));
291: l_message := fnd_message.get;
292: pnp_debug_pkg.put_log_msg(l_message);
293:
294: fnd_message.set_name ('PN','PN_XPEAM_INV_ID');
295: fnd_message.set_token ('INV_ID', TO_CHAR(p_inventory_item_id));
296: l_message := fnd_message.get;
293:
294: fnd_message.set_name ('PN','PN_XPEAM_INV_ID');
295: fnd_message.set_token ('INV_ID', TO_CHAR(p_inventory_item_id));
296: l_message := fnd_message.get;
297: pnp_debug_pkg.put_log_msg(l_message);
298:
299: fnd_message.set_name ('PN','PN_XPEAM_IMP_MODE');
300: fnd_message.set_token ('IMP_MODE', TO_CHAR(l_insert_mode));
301: l_message := fnd_message.get;
298:
299: fnd_message.set_name ('PN','PN_XPEAM_IMP_MODE');
300: fnd_message.set_token ('IMP_MODE', TO_CHAR(l_insert_mode));
301: l_message := fnd_message.get;
302: pnp_debug_pkg.put_log_msg(l_message);
303:
304: fnd_message.set_name ('PN','PN_XPEAM_CUR_STATUS');
305: fnd_message.set_token ('CUR_STATUS', TO_CHAR(l_insert_status));
306: l_message := fnd_message.get;
303:
304: fnd_message.set_name ('PN','PN_XPEAM_CUR_STATUS');
305: fnd_message.set_token ('CUR_STATUS', TO_CHAR(l_insert_status));
306: l_message := fnd_message.get;
307: pnp_debug_pkg.put_log_msg(l_message);
308:
309: pnp_debug_pkg.log( 'Batch ID: ' || to_char(p_inventory_item_id));
310:
311: fnd_message.set_name ('PN','PN_XPEAM_BNAME');
305: fnd_message.set_token ('CUR_STATUS', TO_CHAR(l_insert_status));
306: l_message := fnd_message.get;
307: pnp_debug_pkg.put_log_msg(l_message);
308:
309: pnp_debug_pkg.log( 'Batch ID: ' || to_char(p_inventory_item_id));
310:
311: fnd_message.set_name ('PN','PN_XPEAM_BNAME');
312: fnd_message.set_token ('BNAME', TO_CHAR(p_batch_name));
313: l_message := fnd_message.get;
310:
311: fnd_message.set_name ('PN','PN_XPEAM_BNAME');
312: fnd_message.set_token ('BNAME', TO_CHAR(p_batch_name));
313: l_message := fnd_message.get;
314: pnp_debug_pkg.put_log_msg(l_message);
315:
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
312: fnd_message.set_token ('BNAME', TO_CHAR(p_batch_name));
313: l_message := fnd_message.get;
314: pnp_debug_pkg.put_log_msg(l_message);
315:
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
319: pnp_debug_pkg.log( 'Process Flag: ' || to_char('P'));
320: pnp_debug_pkg.log( 'Maintainable Flag: ' || to_char('Y'));
313: l_message := fnd_message.get;
314: pnp_debug_pkg.put_log_msg(l_message);
315:
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
319: pnp_debug_pkg.log( 'Process Flag: ' || to_char('P'));
320: pnp_debug_pkg.log( 'Maintainable Flag: ' || to_char('Y'));
321: l_count_success := l_count_success + 1;
314: pnp_debug_pkg.put_log_msg(l_message);
315:
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
319: pnp_debug_pkg.log( 'Process Flag: ' || to_char('P'));
320: pnp_debug_pkg.log( 'Maintainable Flag: ' || to_char('Y'));
321: l_count_success := l_count_success + 1;
322:
315:
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
319: pnp_debug_pkg.log( 'Process Flag: ' || to_char('P'));
320: pnp_debug_pkg.log( 'Maintainable Flag: ' || to_char('Y'));
321: l_count_success := l_count_success + 1;
322:
323: fnd_message.set_name ('PN','PN_XPEAM_PROC_LINE');
316: pnp_debug_pkg.log( 'Current Organization ID: ' || to_char(p_organization_id));
317: pnp_debug_pkg.log( 'Owning Department ID: ' || to_char(p_owning_department_id));
318: pnp_debug_pkg.log( 'PN Location ID: ' || to_char(location_rec.location_id));
319: pnp_debug_pkg.log( 'Process Flag: ' || to_char('P'));
320: pnp_debug_pkg.log( 'Maintainable Flag: ' || to_char('Y'));
321: l_count_success := l_count_success + 1;
322:
323: fnd_message.set_name ('PN','PN_XPEAM_PROC_LINE');
324: fnd_message.set_token ('LNO', TO_CHAR(l_count_success));
322:
323: fnd_message.set_name ('PN','PN_XPEAM_PROC_LINE');
324: fnd_message.set_token ('LNO', TO_CHAR(l_count_success));
325: l_message := fnd_message.get;
326: pnp_debug_pkg.put_log_msg(l_message);
327:
328: fnd_message.set_name ('PN','PN_XPEAM_INSERTED');
329: l_message := fnd_message.get;
330: pnp_debug_pkg.put_log_msg('*** '||l_message||' ...');
326: pnp_debug_pkg.put_log_msg(l_message);
327:
328: fnd_message.set_name ('PN','PN_XPEAM_INSERTED');
329: l_message := fnd_message.get;
330: pnp_debug_pkg.put_log_msg('*** '||l_message||' ...');
331:
332: l_info := 'Doing batch commit after every 100 INSERT ';
333: IF MOD(l_count_success, 100) = 0 THEN
334: commit;
331:
332: l_info := 'Doing batch commit after every 100 INSERT ';
333: IF MOD(l_count_success, 100) = 0 THEN
334: commit;
335: pnp_debug_pkg.log(l_info);
336: END IF;
337:
338: EXCEPTION
339: WHEN OTHERS THEN
340: l_count_failure := l_count_failure + 1;
341: fnd_message.set_name ('PN','PN_XPEAM_ERR_LINES');
342: fnd_message.set_token ('ER_LNO', TO_CHAR(l_count_failure));
343: l_message := fnd_message.get;
344: pnp_debug_pkg.put_log_msg(l_message);
345: END;
346:
347: ELSE
348: l_count_failure := l_count_failure + 1;
348: l_count_failure := l_count_failure + 1;
349: fnd_message.set_name ('PN','PN_XPEAM_ERR_LINES');
350: fnd_message.set_token ('PRO_LNO', TO_CHAR(l_count_failure));
351: l_message := fnd_message.get;
352: pnp_debug_pkg.put_log_msg(l_message);
353: END IF;
354:
355: END LOOP;
356:
358: dbms_sql.close_cursor (l_cursor);
359: END IF;
360:
361:
362: pnp_debug_pkg.put_log_msg('===========================================================================');
363: fnd_message.set_name ('PN','PN_XPEAM_PROC_LN');
364: fnd_message.set_token ('PR_LNO', TO_CHAR(l_count_lines));
365: l_message := fnd_message.get;
366: pnp_debug_pkg.put_log_msg(l_message);
362: pnp_debug_pkg.put_log_msg('===========================================================================');
363: fnd_message.set_name ('PN','PN_XPEAM_PROC_LN');
364: fnd_message.set_token ('PR_LNO', TO_CHAR(l_count_lines));
365: l_message := fnd_message.get;
366: pnp_debug_pkg.put_log_msg(l_message);
367:
368: fnd_message.set_name ('PN','PN_XPEAM_SUCS_LN');
369: fnd_message.set_token ('SUC_LNO', TO_CHAR(l_count_success));
370: l_message := fnd_message.get;
367:
368: fnd_message.set_name ('PN','PN_XPEAM_SUCS_LN');
369: fnd_message.set_token ('SUC_LNO', TO_CHAR(l_count_success));
370: l_message := fnd_message.get;
371: pnp_debug_pkg.put_log_msg(l_message);
372:
373: fnd_message.set_name ('PN','PN_XPEAM_FAIL_LN');
374: fnd_message.set_token ('FAIL_LNO', TO_CHAR(l_count_failure));
375: l_message := fnd_message.get;
372:
373: fnd_message.set_name ('PN','PN_XPEAM_FAIL_LN');
374: fnd_message.set_token ('FAIL_LNO', TO_CHAR(l_count_failure));
375: l_message := fnd_message.get;
376: pnp_debug_pkg.put_log_msg(l_message);
377: pnp_debug_pkg.put_log_msg('===========================================================================');
378:
379: pnp_debug_pkg.log('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM (-)');
380:
373: fnd_message.set_name ('PN','PN_XPEAM_FAIL_LN');
374: fnd_message.set_token ('FAIL_LNO', TO_CHAR(l_count_failure));
375: l_message := fnd_message.get;
376: pnp_debug_pkg.put_log_msg(l_message);
377: pnp_debug_pkg.put_log_msg('===========================================================================');
378:
379: pnp_debug_pkg.log('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM (-)');
380:
381: EXCEPTION
375: l_message := fnd_message.get;
376: pnp_debug_pkg.put_log_msg(l_message);
377: pnp_debug_pkg.put_log_msg('===========================================================================');
378:
379: pnp_debug_pkg.log('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM (-)');
380:
381: EXCEPTION
382: WHEN OTHERS THEN
383:
380:
381: EXCEPTION
382: WHEN OTHERS THEN
383:
384: pnp_debug_pkg.put_log_msg('PN_EXP_TO_EAM_PVT.EXPORT_LOCATION_TO_EAM : Error while ' || l_info);
385: raise;
386:
387: END export_location_to_eam;
388: