Forum Stats

  • 3,752,640 Users
  • 2,250,531 Discussions
  • 7,867,903 Comments

Discussions

Oracle 12 Webutil Spell check testing

User_S7PVR
User_S7PVR Member Posts: 14 Green Ribbon

Hello,

I finished installing, implementing Webutil and Spell check configuration on Oracle 12c Forms and Reports.

While I am testing based on document- "How To Integrate The MS Word Spell Checker With Forms Using WebUtil (Doc ID 295449.1)"

Spell check window appears behind the Internet explorer window, which would not be easy for the user to always minimize and spell check and return back to IE window.

It would be easier if the user can see the spell check window on top of the Internet explorer screen.

I have reached out to Oracle but they recommended me to go with Forums.

Any help would be appreciated.

PFA for the testing FMB for spell check.

Best Answer

  • Michael Ferrante-Oracle
    Michael Ferrante-Oracle Senior Principal Product Manager USMember Posts: 6,816 Employee
    Accepted Answer

    Solution to what? I never said that using Java 11 or Forms 12.2.1.4 would solve the issue. I just suggested those as a test. If either or both fix the issue then you found your solution. If not, then someone in Support will need to help you investigate further.

    If you are not willing to upgrade to 12.2.1.4, I would at least recommend setting up a test machine and trying it. Be aware that error correction support for 12.2.1.3 ends this December. I do not encourage you to wait until December to start an upgrade project. It is very important that you do it before support ends.

«1

Answers

  • Michael Ferrante-Oracle
    Michael Ferrante-Oracle Senior Principal Product Manager USMember Posts: 6,816 Employee

    The problem likely is the result of the applet trying to take focus back immediately after Java makes the OLE call. This is sometimes a problem in Java, but could also be Forms, or even your own code.

    Here are a few suggestions:

    .1. Try a different Java version. Ideally the latest. Because you are using IE you will be limited to using one in the Java 8 family (e.g. 8u291). IF you are using 12.2.1.4 (and not earlier), if the newest Java 8 doesn't change the behavior, I would recommend downloading the latest Java 11 and testing using Forms Standalone Launcher. You can also use Java 8 with Standalone Launcher. Try both. Details for using FSAL can be found here:

    https://www.oracle.com/application-development/technologies/forms/forms.html#panel2

    .2. It may be possible to add an "Activate" immediately after you call the spell checker. Refer to the Microsoft OLE documentation for information about this OLE method. I believe documentActivate is already used in the example code. You may be able to fire that again or directly use Activate.

    https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa171507(v=office.11)

    .3. As an alternative, consider using Java Web Start. If it does not reproduce the problem this would be a good move regardless. With IE11 deprecated and Java plugin now desupported, moving to Java Web Start or Forms Standalone Launcher is a smart change to make so that you don't get in a situation where you need a Java fix but cannot get one because you are using Plugin. If your issue reproduces while using Java Web Start, filing a bug is a reasonable option. That said, this type of behavior may not be correctable in the Forms or Java product code. The answer to that question can only be determine with an investigation.

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    The code I have for spell check procedure is -

    PROCEDURE SPELL_CHECK (ITEM_NAME IN VARCHAR2) IS 


     MY_APPLICATION CLIENT_OLE2.OBJ_TYPE; 

     MY_DOCUMENTS  CLIENT_OLE2.OBJ_TYPE; 

     MY_DOCUMENT  CLIENT_OLE2.OBJ_TYPE; 

     MY_SELECTION  CLIENT_OLE2.OBJ_TYPE; 

     GET_SPELL  CLIENT_OLE2.OBJ_TYPE; 

     MY_SPELL   CLIENT_OLE2.OBJ_TYPE; 

     ARGS   CLIENT_OLE2.LIST_TYPE; 

     SPELL_CHECKED VARCHAR2(4000); 

     ORIG_TEXT  VARCHAR2(4000); 

        

    BEGIN 

     ORIG_TEXT := NAME_IN(ITEM_NAME); 

           

    -- CREATE WORD.APPLICATION OBJECT 

     MY_APPLICATION := CLIENT_OLE2.CREATE_OBJ('WORD.APPLICATION');  

     CLIENT_OLE2.SET_PROPERTY(MY_APPLICATION, 'VISIBLE', FALSE); 


    -- GET HANDLE FOR DOCUMENTS COLLECTION 

     MY_DOCUMENTS := CLIENT_OLE2.GET_OBJ_PROPERTY(MY_APPLICATION, 'DOCUMENTS'); 


    -- ADD A NEW DOCUMENT TO THE DOCUMENTS COLLECTION 

     MY_DOCUMENT := CLIENT_OLE2.INVOKE_OBJ(MY_DOCUMENTS, 'ADD'); 


    -- GET HANDLE FOR SELECTION OBJECT 

     MY_SELECTION := CLIENT_OLE2.GET_OBJ_PROPERTY(MY_APPLICATION, 'SELECTION'); 


    -- INSERT THE TEXT FIELD INTO DOCUMENT 

     CLIENT_OLE2.SET_PROPERTY(MY_SELECTION, 'TEXT', ORIG_TEXT); 

      

    -- GET HANDLE FOR ACTIVE DOCUMENT  

     GET_SPELL := CLIENT_OLE2.GET_OBJ_PROPERTY(MY_APPLICATION, 'ACTIVEDOCUMENT'); 


    -- INVOKE SPELL CHECKER 

     CLIENT_OLE2.INVOKE(GET_SPELL, 'CHECKSPELLING'); 


    -- Added to handle a cancel request.  

     CLIENT_OLE2.INVOKE(MY_SELECTION,'WholeStory');  

     CLIENT_OLE2.INVOKE(MY_SELECTION,'Copy');  

      

    -- GET CHECKED TEXT FROM DOCUMENT 

     SPELL_CHECKED := CLIENT_OLE2.GET_CHAR_PROPERTY(MY_SELECTION, 'TEXT'); 


    -- REFORMAT RETURN TEXT TO DISPLAY CORRECTLY IN FORMS 

     SPELL_CHECKED := substr(replace(SPELL_CHECKED,chr(13),chr(10)), 1, length(SPELL_CHECKED)); 

        

    -- COPY NEW TEXT IN THE FORM 

     COPY(SPELL_CHECKED,ITEM_NAME); 


    -- CLOSE THE DOCUMENT WITHOUT SAVING 

     ARGS := CLIENT_OLE2.CREATE_ARGLIST;  

     CLIENT_OLE2.ADD_ARG(ARGS, 0);  

     CLIENT_OLE2.INVOKE(MY_DOCUMENT, 'CLOSE',ARGS); 

     CLIENT_OLE2.DESTROY_ARGLIST(ARGS);  

      

    -- RELEASE THE OLE OBJECTS 

     CLIENT_OLE2.RELEASE_OBJ(MY_SELECTION); 

     CLIENT_OLE2.RELEASE_OBJ(GET_SPELL); 

     CLIENT_OLE2.RELEASE_OBJ(MY_DOCUMENT); 

     CLIENT_OLE2.RELEASE_OBJ(MY_DOCUMENTS); 

     CLIENT_OLE2.INVOKE(MY_APPLICATION, 'QUIT'); 

     CLIENT_OLE2.RELEASE_OBJ(MY_APPLICATION);   


    END;


    ----------------

    Then I have a button to invoke the spell check procedure is -

    If NAME_IN (:system.cursor_item) IS NOT NULL Then

     spellcheck_MSWord (:system.cursor_item);

    Else

     message ('No text in field.');

    End If;

    ---------------------

    Please let me know if there is anything in the code which is making the spell check window appear in background and not in the IE window.


    Thank you !

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    If I could add Activate method to display the Spellcheck window on IE window.

    Where would I add the code to -

     With ActiveDocument.Shapes(1).OLEFormat
      .ActivateAs ClassType:='WORD.APPLICATION'
      .Activate
    End With
    
  • Michael Ferrante-Oracle
    Michael Ferrante-Oracle Senior Principal Product Manager USMember Posts: 6,816 Employee

    Before diving into changing the code, I recommend trying my other suggestion which was to change Java versions and if that doesn't help change your client deployment configuration (e.g. test with FSAL). The issue is likely in Java. My suggestion to make the code change was only to possibly work-around the problem. Using FSAL is simple and the results of testing with it might help to offer a clue as to the root cause. If it works with FSAL it might suggest a problem with Java Plugin. Since Java Plugin isn't supported any longer your only option might be to use JWS or FSAL.

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    Oracle Middleware version we are using is - 12.2.1.3.0, Java version on client system is - Java 8 Update 271 and few have 281.

    Do I download 291 version and test with the application?

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    I have download and installed Java 8 291 32-bit, still no progress. Spell check window still appears in background rather on IE window.

    I would have to try Activate Method and change the code.

  • Michael Ferrante-Oracle
    Michael Ferrante-Oracle Senior Principal Product Manager USMember Posts: 6,816 Employee

    I would suggest trying with FSAL. I would further suggest trying it with Java 8 and Java 11.

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    I have downloaded frmsal.jar on my workstation, and tried to run fsal using Command prompt.

    Here is the snap shot when I tried to run -


    Any further help with FSAL would be appreciated.


    Thank you !

  • Michael Ferrante-Oracle
    Michael Ferrante-Oracle Senior Principal Product Manager USMember Posts: 6,816 Employee

    You cannot use Java 11 with Forms 12.2.1.3. You would need to upgrade to 12.2.1.4, which is probably a good idea since you are having problems anyway. Upgrading from .3 to .4 is extremely simple in most cases.

  • User_S7PVR
    User_S7PVR Member Posts: 14 Green Ribbon

    @Michael Ferrante-Oracle

    Is there a work around solution without upgrading from .3 to .4 ?

    All we want is for the spell check which is appearing in background to be appeared upfront on the IE window, which we click 'spell_check' button.

    This has been a huge request from our end users to be used. I do not think, we have any plan on upgrading yet.

    Webutil installation, testing did already took a lot of months for us. We are stuck at this very last step.