Re: [ADF EMG] OraFormsFaces Alternatives?

825 views
Skip to first unread message

Aziz Acar

unread,
Sep 18, 2012, 11:02:55 PM9/18/12
to adf-met...@googlegroups.com
Hi Brad,

I have in the passed managed to embed Oracle forms within an ADF page via iFrames consuming Forms applets via forms applet server. The Oracle form actually interacted with the ADF applet by way of the 11g Forms Javascript Event which raised a custom server javascript event (you need to have an af:serverListener on the javascript event).  

A few things just off memory that you would have to consider though:
1. iFrame cross-domain security contraints, I had to make the app server and forms applet server part of a trusted domain
2. I didn't break the form down but rather used it whole within the iFrame
3. I did however clip the top horizontal menu from the form and replaced it with an ADF menu, you may be able to clip as you see fit if you want to use only a part of the form

Hope this helps.

Cheers, AA


On Wed, Sep 19, 2012 at 7:27 AM, BradW <bwor...@gmail.com> wrote:
Good day.  I have been trying to see if OraFormsFaces supports Oracle JDeveloper 11.1.2 and Oracle Forms 11.1.2 or to see if it is on a road map.  I am on a project that needs to make some decisions on approach, and I need to see if we should be considering OraFormsFaces or looking at alternative options.

We have tried the 11.1.1.x demonstration version and it mostly works, but there are a few bugs.  The demo gives us odd errors once in a while.  We've sent in support requests etc and had no responses.  We've tried to go to the "live" forum, but it is dead, Google reports the site as compromized, the bug tracking database is compromised.

So, we are not getting the warm vibes for this product offering which is endorsed by many of the ADF team in general and the Oracle JHeadstart team.

We'd like to go with this product, but in case we can't, are there any other recommendations out there?  We have a forms application with 259 forms.  We want to gradually redesign and retire the old Oracle forms functionality in ADF over a few releases.  This would have been the silver bullet.

Any suggestions that would be great.

Thanks,


BradW

--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com
 
All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/). Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).



--
Kind Regards,
Aziz Acar

Senior Software Architect/Engineer
mbl: 0413 649 309


Aziz Acar

unread,
Sep 19, 2012, 1:36:17 AM9/19/12
to adf-met...@googlegroups.com
Hi Brad,

Furthermore you may want to take a look at this discussion thread for some more detailed insights provided earlier this year (2012), https://groups.google.com/forum/?fromgroups=#!searchin/adf-methodology/Migrate$20from$20Oracle$20Forms$2010g$20to$20ADF/adf-methodology/soa83t73pHU/0hsGN66g6w8J

I talked a little more in detail about my approach in that thread.

Cheers, AA

Eric Elzinga

unread,
Sep 19, 2012, 1:56:19 AM9/19/12
to adf-met...@googlegroups.com
Hi BradW,

Since i 'know' the 'owner' of the product i will forward this thread to him. Hopefully he can help with the problems.

Good luck!

-- Eric


On Tue, Sep 18, 2012 at 11:27 PM, BradW <bwor...@gmail.com> wrote:
Good day.  I have been trying to see if OraFormsFaces supports Oracle JDeveloper 11.1.2 and Oracle Forms 11.1.2 or to see if it is on a road map.  I am on a project that needs to make some decisions on approach, and I need to see if we should be considering OraFormsFaces or looking at alternative options.

We have tried the 11.1.1.x demonstration version and it mostly works, but there are a few bugs.  The demo gives us odd errors once in a while.  We've sent in support requests etc and had no responses.  We've tried to go to the "live" forum, but it is dead, Google reports the site as compromized, the bug tracking database is compromised.

So, we are not getting the warm vibes for this product offering which is endorsed by many of the ADF team in general and the Oracle JHeadstart team.

We'd like to go with this product, but in case we can't, are there any other recommendations out there?  We have a forms application with 259 forms.  We want to gradually redesign and retire the old Oracle forms functionality in ADF over a few releases.  This would have been the silver bullet.

Any suggestions that would be great.

Thanks,


BradW

--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com
 
All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/). Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).



--
Eric Elzinga


Company : Xenta Consultancy, http://www.xenta.nl

BradW

unread,
Dec 6, 2013, 12:55:45 PM12/6/13
to adf-met...@googlegroups.com
After trying to use OraFormsFaces, we are not going to be proceeding.  There has been no support or interest from the vendor to allow us to purchase it.  We will be using a DB approach to pass parameters from ADF to our classic forms application.  There are some encrypted parameters with a one time use token.  The application is launched external to the ADF application with context being provided by the parameters.  While this doesn't provide bi-directional support, this approach will allow us to embed the application eventually and then use the built in java script support that forms offers.

If anyone is looking at this and saying, but Oracle recommends OraFormsFaces and JHS supports OraFormsFaces, I'd suggest that this is for people that are using it already with no plans to upgrade ADF and not for new customers or customers wishing to move to newer versions of ADF.  Time to think of plan 'B'.

Happy coding!


BradW

On Thursday, 1 November 2012 15:29:08 UTC-7, BradW wrote:
So, I spoke with Wilfred last week. We have since been able to get OraFormsFaces working with JDeveloper 11.1.2 and Oracle Forms 11.1.2. Here is the trick.

1) Make sure you patch Oracle Forms
2) Install OraFormsFaces manually in JDeveloper.

Wilfred is working on a proper JDeveloper install and IDE integration support (for drag and drop from component pallet) sometime in December.

When running, it seemed to work ok with the demo. We are working on seeing what we need to do from our application perspective.

Points to note: This is a small company and it is still hard to reach Wilfred

Hope this helps,

BradW

Wilfred van der Deijl

unread,
Dec 6, 2013, 3:50:15 PM12/6/13
to adf-met...@googlegroups.com
This is Wilfred, the creator of OraFormsFaces. You are right that it hasn't gotten the attention that it probably needs. The truth is that Forms version 11 has made the core feature of OraFormaFaces (the JavaScript API) obsolete as it is now included with Oracle Forms out-of-the-box.

Passing data, and events, between Forms and the surrounding (possibly JSF) page is now possible with this out-of-the-box JavaScript API. I probably should post the sample code for that publicly for those that do not want to figure this out by themselves.

Another key feature, the legacy-life cycle where a single applet instance can be re-used across different JSF pages has proven to be difficult to get 100% right in all possible scenarios and with all browser makes and models. Also, The newer Java versions break this feature and restricting users to older java version is not feasible with today's security threats to Java in the browser.

The final feature of OraFormsFaces is to let the JSF application determine the credentials to be used for the Forms session. This can also be built manually rather simple. All it does is call a java class at the JSF server which can retrieve/determine the credentials from a secure store. Then this is encrypted with a private key and added to the form as a parameter. The initial forms module then has a custom ON-LOGON trigger to decrypt this information and use it to logon to the database. So, even though the information is passed through the (HTML) client it is encrypted and only the JSF server and Forms server are able to decrypt it, not the client.

If there are any specific features of OraFormsFaces that people don't know how to replicate without OraFormsFaces, just post them here and I will address them here or in a public blog post.

-------------
Sent from my phone, please excuse typos etc.
--
--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com
 
All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/). Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).
 
---
You received this message because you are subscribed to the Google Groups "ADF Enterprise Methodology Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adf-methodolo...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

shenrard

unread,
Dec 11, 2013, 9:39:24 AM12/11/13
to adf-met...@googlegroups.com

Hello Wilfred,

I started to integrate the Forms applet in an ADF page but the applet does not show. If I copy paste the correct servlet URL, I get the Forms in a standalone Java window, and the HTML page rendered a gray rectangle. I checked the HTML page code and I can see that the parameter separateFrame="true", so maybe that’s the reason I get a standalone java window, and that the integration in the ADF page is not working. Anyway my code is the following:

        <af:panelGroupLayout id="pg1" layout="scroll" rendered="true">
            <f:verbatim>
                <iframe width="420" height="315"
                        src="http://example.com:8891/forms/frmservlet?config=myapp"
                        frameborder="0" allowfullscreen=""></iframe>
            </f:verbatim>
        </af:panelGroupLayout>

Then I would like to pass a value to the FORMS applet:

    <af:resource type="javascript">
      function writeAnyMessageToApplet(message) {

          document.applets[0].raiseEvent('setParameter', message);

      }
    </af:resource>

 <af:commandButton text="Send Parameter to Forms" id="cb3"
                          action="#{pageFlowScope.myBean.onSendParameter}"/>

with

    public String onSendParameter() {
        FacesContext fctx = FacesContext.getCurrentInstance();

        ExtendedRenderKitService erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
        erks.addScript(fctx, "window.writeAnyMessageToApplet('" + parameterValue + "')");
        return null;

    }

Is it the way you would do it to display the forms applet and then pass it a parameter?

Thanks
Sydney

Wilfred van der Deijl

unread,
Dec 11, 2013, 10:36:02 AM12/11/13
to adf-met...@googlegroups.com
I wouldn't use the iframe as that makes javascript interaction that much harder. You could request the URL for the iframe in a browser and see what HTML gets generated by the forms servlet. Than use that HTML directly in your page, either through f:verbatim or creating a custom JSF component.

Once that is done you don't even need to go to a server-side managed bean to send an event. You could use a normal af:clientListener to do the work for you. Attach that to the command-button and in the clientListener cancel the event itself to prevent propagation to the server. In the clientListener you can then find the javascript applet object and send the message.

And you are right that separateFrame=true should be removed. You can see that in the HTML needed to start the applet. Set that to false or remove it completely to embed the applet in the HTML instead of opening a separate java window

Sydney HENRARD

unread,
Dec 12, 2013, 6:29:05 AM12/12/13
to adf-met...@googlegroups.com

I tried the verbatim solution but it’s not working. The page is redirecting in some sort of infinite loop. I pasted the code returned by the servlet from an IE browser. I noticed that the generated code is based on the servlet URL but the base URL is different.

URL to ADF: http://localhost/….
URL to Forms: http://myformserver:8891/servlet/

So in the generated code all URL are based on http://myformserver:8891 which I guess I should explicitly change. For instance <PARAM NAME="CODEBASE" VALUE="/forms/java"> should be replaced by <PARAM NAME="CODEBASE" VALUE="http://myformserver:8891/forms/java">

I tried both but none is working. Do you have a working example?

<HTML>
<!-- FILE: basejpi.htm (Oracle Forms)                                 -->
<!--                                                                  -->  
<!-- This is the default base HTML file for running a form on the     -->
<!-- web using the JDK Java Plugin. This is used for example when     -->
<!-- running with Netscape on Unix.                                   -->
<!--                                                                  -->  
<!-- IMPORTANT NOTES:                                                 -->
<!-- Default values for all the variables which appear below          -->
<!-- (enclosed in percent characters) are defined in the servlet      -->
<!-- configuration file (formsweb.cfg). It is preferable to make      -->
<!-- changes in that file where possible, rather than this one.       -->
<!--                                                                  -->  
<!-- This file will be REPLACED if you reinstall Oracle Forms, so     -->
<!-- you are advised to create your own version if you want to make   -->
<!-- any modifications.  You should then set the baseHTMLjpi          -->
<!-- parameter in the Forms Servlet configuration file (formsweb.cfg) -->
<!-- to point to your new file instead of this one.                   -->
<HEAD><TITLE>Oracle Fusion Middleware Forms Services</TITLE></HEAD>
<BODY >

<COMMENT id="forms_plugin_info" 
         serverURL="/forms/lservlet?ifcfs=/forms/frmservlet?config=SWJpi&#38;ifsessid=WLS_FORMS.formsapp.26&#38;acceptLanguage=en-US"
         plug_ver="clsid:CAFEEFAC-0016-0000-0012-ABCDEFFEDCBA" 
         appheight="710"
         appwidth="1050"
         appcodebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=1,6,0,12"
         appname="">
</COMMENT>
<!-- Forms applet definition (start) -->
<NOSCRIPT>
<OBJECT classid="clsid:CAFEEFAC-0016-0000-0012-ABCDEFFEDCBA"
        codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=1,6,0,12"
        WIDTH="1050"
        HEIGHT="710"
        HSPACE="0"
        VSPACE="0"
        ID="">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_ie.js"></SCRIPT> 
<PARAM NAME="TYPE"       VALUE="application/x-java-applet;jpi-version=1.6.0_12">
<PARAM NAME="CODEBASE"   VALUE="/forms/java">
<PARAM NAME="CODE"       VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"    VALUE="frmall.jar" > 
<PARAM NAME="serverURL" VALUE="/forms/lservlet?ifcfs=/forms/frmservlet?config=SWJpi&#38;ifsessid=WLS_FORMS.formsapp.26&#38;acceptLanguage=en-US">
<PARAM NAME="networkRetries" VALUE="0">
<PARAM NAME="serverArgs" 
       VALUE="escapeParams=true module=STDMAIN.fmx userid=  debug=no host= port= obr=no record= tracegroup= log= term= ssoProxyConnect=no buffer_records= debug_messages= array= query_only= quiet= render=">
<PARAM NAME="separateFrame" VALUE="false">
<PARAM NAME="splashScreen"  VALUE="NO">
<PARAM NAME="background"  VALUE="/irrisimages/agicoa_bg.gif">
<PARAM NAME="lookAndFeel"  VALUE="Oracle">
<PARAM NAME="colorScheme"  VALUE="Purple">
<PARAM NAME="serverApp" VALUE="default">
<PARAM NAME="logo" VALUE="">
<PARAM NAME="imageBase" VALUE="DocumentBase">
<PARAM NAME="formsMessageListener" VALUE="">
<PARAM NAME="recordFileName" VALUE="">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="">
<PARAM NAME="EndUserMonitoringURL" VALUE="">
<PARAM NAME="heartBeat" VALUE="">
<PARAM NAME="MaxEventWait" VALUE="">
<PARAM NAME="allowAlertClipboard" VALUE="true">
<PARAM NAME="disableValidateClipboard" VALUE="false">
<PARAM NAME="enableJavascriptEvent" VALUE="true">
<PARAM NAME="MAYSCRIPT" VALUE="true">
<PARAM NAME="digitSubstitution" VALUE="context">
<PARAM NAME="legacy_lifecycle" VALUE="false">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="false">
<PARAM NAME="highContrast" VALUE="false">
<PARAM NAME="disableMDIScrollbars" VALUE="">
<PARAM NAME="clientDPI" VALUE="">
<PARAM name="applet_stop_timeout" value="800">
<PARAM name="guiMode" value="0">
<COMMENT> 
<EMBED SRC="" PLUGINSPAGE="http://java.sun.com/products/archive/j2se/6u12/index.html" 
        TYPE="application/x-java-applet;jpi-version=1.6.0_12" 
        java_codebase="/forms/java" 
        java_code="oracle.forms.engine.Main" 
        java_archive="frmall.jar" 
        WIDTH="1050"
        HEIGHT="710" 
        HSPACE="0"
        VSPACE="0"
        NAME=""
        serverURL="/forms/lservlet?ifcfs=/forms/frmservlet?config=SWJpi&#38;ifsessid=WLS_FORMS.formsapp.26&#38;acceptLanguage=en-US"
        networkRetries="0"
        serverArgs="escapeParams=true module=STDMAIN.fmx userid=  debug=no host= port= obr=no record= tracegroup= log= term= ssoProxyConnect=no buffer_records= debug_messages= array= query_only= quiet= render="
        separateFrame="false"
        splashScreen="NO"
        background="/irrisimages/agicoa_bg.gif"
        lookAndFeel="Oracle"
        colorScheme="Purple"
        serverApp="default"
        logo=""
        imageBase="DocumentBase"
        recordFileName=""
        EndUserMonitoringEnabled=""
        EndUserMonitoringURL=""
        heartBeat=""
        MaxEventWait=""
        disableValidateClipboard="false"
        allowAlertClipboard="true"
        enableJavascriptEvent="true"
        MAYSCRIPT="true"
        digitSubstitution="context"
        legacy_lifecycle="false"
        JavaScriptBlocksHeartBeat="false"
        highContrast="false"
        disableMDIScrollbars=""
        clientDPI=""
        applet_stop_timeout="800"
        guiMode="0"
>
<NOEMBED> 
</COMMENT> 
</NOEMBED></EMBED> 
</OBJECT>
<!-- Forms applet definition (end) -->

</BODY>
</HTML>
Reply all
Reply to author
Forward
0 new messages