Opening Win32 session form a URL Link

Cecil

19+ years progress programming and still learning.
I have a requirement and I'm not sure what the possible solution is.

The requirement is that when a user receives an email with a URL Link (i.e. DeskTopApp:customer?xxxxx) is that it will open (or already open) an OpenEdge Win32 session and navigate to the unique Customer Record.

How do I do this?
 

peterjudge

Member
I'm not sure of the requirement.

Are you reading email in OE/ABL? Where do you need to open the link - in a browser? in a grid? something else?
 

Cecil

19+ years progress programming and still learning.
I'm not sure of the requirement.

Are you reading email in OE/ABL? Where do you need to open the link - in a browser? in a grid? something else?
it could be any mail application (most likely outlook), web mail.
 

tamhas

ProgressTalk.com Sponsor
Isn't the fact that the URL arrives in an e-mail irrelevant? Isn't the requirement actually to just launch an Open Edge session from a URL and pass in a record identifier to initialize the display?
 

Cecil

19+ years progress programming and still learning.
The initial proof of concept seems to work in my mock setup. Created a new registry entry as per the instructions with a new scheme called
Code:
"URL:prohiredev"
The ugly part was that I had to use a batch file (copied %DLC%\bin\proenv.bat) to act as a wrapper for prowin.exe

1681722836149.png
 
Last edited:

RaphaelFrei

New Member
Can't you use the email to open a file from a Shared Network HD?
Of course this includes in the user having access to read and execute the file.
<a href="file://///remoteserver/remotedirectory/openapp.bat"> Click me to open the app! </a>

In your case, something like:
<a href="file://///remoteserver/c$/prohire/proenv.bat"> Open WebLaunch </a>

And change the DLC variables to:
set DLC=\\remoteserver\c$\Progress\...
set WRKDIR=\\remoteserver\c$\...

And for the last thing... You need to change all the DIR from .INI file too. (Replacing like the step above)

I've tested here and I was able to execute the program from the email (As a Hyperlink from Outlook) and directly from RUN (Windows).

1681747879326.png

Running CMD command is not possible from hyperlink due to security reasons.
 

Cecil

19+ years progress programming and still learning.
Now that I can execute a prowin session (xzy) can capture the incoming parameter(s). I now need to notify the existing open prowin Application (abc) of this new event.

In the past the past I have played with .NET MailSlot, but is too finicky. What are my options for a inter-process communication?


UPDATE: I found this which might help me, but I need to convert the C#/VB.NET code to ABL How to Send and Receive Messages Between Windows Forms Applications - Telerik UI for WinForms
 
Last edited:

Stefan

Well-Known Member
Sending messages sounds like a recipe for failure since your existing prowin session is not multi-threaded.

I think at most you can let your application poll (using pstimer tick once a second or so) either:

a. the database
b. the file system

For simplicity I would go with b.
 

Cecil

19+ years progress programming and still learning.
Sending messages sounds like a recipe for failure since your existing prowin session is not multi-threaded.

I think at most you can let your application poll (using pstimer tick once a second or so) either:

a. the database
b. the file system

For simplicity I would go with b.

I was hoping to avoid the pstimer, but I think you are right about doing the "put down, pick up" method.
In the good old days (Windows95/98/XP), I use to use WinSock.ocx and published UDP messages to localhost.
 
Top