Consultor Eletrônico



Kbase P92773: Cancel close window in Dynamics leaves window in bad state error 565 and 91
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/01/2005
Status: Unverified

FACT(s) (Environment):

Dynamics 2.1

SYMPTOM(s):

Dynamics 2.1A02

Modified records have not been committed

Attempt to close container/window then choose cancel in confirm close window dialog

Try to close again the window leads to the following errors

** FIND FIRST/LAST failed for table . (565)

** No <file-name> record is available. (91)

Stack trace reads:
destroyObject ry/uib/rydyncontw.w (gui\icf\ry\uib\rydyncontw.r) at line 3984
destroyObject ry/app/rydynwindp.p (gui\icf\ry\app\rydynwindp.r) at line 1986
childWindowsOpen ry/app/rydynwindp.p (gui\icf\ry\app\rydynwindp.r) at line 65535

CAUSE:

ry/app/dynframp.p/destroyObject does not return "ADM-ERROR" in the super procedure stack.

FIX:

At the time of writing (2.1A02), ry/app/dynframp.p/destroyObject does the following:
[...]
/* now run the super */
RUN SUPER.

/* confirmExit could have cancelled the exit process */
IF NOT (ERROR-STATUS:ERROR OR RETURN-VALUE = "ADM-ERROR":U) THEN
DO:
[...]
Doing the following solves the problem:
[...]
/* now run the super */
/* slacroix 24-aug-2004 begin */
RUN SUPER NO-ERROR.

/* confirmExit could have cancelled the exit process */
IF ERROR-STATUS:ERROR OR RETURN-VALUE = "ADM-ERROR":U THEN
RETURN ERROR "ADM-ERROR":U.

/* Use the API to kill the PLIP, since it was started by launch.i */
RUN killPlips IN gshSessionManager ( INPUT "":U, INPUT cChildrenSuperProcedures ) NO-ERROR.
/* Use the API to kill the PLIP, since it was started by launch.i */
RUN killPlips IN gshSessionManager ( INPUT "":U, INPUT cContainerSuperProcedures ) NO-ERROR.

/* Reset error - as the super had no errors that we care about and we invoked the killPlips with no-error */
ASSIGN ERROR-STATUS:ERROR = NO.
/* slacroix 24-aug-2004 end */
END PROCEDURE. /* destroyObject */
[...]