请求/响应中数据无法解释的变化

时间:2016-08-17 20:38:16

标签: javascript telerik xmlhttprequest openedge

我有一个非常奇怪的问题,我真的希望你们都可以告诉我我是多么愚蠢以及为什么会这样。

我有一个移动应用程序,我正在使用Telerik Appbuilder构建。后端全部写在OpenEdge 11.6上,我使用Pacific App Server for OE来提供服务。我也在使用JSDO与客户端的数据进行交互。

出于某种原因,当我调用jsdo.assign()并发送数据对象以进行更新时,除了一个字段外,所有字段都会更新。它是唯一定义为十进制数据类型的字段。看起来数据是以十进制的形式发送的,但是在某些地方,某些东西发生了变化,看起来变成了一个整数,或者至少是OpenEdge不喜欢的东西。

我的请求有效负载如下所示(TEMP是违规字段):

Request

我的回答如下:

Response

发生了什么事?什么可能干涉我的数据?我真的不知道从哪里开始。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于我的临时表定义,因为它没有反映表的结构。最初,我的代码看起来像这样:

DEFINE TEMP-TABLE ttWHS_TEMP_REPORT BEFORE-TABLE bttWHS_TEMP_REPORT
FIELD LOCATION_ID AS INTEGER INITIAL "0" LABEL "Location_Id"
FIELD LOCATION_NAME AS CHARACTER LABEL "Location_Name"
FIELD TEMP AS DECIMAL INITIAL "0" LABEL "Temp"
FIELD IN_RANGE AS LOGICAL INITIAL "no" LABEL "In_Range"
FIELD EMPLOYEE AS CHARACTER LABEL "Employee"
FIELD STAMP_DT AS DATE INITIAL "?" LABEL "Stamp_DT"
FIELD STAMP_TM AS CHARACTER LABEL "Stamp_TM"
FIELD REPORT_ID AS INTEGER INITIAL "0" LABEL "?". 

我只是把它改成这样:

DEFINE TEMP-TABLE ttWHS_TEMP_REPORT BEFORE-TABLE bttWHS_TEMP_REPORT
FIELD LOCATION_ID AS INTEGER INITIAL "0" LABEL "Location_Id"
FIELD LOCATION_NAME AS CHARACTER LABEL "Location_Name"
FIELD IN_RANGE AS LOGICAL INITIAL "no" LABEL "In_Range"
FIELD EMPLOYEE AS CHARACTER LABEL "Employee"
FIELD STAMP_DT AS DATE INITIAL "?" LABEL "Stamp_DT"
FIELD STAMP_TM AS CHARACTER LABEL "Stamp_TM"
FIELD REPORT_ID AS INTEGER INITIAL "0" LABEL "?"
FIELD TEMP AS DECIMAL INITIAL "0" LABEL "Temp". 

我在定义了临时表之后对表进行了更改,而我对OpenEdge的了解不足以意识到临时表中定义的字段顺序很重要。