Fiori里前后台ETAG处理

102 阅读1分钟

From: Wang, Jerry

Sent: Wednesday, April 1, 2015 12:01 PM

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

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

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

clipboard1

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

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

clipboard2

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

clipboard3

后台的框架会调用CHECK_BEFORE_MODIFICATION方法,进而会call到application的GET_ENTITY方法。
为了支持ETAG,application 后台必须实现这个方法。
clipboard4

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

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

要获取更多Jerry的原创文章,请关注公众号"汪子熙":