上周跟朋友讨论一个项目上的需求,很有代表性,给大家分享下。
背景如下:
客户有疑问,说:“项目做催收计划的时候会有一个开票计划。想通过Saved Search来做个统计和提醒功能。但是在做Saved Search时,只能看到上面的表头信息,下方的那些比较关键的字段,在系统内好像无法找到。”
这就带出一个本文的主题:”Saved Search并不是万能的,并不能访问所有的数据对象。”
那么如何破这个题呢?如果我们需要访问这些数据对象,该咋办?
解决方案经过了长达3000多秒的分析,我们有如下的发现,以及解决方法。
Saved Search is dying, New King is coming。
首先我们说一下“数据源”及“封装暴露”的基本概念。NS是单一数据源设计,无论Saved Search,Report,Analytics,Connect,WebService访问的都是同一个数据源(Single Database)。但是由于应用场景的不同,数据源会被封装为不同的“暴露数据”。想想Table与View的关系,我们就能大致理解其用意。
Saved Search的优点是UI上易用、好理解。在过去的应用中,确实是王者。但是事物的辩证性决定了,其有短板。那就是对于复杂查询的吃力,想想Join的问题,你就明白了。所以,Saved Search由于其在复杂查询上的短板,正在逐步退出历史舞台,当然对于简单查询的业务场景其是有优势的,仍然会长期存在。对于某些较新的业务功能,架构师没有与时俱进的将其封装暴露给Saved Search。这就导致了本文前面提到的问题的发生。
Old King is dying,那么New King是谁呢?
那就是Analytics Workbook。
从上图可以看到,Billing Schedule的Sublist被暴露出来了。可以方便的展现出来。
从2019.1之后,Analytics就在每次的Release中占据了极大的篇幅。特别是SuiteQL的推出,为复杂查询给出了NetSuite的终极方案。
所以,对于上面问题的解决方案就是:
转向Workbook,然后通过Analytics Portlet来展示在主页。
大势所在,奶粉们应趋之!



