Skip to Main Content

Oracle Forms

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

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

PrathameshPitaleApr 11 2021 — edited Apr 12 2021

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
rwservlet.properties
default.env
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/repo_db_password@repo_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;
x5.png (3.44 KB)x4.png (73.66 KB)x3.png (45.53 KB)x2.png (10.61 KB)x1.png (44.42 KB)

Comments

Post Details

Added on Apr 11 2021
1 comment
1,230 views