1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Creating new record results running error block

Discussão em 'StackOverflow' iniciado por fdantas, Janeiro 22, 2019.

  1. fdantas

    fdantas Administrator Moderador

    I'm attempting to return a value from 1-4 depending on whether the transaction failed or not. Adding a new record shows up in the database but the code returns 4 which means that the error block is being run, why does this happen?

    I'm sending input parameters from java and returning a number as output parameter from 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.

    Continue reading...

Compartilhe esta Página