14 de diciembre de 2012
Oracle eBs: Código para esperar a que termine una solicitud (concurrent) - Oracle eBS apps
Algunas cando realizamos desarrollos Oracle en e-Business Suite veces en nuestros programas necesitamos lanzar alguna solicitud pero es necesario esperar para ver como termina.
Aquí os adjuntamos un código para solucionarlo.
BEGIN
fnd_file.put_line (fnd_file.output,
'*** Call The XXXX Import Program ***');
fnd_global.apps_initialize (
user_id => fnd_profile.VALUE ('USER_ID'),
resp_id => fnd_profile.VALUE ('RESP_ID'),
resp_appl_id => fnd_profile.VALUE ('RESP_APPL_ID'),
security_group_id => 0);
fnd_file.put_line (fnd_file.LOG, 'Batch ID:' || ln_group_id);
ln_req_id :=
fnd_request.submit_request ('--', -- Sustituir por el codigo de la aplicacion
'----',---Sustituir por SHORT CODE de nuestro programa
NULL,
SYSDATE,
FALSE,
'BATCH',
ln_group_id);
COMMIT;
IF ln_req_id = 0
THEN
fnd_file.put_line (
fnd_file.LOG,
'Error al ejecutar "' || fnd_message.get || '".');
ELSE
fnd_file.put_line (
fnd_file.LOG,
'El programa se generó correctamente. Solicitud id :' || ln_req_id);
END IF;
IF ln_req_id > 0
THEN
LOOP
lv_req_return_status :=
fnd_concurrent.wait_for_request (ln_req_id,
60,
0,
lv_req_phase,
lv_req_status,
lv_req_dev_phase,
lv_req_dev_status,
lv_req_message);
EXIT WHEN UPPER (lv_req_phase) = 'COMPLETED'
OR UPPER (lv_req_status) IN
('CANCELLED', 'ERROR', 'TERMINATED');
END LOOP;
IF UPPER (lv_req_phase) = 'COMPLETED'
AND UPPER (lv_req_status) = 'ERROR'
THEN
fnd_file.put_line (
fnd_file.LOG,
'El programa termino con error. Ver el log para el request_id');
fnd_file.put_line (fnd_file.LOG, SQLERRM);
ELSIF UPPER (lv_req_phase) = 'COMPLETED'
AND UPPER (lv_req_status) = 'NORMAL'
THEN
Fnd_File.PUT_LINE (
Fnd_File.LOG,
'El programa terminó correctamente. Id de la solicitud: '
|| ln_req_id);
ELSE
Fnd_File.PUT_LINE (
Fnd_File.LOG,
'Error en el programa ');
Fnd_File.PUT_LINE (Fnd_File.LOG, SQLERRM);
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (
fnd_file.LOG,
'WHEN OTHERS ERROR: '
|| SQLERRM);
END;
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario