我正在尝试在本地服务器上设置的appserver上运行一个过程。
**找不到'testProc'。 (293)
DEFINE VARIABLE hndle AS HANDLE NO-UNDO.
DEFINE VARIABLE tmp AS CHARACTER NO-UNDO.
CREATE SERVER hndle.
PROCEDURE testProc:
DEFINE OUTPUT PARAMETER o_tmp AS CHARACTER INITIAL "HELLO".
END PROCEDURE.
hndle:CONNECT ("-AppService AppServiceName-H localhost").
RUN testProc ON hndle(OUTPUT tmp).
hndle:DISCONNECT ().
DELETE OBJECT hndle.
答案 0 :(得分:4)
您不能在应用服务器上运行内部过程。您必须将代码放入其自己的.p文件中,然后在应用服务器上运行该文件。 .p也必须在appserver的Propath中可用。
答案 1 :(得分:1)
您正在尝试运行内部过程'testProc',而不是过程文件'testProc.p'。它们必须是两个单独的文件。在您的应用服务器上创建一个“ testProc.p”文件,并将您的逻辑放入其中:
DEFINE OUTPUT PARAMETER o_tmp AS CHARACTER INITIAL "HELLO".
在一个单独的文件中,放置调用testProc.p的代码:
DEFINE VARIABLE hndle AS HANDLE NO-UNDO.
DEFINE VARIABLE tmp AS CHARACTER NO-UNDO.
CREATE SERVER hndle.
hndle:CONNECT ("-AppService AppServiceName -H localhost").
RUN testProc.p ON hndle(OUTPUT tmp).
hndle:DISCONNECT ().
DELETE OBJECT hndle.
MESSAGE tmp VIEW-AS ALERT-BOX INFORMATION.
请注意,您的调用程序正在运行testProc.p,而不是testProc。运行此代码,您应该会收到一条弹出消息“ HELLO”。