天天看点

Fiori里前后台ETAG处理

以opportunity为例来简单说明前后台需要做哪些开发才能够支持ETAG。详细的代码和DDIC enhancement参考Opp相关object。

当UI上点击note tab时,所有的complex note包括其ETAG由后台返回给前台。这里的ETAG实际就是note的last change timestamp。

该ETAG由后台从db里取出,返回给前台

Fiori里前后台ETAG处理

当UI上点某条note的edit button之后做了note change,点击ok button时:

前台必须把step1从后台接收到的ETAG 通过Odata API重新传给后台:

Fiori里前后台ETAG处理

该ETAG会出现在HTTP header的If-Match field里:

Fiori里前后台ETAG处理

后台的框架会调用CHECK_BEFORE_MODIFICATION方法,进而会call到application的GET_ENTITY方法。

为了支持ETAG,application 后台必须实现这个方法。

Fiori里前后台ETAG处理

这个GET_ENTITY方法会返回1个最新的ETAG

Framework把UI 上传进来的ETAG和step2 里获取到的ETAG进行比较,如果不相等,就按照http 协议报412 error

Fiori里前后台ETAG处理

继续阅读