创建新记录结果 运行 错误块

Creating new record results running error block

我正在尝试 return 一个 1-4 的值,具体取决于交易是否失败。添加一条新记录显示在数据库中,但代码 returns 4 这意味着错误块正在 运行,为什么会发生这种情况?

我从 java 发送输入参数,return 从 ABL 发送一个数字作为输出参数。

/*Input parameters*/
DEFINE INPUT PARAMETER i_cCode LIKE Unit.Code NO-UNDO.
DEFINE INPUT PARAMETER i_iTransactionType AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER i_cName LIKE UNIT.Name NO-UNDO.
/*Output parameters*/ 
DEFINE OUTPUT PARAMETER o_iStatus AS INTEGER NO-UNDO. 
/*Local variables*/
DEFINE VARIABLE iModifySuccess AS INTEGER INITIAL 1.
DEFINE VARIABLE iModifyFailed AS INTEGER INITIAL 2.
DEFINE VARIABLE iAddedSuccessful AS INTEGER INITIAL 3.
DEFINE VARIABLE iCreateFailed AS INTEGER INITIAL 4.
/*Transaction types*/
DEFINE VARIABLE iCreate AS INTEGER INITIAL 1.
DEFINE VARIABLE iModify AS INTEGER INITIAL 2.

FIND FIRST Unit WHERE Unit.Code = i_cCode EXCLUSIVE-LOCK NO-ERROR.
            IF AVAIL(Unit) AND i_iTransactionType = iModify THEN DO:

                ASSIGN
                    Unit.Name = i_cName
                    /*Other fields as well*/
                NO-ERROR.
                MESSAGE "Unit has been modified".
                o_iStatus = iModifySuccess.

                IF ERROR-STATUS:ERROR THEN DO:
                    MESSAGE "Error Modifying Unit" + ERROR-STATUS:GET-MESSAGE(1).    
                    o_iStatus = iModifyFailed.
                END.   

            END.
            ELSE DO:
                IF i_iTransactionType = iCreate THEN DO:
                    /*Create new record*/
                    CREATE Unit NO-ERROR.
                        ASSIGN
                        Unit.Name = i_cName
                        /*Other fields as well*/
                            NO-ERROR.
                        MESSAGE "New Unit Created"
                        o_iStatus = iAddedSuccessful.

                        IF ERROR-STATUS:ERROR THEN DO:
                            MESSAGE "ERROR creating a new Unit" + ERROR-STATUS:GET-MESSAGE(1).
                            o_iStatus = iCreateFailed.
                        END. 
                END.   
            END.

好像是在MESSAGE "New Unit Created"之后少了一个.导致错误块到运行。构建项目没有给出任何警告。