存储

1. 综述

上节介绍了过程与规则,但是在得到规则的时候,是需要数据来源的,那这些数据是从哪里来的呢?它可能是别人随口说的,也可能是在计时器中读取的,也可能是在一张纸上就录着的。这就是我们所说的存储,必然,存储需要纸张。说、计时器、一张纸等,这都是一些不同的纸,只是保存的时间不同而已。那什么是纸张呢?

2. 纸张描述

存储着所有参与规则计算的变量,换句话说就是变量的存储位置。

3. 纸张类型

我们wware提供了以下纸张以便存储:

(1). inputs:只在一次请求中可用,服务器得到请求之后,并给出回应之前期间有效。相当于找您签字的纸,当您签完字之后,纸就拿走了,您什么也不记得了;

tmp_data:生命周期和inputs生命周期一样,并只在getPublicData()函数和getUserData()函数中有效,并且两个函数中,tmp_data中的变量互不影响。它就相当于您签字的纸里面的几个栏目;

finish_data:和tmp_data生存期一样,不过它是返回给客户端的变量,可存入数据也可读取数据。它就相当于是您需要填空的数据,这个就是您最终想要的结果数据;

session:同一个人(同一浏览器)能够在多次请求间共享的变量,并且在很长一段期间内有效。相当于您签字的纸都是同一张纸;

page_data:关联着view,伴随服务器端脚本的整个生命周期,一个请求或一组请求访问同一个view,都能获取其中的变量;

(2). 数据库:持久型,绑定到系统维护;

(3). 外部系统录入,请参考#。

4. 总结

在我们wware后端,每个代码段都分成三个部分:抓取、逻辑处理、存放。在处理逻辑的时候,需要获取数据,有的纸张存储的数据能直接访问,但是有的纸张存储的数据是不能直接访问的,需要其他代码段抓取并存放到能直接获取数据的纸张上,才能被访问。实际上,在WIDE中使用规则生成器时,您会发现,下图中绿色部分的变量类型在界面中直接可以选择,而红色部分的变量类型不会出现。必须先前置特定规则将红色变量区的内容转移到绿色变量区,后续规则才可以使用这些变量。一句话:所有规则都可以直接使用的变量区是绿色部分,红色变量区的内容要想被使用,必须通过特殊的规则将其内容转移到绿色区。虽然图中只列出了两个红色区域,但是红色变量区的类型远远大于绿色,统一使用外部系统称呼而已。

就像您是经理,现在正在进行数据计算,有的数据在身边的纸张上记录着,就像绿色纸张一样,可以直接访问的。还有些数据是在旁边的柜子里的纸张上记录着,就像红色的纸张 一样,不能被直接访问,您需要让助手查看柜子里您需要的数据,并记录在一张您能直接获取数据的绿色纸张上,才能继续进行计算。