Como migrar Reports6i to Reports9i (9iAS)
Hola colegas, tengo problemas al utilizar el comando Run_Product, en la llamada a un reporte desde una forma.
Estoy migrando una aplicacion desarrollada en Forms6i y Reports6i hacia 9iAS (Forms Services y Report Services), he compilado la forma de 6i a 9i y corre sin problema pero cuando llama al reporte me dice que run_product ya no esta soportado sino run_report_object.
Bien, ahora la llamada al reporte se la realiza a traves una libreria en la cual existe un trigger con el siguiente comando:
Run_Product(REPORTS, path_reporte||'\'|| nombre_reporte, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, null);
Como hacer para cambiar a nivel de este trigger el comando run_product por run_report_object?
Gracias por la ayuda
Estoy migrando una aplicacion desarrollada en Forms6i y Reports6i hacia 9iAS (Forms Services y Report Services), he compilado la forma de 6i a 9i y corre sin problema pero cuando llama al reporte me dice que run_product ya no esta soportado sino run_report_object.
Bien, ahora la llamada al reporte se la realiza a traves una libreria en la cual existe un trigger con el siguiente comando:
Run_Product(REPORTS, path_reporte||'\'|| nombre_reporte, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, null);
Como hacer para cambiar a nivel de este trigger el comando run_product por run_report_object?
Gracias por la ayuda
Hola.
Segun Oracle Metalink lo que debes hacer es:
RUN_PRODUCT replaced with RUN_REPORT_OBJECT
Espero que te sirva.
Saludos
Fernando
Segun Oracle Metalink lo que debes hacer es:
RUN_PRODUCT replaced with RUN_REPORT_OBJECT
Espero que te sirva.
Saludos
Fernando
Tienes que incluir el siguiente código:
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status Varchar2(20);
BEGIN
repid := find_report_object(nombre del reporte);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'pdf');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,nombre_del_report_server);
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := report_object_status(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
rep_status := report_object_status(v_rep);
END LOOP;
if rep_status = 'FINISHED' then
WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver90','_blank');
else
error reporte no encontrado
end if;
END;
Además tienes que crear el report server con el comando
"rwserver - install nombre_del_servicio autostart=yes
El nombre del report server tiene que ser el mismo del que usas en el código que te indique antes.
Tienes que adicionar el reporte que quieres correr en los objetos tipo REPORT del formulario y tienes que darle el mismo nombre.
Debes tener en consideración que el report server que instalas debe ser el único en la red para evitar terribles confusiones.
Si tienes alguna duda estare gustoso en ayudarte.
Saludos
Carlos.
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status Varchar2(20);
BEGIN
repid := find_report_object(nombre del reporte);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'pdf');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,nombre_del_report_server);
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := report_object_status(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
rep_status := report_object_status(v_rep);
END LOOP;
if rep_status = 'FINISHED' then
WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver90','_blank');
else
error reporte no encontrado
end if;
END;
Además tienes que crear el report server con el comando
"rwserver - install nombre_del_servicio autostart=yes
El nombre del report server tiene que ser el mismo del que usas en el código que te indique antes.
Tienes que adicionar el reporte que quieres correr en los objetos tipo REPORT del formulario y tienes que darle el mismo nombre.
Debes tener en consideración que el report server que instalas debe ser el único en la red para evitar terribles confusiones.
Si tienes alguna duda estare gustoso en ayudarte.
Saludos
Carlos.
