Kbase P123785: 4GL/ABL: Errors (1410) and (40) running an ABL application
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/19/2008 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL: Errors (1410) and (40) running an ABL application
Error code <number> returned from fdfnd. (1410)
Error code -20011 returned from fdfnd. (1410)
SYSTEM ERROR: Attempt to define too many indexes. (40)
The called procedure uses an OUTPUT parameter TEMP-TABLE, NEW SHARED
A CAN-FIND or a FOR EACH with the BREAK BY option is used against the TEMP-TABLE.
Temp table passed as an output parameter and defined as NEW SHARED in the called procedure where the CAN-FIND statement is used. For example:
/* caller.p */
DEFINE TEMP-TABLE t_temp
FIELD x_name AS CHAR.
RUN temp.p (OUTPUT TABLE t_temp).
/* temp.p */
DEFINE NEW SHARED TEMP-TABLE t_temp
FIELD x_name AS CHARACTER.
DEFINE OUTPUT PARAMETER TABLE FOR t_temp.
IF CAN-FIND(FIRST t_temp) THEN RETURN.
Temp table passed as an output parameter and defined as NEW SHARED in the called procedure where the FOR EACH with the BREAK BY option statement is used. For example:
/* main.p */
DEFINE TEMP-TABLE t_temp
FIELD x_name AS CHAR.
RUN temp.p (OUTPUT TABLE t_temp).
/* temp.p */
DEFINE NEW SHARED TEMP-TABLE t_temp
FIELD x_name AS CHARACTER.
DEFINE OUTPUT PARAMETER TABLE FOR t_temp.
FOR EACH t_temp BREAK BY t_temp.x_name:
END.
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.1B
OpenEdge 10.1B01 Service Pack
CAUSE:
Bug# OE00150433
FIX:
Upgrade to OpenEdge 10.1B02 or later. If upgrading to OpenEdge 10.1B02 or later is not feasible, a work around is to either:
1. Redefine the TEMP-TABLE as a non NEW SHARED.
or
2. Replace the CAN-FIND function with FIND, IF AVAILABLE etc...or Replace the the FOR EACH with the BREAK BY option statement .