任延华
任延华
## 三、各功能界面校验与服务器API校验的匹配依据 我们来看一个简单的校验规则配置,以此来说明各功能界面校验 与 服务器端API校验的匹配依据。注意打开各功能界面校验开关 与 服务器API校验开关。 ``` ``` 条码规则中location 属性定义了馆藏地名称,一般是一个馆代码或者馆藏地名称。空字符串表示总馆,`*`号表示任意字符。location可以是以逗号分隔的多个值,表示指定的多个值都适应配置的条码规则。 例如:`location=',馆藏地1,馆藏地2'` 表示在各功能进行条码校验时,传空字符串、传"流通库"、传"阅览室" 均能匹配上规则。 `location='海淀分馆,海淀分馆/*` 表示在各功能进行条码校验时,传"海淀分馆"和传"海淀分馆/任意字符"都能匹配上规则。 下面我们分别说明:读者窗编辑读者信息、种册窗一般和快速册登记、册登记窗册登记、快捷出纳窗借还的界面校验与服务器API校验时传递的匹配依据。 如果服务人员想用下面说的检测方式实验一下,需在本地配置下面环境: 1)在内务参数里配置“流通库”和“阅览室”,以便在左上角能选择馆藏地 2)配置“海淀分馆”分馆的读者库,为其创建一个“图书馆”馆藏地和设置排架体系。 ### 3.1 读者窗,编辑读者信息 **界面校验发生时机:** 在读者窗,点新增/保存按钮 时进行界面校验。新增时,界面校验不通过时,不会出现选择读者库对话框;界面校验通过了,才会出现选择读者库对话框,然后提交服务器。 **界面校验匹配依据:** 左上角选择的馆代码或者馆藏地信息,就是左上角选择什么就是用什么值去匹配校验规则。 **服务器API匹配依据:** 读者记录保存至读者库所属的馆代码。...
## 四、条码规则编写与应用案例 这里根据常见的4种图书馆条码规则要求,编写对应规则,并解释说明为什么这样编写。服务人员可以根据这些样例为图书馆具体配置,如果还有特殊情况,再补充样例。 ### 4.1 单套系统,统一的条码规则 ``` ``` 说明: 1)location中的第一个逗号前的空,表示匹配馆代码为空的情况,就是单套系统下左上角默认为[总馆]的值。对于单套系统,没有特别的情况,不会让用户在内务前端配置附加馆藏地,左上角馆代码就是一个空值。所以要支持空值的匹配。 界面校验是依据左上角值匹配的地方有:读者窗,快捷出纳窗,种册窗的快速册登录。 2)另外读者保存服务器API是依据读者库馆代码,单套系统读者库的馆代码为空。由此看到服务器校验也要支持空值的匹配。 3)为什么不能写为`location=''`,是因为xml新规则,对于册记录条码的服务器API校验是依据册记录的馆藏地字段值校验了,location设为空,只能匹配馆代码空值,不能匹配上具体的馆藏地字段值。所以看到上面规则示例中location列举了对各个馆藏地的值。 **4)如果一个系统的馆藏地很多,列举很麻烦,容易漏掉,能不能优化?可以优化为`location=",*"`,逗号前面的空表示馆代码,星号表示任意馆藏地。 如果还希望再简化,可以优化为`location="*"`,表示匹配任意馆代码 和 任意馆藏地。** ### 4.2 单套系统,馆藏地条码规则不同 如果一套系统,但内部使用者有独立的划分,比如有东区和西区两个大的划分,两个区的册条码规则是不同的,读者证条码规则也是不同的,那么可以按下面方式来配置。 ``` ``` 说明: 1)东区和西区是两个大的馆藏地划分,可以实际有"东区一层"、"东区二层"、"西区一层"等,所以分别定义了`location="东区*"`和`location="西区*"`,星号表示任意字符,属于东区或西区的馆藏地都会匹配上对应规则。 2)为什么除了"东区*"和"西区*"的定义,又定义了`locaton=""`,重复书写了证条码的规则?这是因为读者保存服务器API是依据读者库所属馆代码来匹配规则,对于单套系统,读者库的馆代码为空。所以为了在服务器API校验时通过,需要配上location为空的情况。 3)上述规则配置比较严格,使用的时候,要指导用户在内务前端参数中配置上附加馆藏地"东区"和"西区",并且指导东区和西区的用户在内务左上角选正确自己的区。 如果左上角没选,按默认[总馆],那么读者编辑界面校验和服务器API都能通过,但快捷出纳窗扫册条码时 和 种册窗下方册条码输入框回车均界面校验不通过,因这两处的界面校验是依据左上角选择的馆藏地。...
## 条码自动转换 条码转换主要用在快捷出纳窗。 下面是一个分馆下馆藏地册条码规则不同,且册条码有自动转换的示例: ``` ``` 上面这个示例,对用户使用要求严格,需要在用户在内务前端配置上对应的附加馆藏地,然后在内务左上角选择正确的馆藏地,才能进行转换和校验条码,左上角不能直接用馆代码。指导用户使用工作量比较大。 如果希望简化配置,服务指导或维护方便,可以把几种条码格式看作在一个大范围,location用列举法配置,这样就不用在用户前端电脑配置附加馆藏地了。配置举例如下: ``` ```
dp2installer dp2libraryxe 和 dp2circulation 都已经更新了。兑现了新的默认匹配规则,即每一位字符的取值范围为对应位置首尾字符的范围。例如range='001-999',则需要满足前两位每位字符为0-9,最后一位字符为1-9。 range 元素中的 pattern 属性也实现了,pattern 属性存在的时候 range 属性只参与比较首尾范围、不进行逐字符范围比较。 注意:默认匹配规则也有坑,例如range='0000001-7777777' 这样的定义,需要每一个字符都只允许 7 和以下的数字,例如0009999则不符合,和直觉相违背,使用时候要格外注意。 下面的是一些测试样例: 条码规则定义:`range='000001-999999'` 条码测试样例: ``` 000001 符合 012345 符合 700009 符合 999999 符合 000000 不符合...
### 测试用例 1.1 ### 测试要点 开1门,放1本或多本,上架+调入。 ### 测试步骤 准备工作,配置dp2ssl书柜的馆藏地。在内务中提先将location设为不等于书架馆藏地,设置currentLocation为空(有一个批处理脚本可以设置)。 1. 馆员刷卡,输密码。 2. 开1个门,dp2ssl发开门消息 `门 '名称' 被 ~ryh 打开` 3. 放1册(或多册) 4. 关门,dp2ssl发关门消息 `门 '名称' 被 ~ryh 关上`。 5. dp2ssl弹出“上架”对话框,语音提示“上架”,对话框显示放入的图书详情,注意观察原始location与currentLocation是否正确,本例中location=流通库,currentLocation=空,系统自动生成一个移交批次号,批次号可以用键盘修改。 6....
### 测试用例 1.2 ### 测试要点 开1门,放1本或多本,**普通上架。** ### 测试步骤 准备工作,配置dp2ssl书柜的馆藏地。在内务中提先将location设为不等于书架馆藏地,设置currentLocation为空。 1. 馆员刷卡,输密码。 2. 开1个门,dp2ssl发消息 `门 '名称' 被 ~ryh 打开` 3. 放1册(或多册) 4. 关门,dp2ssl发关门消息 `门 '名称' 被 ~ryh 关上` 5. dp2ssl弹出移交对话框,对话框显示放入的图书详情(注意观察原始location与currentLocation)。 6....
### 测试用例 1.3 20200418-2215-ryh:dp2ssl版本号1.4.7413.36993,放10本,符合预期。 ### 测试要点 馆员取书,开1门,取1本或多本,下架+调出。 ### 测试步骤 准备工作:提前观察好书柜图书的location和currentLocation。 1. 馆员刷卡,输密码。 2. 开1个门,dp2ssl发消息。`门 '名称' 被 ~ryh 打开` 3. 取1册(或多册) 4. 关门,dp2ssl发关门消息 `门 '名称' 被 ~ryh 关上`,语音提示门关闭, 5. dp2ssl弹出“下架”对话框,语音提示下架,对话框显示放入的图书详情,注意观察location与currentLocation的值,系统自动生成一个批次号(这个批次号后面会记录在dp2的操作日志里)。 6....
### 测试用例 1.4 ### 测试要点 开1门,取1本或多本,**普通下架**。 ### 测试步骤 准备工作:提前观察好书柜图书的location和currentLocation。 1. 馆员刷卡,输密码。 2. 开1个门,dp2ssl发消息 `门 '名称' 被 ~ryh 打开` 3. 取1册(或多册) 4. 关门,dp2ssl发消息 `门 '名称' 被 ~ryh 关上`。 5. dp2ssl弹出“下架”对话框,语音提示下架,对话框显示放入的图书详情,注意观察location与currentLocation的值,检查对话框显示的location是不是最新值。 6....
### 测试用例 1.5 ### 测试要点 开一门,放入1本/多本,取出1本/多本,观察弹出几个对话框,选择调入或调出。 ### 测试步骤 准备工作:提前观察好书柜图书的location和currentLocation。 1. 馆员刷卡,输密码。 2. 开1个门,dp2ssl发消息1`门 '名称' 被 ~ryh 打开` 3. 取出多册,放入多册,观察这些册目前的location和currentLocation。 4. 关门,dp2ssl发关门消息。 5. dp2ssl先弹出“上架”对话框,语音提示上架,对话框显示了放入的图书详情,注意观察原始location与currentLocation的值。 6. 点“上架+调入”按钮,系统进行处理,对每册先执行还再执行调入。 7. 接着弹出“下架”对话框,对话框显示了取出图书的详细信息,观察原始location与curloction。选择一个目标馆藏地(例如 星洲学校/图书馆),点"下架+调出",系统进行调出处理, 8. 最后弹出一个“处理完成”对话框,显示本次放入和取出的全部数据(**注意这里与开多个门的情况不同,多个门时是每个门完成后弹出一个提示框**)。上架的是每册2条(还和上架),下架的册是每册1条下架记录。**这个提示还可以简化一下(比如上架X,下架X),希望就不要显示还操作了,不过这是馆员看的显示清楚也挺好。**...
### 测试用例 2.1 ### 测试要点 开多门,放入多本,上架+调入 和 普通调入 ### 测试步骤 准备工作:提前观察/处理好书柜图书的location和currentLocation。 1. 馆员刷卡,输密码,固定身份。 2. 开多个门,dp2ssl发出对应开门数量的消息。 ``` 门 '智能书柜2号门' 被 ~ryh 打开 门 '智能书柜1号门' 被 ~ryh 打开 ``` 3. 每门放入多册。 4....