Coder Social home page Coder Social logo

digitalplatform / dp2 Goto Github PK

View Code? Open in Web Editor NEW
105.0 17.0 54.0 224.95 MB

Integrated Library System / 图书馆集成系统

Home Page: http://digitalplatform.github.io/dp2

License: Apache License 2.0

C# 94.89% HTML 3.13% Smalltalk 0.08% XSLT 0.11% CSS 1.34% JavaScript 0.25% PHP 0.05% Batchfile 0.01% Roff 0.01% ASP.NET 0.13%
c-sharp ils library-management-system open-source integrated-library-system marc marc21 marcxml eacc iso-23950

dp2's Introduction

dp2 图书馆集成系统

An Integrated Library System write in .NET

dp2 图书馆集成系统是 数字平台(北京)软件有限责任公司于 2006 年开始开发的一套图书馆业务系统软件。现在我们决定将它开源,奉献给全社会。

这套系统包含下列模块:

  • dp2Kernel - 数据库内核(标准版)
  • dp2Library - 图书馆应用服务器(标准版)
  • dp2LibraryXE - 图书馆应用服务器(单机版和小型版)
  • dp2ZServer - Z39.50 服务器
  • dp2OPAC - 读者公共查询
  • dp2Circulation - 内务前端
  • dp2Catalog - 编目前端
  • dp2Batch - 内核批处理前端
  • dp2Manager - 内核管理
  • dp2rms - 内核资源管理
  • GcatLite - 通用汉语著者号码表取号示范程序

我们将继续维护和销售原有的企业版,并增加社区版的发行包下载服务。企业版和社区版采用同一套源代码,社区版的功能更新一般会比企业版要稍晚一些。

欢迎有识之士加入我们的开发和推广团队,以便更多更好地为这套系统增添功能。email: [email protected]


QQ群:

开发事宜:开源dp2系统开发 163251536

产品使用咨询:数字平台产品 487513826


数字平台(北京)软件有限责任公司 谢涛 2015.5.7

如何编译

  1. 应使用 Visual Studio 2019 或 2022

  2. 确保安装过 .NET Core SDK 2.6 以上版本

下载地址: https://dotnet.microsoft.com/download/visual-studio-sdks

  1. dp2 Solution 中引用了一个名为 dp-library 的submodule。需要用 Git 命令行执行下面命令: (如何打开Git 命令行?可以先安装一个Git桌面工具,例如GitHub Desktop,然后通过菜单Repository/open in command prompt 打开命令行。 或者下载 Git For Windows,然后启动Git Shell)。
git submodule init
git submodule update
cd dp-library
git pull

注1:或者可用 git submodule update --init --recursive 注2:如果 git pull 命令报错说 You are not currently on a branch.,可以用 git pull origin master 以确保获得最新的 dp-library 代码。

第3步详细执行结果

D:\code\dp2>git submodule init

D:\code\dp2>git submodule update

D:\code\dp2>cd dp-library

D:\code\dp2\dp-library>git pull
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>


D:\code\dp2\dp-library>git pull origin master
fatal: unable to access 'https://github.com/DigitalPlatform/dp-library.git/': OpenSSL SSL_read: Connection was reset, errno 10054

D:\code\dp2\dp-library>git pull origin master
From https://github.com/DigitalPlatform/dp-library
 * branch            master     -> FETCH_HEAD
Updating 7fbbf14..e22781d
Fast-forward
 DigitalPlatform.Core/CompactLog.cs                 |  34 ++-
 DigitalPlatform.Core/ConfigSetting.cs              | 286 +++++++++++++++++-
 DigitalPlatform.Core/StringUtil.cs                 |  11 +
 DigitalPlatform.Core/deleted.txt                   | 333 +++++++++++++++++++++
 DigitalPlatform.SIP/BaseMessage.cs                 |   2 +-
 DigitalPlatform.SIP/Request/Checkin_09.cs          |   2 +-
 DigitalPlatform.SIP/Request/Checkout_11.cs         |   2 +-
 DigitalPlatform.SIP/Request/Login_93.cs            |   7 +-
 .../Request/PatronInformation_63.cs                |   2 +-
 DigitalPlatform.SIP/Request/Renew_29.cs            |   2 +-
 DigitalPlatform.SIP/SCHelper.cs                    |  12 +-
 DigitalPlatform.Z3950/BerNode.cs                   |  16 +-
 UnitTestCompactLog/UnitTest1.cs                    |   2 -
 UnitTestCompactLog/UnitTestCompactData.cs          |  31 ++
 UnitTestCompactLog/UnitTestCompactLog.csproj       |  16 +-
 15 files changed, 730 insertions(+), 28 deletions(-)
 create mode 100644 DigitalPlatform.Core/deleted.txt
 create mode 100644 UnitTestCompactLog/UnitTestCompactData.cs

D:\code\dp2\dp-library>

如果在dp2代码中修改的dp-library中的代码,那么同步dp-library的代码会报错,如下

D:\code\chord\dp-library>git pull origin master
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 11 (delta 8), reused 11 (delta 8), pack-reused 0
Unpacking objects: 100% (11/11), 1.08 KiB | 27.00 KiB/s, done.
From https://github.com/DigitalPlatform/dp-library
 * branch            master     -> FETCH_HEAD
   7c720d9..aa89e52  master     -> origin/master
error: Your local changes to the following files would be overwritten by merge:
        DigitalPlatform.SIP/Request/PatronInformation_63.cs
Please commit your changes or stash them before you merge.
Aborting
Updating 7c720d9..aa89e52

此时可以先用git reset --hard放弃本地代码,再拉取dp-library。如下:

D:\code\chord\dp-library>git reset --hard
HEAD is now at 7c720d9 修改提示

D:\code\chord\dp-library>git pull origin master
From https://github.com/DigitalPlatform/dp-library
 * branch            master     -> FETCH_HEAD
Updating 7c720d9..aa89e52
Fast-forward
 DigitalPlatform.SIP/Request/PatronInformation_63.cs          | 2 +-
 DigitalPlatform.SIP/Response/PatronInformationResponse_64.cs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Git 命令执行以后,需要重新打开 dp2 Solution 变动才能生效

  1. 编译中若出现类似这样的报错:
13>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3214,5): warning MSB3327: 无法在当前用户的 Windows 证书存储中找到代码签名证书。若要更正此问题,请禁用 ClickOnce 清单的签名或将证书安装到证书存储中。
13>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3214,5): error MSB3323: 在证书存储区中找不到清单签名证书。

需要将一些 .exe 的 Project (例如 dp2Catalog)的“签名”属性页中“为 ClickOnce 清单签名”这个 checkbox 清除选择。

dp2's People

Contributors

dependabot[bot] avatar digitalplatform avatar renyh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dp2's Issues

dp2library 流通双链改造

dp2library 一直以来,在表达流通双链时,使用了读者证条码号和册条码号来定位读者记录和册记录。由于以下原因,这种定位方法不够稳定:

  1. 册条码号可能被改变。比如图书上面贴的册条码号标签可能会受损,需要更换。如果双链中用到了册条码号,就需要让程序专门去连带修改,比较麻烦;

  2. 在后面即将进行的对 dp2library 分馆之间允许册条码号重复的改造中,同一个 dp2library 实例内的不同分馆之间,册条码号是允许重复的,因此用它作为双链的连接点就不合理了。需要改为使用册记录的参考 ID。

  3. 读者借阅证上的条码标签也有可能会受损,需要更换。如果双链中用到了证条码号,就需要让程序专门去连带修改,比较麻。

因此,计划对双链所用的号码类型进行改造。用读者和册记录的参考 ID 来代替读者证条码号和册条码号。

实际上从概念上,读者证条码号和册条码号会演变成一种入口。类似读者姓名和册的其他某些特征,这样就从理论上理顺了关系,理论上我们认为这些入口字段内容都有可能发生重复,在发生重复的时候,出现界面让操作者选择,或者根据某些上下文条件自动进行选择即可。

对预约功能的影响

预约功能改造前主要使用记录路径,部分代码考虑了用参考 ID 的情况,但没有全面改造过。这次需要彻底改造。

这个过程中要考虑原有的预约队列记录在升级后是否还能使用的问题。如果不能兼容,是否要在升级的时候自动修改这些数据记录。

新旧版本数据兼容性,升级时候的考量

改造后,要求以前所使用的号码类型还可以继续使用。新的参考 ID 用法,加上前缀和以前的号码类型区分,比如 @refid:xxxxx。不过,当版本升级后,新版本会优先选用新的号码类型来写入数据记录;能继续使用旧的号码类型,只是出于兼容以前数据目的。

若不想让新版本兼容以前的号码类型用法,也就是说只用新的参考 ID 方法,也可以在升级时候自动遍历以前的所有相关数据记录,自动修改原来记录中的相关号码类型。如果这样运作,可能需要明确设立一个升级后自动修改数据的阶段,凡是不经过这个阶段的 dp2library 模板应在报错以后挂起不让运行,以避免损坏数据或者出现功能故障。

报表窗的本地数据库

改造对内务报表窗的本地数据库格式有一定冲击。原来版本都是用记录路径来定位相应的记录,改造后应可以用参考 ID 来定位。并且,原来的号码类型和新的号码类型混用,在书写统计用的 SQL 语句是否有解决方法目前还不清楚,还需要进行一些试验。如果试验表明不能混用,那就需要重构这部分程序代码,修改本地数据库的数据结构,然后让用户单位系统管理员重新创建本地存储。

报表窗用于创建报表的 SQL 语句也需要进行对应改进

操作日志

以前运行生成的操作日志记录是否能兼容,是否需要自动修改,也是一个问题。

一直以来,操作日志提供了快照恢复的方式,这个方式要求准确定位数据库记录,用的是记录路径。现在要增加通过参考 ID 定位的能力,而且优先使用这种方式。日志记录中常见的 record 元素的 recPath 属性,可能还要增加一个新的属性 refID,新版本要优先使用 refID 属性。

双链检查功能

系统的双链检查相关 API 和内务里面的界面需要做对应的改进

编程方式的考量

由于这次改造动作很大,可以考虑新开辟一个分支来进行改造。这样可以不影响原有代码继续修 bug 和发版本安装包

文稿:如何利用读者窗新建,修改读者信息

@paopaofeng 马老师,以下是关于“如何利用读者窗新建,修改读者信息”的初步文稿,请审阅。

==

如何利用读者窗新建,修改读者信息

大家好,本节我们学习如何利用读者窗新建,修改读者信息。

1. 进入读者窗,并介绍读者窗界面
在dp2内务里,点击常用窗口菜单下面的“读者窗”,进入读者窗界面。我们在这里新建和修改读者信息。
进入读者窗后,首先看到的是一个空白的界面。界面的左侧是读者信息创建区,右侧是读者信息显示区。我们先演示如何创建读者信息。

2. 创建读者信息
2.1 演示读者信息各栏如何设置

在创建读者信息的过程中,必不可少的是读者证条码,读者类别,失效日期,姓名,性别,单位。
假设现在我要登记一名新的读者,这位读者是一名新入学的学生。

第一栏,证条码号,如果已经准备好了该读者的证条码标签,我们可以直接用扫码枪扫入证条码号。如果没有证条码标签,这里也可以手动输入。比如我这里是按照大写的英文字母S加上学生的学号来设置读者证条码的,这名读者的学号为201803011,所以证条码号我手动输入为“S201803011”。这样证条码号就设置好了。

接下来设置读者类别,我们从读者类别的下拉列表里选择“学生”,
下一栏,发证日期,我们设置为2018年3月7日,
失效日期一栏,对学校来说,失效日期一般设置为学生毕业日期,比如我设置为2021年6月30日,
姓名一栏我们输入学生姓名“王智勇”,
性别下拉选择“男”,
单位一栏,我们输入读者单位,这里我输入“2019级3班”。

2.2 保存
以上信息编辑好后,我们确认无误,点下方工具条上“保存”按钮,系统弹出“保存读者记录到”的对话框,询问要存储到哪个读者库。在这里需要把读者记录保存到一个已经事先创建好了一个读者库。我们从读者库名输入框右边的下拉列表中选择需要保存的读者库,比如这里我们选“读者”。下面的id输入框里面,仍然保留?,这表示这条读者记录作为新记录追加到”读者”库中。
我们点击“确定”按钮 。读者记录保存成功了,可以看到读者窗界面的右边信息区显示出当前新建的读者信息。
就这样,一条读者信息记录就创建好了。

2.3 从读者查询窗查询验证读者信息是否创建成功
我们可以到读者查询窗里面去查询一下这笔记录是否已经真正保存到系统当中。
我们打开读者查询窗。在读者查询窗里面,选好读者库,以读者证为检索途径,输入刚才创建的读者证号码"S201903011",匹配方式选择精确一致,发起检索,系统查询并显示出这笔记录。证明刚才我们的读者信息创建成功了。

3. 修改读者信息
下面讲如何利用读者窗修改读者信息。我们先退出读者窗。然后重新进入。从“常用窗口”菜单下面,点击“读者窗”,进入读者窗界面。

3.1 装载读者记录
当我们想要通过读者窗来修改读者信息时,需要先将读者记录装入到读者窗。比如我想要对刚才创建的那条读者信息进行修改。在界面左边,编辑区的上方,有一个证条码号输入框,我们在这里输入刚才创建的证条码号,我输入S201803011,然后点击输入框右边的“装载“按钮,这时对应的读者信息就显示到读者信息创建区,并且界面右侧显示出该读者所有的信息,包括读者信息,借阅信息,预约请求和借阅历史。

3.2 修改读者信息
我们只要在读者创建区里对需要修改的字段内容进行修改。修改后点击下方工具条上的“保存”按钮,修改后的记录就保存到数据库中。这里我们修改一下读者单位,然后点击保存,可以看到界面右侧的读者信息显示区里面,这笔读者的单位已经对应地发生了变化。

3.3 当读者记录中包含借阅信息时,无法修改证条码号。
修改读者信息时需要注意的是,当读者记录中包含借阅信息的时候,如果修改了证条码号,则系统会拒绝保存。原因是,系统中在借的册记录中已经存入了借阅者的证条码号,系统不打算在修改了读者记录的同时去修改实体记录内的借阅者字段内容。
如何得知读者记录中是否包含借阅信息?在界面右侧的读者信息显示区里面,借阅信息下面就是读者当前在借的图书记录。如果这里有在借记录,系统是无法修改这个读者的读者证条码号的。

本节内容就介绍到这里,谢谢大家!

dp2libraryxe 小型版错误地启动了多个实例

今天我测试的时候偶然发现,dp2libraryxe 把多个协议 URL 启动成多个实例了。正确的做法应该是只启动一个实例,给绑定上多个协议。

实例和协议的关系是什么?为了帮助确定是否需要启动独立的实例,判断方法特别简单,就是观察这些实例之间是否使用了不同的数据目录。数据目录相同就不应启动为独立的实例,它们之间仅仅是同一实例的不同的协议绑定。

已经修改为只启动一个实例。以上这是说 dp2libraryxe 中的 dp2library 部分。而 dp2kernel 部分因为从一开始就只允许一个协议绑定(net.pipe)所以未出现上述问题。

测试时,需要观察一下 dp2libraryxe 安装为小型服务器版以后,restful 协议是否还正常。

测试计划:dp2Circulation中的几个问题

1.导入统计方案时如果选错了宿主窗口,提示信息中显示的宿主窗口名是英文的,建议修改成中文名称。例如:
OperLogStatisForm——日志统计窗
ReaderStatisForm——读者统计窗
ItemStatisForm——册统计窗
BiblioStatisForm——书目统计窗
Iso2709StatisForm——ISO2709统计窗
2.读者查询窗中加入将在借册信息装入到实体查询窗的功能,即如果在读者查询窗中的读者有在的借册,可通过右键菜单把这些册载入到实体查询窗。
3.检查借阅信息窗口中有批检查借阅信息链的功能,希望加入批修复借阅信息链的功能。另外,可以根据一个对照表进行批量修复,对照表内容格式大概是这样:读者证条码:册条码,每行一对。
4.种册窗中MARC编辑器的显示比例调整后不能保持,新打开的种册窗,MARC编辑器总是最大显示,显示子信息的几个标签页被“挤”没了。
5.在种册窗中,如果载入目录的书目库不包含实体库,也就是显示子信息的标签页中没有“册”这一页的情况下,当前显示的标签页在刷新或上下翻记录后不能保持,当前页总是切换到最后一页。

dp2library 分馆之间允许使用重复的册条码号的改造

dp2library 现有版本不允许分馆之间使用重复的册条码号。这种规定,主要是保障以后分馆之间方便馆际互借,只要提供一个具备唯一性的册条码号即可进行操作。

但在实际推广应用中,发现不同分馆之间很难做到册条码号完全不重复,因为这些图书馆有很多以前加工好的图书,当时册条码号(号段)并没有进行跨越图书馆的全面规划。所以最近决定对 dp2library 进行改造,除了继续具有以前的严格方式外,允许定义新的方式,放开分馆之间不许重复的限制。

改造需要考虑,严、宽两种方式都能使用,不能让原有方式的运行出现故障。

改造的核心问题,是册记录的检索点,原有的册条码号检索点不够用了。本来是可以用册条码号(针对 dp2kernel)检索出一批记录,然后再从 dp2kernel 获取这些记录的馆藏地字段,用馆藏地进行筛选,但这个方式会造成效率低下。好一点的方法是,把册条码号检索点改为一种组合检索点,或者新增一个组合检索点。

所谓组合检索点就是这样的形态:0000001|海淀分馆

如果不新增检索点,仅仅是把原有检索点进行改造,那么原有精确一致检索 000001 的操作,应该改为前方一致检索 0000001|。而直接检索某个分馆的特定册条码号,则可以用精确一致检索 0000001|海淀分馆
不新增检索点的麻烦是,系统升级以后,可能要自动进行一次刷新实体库的检索点定义和重建的操作。而新增一个单独的检索点的方式,不需要系统升级后刷新和重建操作,对于那些用不上宽容模式的 dp2library 服务器。而对于打算用宽容模式的旧版 dp2library,则要刷新实体库检索点定义和重建检索点。

(本来也可以在不修改检索点定义情况下,用 dp2kernel 的检索 XML 语言,对册条码号和馆藏地进行 AND 方式的逻辑检索来达到目的。但因为 dp2kernel 的功能不够完整,这种检索实际上是用两个结果集交叉运算得到的,其中用馆藏地检索得到的结果集命中数量会非常大,比如几十万个记录,所以运行效率很差。用组合检索点是个变通的办法。但组合检索点多占用了数据库空间。将来在改造 dp2kernel 的时候可以考虑提供直接使用 SQL 语句的组合检索法,这种方法不需要那么多空间,只是需要增加一种数据库记录格式到表格行的数据表)

期刊操作视频文字1-期刊订购/请审阅

dp2期刊管理操作说明-期刊订购

大家好,本节我们学习期刊管理中的期刊订购。
当我们准备好期刊的书目数据之后,就可以开始订购了。Dp2系统的期刊订购分三个环节:设置订购缺省值-创建订购记录-打印订单。我们依次来演示。

首先是设置订购缺省值。点击常用窗口-种册窗,进入种册窗界面。首先利用检索栏检索出需要的期刊记录。先选择书目库,这里我们选择中文期刊库,以题名为检索途径,匹配方式设置为精确一致,检索词输入框里输入想要检索的题名,“。。。”,点击“检索”按钮,发起检索。

系统检索到需要的记录后,装入该记录的书目。确认好这就是需要订购的书目之后,点击工具条上倒数第二个像车轮一样的选项按钮上,当我们把鼠标放上去的时候会浮现出选项两个字。点击选项按钮,跳出选项对话框。在这个对话框里,有多个标签属性页。我们点击右上角的右箭头切换到“一般订购缺省值”属性页,我们就是在这里设置订购缺省值的。

通常情况下,一批订购的渠道,经费来源,批次号都是固定的,我们可以对这些固定的选项进行设置。比如本馆打算通过邮局购买一批期刊,渠道设置为“邮局”,经费来源设置为“本馆经费”。然后我们下拉右侧的滚动条,在后面有一个批次号一定要设置,因为如果订购记录里面没有批次号,后期打印订单时会无法顺利的调出相关订购记录。我们设置好批次号,这里我设置为“订购测试”。然后点击“确定”。回到种册窗界面。

订购缺省值设定好后,开始创建订购记录。订购一般每年做一次,各种期刊一起集中订购。在种册窗的下半部分,点击“采购”标签,进入采购属性页。在采购属性页的空白处单击鼠标右键,在右键菜单里,选择“订购”命令。系统弹出“订购”对话框。我们可以把这个对话框最大化以便能够看得清楚。可以看到刚才设置的订购缺省值渠道,经费来源,批次号自动出现在订购对话框里。

我们来设置其他订购事项。
第一栏书目号,指书商提供的书目编号,比如邮局的邮发代号。这个编号是用于将来和书商交涉的,以后如果发现问题,和书商邮局交涉的时候就是提供这个编号,以便对方查找批次。

渠道,经费来源已经设置好了,如果需要改动,也可以在这里修改。

第四栏时间范围。指本次订购的起止时间范围。一般设置为半年或一年。点击输入框右边向下的箭头打开日历进行设置。也可以在“从”字上面单击鼠标右键,快速设置为半年或一年。

第五栏期数,指所选择时间范围以内的期数。这里要注意和时间范围吻合。比如时间范围选了一年,对月刊来说就是12期,对半月刊就是24期。

第六栏复本数,指需要订购的份数。复本至少为1.选择好复本数后,后面的“去向”一栏的馆藏地点空间内容会自动初始化。要求我们对每份的去向进行设置。

接下来先设置单价:指每一册期刊的实际购买单价。这里需要输入带有货币符号的价格字符串,比如购买价格人民币10元,设置为CNY10.
去向一栏,从后面的下拉列表里选择合适的馆藏地点对每一份的去向进行设置。
类别:指所定期刊所属的类别,一般是“社会科学”,“自然科学”之类的粗略类别,是为订购业务所做的粗略分类,和编目里面所说的类目不同概念。
如果对当前这种图书还需要通过其他渠道订购,或者采用不同的经费来源订购,可按“新增事项”按钮,增加新的一行,然后输入各栏内容。

如果订购渠道属于特殊的渠道,即“直订”“交换”“赠”类型,需要针对渠道一栏进行特别设置。右击订购对话框内相关行的最左端的格子,在随后出现的上下文菜单上选“特殊渠道订购”命令,跳出“特殊渠道订购”对话框。在“特殊渠道订购”对话框里先选择订购渠道类别,然后输入渠道地址联系方式等信息,然后点击确定。
信息输入完毕之后,点击“确定”按钮,回到种册窗界面。这时种册窗的采购属性页列表中增加了刚才创建的订购记录,并且显示为黄色,表明这条记录还没有保存到系统里面。右下角的“全部保存”按钮,这时,记录保存到系统里面。显示为无底色。

下一次订购的时候,仍然是在采购属性页里面单击鼠标右键,调出右键菜单,选择“订购”命令,这时在订购对话框里可以看到上一次的订购记录。以前的订购记录很重要,一般不要删除。点击“新增事项”按钮,增加一个订购事项。如果基本信息没有发生变化,可以右击上一次订购记录的最左边的格子,从右键菜单里面选择复制新增(后)选项,就可以把上一次的内容复制过来。

我们关闭订购对话框。回到种册窗。
订购记录创建好后,进入打印订单环节。点击菜单“批处理-打印订单”,进入“打印订单”界面。在打印订单界面里,我们会依次使用到“装载”,“保存修改”,“打印/输出”这几个属性页来完成打印。

首先进入装载属性页,因为我们现在订购的是期刊,所以出版物类型,从下拉列表里选择设置为“连续出版物”,然后不勾选“验收情况”,再点击“根据订购批次号检索装载”按钮,系统弹出“根据订购批次号检索出订购记录”对话框,要求输入检索批次号,打开批次号下拉列表,从中选择需要打印的批次号,发起检索,装载属性页的下方显示出该批的订购记录,然后点击“下一步”,进入“保存修改”属性页。

系统提示“原始数据列表中有发生了修改后尚未保存的事项”,点击“保存对原始数据的修改”按钮,保存之后,再点“下一步”,进入“打印/输出”属性页。

在“打印/输出”属性页里,点击“打印订单”按钮,跳出打印订单对话框。我们先这个对话框最大化,这个对话框显示了打印的预览效果,我们点击右下方向左向右的箭头来对每一页的打印效果进行预览。然后在下面的页码范围和份数输入框里设置好需要打印的页码和份数,再点击“打印”。即可打印出需要的内容。

有关期刊管理的订购部分就这些,下一节我们学习对期刊管理的“记到”部分。

谢谢大家!

dp2library 自动创建 MSMQ 队列的权限问题

当在 library.xml 的 message 元素中配置了 defaultQueue 属性以后:

dp2library 会在启动的阶段,观察这个队列是否存在,如果没有存在会自动创建它。

如果 dp2library 是 Windows Service 状态运行,则它创建的这个队列可以被 LocalSystem 的其他 Windows Service 模块,例如 dp2Capo 模块,访问。
如果 dp2library 是命令行 -console 状态运行,或者寄宿在 dp2libraryxe 中运行,则它可能是 Administrator 身份,这样它所创建的队列,无法被 Windows Service 模块访问,会抛出权限不足的异常。

最新版 dp2library 在这里做了改进,它会根据当前进程所属的账户情况,争取给队列加上必要的其他权限,比如 dp2library 在 Windows Service 运行的情况下,它会再给队列加上 Everyone 用户能访问它;其他情况下,则会再给队列加上 LocalSystem 能访问的权限。

这个环节需要进行测试。需要测试以下几种情况:

  1. dp2library 以 Windows Service 方式安装;配套的 dp2Capo 用 Windows Service 方式安装。测试队列是否能正常使用;
  2. dp2library 以 Windows Service 方式安装;配套的 dp2Capo 用控制台方式运行;
  3. dp2library 以控制台方式运行;配套的 dp2Capo 用控制台方式运行;
  4. dp2library 以控制台方式运行;配套的 dp2Capo 用 Windows Service 方式安装运行。

注意每一点测试以前,需要用 MMC 控制台删除已有的队列,这样可以确保让 dp2library 创建队列,确保测试到这种情况。

另外需要用 dp2libraryxe 和 dp2Capo 配套测试。当然,dp2libraryxe 只能以 Windows Form 程序方式运行。

如何删除一个 Queue?
如果是 dp2library 的 Windows Service 模块自动创建的队列,则一般的 MMC 控制台删除不了这样的队列。可用下面方法删除:
安装 psexec 工具:
https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
下载后展开到一个目录,就安装好了。
用 Administrator 身份启动一个 Windows 命令提示符,然后到上述安装目录执行:
psexec –i –s cmd.exe
这样就启动了一个特殊的 Windows 命令提示符窗口,它的身份是 LocalSystem 账号。
在这个特殊的 Windows 命令提示符窗口中,到 Windows 系统目录打开计算机管理控制台:
C:\windows\system32>mmc compmgmt.msc
然后在这里就可以删除队列了。

录屏文字:期刊验收-创建期格/请审阅

期刊操作-增全期格

大家好,今天我们开始学习期刊操作的记到部分。
记到部分分为两节内容:第一节增全期格,第二节记到。本节我们只讲增全期格

点击常用窗口-种册窗,进入种册窗界面。首先利用种册窗第一行的检索面板检索出需要的期刊记录。我们以中文期刊为例,以题名为检索途径,匹配方式设置为精确一致,检索词输入框里输入“车主之友”,点击“检索”按钮,发起检索。

系统检索到需要的记录后,装入该记录的书目。我们确认好这就是需要记到的书目。

在种册窗的下半部分,点击“期”,进入期属性页。现在期属性页里面是空白的。我们在空白处单击鼠标右键,调出右键菜单,选择“记到”命令,跳到记到对话框。

在记到对话框里,开始时只看到一个名为“自由”的期格子,蓝色区域是创建期格的区域。我们在记到区域单击鼠标右键,从右键菜单里选择期下面的“新增【后插】”命令或“增全【后插】”命令来增加期格。

因为我们是首次在这里创建期格,系统弹出“请指定首期的特征”对话框。

在这个对话框里,需要指首期的出版时间。这个出版时间是指这一批记到的首期的名义出版时间,需要根据期刊上面的信息来设置。注意这里为8个字符,要设置到日。出版时间必须设置,并且同一种期刊每期的出版时间必须是唯一的,不同期格之间出版时间不能重复。

接下来设置期号,即当年的期号。一般期刊每年都会从1开始编号。如果是本年的第一期,这里填写1.期号不允许空缺。如果不填写将无法区分验收的是哪一期。

总期号,指从创刊以来的连续编号。比如期刊已经创建十几年了,期号已经编到几百号或者几千号都有可能。这个信息要从期刊上去找。如果没有,可以空缺。

卷号,一般情况下期刊的卷号是一年一卷,从创刊那一年开始每年增加1卷。当年内所有期的卷号都是相同的。这个信息要从期刊上去找。如果没有,可以空缺。

以上都填好后,点击确定按钮,系统新增了1行格子。这样的一行也被称作“期行”。

第一个格子为黑色,上面显示2018,1,20180101,0/15,左下方有一组花括号. 这是一个期格,表示这是2018年的第一期,出版时间2018.1.1,总共有15册需要验收。

期格右边的格子代表册,一格一册,便于后面进行记到操作。
系统依次根据订购记录以订购组的形式显示了每册的情况。一组花括号括住的册格为一个订购组,背景为?的格子代表尚未到达的册。本次期格示范对应的订购记录的详细情况,大家可以到期刊操作视频教材--创建订购记录部分详细了解。

在记到对话框里我们看到:使用本馆经费通过邮局购买的有三册,单价是CNY10; 使用专项拨款通过邮局购买的有4册,单价是CNY10; 使用专项拨款通过新华书店购买的有5册,单价是CNY9.5; 使用专项拨款通过新华书店购买的有3册,单价是CNY9.8。

我们继续在记到区域点击鼠标右键,从右键菜单里选择期下面的“新增【后插】”命令来增加期格。这次系统跳出“期信息”对话框,可以看到期信息对话框已经根据首期信息的设置进行了类比设置,出版时间和期号都与新增这一期对应。

我们点击“确定”,系统新增一行期格。同样的,第一个格子为期格,表明这是2018年第二期,出版时间2018.2.1,总共有15册需要验收。

与上一行一样,第二期的期格右边的格子代表第二期需要验收的册,一格一册。系统依次根据原始订购记录显示了每册的情况。

如果某些期格的信息需要修改,可以在需要修改的期格上单击鼠标右键,从右键菜单里选择期下面的“修改”命令,在跳出的期信息对话框里面去修改;也可以在需要修改的期格上直接双击,也可以跳出期信息对话框。

如果想要删除某些创建好的期格,可以在需要删除的期格上单击鼠标右键,从右键菜单里选择期下面的“删除”,删除期格的同时,相关的册格也会一并删除掉。

我们继续在记到区域点击鼠标右键,增加期行。可以使用“增全(后插)”命令一次性增全期格,覆盖整个订购时间范围。

需要的期行都建立好后,点击“确定”,关闭记到对话框,回到种册窗。

可以看到种册窗的期属性页里以黄色背景显示了刚才创建的期信息。状态栏都是空白的,期数依次为1,2,3…….。黄色背景表示这些信息还没有正式保存到系统当中。

点击“全部保存”,系统保存创建的期刊记录。正常显示为白底色。

至此,期刊记到的增全期格部分就完成了。

本节内容就介绍到这里。谢谢大家!

视频文稿:册登记窗的使用

1 .如何利用册登记窗进行书目套录和册登记

大家好,这一讲我们学习如何利用册登记窗进行书目套录和册登记。
dp2内务中的册登记窗是一个简洁友好的图形化界面,非常适合图书馆工作老师零星录入登记图书。

我们在dp2内务打开册登记窗。点击菜单 常用窗口-册登记窗,进入册登记窗界面。
在册登记窗里,可以看到三个标签属性页。依次为“参数设定”,“检索书目”,“种和册”。在册登记的过程中,我们将从左到右依次使用到这三个标签属性页。

首先在参数设定里进行册记录缺省值的设置。点击“参数设定”标签,然后点击“册记录缺省值”按钮,跳出选项对话框,我们就是在这里设置快速册登记缺省值的,即设置这一批册登记时共同的一些字段信息。一般需要设定馆藏地点,册价格,索取号,册类型和批次号。我们依次来设定一下。

首先设定馆藏地点,也就是这一批册登记的书我们打算保存到哪里。我们打开馆藏地点右边的下拉列表,选择其中一个馆藏地点。这里我们选择“流通库”。现在馆藏地点就设置好了。

再来设定册价格。册价格我们设置为一个固定的宏变量:@price。这样设定后,系统会把册价格自动设置为书目marc里面对应的内容。

索取号的设定,也是一个固定的宏变量:@accessNo. 注意这里的N为大写。这样设定好后,系统会根据对应的排架体系自动创建索取号。

然后设定册类型,从它右侧的下拉列表里选择这批书的册类型进行设置。我们选择“普通”。

最后一个批次号。批次号即这一批册登记的批次号,设置好后可以方便我们后续用批次号进行查找,或者进行其他批处理。批次号的设置可以是字母,或者文字,符号,数字等等。我们这里设置为“册登记0925”

这些参数都设定好后,点击“确定”。这样我们刚才设定的册记录缺省值就保存到了系统当中。

在参数设定界面的右侧,有一个“册记录格式检查”,一般情况下需要全部勾选,因为一个完整的册记录需要具备这些信息才能够正常参与流通。勾选后系统便以此判定册记录设置是否合格。如果后面我们设置册记录的时侯出现疏漏,保存时系统将提示我们因为缺少哪一项内容而无法保存,从而督促我们去完善册记录资料。这里我们全部勾选上。

另外,在参数设定标签属性页里还需要勾选左下方的“检索亚马逊服务器”和“检索红泥巴服务器”。设置后系统在检索书目时会自动连接到这两个服务器进行检索。

以上都设置好后,系统会把设置好的参数全部保存下来,如果下一次我们需要登记的信息和这些相同,就不需要再重新设置了。如果下一次要登记的信息有所变化,比如馆藏地或者册类型和上一次的不同,则需要我们按照上述方式重新进行设定。

现在,我们可以进入下一步。点击“检索书目”进入检索书目标签属性页。

在检索书目界面里,需要我们先选择一种检索路径,再输入检索内容后,发起检索,系统会从服务器上去检索需要的书目信息。现在新书已经在手上了,所以我们选择ISBN作为检索途径是最方便的。然后用扫码枪在输入框里面扫入ISBN号,注意扫入前确定输入法为英文模式。我们扫入一个试试看。

扫入之后系统自动开始进行检索。它会先到当前服务器中去检索,然后再到红泥巴和亚马逊的服务器检索,一些打开共享联结的dp2云服务器上如果存在需要的书目信息也可以被检索到。这里可以看到,书目序号为1的记录是从当前服务器上检索到的,从红泥巴服务器上检索到的记录,它序号一栏是一个像云朵一样的符号,并且它的路径后面会显示“红泥巴数字平台中心”;从亚马逊服务器上检索到的记录是以@为序号的,并且记录路径后面为“亚马逊**”。从当前服务器上检索到的结果会显示在最前面。

我们可以根据检索结果里的封面,书名,作者,出版社等信息判断哪一条记录是我们需要的,如果当前服务器上有我们需要的书目记录,就要首选当前服务器上的这条。

现在我们在需要的书目记录上面双击,自动进入对应的种和册界面

在种和册界面里,左边是“种”信息,也就是对应的书目信息,右边就是我们将要进行登记的册信息。 册就是我们平时说的副本。进行册登记时每种书有几个副本就需要登记几册。在查看书目信息的时候需要注意的是,如果这条书目记录是从亚马逊服务器上检索到的,通常都是简编数据,可能缺少中图法分类号。这时就要注意查看690字段的内容,如果690字段里没有中图法分类号,需要我们自己根据书上版权页上的CIP数据自行添加。否则,系统将无法自动创建索取号。我们看一下690字段在哪里。在687字段的后面“中图法分类号”一栏,这个就是690字段,这里是有中图法分类号的。

我们再看一下版权页是什么样的。通常我们拿到一本书,翻开封面之后是题名页,题名页后面就是版权页,上面有CIP数据,版次等信息。我们打开一个看一下,这是版权页的照片,上面第一行是“图书在版编目CIP数据”,版权页也有可能在封底的前面一页。上面有CIP数据,然后是题名,作者,出版者等信息,ISBN,再后面有希腊数字I,II,III,IV,IV后面的内容就是中图法分类号,在**版本图书馆CIP数据核字多少号的前面。如果我们通过检索下载的书目数据中没有中图法分类号,则需要我们把CIP中的这个内容自行添加进去。

好,现在我们回到主题,开始册登记。我们点击右边的大+,增加一个册登记。在这个册登记里可以看到馆藏地,册价格,索取号,册类型和批次号都已经按照缺省值自动设定好了,我们只需要扫入该册的册条码号。

在册条码输入框里我们用扫码枪扫入已经贴到书上面的册条码,注意,扫入之前输入法为英文模式,(示范),扫入后,这一个册登记就编辑完了。如果我们手里这种书还有其他副本,可以再点击下一个+,增加一个册登记,在它的册条码输入框里像刚才一样扫入贴好的册条码。这样,第二个册登记就编辑完了。如果还要增加,继续点击+。我们就是以这种方式在一个书目下建立多个册登记的。如果这种书只需要登记这两册,点击下面的保存按钮,刚才建立的册登记就保存到了系统里面,系统显示“保存成功”。

创建完后,如果不需要某条册记录,也可以点击册登记左上角的×号,系统就会删除这一笔册记录并自动保存。

我们进行下一种书的录入。点击左下角的“重新开始”按钮,回到书目检索界面。这时里面的检索内容就自动被清空了。我们还是以ISBN为检索方式,扫入ISBN号,开始检索,检索过程中,如果想让系统停止检索,可以点击左上角的停止按钮,系统停止检索。(示范)

下面我们重新扫入一个ISBN号,(重新扫入一条ISBN号,这条书目只能在亚马逊服务器上检索到,并且690字段没有信息)。从亚马逊服务器上检索到了对应的书目记录,我们在记录上双击鼠标左键,进入对应的种和册,因为这是从亚马逊服务器上检索到的,我们要特别看一下它的690字段里面的内容。我们看一下,690字段里面没有中图法分类号,需要我们到这本书的版权页上去找中图法分类号,把它补充进去。它的中图法分类号是F270-49,填入之后,点击下方发保存按钮,中图法分类号保存入系统。

我们在种和册的右侧点击大+,增加一个册登记。可以看到索取号一栏系统根据刚才添加的中图法分类号和排架体系进行了创建。现在我们扫入册条码号。这里我们登记三册。

需要的册登记都编辑完后,点击保存按钮,系统显示保存成功。

以上演示,我们创建了一条书目数据,并且对两种书进行了册登记。我们到书目查询窗和实体查询窗看看能不能查到对应的信息。

我们先到书目查询窗里去看看。在书目查询窗里,我们以题名为检索途径,检索词输入框里输入刚才创建的书目题名“永不放弃”,输入后回车系统发起检索,检索出需要的结果,我们在这一条记录上双击,进入对应的种册窗。可以看到上面是书目记录,下面是对应的册信息,我们右拉册信息下方的滚动条,可以看到它的册登记批次号是“册登记0925”,就是刚才我们进行了那一批册登记。

我们再到实体查询窗里看一下。在实体查询窗里,我们以批次号为检索途径检索。我们在检索词输入框里输入“册登记0925”,发起检索,系统检索到四条记录,我们在其中一条上双击,也可以进入对应的种册窗。

本节内容就介绍到这里,谢谢大家。

2.如何利用册登记窗新建书目并册登记

大家好,这一讲我们来了解如何利用册登记窗新建书目并进行册登记。

当我们在册登记窗里检索不到需要的书目时,就需要我们自己根据图书上面的CIP数据新建书目记录,然后进行册登记。

在新建书目和进行册登记之前,需要先在“参数设定”标签属性页里设定好相关的册记录缺省值并勾选册记录格式检查选项。参数设定可以参看视频教材“基础操作系列-册登记窗的使用”。这里就不再详细介绍了。

现在我们演示如何新建书目记录。
在册登记窗的下方,有一个“新建”按钮,我们点击它,进入一个空白的的“种和册”界面。在这个界面里,左边是种信息,即需要我们创建的书目信息,右边是进行册登记的区域。我们首先录入书目信息。

第一栏,ISBN,需要我们在输入框里用扫码枪扫入图书的ISBN号,ISBN号一般在图书的封底右下角的位置。比如我这里有张照片,这是一张封底照片,可以看到在它的右下角有一串条码,上面有标注ISBN...,这就是图书的ISBN号。我们回到dp2内务,在输入框里扫入图书的ISBN号,注意扫入前输入法切换为英文模式。(扫入),扫入之后就完成了ISBN的录入。

第二栏,价格。需要我们根据书上的标价进行录入,格式币别+数字的形式。从刚才这张封底照片上可以看到,在ISBN条码下方有定价,我们根据这个定价进行录入。这里我录入CNY42.因为我这本书的标价为CNY42.CNY为大写。

接下来,从第三栏的书名,到下面出版日期这几栏,都可以到图书的版权页上找到。我这里有版权页的照片。在“图书在版CIP数据”的下面,可以看到这本书的书名是“生活要有暖和光”,第一作者是“毕淑敏”,出版地为“北京”,出版社“**轻工业出版社”,出版日期2017年1月。我们根据这些信息进行录入。

下面页数一栏,需要我们根据图书的实际页码来进行录入。页数一般包括正文页数和正文前后的其他页数。若正文前后的内容比较重要,页数超过10页时,按照“正文前,正文,正文后”的顺序进行录入,用逗号隔开。如果正文前后的页数比较少,并且不是那么重要,也可以登记为正文编排的页数。我手里的这本书它的版权页后面就是目录,然后进入正文的排页,直到最后,也没有后序。所以我按照正文页数进行登记,设置为220页。

尺寸一栏,是指图书的书脊高度。可以到版权页的下方,从成品尺寸里面去查找,如果版权页上没有成品尺寸记录,需要自己用标尺量出图书书脊的实际高度,录入的时候注意小数点后面不足一厘米的按照一厘米计。比如量出来书脊高度17.2厘米,则需要填写为18厘米。我们再看一下现在这本书的版权页,上面没有成品尺寸,所以需要我自己测量书脊高度,测量下来是22厘米,所以我填写为22厘米。

接下来是中图法分类号一栏,我们也可以到版权页上去找。在**图书馆在版编目CIP数据下方,**版本图书馆数据核字多少号之前,有一个以字母开头的编号就是中图法分类号。我这里是I267.所以我填写为I267.

最后一栏“个人主要作者”,一般情况下,对中文名字的作者而言,这里与“第一作者”填写的内容一样。如果是国外的作者,这里填写的时候不需要带国籍。因为系统会根据这一项来生成著者号,如果填写不对,会影响著者号的生成。这里我填写“毕淑敏”。

书目信息都填好之后,点击下面“保存”按钮,这一条书目记录就存入系统。

现在开始册登记。我们点击右边的大+,增加一个册登记。在这个册登记里可以看到馆藏地点,册价格,索取号,册类型和批次号都已经按照缺省值自动设定好了。这里要注意的是,如果登记的这本书的实际购买价格与书上的标价不同,需要手动修改为实际进价。以便系统正确地计算实际成本。比如,我现在登记的这本书实际进价是人民币20元,与标价不同,我就需要把册价格重新设置为CNY20。

然后,就可以用扫码枪在册条码输入框里扫入已经贴到书上的册条码,注意扫入前输入法切换为英文模式。扫入后,一个册登记就编辑完了。我们点击下一个+,增加一个册登记,照样修改好册价格,扫入贴好的册条码。

现在这种书的两册都已经完成了册登记,我们点击下面的“保存”按钮,这两个册登记就保存到系统里面。

现在我们可以到书目查询窗和实体查询窗去查询刚才创建的记录。

在书目查询窗里,我们以题名为检索途径,匹配方式设置为“前方一致”,书目库设置为“全部书目库”,检索词输入框里输入“生活要有暖和光”,发起检索,检索了相关的记录,在它上面双击,进入对应的种册窗。在种册里面可以看到上面是刚刚创建的书目信息,下面是刚才创建的册登记。

我们再到实体查询窗里看看,在实体查询窗里,我们以册条码号为检索途径检索,检索词输入框里我们扫入刚才登记的册条码号,注意扫入前输入法为英文模式,扫入后,检索结果出现刚才创建的册信息,我们扫入另外一条试试看,扫入后,另外一条册信息也被检索到了。

本节内容就介绍到这里,谢谢大家。

文稿:如何利用种册窗进行期刊记到

根据线下与任老师讨论的结果,结合视频录制实际情况,整理录屏文字如下:

如何利用种册窗进行期刊记到

大家好,本节我们学习如何利用种册窗进行期刊记到。
Dp2系统期刊记到的标准流程是通过批处理菜单下面的验收窗来完成。对于一些零星的期刊记到,为了便于用户更加快速直接的操作,也可以通过种册窗来进行。

记到前,需要先为记到做好物理准备:
1)准备好此批需要记到的期刊复本。
2)如果记到过程中需要为册记录输入册条码号,要先准备好册条码,放在旁边待用。
3)如果在系统中记到时需要扫入册条码,还需要连接准备好扫码枪。

2.我们先切换到dp2内务,开始在系统里面操作
点击常用窗口菜单下面的种册窗,进入种册窗界面

2.1首先,我们利用种册窗的检索面板检索出需要记到的期刊书目记录。可以直接利用期刊的ISSN号来检索。
比如,我选择在中文期刊库里,检索途径选择ISSN,匹配方式选择精确一致,检索词输入框里扫入或输入期刊的ISSN号,这里我输入1005-1651,然后回车。系统发起检索。

2.2检索到需要的记录后,系统装入该期刊的书目记录。
我们核对期刊题名,出版发行项等字段内容,确认这是当前记到的这种期刊。

2.3在种册窗的下半部分,点击“期”标签,进入期属性页。在期列表里面,可以看到已经创建好的期信息。现在我的系统里面已经创建好2018年1月份到6月份,共6期记录。因为我这里是双月刊。

2.4 我们先设置记到参数。
2.4.1 在任意期行上单击鼠标右键,弹出右键菜单。
在右键菜单里可以看到有三个默认打勾的选项。
第一个选项,勾选“验收结束时立即输入册条码号”,系统这样的设置默认记到时需要对现刊贴条码
第二个选项,“为新验收的册设置加工中状态”。系统考虑到一般记到时现刊并没有实际上架无法外借,为了避免刚记入系统的记录被读者查询到要求阅览或者借阅又找不到实物的情况,现刊记到时系统默认标记为加工中的状态,这样就明确地告诉读者这一册还没有上架,读者无法使用。
第三个,系统默认了为新验收的册创建索取号。
操作人员可以根据图书馆实际情况决定是否勾选。设置后会一直保存在系统当中,以后记到时仍然适用。

3.进入记到界面
3.1进入记到界面
在右键菜单里,我们点击“记到”命令,系统弹出记到对话框。在记到对话框里可以看到预先创建好的期行。
我们勾选接到界面下面的“显示单元格编辑区域”这个选项。记到界面缩小,右侧将用于显示相应的册信息。
在记到界面里,可以看到各期格中间显示了一个红色的空心圆圈。表示这些期目前处于未记到状态。

4.下面我们开始记到操作(切换场景,表示下面要讲记到操作)
4.1.1 我们把鼠标焦点移到需要记到的册格中心,?中间出现一个复选框,点击复选框,系统跳出“请指定验收批次号”对话框。这个对话框里系统默认值是上一次册登记时使用的批次号。我们可以根据需要在这里修改。批次号建议设置为验收说明+日期的形式。比如期刊记到0111.

4.1.2验收批次号对话框只在每次记到点击第一个册格时出现,后面对其他册记到时系统会按照第一次的来设置。
4.1.3 介绍册信息各字段是如何设置的
在册信息编辑区还可以看到正在记到的该册的册信息各字段。其中出版时间,馆藏地点,渠道,经费来源,册价格,卷期这几个字段的内容,系统已经根据订购记录设置好了。
根据刚才的验收批次号设定了“批次号”,
索取号号一栏目前显示为空白,这里可以先不管它。因为我们前面勾选了自动生成索取号,系统在保存的时候会为新记到的册生成索取号。
“册类型”一栏,系统根据上一次验收的册记录默认值进行了设定。如果此次的册类型为其他值,这里可以手动修改。

第一册记到之后,我们可以看到对应的期格里面,红色的空心圆圈变成了部分实心,表示这一期已经有部分册记到了。

4.2 验收第二册
一册的信息编辑完后,我们点击勾选下一个的册格中心的复选框对第二册记到。同样,在右侧册信息编辑区里可以看到各字段的内容。
第二册的批次号与第一册完全相同。
我们确认册类型字段的内容,如果需要修改就在这里手动修改。
第二册记到后,在界面左边对应的期格里,可以看到显示为绿色实心圆圈,表示这一期已经完成了记到。

需要验收的册都记到之后,点击“确定”按钮,记到界面关闭,跳出“登记册条码号”对话框。
如果进入记到界面前没有勾选“验收结束时立即输入册条码号”这个选项,这时系统不会跳出“登记册条码号”对话框。
如果不需要对现刊贴条码,我们也可以直接点击“取消”按钮,跳过这一步。

4.3 扫入各册册条码
现在我们可以开始为记到的期刊复本贴条码。贴的时候要注意核对刊名和卷期信息,与“册事项”中选定的册相对应。
贴完一册,在条码输入框,直接用扫码枪里扫入册条码。
可以看到,扫入一个册条码后,册事项中第一栏增加对应的册条码号,并且册事项中的焦点自动移到下一个事项
我们继续为下一册贴条码,并扫入对应的册条码,直至为所有刚才记到的期刊复本扫完条码。
最后按“确定”按钮,关闭登记册条码对话框,回到种册窗。

4.4 记到完成后系统的变化
4.4.1现在我们看到种册窗的期属性里以绿色底色和对勾显示了刚才记到的几笔记录。
4.4.2我们切换到册属性页,在册属性页里,以黄色底色和+表示了刚才记到的册记录,看到记每一册的册条码,现在这几册的状态都为加工中,往右拉滚动条,可以看到这几册具体的信息。索取号,册类型,批次号都可以看到。

4.5 保存记到记录,再观察系统的变化。
现在,记到的这几笔还没有保存到系统当中,我们确认无误后,点击种册窗右下方的全部保存按钮,记录保存入系统。显示为正常无底色。

以上我们完成了一种期刊的记到。

完成记到的期刊还没有上架,读者不能借阅。待图书馆工作人员把期刊上架后,在系统中进行典藏移交或者通过实体查询修改册记录,去掉“加工中”的状态,然后期刊才能够正式投入使用。

有关典藏移交的操作将在其他相关视频里详细介绍。

本节内容就介绍到这里。谢谢大家!

测试计划:对象权限相关功能测试要点

dp2circulation 的种册窗中,“对象”属性页列表中,增加了一栏“权限”。在这里可为一个对象设置访问权限。这里的访问权限将和读者记录中的权限字符串进行匹配,以决定对象是否允许被获取。

而对象是否允许被修改,是由账户权限中的 WriteRes 权限值决定的。

一旦一个账户具备了 WriteRes 权限,则它同时就隐含具备了被读取的权限。因为如果不是这样,那么就会造成对象可以修改但无法读取的怪异局面。

对于图书馆工作人员的账户,他们访问对象主要是为了维护修改数据。而读者,是要利用这些对象。读者是不应该具有 WriteRes 权限的。读者是否能获取特定的对象,要看它的读者记录中的 rights 元素,和在元数据 file 元素中 rights 属性中是否匹配。前者在 dp2circulation 读者窗中可以(由图书馆工作人员)编辑修改,后者在 dp2circulation 的种册窗中可以(由图书馆工作人员)编辑修改。

请下载安装最新版的 dp2circulation 和 dp2libraryXE 进行测试。OPAC 页面中需要测试详细画面中访问对象的 URL,在具备和不具备获取对象权限的情况下都要进行测试。读者记录修改后,权限发生变化,应该立即在 OPAC 中兑现出来。

催还通知发给管理员的功能设想

近日小贝壳提出一种功能设想,学校图书馆老师在管理业务中,发现逐个班级打印输出超期清单,然后 QQ 或者其他方式一个一个文件发给对应班级的老师,操作繁琐工作量大,希望系统能按照班级为单位把这些信息自动发送给班级的老师。

这个功能的特点是,学生一般没有用微信,学校也不提倡学生在学校用手机,所以各班老师实际上起到了代管作用。而一般图书馆,读者的独立性较强,此类消息直接发给读者本人就可以了。这是不同场景和单位的差异所在。

现有的打印输出超期情况的功能,可以考虑增加按照单位(班级)自动切分为单独文件输出的功能,类似现在读者账簿功能那样,中间有个对话框可以勾选一个自动按照单位切割的参数。

如果要新增自动发送催还消息的功能。考虑数据之间的关系,可以从两个角度考虑:1) 学生和老师的关系定义;2) 某个馆藏地和管理员的关系。

第一点是定义读者之间的关系。系统以前也曾经考虑过增加好友关系定义。第二点是在馆藏地(班级书架)或者单位名称(读者记录里面有单位名称也就是班级名称)和它的“管理员”之间的关系。似乎第二种定义方法实现起来较为简单。

目前 library.xml 中已经有馆藏地的片段。可以增强这里的定义,加入管理员名字这个参数。这样,关于这个馆藏地的所有册发生了超期,都把超期信息发送给所定义的管理员。

但 library.xml 目前还没有单位名称的定义片段,这个定义也是很重要的,除了本文的用途还可以用来提供前端界面的单位下拉列表内容。需要考虑增加开发这部分定义的模块,包括管理界面。

目前系统架构中,超期通知是个后台任务,它扫描全部读者,如果必要对读者发出通知消息。新增的功能,如果还是借助这种扫描读者的方式,那可能要在中途把搜集到的信息缓存,最后再按照班级和管残敌之类的单位来组合信息,发给相关管理员。

读者证号直接使用学籍号,是否有信息安全性问题

有些学校的读者证号直接使用了学籍号,是否有信息安全性问题?

答:学籍号这个号码编码是很正规的,中间虽然包含一段生日,但并不是简单的隐私,比如身份证号码也有一段是生日,现在出外住酒店都要携带身份证,提供给酒店。公司目前尚未收到通知说不能用这个号码,我们认为学籍号是可以使用的。如果觉得学籍号本身有泄露隐私,也请有关老师向教育部反馈。

dp2系统里面也允许图书馆自己编号,编一套读者的证条码号。不是一定要用学籍号,用哪种号码由图书馆自行决定。读者证号直接使用学籍号主要是考虑图书馆工作老师维护读者证号简单,减轻工作量,学籍号天生唯一,不用再维护一套编号了。

关于保护读者信息,公司一直很在意处理好这个问题,dp2系统不会给外界提供读者证号码。比如OPAC的访客登录看到册信息里面的“借阅者”,都是星号。读者本人登录OPAC,如果某册图书是自己借阅的,那么可以看到自己的号码,如果是别人借阅的看到的也是星号。另外目前OPAC甚至还没有提供读者信息检索功能。微信公众号也是类似,非读者本人,涉及其它读者信息都做了星号处理。

工作人员能看到每个读者的学籍号,类似酒店的工作人员能看到客人的身份证号。内务本身是工作人员使用的,工作人员是可靠的,不应该泄露读者信息。在内务用公共账号public等登录是无法检索和浏览读者记录的,public在内务里面即使能看册记录,册记录里面的borrower字段里面也是星号。目前我们尚未发现系统做得不到位的地方,如果有,非常欢迎用户单位指出来。

学生的借书证,学生自己要保管好,和身份证道理一样,有些借书证上面还有读者照片。dp2系统能打印借书证,但不会泄露这些信息。
读者账簿的前提是低年级的孩子无法管理自己的读者卡。小孩容易弄丢读者证,或者拿错或者找不到。读者账簿等于是没有裁开的读者证,由工作人员帮学生集中管理。读者账簿和单独读者证一样都需要管理妥善,不要让无关人员随意翻看或拿走。

用户单位遇到用ISSN检索期刊不可靠的问题

天津实验中学-田老师(563745572) 11:09:43
以为ⅠSSN好用,其实刊名输入更靠谱
有的lSSN是错的

数字平台任延华(474381593) 11:10:12
@深海 啊,不明白,ISSN不可靠

天津实验中学-田老师(563745572) 11:11:46
查刊名准确可靠,条码lSSN有错误
并且错误率高,20%

数字平台任延华(474381593) 11:13:13
@深海 为什么ISSN错误率这么高呀?@深海

天津实验中学-田老师(563745572) 11:14:12
但刊名输入一两个字用前方一致,效率就提了许多

天津实验中学-田老师(563745572) 11:15:16
有码错误的,也有字段最初就没录准的

数字平台谢涛(2820725526) 11:16:57
@天津实验中学田 @数字平台任延华 是不是也有条码枪扫入过程,因为条码枪质量问题扫入错误码的可能?现在市场上不少廉价的条码枪有问题。

天津实验中学-田老师(563745572) 11:21:14

失误率高也没有细分析原因

数字平台谢涛(2820725526) 11:21:59
@天津实验中学田 我们推荐图书馆用霍尼韦尔这样的名牌扫描枪。就没有问题了

天津实验中学-田老师(563745572) 11:22:01
主要是工作量大,

天津实验中学-田老师(563745572) 11:22:38
好,现在用redmark

数字平台谢涛(2820725526) 11:23:08
@天津实验中学田 以后您遇到扫入 ISSN 检索,出现检索不命中的情况,可以看看实际扫入进入文本框的号码,是否和期刊上面印刷的号码一致。如果发现问题,我们可以共同给出版社反馈。这个如果印刷错了算是他们大失误了

天津实验中学-田老师(563745572) 11:23:57
好的谢老师

问题反馈:opac.xml 文件中 添加 databaseFilter 元素过滤数据库后,在自制 html 页面仍可检索到结果

修改 opac.xml 文件,配置 databaseFilter 元素,内容如下:

<databaseFilter hide="中文图书" />

自制 html 页面中 form 部分内容:

<form action="http://localhost/dp2opac/searchbiblio.aspx" method="post" id="form1" name="cnmarcBook">
   检索词:<input name="word" type="text">
   <input name="dbname" type="hidden" value="中文图书">
   <input id="search" type="submit" value="检索">
</form>

检索词 中输入检索内容后,点击 检索,页面中仍然能查到 中文图书 库中的记录。

测试计划:dp2circualtion 册登记窗功能测试要点

册登记窗曾命名为“册登记向导窗”。因为几个月前曾经编写过一个“册登记窗”,但感觉这个窗口的实现过程有很多问题,功能没有达到预期的水平,所以后来增加了一个新的、功能稍微不是那么激进的窗口,为了区别,就命名为 册登记向导窗。

取“向导”这个名字,一开始是因为窗口采用了 Wizard 的界面形式。但后来发现,用一个浮动的小窗进行向导效果更好,那么 Wizard 或者 PropertySheet 的界面形式意义就被淡化了。但“向导”依然可以指这个小窗。不过,现在决定根本不提供原先的 册登记窗,为了便于用户理解,就把 册登记向导窗改叫做 册登记窗了。它既可以全屏幕事件驱动方式使用,也可以用流程化方式使用,用简单的名字更适合。

这个窗口目前有三个 PropertyPage 页面。参数设定,检索书目,种和册。

第一个页面“参数设定”,是为册登记设置相关参数,一般来说首次运行的时候,各种参数尽可能都有一个合适的缺省值,并不需要用户去专门设置。不过,“册记录格式检查”这几个 checkbox,还是需要最终操作者来进行设定的。因为有些用户要为册登记册条码号,而另外一些用户不登记册条码号。还有,熟练用户可能希望在册登记时候并不急于输入索取号、图书类型等字段内容,而是在一批册记录创建好以后利用相关窗口去批处理添加。

为了便于用户理解,这些 checkbox 含义都很直接,如果勾选了就意味着保存册记录前软件要自动进行检查,不具备的就会报错,阻止保存。如果想要不检查,就不要勾选。册记录大部分字段是用户输入什么就是什么,索取号和价格这两个字段有点特殊,可以利用宏来指定缺省值,软件会在保存前自动兑现其值。

册记录缺省值,可以定义新增册记录时出现在界面上的缺省值,实际上和种册窗快速册登记缺省值使用的是同一套配置。也就是说这里改了那里也能感知到。其中,价格字段可以使用 @price 宏,表示启动取书目记录中的价格内容;索取号字段可以使用 @accessNo 宏,表示自动创建索取号。但索取号字段缺省值其实也可以保持为空即可,到时候软件也会自动创建索取号。

册记录缺省值对话框这现有的未完成的工作是,这里显示了册记录全部字段的缺省值,但其实在后面真正进行册登记的界面上却只能看到部分字段,那么要不要在这里让定义这些看不见的字段内容?另外,创建册记录那里,真的就是看不见的字段其值就一定是空么?还需要探讨一下。

书目记录的缺省值,在其对话框中分为 UNIMARC 和 MARC21 两种格式来定义,界面稍微简陋了一点。不过如果这里采用 MARC 编辑器的话,实际上可能用户觉得并不会用,并不好用,这一点先存疑,再观察一段看看。

“重新创建 servers.xml 配置文件”,这个按钮是在必要时才使用。第一次使用册登记窗的时候,软件会自动创建好这个文件,并不需要用户主动去创建。但当以后相关服务器配置发生变化等情况下,可能还是需要用户使用一下这个按钮来重新创建 servers.xml 配置文件。

servers.xml 配置文件里面配置了检索和保存书目记录的各种服务器、书目库配置信息,以便让软件知道哪些服务器是数据源,哪些是可保存记录的服务器。servers.xml 配置文件是存储在用户目录下的 servers 子目录下,根据当前 dp2circulation 连接的 dp2library 服务器 URL,和登录的用户名,作为两级子目录名,深入存储到子目录中。这样做的目的是,让同一个 dp2circulation 在不同的启动情况下,访问不同的 dp2library 服务器的时候,或使用不同账户访问的时候,能够各得其所,使用各自完全独立的配置,这样可以避免用户在切换后手动重新创建 servers.xml 配置文件的麻烦。

dp2library 中对于涉及到密码的各个环节进行加固

dp2library 中,读者库记录的 password 元素用于存储密码,这里存储的是 hash 以后的字符串,不是明码。但如果泄露给不具备相应权限的用户还是具有一定危险性的。所以最近对相关环节进行了一些加固,下面描述这个过程,为测试验证提供帮助。

  1. 所有用户使用 GetReaderInfo() API 的时候,系统过滤掉了读者记录中的 password 元素再返回。在需要创建一些其他格式返回的情况下,在创建这些格式以前,原始的 XML 字符串中已经预先去掉了 password 元素。
  2. 所有用户使用 GetOperLog() 和 GetOperLogs() API 在返回日志记录的时候,过滤掉了其中各种读者记录的 password 元素,也过滤掉了 changeReaderPassword 操作和 setUser 操作日志记录中的密码信息。
  3. 当(超级用户) 使用 dp2library 日志恢复操作的时候,从物理文件读出日志记录的中间环节不过滤任何密码信息,因为这些密码要用于恢复读者记录和相关记录。测试的时候要格外注意检查这一点,看看是不是不恰当过滤的密码信息、导致系统恢复后读者密码和相关环节的密码无法还原到最新的状态。

dp2OPAC 内存泄漏

这几天做了一次大规模的代码重构,主要是试图解决 dp2OPAC 的内存泄漏问题。

最终发现是 DigitalPlatform.LibraryClient 库中的 LibraryChannel 在通讯中等待服务器返回结果的循环中,使用了 Windows Form 下才能使用的 Application.DoEvents(),造成了 thread handle 和 ReaderWriterLock 泄露,这可能是 Application.DoEvents() 内部的代码造成的现象。

为此,修改了对 Idle 事件的使用方法,让默认情况下不出现任何对 Application.Events() 的调用。仅当 Windows Form 程序需要的时候才主动通过 Idle 事件添加这种功能。

另外,对 dp2OPAC 中所有使用 LibraryChannel 的地方,都采用 ChannelPool 来管理。不过还余下 CacheBuilder 类里面的 LibraryChannel 用法等待改造。

对全部代码中包含 AutoResetEvent 和 ManulResetEvent 的类都确保具有 IDisposeable 接口,并注意这些对象的生存周期管理。

有些担心这些修改,会令 dp2OPAC 在 SSO 情况下的功能出现 bug,需要后面补上测试。

问题反馈:关于打印装订单界面的一些问题

@paopaofeng @DigitalPlatform @renyh1013
今天开会讨论了打印装订单界面的一些问题:

  1. 打印装订单/装载属性页里,点击“根据批次号检索装载”按钮,弹出的“根据批次号检索出册”对话框中,批次号一栏下拉列表,会显示所有当前出版物类型的批次号,包括记到时产生的册记录批次号,合订时产生的批次号等等。可能导致用户无法区分哪些是记到时的批次号,哪些是合订批次号,哪些是验收批次号。

经讨论,如果这里对各种批次号进行筛选,实现起来软件改动会比较大,并且用户使用过程中如果数据量大的话,可能导致筛选时间太长。

所以,决定系统暂保留现有设置,验收批次号下拉列表仍然显示所有属于当前出版物类型的批次号。
但需要引导用户在设定批次号时依据出版物类型+用途说明+时间来设定

比如,图书验收批次号设定为图书验收1218,期刊合订设定为期刊合订1210等形式。可以在视频教材或者用户手册中建议用户这样操作。

  1. 装载属性页中,装入合订册信息后,成员册列表只显示了成员册的册条码号,出版时间,卷期三个字段。其他字段,包括摘要,ISBN/ISSN,状态,索取号,馆藏地点,册类型等字段均不显示内容。

经讨论,由于成员册的摘要,ISBN/ISSN,状态,馆藏地点,册类型字段,与合订册完全相同,这几个字段在成员册中可以不显示。
由于合订册无法体现索取号字段,所以成员册中需要显示各册的索取号。这里软件需要作优化调整

  1. 打印装订单/排序属性页中,排序策略目前只有一个选项“书目记录路径”,暂时保留这样的设置,以便后续增加其他选项。

功能改进:dp2Circulation 几项改进需求

  1. 期刊合订时,2个或多个册价格为 “CNY0” 的册信息合订后,合订册价格为 “CNY”,只剩下货币符号,缺少了数字部分,价格字符串不符合规则。

  2. 典藏移交过程中,“验证”阶段“册条码号”输入框改进为禁用输入法,避免输入汉字或全角字符。同样 dp2Circulation 工具栏的“条码”输入框也可以改进为禁用输入法。

  3. 典藏移交过程中,“转移”阶段“修改馆藏地”功能弹出的对话框中,可否增加一个输入框,用于输入二级馆藏地点。目前的做法是在“馆藏地点”下拉选项框中以 “:” 分隔方式,形式为“馆藏地点:二级馆藏地点”,实际使用中容易出现漏录 “:” 引起馆藏地点未定义的错误。

问题反馈:打印订单与打印验收单中总价需保留两位小数的问题

  1. 在【打印订单窗】进行打印订单时,最后一步【打印 / 输出】页点击【打印订单】按钮后呈现出的订单第一页中的【总价】内容是形如:CNY200,结尾没有保留两位小数,形如:CNY200.00。在订单的第二页详单【总价格】列的内容也同样需改成保留两位小数。

  2. 打印验收单时,在第一页中【总价】的内容同样没有保留两位小数,第二页详单中【总价格】列的内容正确。

eula.txt文件换行编码不正确

dp2Circulation和dp2Catalog两个工程下的eula.txt换行编码有问题,二进制查看文件的换行编码为 0A,在Windows操作系统自带的记事本中打开分行就乱了。

dp2circulation 数据目录中的 clientcfgs 子目录移动到了用户目录下

今天改进了 dp2circulation,将原来版本存储在数据目录下的 clientcfgs 子目录移动到了用户目录下。

dp2circulation 启动的时候,会自动检查数据目录中是否存在 clientcfgs 子目录,如果存在就会移动它到用户目录中。考虑到不少用户除了在电脑上安装了一个 ClickOnce 的版本,还有一个绿色版本(这是由ClickOnce版本启动时候自动创建的,在 c:\dp2circulation 中),若其中一个版本启动过一次以后,已经完成了上述移动 clientcfgs 子目录的任务,然后另一个版本启动,如果还要再做一次这种移动,就会覆盖前次的内容,也可能会引起其他问题,所以负责移动的模块,还判断了目标子目录是否存在,如果存在则不会进行第二次移动操作。当然,这样就意味着第一次移动完成后,第二个版本的统计方案就不会被利用到了。

除了移动 clientcfgs 子目录,移动的模块还负责移动了原来数据目录下的 *projects.xml 文件,这是各个窗口配置定义统计方案的文件。

这次的版本号增加为 2.12。

文稿:打印装订单/请审阅

@renyh1013
任老师,打印装订单文稿大纲初步整理如下,请审阅!

打印装订单

  1. 承上启下介绍打印装订单流程。
  2. 进入打印装订单界面
  3. 介绍打印装订单界面
  4. 检索装载打印记录
    4.1 第一种方式:根据批次号检索装载
    4.2 第二种检索装载方式:从记录路径文件装载
    4.3 第三种检索装载方式:从条码号文件装载
    4.4 现在来观察装载后的情况。
    4.5 如果想要详细观察某条合订册记录,也可以双击这条记录,进入对应的种册窗观察。
    4.6 如果系统检索装载的不是合订册的信息,则系统会显示为红色背景,摘要/出版信息一栏会显示出错。
  5. 排序
    5.1 排序的目的是在打印前将合订册列表框内的册信息进行排序。
    5.2 装订单最常见的排序形式,是按册记录从属的书目记录路径来排序
    5.3 如果觉得这种方式不能满足需要,也可以手动指定排序方式(如何操作还没学会)
  6. 打印
    6.1在打印属性页里,先勾选“合订册条码号打印时加上前后缀字符”选项
    6.2 在打印属性页里,先勾选“合订册条码号打印时加上前后缀字符”选项。
    6.3 介绍每页
    6.4 设置打印范围和份数
    6.5 打印
  7. 打印出来的装订单签字盖章作为装订合同发给装订厂后,系统里面的合订信息就不能再修改了。这体现了合同的严肃性。

录屏文字:期刊验收-记到/请审阅。

期刊验收-记到

大家好,本节我们学习期刊验收的记到部分。

  1. 创建好期格后,就可以根据收到的期刊开始记到环节。
    1.1 记到是指对收到的期刊进行系统登记。这一部分工作比较简单,可以由非专业人员来操作。
    如果创建期格和记到是由不同人员操作,当记到过程中发现期刊的实际出版情况或收到的复本数量与当前期行不符时,负责记到的操作人员需要及时寻求创建期格操作员的帮助,以对期格做出必要的调整。

1.2 我们来演示记到过程。记到过程分为两步,第一步设置“快速册登记缺省值”,第二步,记到。

  1. 我们用一个与创建期格不同的账户来演示记到过程。这个账户的权限较低,只能作一些勾选。
    先打开dp2内务。输入账号和密码,进入内务界面。

  2. 点击常用窗口-种册窗,进入种册窗界面。
    3.1 首先利用检索面板检索出需要记到的记录。因为现在我们手里已经有了订购的期刊,我们在中文期刊库里,以ISBN为检索途径,匹配方式设置为精确一致,检索词输入框里扫入期刊的ISBN,注意扫入前确定输入法为英文模式,扫入之后,系统发起检索。
    系统检索到需要的记录后,会装入该记录的书目。我们先确认好这就是需要记到的书目。

3.2在种册窗的下半部分,点击“期”标签,进入期属性页。在期列表里面,可以看到系统中已创建的期信息。

  1. 我们先设置“快速册登记缺省值”。
    4.1 点击种册窗里常用工具栏上的选项按钮,系统弹出选项对话框。我们可以点击右上角的左箭头,切换显示的属性页。点击“快速册登记缺省值”标签,进入“快速册登记缺省值”属性页。

4.2 在这里我们对这一批验收时共同的字段信息进行设置。一般建议设置索取号,册类型和批次号这三个字段。
4.2.1 索取号固定设置为一个宏变量:@accessNo, 注意N为大写。
4.2.2 册类型可以根据需要下拉设置,这个下拉列表是图书馆系统管理员在系统管理窗里面事项设置好的。这里我们下拉设置为普通。
4.2.3 批次号一般按照一定的规律来设置。建议设置为说明+日期的形式,比如我这里设置为期刊验收1201. 验收批次号必须设置,如果不设置,后面系统将无法根据验收批次号打印验收记录。
设置好后,点击确定。回到种册窗。这样,我们就创建好了快速册登记缺省值,为下一步的记到操作做好了准备。

4.2.4快速册登记缺省值设置好后,会一直保存在系统当中,下次验收时这些值仍然生效。如果下次验收需要设置不同的内容,需要在选项对话框里重新设置。

以上设置快速册登记缺省值这一步如果跳过不做,仍然可以记到。记到过程中系统会提示我们设置验收批次号,并且后面登记册信息的时候需要对每一册相关的字段分别设置。

  1. 下面我们开始第二步,记到。
    5.1 在种册窗期属性页的任意期行处,单击鼠标右键,在右键菜单里选择“记到”,跳出记到对话框。我们先观察记到对话框里面的内容。
    5.2 记到对话框是一个图形化界面,里面以记到模式,按照订购组顺序组织显示了每期的期格和册格。
    5.2.1 每行的第一格,显示为黑色的是期格。
    可以看到期格上面显示2018,1,20180101,0/15,左下方有一组花括号,表示这是2018年的第一期,出版时间2018.1.1,总共有15册需要验收。已验收0册。
    花括号表示当前显示为记到模式。
    我们可以在这个期格上面双击,从跳出的期信息对话框里面看到这一期的具体信息。我们关闭期信息对话框,回到记到界面,继续观察期行。
    可以看到期格还有一个红色的圆圈,表示这一期现在处于未记到状态。

5.2.2期格的后面,有一个无框格子,这表示一个订购组,右上角显示英文字母a,是系统对当前订购组进行的编号。
订购组里说明了该组的渠道,经费来源,订购单价,订购时间范围,和订购批次号;我们在期格上点击一下,并且鼠标焦点放在订购格里面。这时每一行对应的说明就显示出来。

5.2.3订购格后面用花括号括起来的格子表示这一组订购的册格。黄色?表示尚未验收。

5.3我们先勾选记到界面下方的“显示(单元格)编辑区域”选项,期行显示区缩小,右侧将用于显示需要编辑的册信息。

5.4下面开始记到
5.4.1点击需要记到的册格,册格被自动填充了若干字段信息,同时界面右侧册信息编辑区显示出来。但此时册信息编辑区处于灰色禁用状态。

5.4.2我们再把鼠标焦点移到需要记到的册格中心,?中间出现一个复选框,点击复选框,系统跳出“请指定验收批次号”对话框。可以看到对话框里面系统根据快速册登记缺省值设定了一个验收批次号,我们确定一下,如果需要修改,可以在这里修改。不用修改直接点击“确定”。

5.4.3现在我们可以在右侧的册信息编辑区域编辑这一册的相关字段信息,可以看到,状态一栏出现“加工中”,表示现在这一册加工还没有完成,暂时不允许外借,需要通过典藏移交进行一次调拨,消除“加工中”状态,才能够借阅。

5.4.4在册信息编辑区还可以看到,出版时间,馆藏地点,渠道,经费来源,册价格,卷期这几个字段的内容,系统已经根据订购记录设置好了。
并且系统根据“快速册记录缺省值”设定了册类型,
根据验收批次号设定了“批次号”,
中图法分类号一栏,我们点击后面的“创建索取号”按钮,系统为这一册创建索取号。
我们确定这些字段的内容,如果需要修改,也可以在这里手动修改。一般情况下这些字段的内容不需要修改。

5.4.5一册的信息编辑完后,点击勾选下一个的册格中心的复选框,这次系统不再询问验收批次号,而是直接按照刚才确定的批次号进行了设置。在右侧册信息编辑区里的册信息里面可以看到。
同样的,系统根据订购记录设置好了出版时间,馆藏地点,渠道,经费来源,册价格,卷期这几个字段。
根据“快速册记录缺省值”设定了册类型。
我们点击“创建索取号”,系统自动创建索取号。

5.4.6我们依次验收其他册,点击勾选其他册格中心的复选框,并且在右侧编辑区点击“创建索取号”按钮,为该册创建索取号。

5.4.7需要验收的册都记到之后,点击“确定”按钮,记到界面关闭,跳出“登记册条码号”对话框。
我们用扫码枪在这里扫入需要登记的各册的册条码。注意扫入的册条码要和上面册事项中选定的册信息相对应。
扫完一个册条码后,册事项中第一栏增加对应的册条码号,并且册事项中的焦点自动移到下一条事项,我们继续扫入下一条对应的册条码,直至扫完所有记到的册条码。
最后按“确定”按钮,关闭登记册条码对话框,回到种册窗。

5.4.8如果图书管规定现刊不需要贴册条码,可以按“取消”按钮跳过这一步。

5.5现在我们看到种册窗的期属性里以绿色底色和对勾显示了刚才记到的几笔记录

5.6我们切换到册属性页,在册属性页里,以黄色底色和+表示了刚才记到的册记录,我们可以看到对应的册条码,现在这几册的状态都为加工中,往右拉滚动条,可以看到这几册具体的信息。

5.7现在,记到的这几笔还没有保存到系统当中,我们确认无误后,点击种册窗右下方的全部保存按钮,记录保存入系统。显示为正常无底色。

本节内容就介绍到这里。谢谢大家!

某用户单位 2018 年功能需求总结

册记录中的附注字段希望能进行检索

目前不用改进软件就能用的方法是,定义 comment 元素为检索点。然后针对这个检索点用中间一致的方式进行检索。缺点是中间一致的检索在数据量很大的时候速度较慢。速度具体有多慢,可以试验一下看看,也许不是很慢、能满足近期实用要求。

后面需要新开发的功能,是为 dp2kernel 增加专门的全文检索功能,可以为册记录的 comment 元素定义一种全文检索的检索点。这种检索点的检索速度较快。需要列入开发计划。

希望对书目记录的 801$c 创建检索点

“目的是为了检索到从 DT1000 升级过来的书目信息,方便对记录检查和重新编目,从 DT1000 升级过来的记录中有乱码的现象。”

dt1000 中的书目记录导入到 dp2 系统后,有各种明显特征便于肉眼观察。由于书目记录是顺序写入数据库的,其 ID 有明显特征,比如大于某个数字的就是 dp2 系统里面新创建的,小于的就是原来 dt1000 里面创建的,通过 ID 可以判断,没有必要给 801$c 创建检索点。

至于所描述的有乱码的记录,发生在某个特定的书目库的特定位置,几百条,已经摸清楚规律,没有必要去创建这个检索点。

但不反对用户单位给 801$c 创建检索点。虽然,这个检索点没有多大用处,会拖慢数据库运行速度。此条意见仅供参考。

微信公众号模块按书目库设置是否开放流通

首先,一个书目库(下属的实体库)是否参与流通,是在 dp2library 模块的 library.xml 中设置的(内务前端有管理界面),和微信公众号无关。不过,微信公众号模块通过 API 访问 dp2library 的时候,是服从 dp2library 管理的,dp2library 的参数会对全局发生影响,影响范围包括微信公众号模块。

经过沟通,发现用户方面的意思是,要根据书目库整库决定下属的册是否参与流通。这种情况非常罕见,这个功能不符合用户单位的实际情况,建议用户单位不要使用这个特性。如果要使用这个特性,会发生“为了调整一个册记录是否参与流通,而不得不把它在从属书目库之间移来移去”的后果,这是对工作有害的。

如果需要临时控制一个册记录是否参与流通,一般是修改它的“图书类型”字段内容即可(修改为一个特殊类型),然后对不希望流通的图书类型,针对读者借阅权限定义允许借阅册数为 0 即可。

推荐的这个方法,优点是 1) 不用移动册记录;2) 可以针对某些特定读者类型或者全部读者类型定义这一册是否参与流通,非常灵活。

至于如果一册图书已经丢失了,要让数据库中的册记录反映这种情况,那直接给册记录的状态字段设置“丢失”即可,都用不到上面的复杂方法。

关于册记录在从属的书目库之间转移

这一个问题和上一个问题有关。

具体是指实体记录从 A 库转移到 B 库,目前只能通过典藏移交的方式,并且还要 A库 为采购库。(注,这说法不太全面。书目记录是可以移动的,它带着下属的册记录也移动了,这是另外一种方法)

用户举例说,有一种书,有5个复本,其中有丢失,可能是 1本 或 2本,他想把丢失的图书转移到其他书目库名下,然后把这个书目库设置为 OPAC 不可见,避免读者从 dp2OPAC 上查看误以为有书,实际是丢了。

答复:对于已经丢失的图书,需要给册记录的状态字段设置为“丢失”。注销的图书也类似,也是修改状态字段内容。这是 dp2 系统的正规做法。册记录状态修改后,读者从 dp2OPAC 上能清楚看到这一册图书丢失。

如果读者因为看错了觉得这一册图书可以外借的情况,建议可以进一步给 dp2OPAC 增加一种状态,在册信息表格里面不显示这一行。但这种做法只是对读者可行,对工作人员隐藏显示会对工作有害,因为工组人员是时刻要了解一册图书是否丢失或者注销的。

有了这些处理办法以后,基本上不应该焦虑“书目库按照整库来设定不参与流通”的事儿了,也没有必要去专门设立一个容纳丢失的册的书目库。书目库多了会造成不必要的管理负担。并且册记录无法单独移动。如果册记录的兄弟册还存在,那么就不能移动它从属的书目记录,只能复制书目记录并移动希望移动的册记录,此举会造成书目记录在书目库之间重复,是很忌讳的做法。因为图书馆软件系统和书目数据重复搏斗了很多年了,任何一点成果都是值得珍惜的。

另外多说一点:dp2 系统提倡在丢失、注销等情况下不要直接删除册记录,而要保留册记录,只是用状态来体现丢失或者注销。

一个读者先还书然后借书,如何简化工作人员操作

可以考虑新增加一个按钮。具体怎么开发还没有太想好,需要一定时间思考。

给读者发手机短信通知功能

还需要了解一下,是什么功能和场景需要给读者发送手机短信?另外需要注意一个原则,凡是这种发送通知的功能,都要在读者 OPAC 界面或者微信公众号界面上允许读者取消这种功能,不然会引起大量投诉

发送手机短信,每条需要给电信部门交一毛钱左右的费用,这个费用可以由数字平台承担。

预约如何通知馆员,多个值班员,如何通知到?

dp2 系统的预约和满足,被设计成完全自动运行,正常情况不需要图书馆工作人员监督和干预。首先,我们明确这个设计目标。

预约大致可以分为在架预约和不在架预约两种情况。在架预约,意思就是图书明明就在图书馆书架,读者还要预约。这种预约是立刻满足的,dp2library 服务器会立刻发出通知给读者,请他来图书馆办理借书手续。因为图书就在书架上。这时候,这一册图书暂时被锁定,其他读者无法借走,拿到出纳台办理借阅手续,系统也会拒绝他。只能预约成功的这个读者才能办理借书手续。正常情况是,读者在规定的时间内到图书馆,从书架上拿到图书,办理借书手续。如果书架上没有找到,可以问问出纳台,是不是被试图借出但未果被丢在了出纳台。

不在架预约的情况,就是这册图书被人借走了。预约成功后,进入等待状态,只要这本书被还回,还回的一瞬间系统会自动通知排队的第一个预约者,请他来图书馆办理借书手续。这个读者来到图书馆,告诉工作人员自己的需求,一般是从出纳台的预约保留架上能找到这本图书。然后办理手续。

我们可以看出,上面整个过程不需要图书馆工作人员主动去做什么事情。这种设计是好的设计,最简化的设计了。

好,理解了上面的概念,我接着说一些扩展的概念。有些图书馆希望具有工作人员给准备图书,让读者来图书馆快速拿走的功能。这种功能相当于刚才说的在架预约并满足,然后工作人员得到通知,主动跑到书库里面去把图书拿出来,在出纳台装入一个小匣子,然后恭候读者到图书馆来取书,读者一来立刻几秒钟就拿走,不耽搁,不进入书库。

第一,我估计具体的图书馆工作人员未必有耐心真的会使用这个功能。因为要图书馆工作人员不断跑腿,类似以前闭架书库的情况;第二,读者既然来了图书馆,恐怕不会拿了书就走,总要到书库逛逛浏览一下,现在书库都是开架的。就像我们逛街去商场,一般不会在问询台拿了东西就走,总要逛逛。

即便有如上判断,但我们还是计划要开发这个取书功能的。用不用这个功能是图书馆的事情,我们作为开发者要开发。现在我们可以思考一下,到底要什么功能。我再强调一下,传统的预约功能是不要工作人员介入的(至于办理借书手续需要工作人员介入那是借书本身的要求,不是预约功能的要求)

内务里面逐渐在增加一些类似取书的功能窗口。注意,那是取书功能,不是传统的预约功能的要求。有可能我们看了这些窗口产生联想,认为传统预约功能需要这些窗口,或者传统预约功能没有开发完?不是的。dp2 系统的传统预约功能是完整的。这些窗口目前正在逐步开发,是为了新功能使用的,暂时可以不要去管这些窗口。

取书功能要完整实现,一定是要手持设备介入的。就是工作人员拿着手持设备,去书库里面跑库取书。如果没有手持设备,拿着一个打印的小条也可以。如果没有手持设备和小条,恐怕工作人员记不住要取的图书清单。后面我们会在“我爱图书馆”微信公众号界面上增加馆员取书的功能。虽然内务里面会增加一些窗口,但显然,工作人员不太可能端着一台笔记本电脑在库里跑来跑去。我们现在也可以设想一下,是否真的具备这样的设备、条件,和应用这个功能的意愿。

后面需要进一步了解和明确用户单位的真实意图。

文稿:期刊操作-期刊合订

@renyh1013 任老师,以下是我初步整理的期刊合订文档大纲,请有空的时候帮忙看一下。谢谢!

期刊操作-期刊合订##

1.期刊合订概述(场景:以大纲的形式写出合订前的准备)
1.1 什么是期刊合订
1.2合订前的准备
1.2.1在进行合订操作前,工作人员应当先对有关时间范围的缺期进行催缺,或对在借现刊册进行催还。
1.2.2这一步完成后,将有关时间范围内的各期下架清点。对确已丢失的册,进行册记录的注销。对已经局部损坏的册,评估完好率。
1.2.3然后确定需要参加合订的各期成员册,一般挑选完好率高的册参与合订。以保装订出质优的合订册。
1.2.4接着把成员册按次序码放整齐,同一合订册的成员册摆到一摞,需要几个合订册就摆成几摞。
1.2.5如果装订厂可以代贴合订册条码,还需要为合订册选好册条码,以便录入系统。
完成系统合订后,打印装订单时可以把合订册条码贴到装订单上对应的位置,以便装订厂为合订册贴上册条码。
1.2.6 另外,如果合订时需要录入合订册的册条码,还需要连接准备好扫码枪。

2.进入装订界面
2.1 种册窗检索待合订的期刊书目记录
2.2 进入装订界面

3.准备合订成员册记录。
3.1 评估各册完好率
3.2各期各册完好率评估完后,我们把各期的册格按照完好率高低进行排序。完好率高的排在前面。

4.选择合订成员册

5.合订
设置批次号

6.生成合订册

7.创建合订册记录
馆藏地必须设置,否则系统无法创建索取号

8.合订第二册
这次系统不再弹出“请指定合订批次号”对话框,而是根据上一次设定的批次号自动设定下一个合订册的批次号

9.为各合订册创建册条码号
如果现在可以确定合订册的册条码,直接扫入对应的条码。
如果现在不需要或者不能确定合订册的册条码,可以跳过这一步。
后面等合订册装订回来后,按照记到流程对合订册进行记到。

10.完成合订后系统的变化

11.保存合订记录后系统的变化

12.合订后的下一步
“根据相关数据记录,打印出装订单,连同期刊实物一起送交装订厂。

dp2Circulation访问dp2LibraryXE时不出现登录对话框的问题

dp2Circulation访问dp2LibraryXE时,如果后者没有启动,在前者出现登录对话框的情况下,前者打开后,后者也一并启动起来了。但是如果前者不勾选“每次启动程序时均出现登录对话框”,即前者不出现登录对话框的情况下,前者打开之后,后者没有被一并启动起来。

文稿:期刊操作-打印催缺单/请审阅

@renyh1013 任老师您好,以下是初步整理的期刊操作-打印催缺单 文稿大纲,请有空的时候帮忙看一下。

期刊操作-打印催询单

1.为什么要催询
2. 进入打印催询单界面

3.确认数据来源
3.1 第一栏,选择出版物类型
3.2 确定参与催询的数据来源。
3.2.1 四种催缺数据来源
3.2.2 催缺统计原理以及数据来源设置

4.确认催缺统计时间范围
4.1 进入“时间范围”属性页
4.2 系统默认不过滤的意义
4.3 如何根据需要设定时间范围
4.4 如何快速设置时间范围

5.执行统计
5.1 系统如何执行统计

6.打印催询单
6.1进入打印属性页
6.2 打印催询单
6.2.1 催询单的体式和内容
6.2.2打印(以pdf显示打印效果)
6.2.3 如何设置打印参数(简单提及,不细讲)

期刊现刊的固定架位号怎么设置?

数字平台任**(474381593) 11:22:42
*老师,对现刊是否贴书贴(索取号),如何排架?

数字平台谢*(2820725526) 11:24:11
现刊因为时间短,所以一般是简化了,在期刊封面用铅笔写一个索取号。不贴标签了。这也是图书馆传统做法。

数字平台谢*(2820725526) 11:24:38
期刊册数据中还是要索取号

田*(563745572) 11:25:34
现刊及合订本均没设书标
我们现阶段是这样的
有何好的做法么?

数字平台谢*(2820725526) 11:26:39
合订本还是应该有书脊标签。至于索取号,可以按照图书馆的特点来简化或者定制,可以比书那种简单

数字平台谢*(2820725526) 11:27:37
期刊的分类一直是有问题的,比如是集中在 Z 类。图书馆业务核心期刊里面有不少文章探讨过这个问题,有很多变通做法

数字平台谢*(2820725526) 11:28:36
书标的意义,在于给馆员和读者一种通用的严谨的提示,让图书能正确归位和排列

数字平台谢*(2820725526) 11:29:35
如果没有书标,可能排列规则就存储在资深馆员的头脑里面了,读者无从知晓。容易发生乱架 --- 如果书库开架的话。另外对临时工培训的难度也提高了

数字平台任**(474381593) 11:32:02
@accessNo这个参数是根据排架体系生成的,如果现刊的索取号不是这样产生的,那缺省值这里还要不要设置了,后面手工输入自定义的索取号(架位号)?

数字平台谢*(2820725526) 11:34:19
@数字平台* 索取号如何自动创建,除了系统提供的几个选项外,还可以通过 dp2circulation_autogen.cs 脚本文件定制。这是较好的情况。如果实在特殊,又没有定制,就只能手工输入了。手工输入实际上是最高级的手段,即便是自动发生的号码,工作人员也可以发生后继续修改,系统认最后修改的结果。

数字平台任**(474381593) 11:38:12
@数字平台谢* 谢老师,我在想。在快速册登记缺省值处,设置@accessNo宏参数的,是根据排架体系生成索取号,如果是种次号排架的话,还会占用了号码位。如果现刊上不是这种索取号,那么是不是缺省值处就不要设置了。

数字平台谢*(2820725526) 11:43:23
不太明白你的意思。现刊理论上也是可以排架的,但因为合订要取消或者废弃某些册,这才是问题。这个需要图书馆统一规定。软件只是提供一种功能。因为现刊馆藏地可以不同,可以独立,号码增长也可以不影响其他馆藏地呀。_

数字平台谢* 11:44:51
一般手工编制的现刊排架位置编号,是假定同一种期刊永远排在同一个架位,铁打的营盘流水的兵,不断取走,又来,但位置始终不变。

数字平台任**11:46:51
我现在纠结的是在 册登记缺省值处,要不要给索取号字段设置@accessNo宏变量,还是设置其它什么值,还是不设,手工填写。

数字平台谢*
@数字平台任** 关于现刊的固定架位号,前一段用户和我探讨,然后我做了一些改进,但因为没有记载到 wiki 里面,我现在忘记了具体是怎么处理的了。我先找找代码,回忆一下看看。这个问题是个挺重要挺通用的问题,值得花力气解决一下,给用户提供一个较好的做法。

数字平台谢 2017/12/7 12:37:24
@数字平台任
* >我现在纠结的是在 册登记缺省值是,要不要给索取号字段设置@accessNo宏变量
我先回忆一下。
记得当时提出过一个方案,是在书目记录的某个字段存储这种期刊的固定架位号码,这样在册记录创建的时候用一个宏就可以从上述位置取信息。宏名可以专门定义一个。**

数字平台谢 2017/12/7 12:38:>
还有一个方案,就是在同一种期刊中,只要前面有了一册具有这个号码,后面新增的册可以直接从前一个册复制即可。这个方案就不必在书目记录中保存信息了。但手工要维持一个对照表,备查。这个号码表就不在 dp2 系统管辖范围了。
*

问题反馈:关于期刊合订时设置合订批次号的问题

@DigitalPlatform @paopaofeng @renyh1013
今天上午讨论到期刊合订时设置合订批次号的问题。
目前在期刊合订时,系统弹出的合订批次号对话框中默认的值为上一次册登记时的批次号。

这个批次号可能来源于快速册登记缺省值对话框里的批次号设置,也可能来源于批处理/验收窗的批次号,也可能来源于合订批次号,或者上一次直接利用种册窗做期刊记到时的验收批次号。
以上几个地方的批次号是相互关联的,最近一次无论在哪个地方修改后,其他地方的默认值也会相应修改。

为了便于用户正确理解系统,决定保留系统目前的设置,多个批次号入口,同一个内容。
同时帮助用户建立合理的使用习惯。
可以通过视频教材和用户手册帮助引导用户在设定批次号时依据出版物类型+用途说明+时间来设定。

比如,图书验收批次号设定为图书验收1218,期刊合订设定为期刊合订1210等形式。

同时,引导用户建立验收、合订分开操作的习惯。需要验收的册集中验收,需要合订的册集中合订;或者一台电脑验收,一台电脑合订。

如此,实现系统简单化,操作规范化。

文稿:期刊操作-如何利用种册窗完成期刊记到

@renyh1013 @DigitalPlatform

如何利用种册窗完成期刊记到 大纲:

1.dp2系统期刊记到的标准流程是通过批处理窗口下面的验收窗来完成。
对于一些零星的期刊记到,为了便于用户更加快速直接的操作,也可以通过种册窗来完成记到。

2.记到前的物理准备
2.1准备好此批需要记到的期刊。
2.2把期刊复本摆放在记到的电脑旁边。
2.3如果记到中需要为册记录输入册条码,要先准备好待用的册条码,放在旁边,以便系统录入时一边贴一边扫。不容易出错。
2.4如果需要用扫码枪,需要先连接准备好扫码枪

3.进入种册窗界面
3.1 首先,利用检索面板检索出需要记到的期刊书目记录
3.2确认期刊书目记录
3.3观察已经创建好的期信息

4.进入记到界面前,观察勾选三个选项。

5.进入记到界面
5.1对界面的介绍一句带过:在记到界面里可以看到预先创建好的期行
5.2勾选“显示(单元格)编辑区域”选项

6.记到
6.1 记到第一册
6.1.1介绍“请指定验收批次号”对话框
6.1.2介绍记到界面右侧册登记编辑区的字段设置
6.1.3提醒用户需要注意册类型字段,根据上一次验收的册记录默认值进行了设定。如有需要要在这里手动修改。

6.2 记到第二册
6.3 扫入册条码
6.3.1为记到的期刊复本贴条码。贴的时候要注意核对刊名和卷期信息,与“册事项”中选定的册相对应。
6.3.2贴完一册,直接用扫码枪在条码输入框里扫入册条码
6.3.3继续为下一册贴条码,并扫入对应的册条码,直至为所有刚才记到的期刊复本扫完条码。

6.4 记到完成后系统的变化
6.5 保存记到记录,再观察系统的变化。

7.完成记到的期刊还没有上架,读者不能借阅。需要实际上架后,在系统中去掉“加工中”的状态,然后才能够正式投入使用。

改善流通业务操作环境的一点思考

图书馆流通业务特点很鲜明。在读者很多的情况下,工作人员要快速和读者交互反馈,每种操作都要尽量简单易用,以便工作人员集中精力满足读者的需求。本文试图谈谈这种环境下对软件功能的一些要求,原则。

目前流通业务界面,例如内务的快捷出纳窗,有些时候做借书和还书操作的时候,会出现报错信息,大概是因为相关读者记录的读者类型字段缺乏,相关册记录的图书类型字段缺乏,造成操作被拒绝。理论上说,这时候工作人员可以切换到内务的相应窗口进行补录数据字段的操作,但因为以下原因他们可能无法办到:

  1. 流通出纳人员的账户权限可能不足以修改读者和册记录;
  2. 工作人员培训不足,界面也头绪较多,不会这样的“复杂”操作;
  3. 目前的界面还比较繁琐。

所以我在这里提出一个原则,要开发一种对相关数据记录进行全面检查的功能,在流程上前置,也就是在真正的流通业务发生以前,预先模拟进行借书还书操作或者检查,让操作被拒绝的情况提前暴露出来,给相关环节的工作人员明确提示,然后工作人员可以提前将数据修改准备到位就绪。

退而求其次,如果借书还书时候确实发生了拒绝的结果,那么还可以 1) 界面上给出明确提示,并同时给出锚点或者按钮让工作人员能快速切换到解决问题的界面,并具备足够权限解决问题,然后返回刚才的借书还书界面继续重试操作;2) 如果现场工作人员无法解决问题,可以自动推送报错信息给支持人员,比如云服务器的系统管理员,从管理员那里得到协助和指导,报错信息也可以归档,提供以后统计和研究。

在设计 B/S 模式的流通界面的时候,或者针对中小学图书馆环境设计界面的时候,以上原则应该更有参考价值。

测试计划:内务读者窗指纹登记功能的 Bug

在读者窗里面按下“登记指纹”按钮以后,会自动打开一个对话框让用户扫入指纹。这个对话框实际上是 ZkFingerprint.exe 的窗口,它是作为一个 .Net Remoting Server 启动的,内务在扫入指纹的时候实际上是调用了它的一个 API,API 里面让它的主窗口跑到顶层位置,看起来像是内务的一个对话框。

按照正常流程,用户应该在此时按照提示扫入指纹;或者按对话框上的“取消”按钮返回读者窗。但用户可能此时直接去点读者窗右上角的关闭按钮,这样指纹对话框就一直打开着,而读者窗已经关闭了。此时若再点指纹对话框上的“取消”按钮,则会内务抛出异常。

===

这个问题已经修正。在新版本中,如果指纹对话框还在打开状态,用户就去关闭读者窗,那么指纹对话框会自动关闭。

指纹对话框打开的时候退出整个内务,指纹对话框也会先自动关闭。

===

后面测试的时候,除了确认正常流程功能正确,请注意测试这种特殊操作方式。

另外指纹对话框右上角有最大化和最小化按钮(关闭按钮被禁止了),测试时候也需要组合验证对话框最小化的情形。比如,先将对话框最小化,然后测试扫入指纹功能是否正确;或者测试关闭读者窗是否能自动也关闭已经最小化的对话框。曾经最小化过一次以后,下次再使用指纹登记功能,对话框是否还能正常弹出显示。

dp2library 对前端通道的管理策略

dp2library 允许开辟的 WCF 通讯通道有一定的上限,一般是几千个这样的数量。为了避免出现前端无休止开辟新通道,耗尽资源的情况,它对前端所开辟的通道在数量上进行了限制。

它根据前端的 IP 地址,来对前端进行归类,同一个 IP 被当作一类。这里需要注意,如果实际上是很多独立的前端机器对 dp2library 发起请求,但因为共用出口路由器的缘故,让 dp2library 认为这些机器都是同一个 IP,那么 dp2library 确实是无法分辨这些独立的机器的,只能当作“一台”前端来看待和处理。

默认情况下,dp2library 对于一般的前端,允许它们每台开辟最多 50 个通道。而对于和 dp2library 同一台机器的,也就是从 dp2library 角度看起来是来自 localhost 的,允许开辟最多 150 个通道。

通常情况下,dp2OPAC 模块是安装在 dp2library 同一台机器上的,这样 dp2OPAC 请求 dp2library 的时候,默认会允许它使用最多 150 个通道(如果同一台机器没有其他“前端”的话)。由于 dp2OPAC 采用 ChannelPool 方式管理通道,所以一般这个数量是够用的,估算一下,这相当于 1000-2000 个活跃的读者用户访问(dp2OPAC)时的通道用量。

不过,当 dp2OPAC 模块是安装在和 dp2library 不同的机器上的时候,上述策略就会只允许 dp2OPAC 最多使用 50 个通道。有时候这个数量会不够。那么可以对 library.xml 进行如下配置,扩大 dp2OPAC 可以使用的通道数:

<channel privilegedIpList="192.168.1.86,192.168.1.95" />

上面示例是在 library.xml 的根元素下配置了一个 channel 元素,并配置了 privilegedIpList 属性。属性值是一个逗号分隔的 IP 地址列表。列出了需要扩大通道数量的前端的 IP 地址。上述配置方法,让这些前端能使用的最大通道数量扩大到默认的 150 个。(privilegedIpList 属性是最新版增加的参数)

如果扩大到 150 个还觉得不够,怎么配置呢?可以这样:

<channel privilegedIpList="192.168.1.86,192.168.1.95" maxChannelsLocalhost="200" />

上面增加了一个 maxChannelsLocalhost 属性,这个属性用于设置来自 localhost 的前端的最大通道许可数字,同时它也用于设置 privilegedIpList 属性中列出的那些前端的最大通道许可数字。都扩大为 200 了。这个 maxChannelsLocalhost 属性的默认值是 150。

如果想修改一般前端的最大通道数字,可以这样配置:

<channel maxChannelsPerIP="70" />

即,用 maxChannelsPerIP 属性配置一般前端的最大许可通道数。这个属性的默认值是 50。


内务前端的测试窗,有一个功能可以分配指定数量的通道并故意不释放它们,可以用来模拟通道耗尽的情况。内务前端的通道管理窗,可以观察 dp2library 通道被使用的情况 --- 包括每个 IP 当前正在使用的通道数量。

dp2服务器标准版安装过程

首先要准备好服务器的环境,例如把Windows补丁更新打全,把底层数据库安装好等,可参考dp2系统服务器环境准备
然后在磁盘空间充足的盘上创建一个dp2系统的文件目录(可依据图书馆名称来起名,最好英文或拼音),方便将后面安装的实例的数据目录放在一起管理。

然后依次安装下面实例:

  1. 安装dp2kernel,新建dp2kernel实例:
  • 实例名:一般与刚才起的图书馆名称一致
  • 数据目录:一般设为图书馆目录/kernel_data
  • SQL服务器:选择底层数据库,配置连接字符串和底层数据库帐户
  • root:设置dp2kernel管理帐号
  • 协议绑定:启动本机协议即可
  1. 安装dp2library,新建dp2library实例

  2. 安装dp2opac

未完待续

功能改进:关于打印催询单界面的一些问题

@DigitalPlatform @paopaofeng @renyh1013
谢老师好,上午我们讨论到一些打印催询单界面的问题,现总结一下提交issue,以期更加完善。

  1. 界面下方两个标签属性页:原始数据/合并后,在打印催缺单过程中并没有使用。建议这两个属性页不要显示在界面中。

  2. 时间范围属性页里,“不过滤”选项,是指不对时间范围进行过滤,导出所有记录统计催缺。
    但用户操作过程中必须先设定时间范围,再勾选“不过滤”选项,点击“下一步”后系统执行统计;
    当不设定时间范围,勾选“不过滤”选项后点击“下一步”,系统会弹出“尚未制定日期范围”的提示,无法统计。
    这样在使用上给用户造成困扰。
    建议这里优化处理一下。

  3. 时间范围属性页里,第二个选项,“要求订购时间落入指定范围”,比较难理解,用户一般不需要勾选。建议初始时设为不可选状态,加一个checkbox勾选后才可用。
    后期增加一个帮助按钮,链接到wiki说明。

  4. 时间范围属性页里,目前系统默认的选项是“不过滤”。用户需要先取消“不过滤”选项的勾选,然后才能够勾选上面的出版时间选项。这样容易促使用户直接使用“不过滤”选项。
    建议默认值设置为常用的“要求出版时间落入指定范围”,因为系统催缺统计的核心是比较出版时间与设定的时间范围

  5. 建议增加恢复默认值按钮。在用户选择出错时引导用户选用默认值。

dp2circulation 种次号防范重号功能的测试要点

  1. 配置一个排架体系,使用中图法+种次号。根据“是否具有种次号库”应作两套测试;

  2. 准备两条书目记录,690$a 一样;

  3. 将第一条书目记录装入种册窗,然后新添加一个册记录,为它创建索取号。记下这个索取号。先不要保存册记录,保持这个种册窗一直打开;

  4. 将第二条书目记录装入一个新的种册窗。然后新添加一个册记录,为它创建索取号。这个索取号里面的种次号部分,应该比上一个种次号大1。

以上测试还需要加入一些变化因素,以构成新的测试:

  1. 两次添加册记录的时候,使用不同的馆藏地。当然这两个馆藏地都是属于同一个排架体系的;

  2. 两个种册窗,里面创建好的册记录,是否立即保存到数据库。

注册测试册登记放弃的情况

(2020/4/9)
在内务种册窗用册对话框进行册登记。创建了索取号以后,故意“取消”关闭册对话框。然后再做一次这样的操作,观察所产生的种次号是否发生了增量。发生了增量即为不正确情形

关于批处理/验收窗进行期刊验收的一些问题

@DigitalPlatform @paopaofeng @renyh1013
经语音会议,决定期刊验收视频教材采用批处理/验收窗来讲解,引导用户使用标准流程。
目前系统存在的问题以及修改建议

  1. 批处理/验收窗目前设置的验收批次号,不能够带到期刊验收时册登记的批次号字段。
    (快速册登记缺省值中的批次号也不能带到期刊验收时册登记的批次号字段。册登记时的批次号从哪里来的需要弄清楚)

2.批处理/验收窗不能够设置“册类型”。建议增加这一设置。

dp2library 启动时初始化 mongodb 环境方面的改进

今天对 dp2library 进行了改进,加强了启动时候初始化 mongodb 环境的功能。当遇到 mongodb 启动比 dp2library 慢的时候,dp2library 启动到需要连接 mongodb 这一步会报错,并处于未初始化完成的状态。前端访问 dp2library 会遇到报错。现在巩固以后,dp2library 的管理线程会稍后自动重新试探初始化 mongodb 相关环境。当然试探也有可能不成功,那么 dp2library 就会每隔 5 分钟自动试探一次。

要测试验证这个功能是否奏效了,可以先手动停止 mongodb 的 Windows Service。然后启动 dp2library。通过 dp2circulation 访问 dp2library,确认错误日志中有报错信息。然后,再手动启动 mongodb 的 service。然后等大约五分钟,再用 dp2circulation 访问 dp2library,就发现可以正常使用了。验证的时候,最好用 dp2circulation 修改保存书目记录然后保存,因为这样对 dp2library 的要求较高,验证效果较好。

系统配置:dp2 系统中外部电子资源在 856 字段的著录方式改进

为解决外部 Web 电子图书系统电子图书统一资源地址(URL)发生变化后,原地址访问失效,需更新 MARC 记录的 856$u 子字段内容的问题,可在 dp2 系统中 856$u 子字段中只著录 URL 中的 资源标识电子图书系统标识,即不会发生变化的部分;可能会发生变化部分由 dp2 系统配置文件定义。

以 畅想之星 系统中的一种电子图书为例:
http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&ruid=1e2945e0000899XXXX
其中 ruid1e2945e0000899XXXX 为电子书标识,著录入 856$u 子字段中,并加入电子书系统标识。

假如 畅想之星 系统标识定义为cxstar,则录入 856$u 子字段内容为:
$uuri:1e2945e0000899XXXX@cxstar
其中 @ 后是电子书系统标识
配置文件中可这样定义:
<item id=”cxstar” baseurl=” http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&ruid=”/>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.