如何在 progress 4gl 上将字符类型值从一个应用程序发送到另一个应用程序?

How to send a character type value from an application to another on progress4gl?

我一直在尝试使用 define input/output parameter <variable> as character no-undo 到 send/receive 一些值,我在很多论坛上搜索过但我仍然无法让它工作它编译但我得到一个错误在尝试 运行 时。

有人可以给我解释一下我做错了什么吗?

P.S.: 我还是progress4gl的新手。

这是接收的应用程序:

define input parameter vparam as character no-undo.

put unformatted "Data:".
put unformatted vparam.

这是发送的应用程序:

define output parameter vparam as character no-undo.

assign vparam = "It works!".

尝试 运行 时出错:

Mismatched number of parameters passed to routine

[path to my app] myApp(it happens to both apps).ped (3234)

两个应用程序都在同一个地方。

它应该是这样的:

DEFINE VARIABLE chVar   AS CHARACTER   NO-UNDO.
ASSIGN chVar = "TEST".
RUN test(chVar).

PROCEDURE Test:
DEFINE INPUT PARAMETER chParm   AS CHARACTER    NO-UNDO.

MESSAGE chParm
   VIEW-AS ALERT-BOX INFO BUTTON OK.

END PROCEDURE.

.p 程序的代码看起来类似:

/* Program.p */
DEFINE INPUT PARAMETER chParm   AS CHARACTER    NO-UNDO.
MESSAGE chParm
   VIEW-AS ALERT-BOX INFO BUTTON OK.

RETURN.

以及调用这个过程的方式:

DEFINE VARIABLE chVar   AS CHARACTER   NO-UNDO.
ASSIGN chVar = "TEST".
RUN Program.p(chVar).

对于 INPUT-OUTPUT 参数 - 您需要更改 DEFINE PARAMETER 和调用,如下所示:

/* Program.p */
DEFINE INPUT-OUTPUT PARAMETER chParm   AS CHARACTER    NO-UNDO.
MESSAGE chParm
   VIEW-AS ALERT-BOX INFO BUTTON OK.

RETURN.

以及调用这个过程的方式:

DEFINE VARIABLE chVar   AS CHARACTER   NO-UNDO.
ASSIGN chVar = "TEST".
RUN Program.p(INPUT-OUTPUT chVar).