Forum Stats

  • 3,733,981 Users
  • 2,246,853 Discussions
  • 7,856,964 Comments

Discussions

REPORT_OBJECT_STATUS : No return id and empty status when running report from forms 12c 12.2.1.4

PrathameshPitale
PrathameshPitale Member Posts: 57 Blue Ribbon
edited April 12 in Forms

Hi,

I have installed oracle forms & reports 12c 12.2.1.4 on windows 10 with DB 12c Standard Edition.

I am able to run Reports using URL

for Eg : http://localhost:9002/reports/rwservlet?report=h:\rptinvoice.rdf&destype=cache&desformat=pdf

The Job run using this URL can be confirmed using

http://localhost:9002/reports/rwservlet/showmyjobs


I have problem running Report from Oracle Forms (The code I am using was running in 11g). I googled and found the code to run report has no change.

Whenever I try to run a report from oracle forms REPORT_OBJECT_STATUS returns nothing and no error is thrown. (Cannot find the jobid)

I have gone through many threads and did the necessary changes in

  1. rwservlet.properties
  2. default.env
  3. rwbuilder.conf

I have also set COMPONENT_CONFIG_PATH in default.env with reptools1

Running http://hostname:9002/reports/rwservlet/startserver returns 1|0.


Can you please guide what is missing with my configuration?

Below is the content of files

Rwbuilder.conf


<?xml version = '1.0' encoding = 'ISO-8859-1'?>

<server  

    xmlns="http://xmlns.oracle.com/reports/server"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://xmlns.oracle.com/reports/server" 

  >

  

  <cache class="oracle.reports.cache.RWCache">

   <property name="cacheSize" value="50"/>

   <!--property name="cacheDir" value="your cache directory"/-->

   <!--property name="maxCacheFileNumber" value="max number of cache files"/-->

  </cache>

  <!--Please do not change the id for reports engine.-->

  <!--The class specifies below is subclass of _EngineClassImplBase and implements EngineInterface.-->

  <engine id="rwEng" class="oracle.reports.engine.EngineImpl" maxEngine="1" minEngine="0" engLife="50" >

   <!--property name="sourceDir" value="your reports source directory"/-->

   <!--property name="tempDir" value="your reports temp directory"/-->

   <!--property name="keepConnection" value="yes"/-->

  </engine>

  <engine id="rwURLEng" class="oracle.reports.urlengine.URLEngineImpl" maxEngine="1" minEngine="0" engLife="50" />

  <!--security id="rwJaznSec" class="oracle.reports.server.RWJAZNSecurity"/-->

   <!--destination destype="oraclePortal" class="oracle.reports.server.DesOraclePortal">

      <property name="portalUserid" value="%PORTAL_DB_USERNAME%/%PORTAL_DB_PASSWORD%@%PORTAL_DB_TNSNAME%" encrypted="no"/>

  </destination-->

  

  <!--security id="rwSec" class="oracle.reports.server.RWSecurity">

  </security-->

  

  <destination destype="ftp" class="oracle.reports.plugin.destination.ftp.DesFTP"/>

  <destination destype="WebDav" class="oracle.reports.plugin.destination.webdav.DesWebDAV"/>

 

  <job jobType="report" engineId="rwEng" />

  <job jobType="rwurl" engineId="rwURLEng"/>

  <notification id="mailNotify" class="oracle.reports.server.MailNotify">

   <property name="succnotefile" value="succnote.txt"/>

   <property name="failnotefile" value="failnote.txt"/>

  </notification>

  <!--notification id="wfNotify" class="oracle.reports.server.WorkflowNotify">

   <property name="connStr" value="%WF_DB_USERNAME%/%WF_DB_PASSWORD%@%WF_DB_TNSNAME%" encrypted="no"/>

  </notification-->

  <!--jobStatusRepository class="oracle.reports.server.JobRepositoryDB">

   <property name="repositoryConn" value="repo_db_username/[email protected]_db_tnsname" encrypted="no"/>

  </jobStatusRepository-->

  

  <connection maxConnect="50" idleTimeOut="15">

  </connection>

  <queue maxQueueSize="1000"/>

  <!--jobRecovery auxDatFiles="yes"/-->

  <proxyInfo>

   <proxyServers>

    <proxyServer name="$$Self.proxyHost$$" port="$$Self.proxyPort$$" protocol="all"/>

   </proxyServers>

   <bypassProxy>

   <domain>$$Self.proxyByPass$$</domain>

   </bypassProxy>

  </proxyInfo>

  <pluginParam name="mailServer" value="%MAILSERVER_NAME%">

   <!--property name="enableSSL" value="yes"/-->

  </pluginParam>

  <webLayout port="$$Self.OHSPort$$" />

</server>


rwservlet.properties

<rwservlet  xmlns="http://xmlns.oracle.com/reports/rwservlet"             xmlns:xsd="http://www.w3.org/2001/XMLSchema">


  <!--server>$$Self.inProcessServerName$$</server-->

  <server>rep_wls_reports_win-r32kk2btfn1</server>

  

  <singlesignon>yes</singlesignon>

  

  <inprocess>yes</inprocess>

  

  <!--reports_servermap></reports_servermap-->


  <!--cookie cookieexpire="30" 

encryptionkey="reports9i" /--> 

  

  <!--defaultcharset></defaultcharset-->


  <webcommandaccess>L2</webcommandaccess>

    

  <!--allowhtmltags>yes</allowhtmltags-->

  

  <!--helpurl>yes</helpurl-->

  

  <!--dbauth>rwdbauth.htm</dbauth-->

  

  <!--sysauth>rwsysauth.htm</sysauth-->

  

  <!--errortemplate>rwerror.htm</errortemplate-->

  

  <!--diagtags diagbodytags="reports_servlet_help_file_title" diagheadtags="reports_servlet_help_file_body_tag"/-->

  

  <!--cluster clustername="ascluster" clusternodes="rep_strep12_two"/-->

  

  <!--oidconnection oidcon_appentity="$$Self.oidAppEntity$$" oidcon_url="$$Self.oidUrl$$" oidcon_passwdkey="$$Self.oidPasswdKey$$"/-->


  <!--allowauthid>yes</allowauthid-->

</rwservlet>



default.env

# default.env - default Forms environment file, Windows version

#

# This file is used to set the Forms runtime environment parameters.

# If a parameter is not defined here, the value used will be that defined

# in the environment in which the WLS Managed Server was started.

#

# NOTES

#  Configuration assistant will replace all the macro's with

#  the actual values.

#

 ORACLE_HOME=%ORACLE_HOME%

 FORMS_INSTANCE=%FORMS_INSTANCE%


 #

 # TNS Entry to locate the database

 #

 TNS_ADMIN=%DOMAIN_HOME%\config\fmwconfig


 #

 # Search path for Forms applications (.fmx files, PL/SQL libraries)

 #

 FORMS_PATH=%ORACLE_HOME%\forms;%FORMS_INSTANCE%;n:\;p:\


 #

 # Disable/modify this variable if users need to be able to run Forms

 # applications residing in a different location.

 #

 FORMS_MODULE_PATH=%FORMS_PATH%


 #

 # Webutil config file path

 #

 WEBUTIL_CONFIG=%FORMS_INSTANCE%\server\webutil.cfg


 #

 # Disable/remove this variable if end-users need access to the query-where

 # functionality which potentially allows them to enter arbitrary SQL

 # statements when in enter-query mode.

 #

 FORMS_RESTRICT_ENTER_QUERY=TRUE


 #

 # Java class path

 #  This is required for the Forms debugger

 #  You can append your own Java code here)

 #

 # frmsrv.jar, frmconfig.jar and ldapjclnt11.jar are required for

 # the password expiry feature to work(#2213140).

 #

 CLASSPATH=%ORACLE_HOME%\jlib\frmbipc.jar;%ORACLE_HOME%\forms\j2ee\frmsrv.jar;%ORACLE_HOME%\forms\provision\frmconfig.jar;%ORACLE_HOME%\jlib\ldapjclnt11.jar;%ORACLE_HOME%\jlib\debugger.jar;%ORACLE_HOME%\oracle_common\jlib\ewt3.jar;%ORACLE_HOME%\oracle_common\modules\oracle.bali.share\share.jar;%ORACLE_HOME%\jlib\utj.jar;%ORACLE_HOME%\jlib\zrclient.jar;%ORACLE_HOME%\reports\jlib\rwrun.jar;%ORACLE_HOME%\forms\java\frmwebutil.jar


 #

 # The PATH setting is required in order to pick up the JVM (jvm.dll and

 # java.exe).

 # Since PATH is being set, it needs to also include

 # %ORACLE_HOME%\bin so relevant files are correctly found.

 #

 PATH=%ORACLE_HOME%\bin;%JAVA_HOME%\jre\bin\client;%JAVA_HOME%\bin


 #

 # Settings for Forms tracing and logging

 # -----------------------------------------------

 # Note: By default tracing and logging directory is

 # FORMS_INSTANCE\trace

 # To change the trace directory this entry has to be uncommented and set to

 # desired directory for tracing and logging

 #


  #FORMS_TRACE_DIR=%FORMS_INSTANCE%\trace


 #

 # Settings for Javascript events

 # -----------------------------------------------

 # Note: If this variable is set to false then the triggers and

 # built-ins associated with javascript events are disabled

 #


  #FORMS_ALLOW_JAVASCRIPT_EVENTS=



 #

 # System settings

 # ---------------

 # You should not normally need to modify these settings

 #

 FORMS=%ORACLE_HOME%\forms


 #

 # Setting for Reports Integration

 # -----------------------------------------------

 # Note: To invoke Oracle Reports, reports tools config path shall be 

 # specified. To specify reports tools config path COMPONENT_CONFIG_PATH need

 # to be set as (where <reports_tools_component_name> is replaced with 

 # targeted reports tools component name):

  #COMPONENT_CONFIG_PATH=%DOMAIN_HOME%\config\fmwconfig\components\ReportsToolsComponent\reptools1



Program Unit to call my report (it is customized and well tested in oracle forms 11g)

PROCEDURE REPORT_PARAMETER_M

ULTIPLE(REPORT_NAME IN VARCHAR2,REPORT_TBL IN REPORT_TBL) IS

p_id PARAMLIST;

repid REPORT_OBJECT;

v_rep VARCHAR(200);

rep_status VARCHAR2(20);

rep_job_id NUMBER(20);


BEGIN

p_id:=GET_PARAMETER_LIST('tempdata');

IF NOT ID_NULL(p_id) THEN

DESTROY_PARAMETER_LIST(p_id);

END IF;

p_id:=CREATE_PARAMETER_LIST('tempdata');

FOR R IN (SELECT COL_NAME,COL_VAL FROM TABLE(REPORT_TBL)) 

 LOOP

   ADD_PARAMETER(p_id,R.COL_NAME,TEXT_PARAMETER,R.COL_VAL);

 END LOOP;

ADD_PARAMETER(p_id,'PARAMFORM',TEXT_PARAMETER,'NO');

repid := find_report_object('MYREPORT');

 --------Set following properties as a DB Report properties in object navigator -------


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,:GLOBAL.REPORT_TYPE);

SET_REPORT_OBJECT_PROPERTY(REPID,REPORT_SERVER,:GLOBAL.SERVER_NAME);

SET_REPORT_OBJECT_PROPERTY(REPID,REPORT_FILENAME,REPORT_NAME);

show_errormessage(:GLOBAL.SERVER_NAME||' -> 2');

v_rep := RUN_REPORT_OBJECT(repid,p_id);

if v_rep=null then

message('Report not found.');

end if;

rep_status:=REPORT_OBJECT_STATUS(v_rep);

show_errormessage(rep_status||' -> 1');

show_errormessage(:GLOBAL.SERVER_URL||rep_job_id||'?server='||:GLOBAL.SERVER_NAME);

rep_job_id:=substr(v_rep,instr(v_rep,'_',-1)+1);

IF rep_status = 'FINISHED' THEN

WEB.SHOW_DOCUMENT(:GLOBAL.SERVER_URL||rep_job_id||'?server='||:GLOBAL.SERVER_NAME,:GLOBAL.TARGET);

ELSE

message('Report Error'||rep_status);

END IF;

END;


Answers

Sign In or Register to comment.