SAP CRM Fiori应用My note的技术实现
(1) 在左边的list里看到的每个entry,在My note odata model里称为note header,右边的每个checkbox后面的entry称为note section。
Note section必须依附于某个note header,不能单独存在,header: section是1对N的关系。
在CRM后台,这两种entry的header information 存储分别以TDOBJECT为CRM_NOTESH和CRM_NOTESS存放在table STXH中。
(2) 如果当前user下不存在任何的note header,则第一次打开my note application时,系统会自动为该user 创建一个新的note header。实现在S2 controller的159行,印度人通过一个很奇葩的boolean 变量来控制这个behavior。
(3) 删除button的实现:如果删除之前user只存在唯一一个note header了,则删除操作的odata batch 操作里会自动插入一个新的note header creation,确保在任何时候user都至少拥有1个note header。
(4) 如果一个note header没有任何note section,则application会自动创建一个note section:
(5) Step4右图中提到section之间的分隔符是通过两个回车实现的,即下图代码中的\n\n:
也就是说,my note application里每个section的content里,行与行之间不支持两个回车。比如下面这段话中间有两个回车,所以只能分别放到两个note section里。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":