Consultor Eletrônico



Kbase P145327: 4GL/ABL: Division fails with EXTENT function of an indeterminate array variable or parameter
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/26/2009
Status: Unverified

SYMPTOM(s):

4GL/ABL: Division fails with EXTENT function of an indeterminate array variable or parameter

The EXTENT function in the following snippet incorrectly returns the value of 0 instead of the expected value of 5 when passed an indeterminate array variable as INPUT parameter:

DEFINE VARIABLE cArray AS CHARACTER EXTENT NO-UNDO.
RUN alpha (INPUT-OUTPUT cArray).
MESSAGE EXTENT(cArray) / 2 VIEW-AS ALERT-BOX.
PROCEDURE alpha:
DEFINE INPUT-OUTPUT PARAMETER ipcArray AS CHARACTER EXTENT 10 NO-UNDO.
END.

The EXTENT function in the following snippet incorrectly returns the value of 0 instead of the expected value of 5 when passed an indeterminate array parameter as INPUT parameter:

DEFINE VARIABLE cArray AS CHARACTER EXTENT 10 NO-UNDO.
RUN alpha (INPUT-OUTPUT cArray).
PROCEDURE alpha:
DEFINE INPUT-OUTPUT PARAMETER ipcArray AS CHARACTER EXTENT NO-UNDO.
MESSAGE EXTENT(ipcArray) / 2 VIEW-AS ALERT-BOX.
END.

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.1x
OpenEdge 10.2A

CAUSE:

OE00183607

FIX:

None at this time. As a workaround, use an intermediate INTEGER variable to store the value returned by the EXTENT function and use that intermediate INTEGER variable with the division operator instead of directly using the EXTENT function expression itself. For example:
DEFINE VARIABLE cArray AS CHARACTER EXTENT NO-UNDO.
DEFINE VARIABLE iVariable AS INTEGER NO-UNDO.
RUN alpha (INPUT-OUTPUT cArray).
iVariable = EXTENT(cArray).
MESSAGE iVariable / 2 VIEW-AS ALERT-BOX.
PROCEDURE alpha:
DEFINE INPUT-OUTPUT PARAMETER ipcArray AS CHARACTER EXTENT 10 NO-UNDO.
END.