runnotfound

proc [procname] not found

Rule "runnotfound" gives this warning when it finds a RUN statement
for an external procedure, while the external procedure can not be
found. It tries to prevent Progress run-time error 293.
.

/* Prolint will check if subdir/filename.p exists: */
RUN subdir/filename.p.

/* Prolint will NOT check for runs in appserver context: */
RUN subdir/filename.p ON hAppServer.

See also rule runasnotfound to check for
"RUN ... ON SERVER ..." statements.

the risc:

The rule was initially designed to prevent run-time error 293.

It turns out that the rule mostly detects 'dead code': RUN statements in
conditional code that never gets executed, probably because it is obsolete.

CASE menu-choice:
  WHEN "something obsolete" THEN RUN old/obsolete.p.

false positives:

The rule cannot follow program flow and will raise a warning in the
following example, although it should not:

CustomOptionsAvailable = SEARCH("custom/options.r")<>?.

IF CustomOptionsAvailable THEN
   RUN custom/options.p.

How to suppress these warnings:

You can put the directive {&_proparse_ prolint-nowarn(runnotfound)} directly before
the RUN statement. See also: suppress warnings.