云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

专属服务器_新加坡域名注册_学生机

小七 141 0

专属服务器_新加坡域名注册_学生机

嗨,丹,

一旦设备在线,可以从设备上传(刷新)多少条记录。例如,如果我在设备脱机时进行500次更改(创建、更新和删除),我是否能够一次刷新所有这些更改?如果是,所有这些更改是否会在一次调用中推送到服务器

此致,

Siva

我相信答案是肯定的,所有更改都可以在一次刷新调用中推送到服务器上。

如果您希望查看所做的底层请求,本指南中的监视HTTP/HTTPS请求部分可能会有所帮助。

Kapsel入门-附录F-提示(SP09+)

使用Fiddler应该可以查看您的设备和SMP服务器以及SMP服务器和后端之间的通信。

希望有帮助,

Dan van Leeuwen

嗨Daniel,

目前我正在使用基于Kapsel的混合应用程序,目标是Windows 8.1平台。SMP SDK版本为SP08.

应用中的场景之一是在子节点离线创建一条记录,并将其附加到现有父节点。然后在同步过程中,创建的记录将在后端更新。更具体地说,模型看起来像:

WorkOrderSet:[

0:{

WorkOrderID:"111",

WorkOrderDesc:"Description 111",

Measurements:[]

},

1:{

WorkOrderID:"111",

WorkOrderDesc:"Description 111",

Measurements:[]

}

现在我想用WorkOrderID:"111"为WorkOrder创建一个测量记录。创建记录需要在脱机模式下进行。

以下是在联机模式下工作的代码片段:

var url=smpUrl+appId+"\WorkOrderSet";

var workOrderData={

"UserID":"11",

"WONumber":"W11",

};

工单数据测量=[{

"UserID":"11",

"WONumber":"W11",

"MeasurementID":"M11",

"Reading":"5"

};

var oHeaders={};

oHeaders['Authorization']=authStr;

oHeaders['X-SMP-APPCID']=APPCID;

oHeaders['Content-Type']="application/atom+xml";

oHeaders['X-csrf-token']="Fetch";

var request={

headers:oHeaders,

requestUri:url,

method:"GET"

};

OData.请求(请求,功能(数据,响应){

var csrfToken=响应.标题['x-csrf-token'];

oHeaders['x-csrf-token']=csrfToken;

var request={

headers:oHeaders,

requestUri:url,

data:workOrderData,

method:"POST"

};

OData.请求(request,successCallback,errorCallback)

}

对于离线模式,我尝试了两种解决方案:

解决方案1:

相同的代码因为它在联机模式下使用语句sap.OData.applyhtpclient应用程序(). 首先,GET调用成功,但是它没有返回任何x-csrf-token。其次,调用后返回错误为"OfflinePluginError-Code:9-Message:Invalid JSON String"

解决方案2:

使用deep insert,如下所述:#deepinsert

代码片段为:

var url=smpUrl+appId+"\WorkOrderSet";

var metaID="(UserID='11',WONumber='W11')";

var measurementData={

"UserID":"11",

"WONumber":"W11",

"MeasurementID":"M11",

"Reading":"5"

"WorkOrderSet":{

"uu metadata":{

"uri":metaID

}

}

};

var oHeaders={};

oHeaders['Authorization']=authStr;

oHeaders['X-SMP-APPCID']=APPCID;

var request={

headers:oHeaders,

requestUri:url,

数据:测量数据,

方法:"POST"

};

sap.OData.applyhtpclient应用程序();

OData.请求(request,successCallback,errorCallback);

POST request失败,出现错误【object object】

任何帮助都将不胜感激。

谢谢,

Chirag.

嗨,丹尼尔,

有刷新和刷新的问题。本地创建的实体在flush调用后成功发送到后端,但我仍然在我的设备中看到记录。

以下是场景:

-->使用临时订单号(我分配唯一编号)在设备中创建新订单

-->刷新存储。刷新成功,在后端创建了订单号。

-->调用刷新后,我仍然看到带有临时编号的订单。

我假设本地创建的记录不应该存在于设备中。但事实并非如此。

是否有办法获取后端创建的每条记录的成功消息?我想不出用冲水的方法。

问候,

默蒂

嗨默蒂,

你的场景是只上传的吗?如果是这种情况,那么根据我的经验,框架仍然不支持只上传的场景(丹尼尔确认)。

这里的解决方案是刷新后删除本地创建的实体。

谢谢,

Chirag。

Hi Chirag,

我的场景是上传和下载。由于实际订单号将在创建时在后端生成,因此我为该记录分配了临时编号。

根据订单类型,在执行刷新时将下载该订单。

我的理解是,本地创建的记录将在刷新后被删除,而刷新未发生。

敬,

Murthy

嗨Murty,nba大数据,

您所描述的问题只有在实体的主键值之间存在差异时才会发生。只需确保设备中可用的实体和从后端返回的实体的主键字段值相同。

谢谢,

Chirag。

Hi Chirag,

在设备中创建记录时,由于我分配主键(临时值),主键肯定会不同。当记录发送到后端时,即创建实际数字的时间。

是否有方法用后端生成的数字更新本地创建的记录?

注意,

Murthy