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.