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!

DDE on oracle forms 12c

bakshamgFeb 27 2018 — edited Mar 1 2018

Hi all, I am using Oracle Forms [64 Bit] Version 12.2.1.0.0 (Production).

DDE is dynamic data exchange, it is basically getting values from another program installed on a windows machine.

The application I am working on was migrated from 6i to 12c forms.

The forms 6i version used the dde built in package to interact with software installed on the machine.

After upgrading to forms 12c with weblogic it seems like the dde is executed on the server.

Forms help has:

DDE.APP_BEGIN Begins a DDE server application.

DDE.APP_END Ends a DDE server application.

DDE.APP_FOCUS  Focuses a DDE server application.

My requirement is to use dde to interact with a client application

There were similar questions but they are on old threads so I'm hoping there is a solution now.

(there is no client dde https://community.oracle.com/message/4064390#4064390 )

(webutil does not have client_dde https://community.oracle.com/message/714453#714453 )

Will someone be able to give me direction on how to use dde on 12c forms with the application being interacted with residing on the client machine?

example

Using excel to test dde(excel is not a requiment, dde is), I get the error: 106561: non-ORACLE exception

I tested the code below on 6i forms which worked but not on 12c forms.

[pre]

DECLARE

  appl_name VARCHAR2(255);

BEGIN

  IF :global.application_id IS NOT NULL THEN

    message('Application is already running');

  ELSE

    appl_name              := 'C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE';

    :global.application_id := dde.app_begin(appl_name, dde.app_mode_normal);

  END IF;

EXCEPTION

  WHEN dde.dde_app_failure THEN

    message('Could not lanch application for DDE operations');

    RAISE form_trigger_failure;

 

  WHEN OTHERS THEN

    message('Error: ' || to_char(SQLCODE) || ' ' || SQLERRM);

    RAISE form_trigger_failure;

 

END;

[/pre]

This post has been answered by David M Gale on Feb 27 2018
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 29 2018
Added on Feb 27 2018
2 comments
2,130 views