Can not create record in kay10 table via rest api using POST

Posted by memoxoz on 02-Oct-2019 08:45

The variables (xkod, xinfo, xkay01_code, xunit), I sent post method via Postman. I got  successfully message from rest api, But these variables cannot be written to kay10 table, what could be the reason?  is it any credential problem ?

Rest api(kay10.p) is as below. 

kay10.p

----------------------------------------------------------------------------------------------------------------------------------------------

@openapi.openedge.export FILE(type="REST", executionMode="single-run", useReturnValue="false", writeDataSetBeforeImage="false").

/*------------------------------------------------------------------------
File : kay10.p
Purpose :

Syntax :

Description :

Author(s) : pnmtmr04
Created : Fri May 17 16:43:33 EEST 2019
Notes :
----------------------------------------------------------------------*/

/* *************************** Definitions ************************** */

ROUTINE-LEVEL ON ERROR UNDO, THROW.

DEFINE TEMP-TABLE ttkay10 LIKE KAY10.

/* ******************** Preprocessor Definitions ******************** */


/* *************************** Main Block *************************** */

/* ********************** Internal Procedures *********************** */

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").
PROCEDURE readkay10:
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER ttcode AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER jsontext AS LONGCHAR NO-UNDO.
DEFINE VARIABLE jsonArray AS Progress.Json.ObjectModel.JsonArray NO-UNDO.

EMPTY TEMP-TABLE ttkay10.
FIND kay10 WHERE kay10.code=ttcode NO-ERROR.
CREATE ttkay10.
BUFFER-COPY kay10 TO ttkay10.

jsonArray = NEW Progress.Json.ObjectModel.JsonArray().
jsonArray:Read(TEMP-TABLE ttkay10:HANDLE).

jsonText = jsonArray:GetJsonObject(1):GetJsonText().

END PROCEDURE.

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").
PROCEDURE readkay10s:
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/

DEFINE INPUT PARAMETER filter AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER TABLE FOR ttkay10.

EMPTY TEMP-TABLE ttkay10.
FOR EACH kay10 WHERE kay10.code BEGINS filter:
CREATE ttkay10.
BUFFER-COPY kay10 TO ttkay10.
END.

END PROCEDURE.

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").
PROCEDURE Createkay10:
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER xkod AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER xinfo AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER xkay01_code AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER xunit AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER successmsg AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER success AS LOGICAL NO-UNDO.
FIND LPrmvPro NO-LOCK.
OUTPUT TO sil.csv.
PUT LPrmvPro.prokod ";" xkod ";" xinfo ";" xkay01_code ";" xunit SKIP.
OUTPUT CLOSE.
ASSIGN successmsg=""
success= FALSE.
FIND kay10 WHERE kay10.code=xkod EXCLUSIVE-LOCK NO-ERROR.
IF NOT AVAILABLE kay10 THEN DO:
CREATE kay10.
ASSIGN kay10.code=xkod
kay10.Info=xinfo
kay10.KAY01_Code=xkay01_code
kay10.Unit=xunit.
ASSIGN successmsg=xkod + " " + xinfo
success=TRUE.
END.

END PROCEDURE.

--------------------------------------------------------------------

the contents of the sil.csv file is as below

KABA;NMEMOXOZ;MEHMET Ö;4.01.A ;mo

---------------------------------------------------------------------------

POST : http://10.10.10.53:8080/DemoProject/rest/DemoService/kay10

Content-Type  :  application/json

{"request" :
{
"xkod": "NMEMOXOZ",
"xinfo": "MEHMET ÖZCAN",
"xkay01_code": "4.01.A",
"xunit": "mo"
}
}

{
"response": {
"successmsg": "NMEMOXOZ MEHMET ÖZCAN",
"success": true
}
}

All Replies

Posted by memoxoz on 04-Oct-2019 12:53

Hi,

I figured out what the problem is as there are triggers in the kay10 table. I could manage to create record kay10 table by using POST method once I deleted the triggers(write and delete) in kay10 table.

This thread is closed