我正在尝试创建一个接收请求的ABAP OData,进行一些计算,然后,应该向最终用户返回一条消息并根据用户输入做出决定。所以基本上,OData服务应该在收到响应之前“暂停”。
有没有人有个好主意?
感谢您的回复。 此致!
答案 0 :(得分:0)
OData是一种特殊的REST。 REST是无状态的。你想要的是有状态的。
将这种状态流转变为无状态流的好方法是:
发送第一个请求(REST:POST,OData:CREATE),创建并保存(!)表示计算及其结果的文档。第一个请求可以返回计算结果以呈现给用户。
用户的选择然后发送第二个请求,该请求解决先前创建的文档(例如,通过GUID)并包括用户的选择。这意味着第二个请求既不必再次发送计算输入,也不会实际执行任何计算;它只会改变现有对象的状态。
如果之后不再需要计算,则第二个请求可能会删除它。为防止数据泄漏,在时间限制(例如24小时)后删除较旧的计算可能是明智之举。