CRM 订单状态的 Open, In process 和 Completed 这些条目是从哪里来的
Service Order 的状态字段里的这些字段从哪里带出来的?我们可能会想当然的认为是从后台配的 Status profile 里带出来的。事实并非如此。
这个 transaction type 根本没有分配任何 Status profile,但是仍然可以在 UI 上看到三个可选的状态值。
Status 状态字段里的值并不是我们想象的那样,完全来自 system status profile 和 user status profile,后者只是数据源之一。
这个下拉菜单里的值通过下面这个方法取出:可以看到方法执行的结果就是 UI 上看到的三条记录。
这个 GET_STATUS_INFO 的具体逻辑:
先从 crmc_status_proc 里取出全部 47 个状态,
这 47 个状态会根据其 RANGE 字段,和 CRNC_BO_RANGES 的 RANGE 字段做一个 join,过滤掉那些 Join 结果里 OBJECT_TYPE 字段不等于 BUS2000116 的状态,最后就只剩 Open, In Process 和 Completed 三条记录。
要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/2141e81e5c68d1acaed2f1017】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论