Consultor Eletrônico



Kbase P165474: 4GL/ABL: Checking syntax takes too long when a certain internal procedure is added to the code.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/10/2010
Status: Unverified

SYMPTOM(s):

4GL/ABL: Checking syntax takes too long when a certain internal procedure is added to the code.

The Syntax Check returns OK with and without the internal procedure.

The internal procedure has an INTEGER variable whose definition could not be readily located in the code.

Checking the syntax of a procedure that has code similar to the following:
DEFINE VARIABLE joe AS INTEGER NO-UNDO.
RUN alpha.
PROCEDURE alpha:
FIND FIRST Customer.
IF AVAILABLE(Customer) THEN DO:
b = 1.
DO WHILE b < 12:
ASSIGN
joe = b * 1000.
b = b + 1.
END.
END.
END PROCEDURE.

FACT(s) (Environment):

The Syntax Check is almost instantaneous when the internal procedure is removed or commented out.
Windows
OpenEdge 10.1B
OpenEdge Category: Language (4GL/ABL)

CAUSE:

The syntax checks fine for the code because there is a field in the named table that starts with the letter b. For example, in the above snippet, the 4GL/ABL compiler assumes the letter b is the Customer.BALANCE field and proceeds to modify it according to the program logic.

FIX:

This is expected behavior. Ensure that every variable is explicitly defined to avoid inadvertently modifying fields whose names uniquely start with the undefined variable name.