Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
paopaofeng opened this issue Dec 18, 2017 · 29 comments

Comments

@paopaofeng
Copy link

为解决外部 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=”/>

@paopaofeng paopaofeng changed the title dp2 系统中外部电子资源在856字段的著录方式改进 dp2 系统中外部电子资源在 856 字段的著录方式改进 Dec 18, 2017
@DigitalPlatform
Copy link
Owner

配置文件中可这样定义:<item id=”cxstar” baseurl=” http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&ruid=”/>

这是指什么配置文件呢?

@paopaofeng
Copy link
Author

这一项是提前设想的功能,目前版本的 dp2 系统中尚未实现。关于电子书系统标识与基础地址(即电子书 URL 中可能会变化的部分)的对照关系
<item id=”cxstar” baseurl=” http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&ruid=”/>
是否可以配置在书目库的 opac_biblio.fltx 配置文件中?

@DigitalPlatform
Copy link
Owner

DigitalPlatform commented Dec 20, 2017

新功能做好了。这是一个通用功能了。

应用方法如下:

配置 webui.xml

首先要在 webui.xml 的根元素下配置这样一个片段:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&amp;ruid={uri}" />
    <item type="default" template="{getobject_module}?uri={object_path}" />
</maps_856u>

item 的 template 属性,定义了 856 的 $u 经过宏替换变换为真正可用的 URL 的模板。模板中的变量用 {} 括住。注意属性值中的符号 & 被写成了 &amp; ,这是 XML 格式的要求。

{uri} 表示 $u 子字段内容中的符号 @ 以前、'uri:' 以后的部分。例如,对于字符串 uri:1e2945e0000899XXXX@cxstar 来说,就是 1e2945e0000899XXXX

'{object_path}' 表示对象的路径,类似 ‘中文图书/1/object/0’ 这样的内容。dp2OPAC 能自动把 ‘$uuri:0’ 这样的对象 URI 变换为上述形态。

{getobject_module} 表示类似 ./getobject.aspx 这样的内容,即 dp2OPAC 的 getobject.aspx 模块名。由于地址和端口号具有不确定性,用宏变量是推荐的做法。不过也可以不用宏变量直接书写普通字符串。

上面例子中的配置方法,使得下述几种形态的 $u 都能正确处理:

  • $uuri:1e2945e0000899XXXX@cxstar -- 畅想之星的 URI
  • $uuri:0 -- dp2 系统的内部对象
  • $uhttp://dp2003.com/picture/1.jpg -- 普通 http 或者 https URL

升级 dp2installer 或者 dp2libraryxe 到最新版,刷新相关书目库的 opac_biblio.fltx 配置文件

opac_biblio.fltx 的修改部分如下(升级并刷新配置文件即可,不需要手动修改,这里只是解释一下):
修改前:

                      Root.s856 = ScriptUtil.BuildObjectHtmlTable(this.Data, Host.RecPath);

修改后:

		     XmlElement container = Host.App.WebUiDom.DocumentElement.SelectSingleNode("maps_856u") as XmlElement;
                      Root.s856 = ScriptUtil.BuildObjectHtmlTable(this.Data, Host.RecPath, container);

以前的用法依然兼容,只是没有新功能的效果而已。

由于用到了 XML 相关库,代码头部要做一定修改增补:

...
using System.Xml;
...
...
    <ref>system.xml.dll</ref>
...

@DigitalPlatform
Copy link
Owner

又改进了一下,webui.xml 中的 maps_856u/item 元素中,可以定义字符 '_' 开头的属性,这些属性会用到构造 HTML 锚点 a 元素的属性。

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&amp;ruid={uri}"  _target="_blank"  />
    <item type="default" template="{getobject_module}?uri={object_path}"  _target="_blank" />
</maps_856u>

上面示范了如何在 HTML 锚点 a 中使用 target 属性。注意 _target 是在 webui.xml 中的定义方式(下划线打头表示这是即将用到 HTML 页面中的特殊属性),在 HTML 页面中会自动变换为 target 属性。

@DigitalPlatform
Copy link
Owner

DigitalPlatform commented Oct 24, 2018

dp2library GetBiblioInfo() API 获得 table 格式时自动替换特定 URI

最新版本的 dp2library,可以支持 GetBiblioInfo() API 获得 table 格式时,自动替换特定 URI 为 URL。

配置和调用方法如下:

  1. 在 library.xml 中根元素下配置一个 maps_856u 元素,配置方法如上面的 comment 介绍;
  2. 在调用 GetBiblioInfo() API 的时候,formats 参数中相关 format 的用法为 table:*,object_template,即,为格式列表增加一个 object_template 风格,这样 API 才会根据配置进行 URI 替换。注意星号部分可以替换为所需的栏目名列表(星号表示返回所有默认栏目)。
  3. 返回的 line 元素中,片段如下:
<line name="数字资源" type="object" />
    <table>
        <line urlLabel="dp2res" uri="http://www.cxstar.com:5000/Book/Detail?pinst=1ca53a3a0001390bce&amp;ruid=1e2945e0000899XXXX" uriEnv="target=_blank" mime="application/pdf" bytes="121734" saveAs="true" />
        <line urlLabel="C:\doc\追风筝的人.pdf" uri="2" mime="application/pdf" bytes="752879" saveAs="true" />
        <line urlLabel="少年小树之歌.pdf" uri="0" mime="application/pdf" bytes="42409695" saveAs="true" />
    </table>
</line>

可以看出这是一段 XML 代码。其中 line/@uri 属性内容已经是被替换为 URL 的形态。line/@uriEnv 属性里面是一系列环境参数列表,型态为 name1=value1,name2=value2,需要用 StringUtil.DecodeUrl() 解码,因为里面可能有转义字符需要处理还原。这些环境参数,可以作为构造 HTML a 元素的附加属性,比如 target='_blank' 等。

@renyh renyh changed the title dp2 系统中外部电子资源在 856 字段的著录方式改进 系统配置:dp2 系统中外部电子资源在 856 字段的著录方式改进 Oct 27, 2018
@renyh
Copy link
Collaborator

renyh commented Oct 29, 2018

2018/10/29-ryh:
发现在library.xml配置了maps_856u 元素,对OPAC系统外部电子资源的链接地址不起作用。
如果OPAC需要正确处理外部资源链接地址,还需要在webui.xml里配置。
这样就配置了两份,能否修改下opac.biblio.fltx文件,从library.xml配置中取maps_856u配置,这样以后就统一在library.xml配置。

公众号这边用的内部table格式,外部资源地址处理是使用的libary.xml里的配置。

@renyh
Copy link
Collaborator

renyh commented Oct 29, 2018

dp2library 的 API GetBiblioInfos(),formats 参数是 string [] 类型。这样,它的每个元素里面就可以包含逗号。所谓 table:*,xxxxx,是一个 format 以内的内容,不是跨越多个 formats 的意思。

table:*|object_template 等同 table:*,object_template
一个format里用|线分隔多个格式,主要是为了适用公众号使用点对点API,点对点API的formatList参数是一个字符串,逗号被作为了多个format的分隔符,如果在一个format范围要传逗号的话,需要用|线代替。
如下图:

@renyh
Copy link
Collaborator

renyh commented Nov 3, 2018

2018/11/2 22:20:30 开发老师留言
更新了 dp2libraryxe。dp2installer 还没有来得及更新。这个版本兑现了 maps_856u 中为一个前缀配置多个事项的功能,请下周安排测试一下。


新的配置方法

1)MARC字段只配一个856字段

856  ǂuuri:1b971e84000001XXXX@cxstarǂ2畅想之星电子书

2)给library.xml配置maps_856u节点

根据需要,可以配置多个item,一个type值(对应856字段$u中的后缀)如果有多个item,那么会产生多个链接锚点。

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}"  _target="_blank"  />
    <item type="cxstar" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}"  _target="_blank"  />
</maps_856u>

3)通过dp2内务的实用工具/书目table格式,检查产生的链接锚点数量和信息是否正确
注意:style输入*,object_template

image

4)等dp2installer升级后,将相关实例配置好后,可以在公众号检查链接锚点数量和地址是否正确。

切记:要让内部table格式生效,必须要先删除library数据目录cfgs下的table_unimarc.fltx配置文件

@renyh
Copy link
Collaborator

renyh commented Nov 5, 2018

如何配置各锚点显示不同的标签文字?

在配置文件的 maps_856u节点下级item 元素里面扩充了一个anchorText 属性,可以这样配置:
anchorText="{text}(内网)"
其中 {text} 部分表示原来的锚点文字。{text}(内网) 表示在原来文字后面附加一个“(内网)”。

  <maps_856u>
    <item type="test" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(外网)" />
    <item type="test" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(内网)" />
  </maps_856u>

image

(注:设计时任曾想到在856的标签文字字段使用一个宏,运行时用配置文件里item某个属性替换宏参数,开发老师指导:MARC 数据里面不方便直接用宏。宏一般是用在配置文件中。)

@renyh
Copy link
Collaborator

renyh commented Nov 5, 2018

如何为OPAC配置一个856字段多个锚点链接?

(注:先刷新相关书目库的 opac_biblio.fltx 配置文件为最新版本,否则下面map_856u节点的配置不生效。)

1)MARC字段只配一个856字段

8567 $uuri:123@test$2我的链接#

2)给OPAC数据目录下webui.xml文件根节点下配置maps_856u节点

根据需要,可以配置多个item,一个type值(对应856字段$u中的后缀)如果有多个item,那么会产生多个链接锚点。

  <maps_856u>
    <item type="test" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(外网)" />
    <item type="test" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(内网)" />
  </maps_856u>

@renyh
Copy link
Collaborator

renyh commented Nov 5, 2018

问题反馈:内部资源缺省方式的template属性值配置有问题

OPAC缺省地址配置的测试

1)给OPAC数据目录下webui.xml文件maps_856u节点下配置一个item节点,type为default。

    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 

'{object_path}' 表示对象的路径,类似 ‘中文图书/1/object/0’ 这样的内容。dp2OPAC 能自动把 ‘$uuri:0’ 这样的对象 URI 变换为上述形态。

{getobject_module} 表示类似 ./getobject.aspx 这样的内容,即 dp2OPAC 的 getobject.aspx 模块名。由于地址和端口号具有不确定性,用宏变量是推荐的做法。不过也可以不用宏变量直接书写普通字符串。

2)在书目中上传的一个图片对象,并创建对应的856字段。

8567 $uuri:0$ydp2res$f图片.png$qimage/x-png$s245001$2图片#

3)生成的图片链接有问题,固定代码中已经有了getobject.aspx?uri=这一部分

http://localhost:8081/dp2OPAC/getobject.aspx?uri=.%2fgetobject.aspx%3furi%3d%25e4%25b8%25ad%25e6%2596%2587%25e5%259b%25be%25e4%25b9%25a6%252f1%252fobject%252f0

点链接锚点进去

4)**如果配成 template="{object_path}" **

    <item type="default" template="{object_path}" _target="_blank" /> 

** 成的链接为如下,还是不对,多了1次转义**

http://localhost:8081/dp2OPAC/getobject.aspx?uri=%e4%b8%ad%e6%96%87%e5%9b%be%e4%b9%a6%2f1%2fobject%2f%25e4%25b8%25ad%25e6%2596%2587%25e5%259b%25be%25e4%25b9%25a6%252f1%252fobject%252f0


table格式缺省地址配置测试

1)给library.xml文件maps_856u节点下配置一个item节点,type为default。

    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 

这是table格式转换的地址,
image

2)公众号这边也不需用到.getobject.aspx这一截地址,将配置改为template="{object_path}" ,结果如下,确实多了一次转义
image


(注:如果856$u0这样写没有问题。)

@DigitalPlatform
Copy link
Owner

DigitalPlatform commented Nov 6, 2018

模板中宏的用法

{object_path} 和 {encoded_object_path}

'{object_path}' 表示对象的路径,类似 ‘中文图书/1/object/0’ 这样的内容。dp2OPAC 能自动把 ‘$uuri:0’ 这样的对象 URI 变换为上述形态。
为了方便构造 URL,因 URL 中经常使用 urlEncode 以后的字符串,为此也提供了一个 '{encoded_object_path}' 宏,内容是 urlEncode 以后的对象路径。dp2 对象路径中数据库名部分通常是汉字,这样配置是很有必要的。

例如:http://somesite.com/dp2opac/getobject.aspx?uri={encoded_object_path}

{uri} 和 {encoded_uri}

...

{getobject_module}

{getobject_module} 表示类似 ./getobject.aspx 这样的内容,即 dp2OPAC 的 getobject.aspx 模块名。由于地址和端口号具有不确定性,用宏变量是推荐的做法。不过也可以不用宏变量直接书写普通字符串。
{object_path} 表示对象路径

例如:{getobject_module}?uri={encoded_object_path}

包裹

为了让 dp2OPAC 不再对模板替换以后的结果字符串进行包裹,可以为 item 元素增配一个属性 wrapUrl,这个属性的默认值为 "true",配置为 "false" 则表示不做包裹。

包裹的意思是,dp2OPAC 会为这个字符串外面包一层 getobject.aspx。
例如:中文图书/1/object/0 包裹后会变为 http://xxxx/dp2opac/getobject.aspx?uri=中文图书/1/object/0 (为举例方便,uri 参数里面故意没有做 urlEncode 转义)
如果模板替换以后的结果本来就是一个 http://... 类型的字符串了,那就不要再次做包裹,可按上述方法配置。

包裹本来是为了让外部资源也能被 dp2 系统统计从 dp2OPAC 发出的访问点击次数,而做的一种特殊机制。如果放弃了包裹,那 dp2 系统也没法对这部分外部资源进行计次了。

@renyh
Copy link
Collaborator

renyh commented Nov 7, 2018

光光(2820725526) 10:31:24
@任延华 dp2libraryxe 更新了。最新版本做了以下改进:除了 {object_path} 和 {uri} 宏以外,增加了 {encoded_object_path} 和 {encoded_uri} 两个宏。不带有 encoded_ 的,就是不转义的,带有的就是转义的,配置的时候需要注意。一般提供给 URL 参数部分的内容要转义。另外就是明确了“包裹”概念,

在那个 issue 的后面我增加了一段说明文字,关于包裹的。包裹就是为了让 dp2 系统能对外部 URL 访问计次,而故意增加的一个中转步骤,让原本可以直接使用的 URL,经过 getobject.aspx 重定向。但包裹增加了系统的复杂性。所以,最新版本给 item 元素增加了一个 wrapUrl 属性,让系统管理员可以配置对某个 item 是否使用包裹。

另外,在包裹形态下,原来的 getobject.aspx 对 ./.... 这样形态的 URL 识别不佳,以为是 dp2 系统的对象路径了,所以造成访问错误。最新版本已经改进过来,这样的 ./getobject.aspx?..... 形态的 URL,也可以再次进行包裹,并且不会出错了,需要制造案例测试一下。总共就是以上三处修改

可能有些概念不一定好理解。如果需要,可以启动讨论。争取把这些概念都透彻弄懂。没想到这个环节昨天和今天又增加了不少内容,提高了一步。我们产品的复杂性,适用性,都往往会超过我们自己的预期。


需要跟进测试

@lunvo
Copy link

lunvo commented Nov 7, 2018

测试要点

测试用例TC-856-1:一个856字段,在library.xml中配置一个锚点链接
测试用例TC-856-2:一个856字段,在library.xml中配置多个锚点链接(type属性一致)
测试用例TC-856-3:多个856字段,在library.xml中配置多个锚点链接(type属性不一致)
测试用例TC-856-4:library.xml中配置maps_856u节点,但type的值与856字段的电子书系统标识不匹配
测试用例TC-856-5:书目配置了856字段,但library.xml没有配置maps_856u节点
测试用例TC-856-6:library.xml配置文件的maps_856u节点下级 item 元素使用 anchorText 属性
测试用例TC-856-7:缺省方式的template属性值配置:使用{object_path}宏
测试用例TC-856-8:缺省方式的template属性值配置:使用{getobject_module}宏
测试用例TC-856-9:缺省方式的template属性值配置:使用{encoded_object_path}宏
测试用例TC-856-10:缺省方式的template属性值配置:使用{uri}宏
测试用例TC-856-11:缺省方式的template属性值配置:使用{encoded_uri}宏
测试用例TC-856-12.1:library.xml文件根元素下配置多个maps_856u元素(type有重复)
测试用例TC-856-12.2:library.xml文件根元素下配置多个maps_856u元素(type不重复)
测试用例TC-856-13:配置maps856u序列号后,书目配置一个856字段,可以映射library.xml中配置的多个锚点链接

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-1

一、测试目标

为书目的MARC记录配置一个856字段,在library.xml中配置一个锚点链接,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC记录只配置一个856字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,配置一个item:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />
</maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library上测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-2

一、测试目标

为书目的MARC记录配置一个856字段,在library.xml中配置多个锚点链接(type属性一致),测试产生的链接锚点数量和信息是否正确,只处理第一个item元素。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC记录只配置一个856字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,配置两个item,保持type属性一致:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />
    <item type="cxstar" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}"  _target="_blank" />
</maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息,只处理第一个 item 元素:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library上测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-3

一、测试目标

为书目的MARC记录配置多个856字段,在library.xml中配置多个锚点链接(type属性不一致),测试产生的链接锚点数量和信息是否正确,系统只处理每种type的第一个item元素。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC记录配置两个856字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar
856 $uuri:123@test

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,配置4个item,并且每两个item对应一个type:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />
    <item type="cxstar" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}"  _target="_blank" />
    <item type="test" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />
    <item type="test" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />
</maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息,只会处理每种 type 的第一个 item 元素:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library上测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-4

一、测试目标

为书目的MARC 记录配置三种不同形态的 856$u 子字段,在library.xml中配置maps_856u节点,但type的值与856字段的电子书系统标识不匹配,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置三种不同形态的 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar
856 $uuri:0
856 a$uhttp://dp2003.com/img/test.jpg

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,但type的值与856字段的电子书系统标识不匹配,或者只配置maps_856u节点,不配置item元素,例如:

<maps_856u>
</maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library上测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-5

一、测试目标

为书目的MARC记录配置三种不同形态的 856$u 子字段,在library.xml中没有配置maps_856u节点,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC记录配置三种不同形态的 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar
856 $uuri:0
856 a$uhttp://dp2003.com/img/test.jpg

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,确保没有配置maps_856u节点。

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 8, 2018

测试用例TC-856-6

一、测试目标

为书目的MARC记录配置856字段,在library.xml配置文件的maps_856u节点下级 item 元素里面扩充一个anchorText 属性,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置三种不同形态的 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:0$2我的书目
856 a$uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,并在下级 item 元素里面扩充一个anchorText 属性。
例如:anchorText="{text}(外网)"
其中, {text} 部分表示原来的锚点文字。{text}(内网) 表示在原来文字后面附加一个“(内网)”。

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(外网)" />
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" anchorText="{text}(内网)" />
</maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181108-lcy:dp2libraryxe、dp2library测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 9, 2018

测试用例TC-856-7

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{object_path}宏,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:0$2我的书目
856 $uuri:1$ydp2res$f微信图片.png$2微信图片

2)点菜单 功能/系统维护/系统管理窗,给library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{object_path}宏,例如:

<item type="default" template="http://localhost:8081/dp2OPAC/searchbiblio.aspx?uri={object_path}" _target="_blank" /> 

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181109-lcy:dp2libraryxe、dp2library测试结果与上述结果一致。

@lunvo
Copy link

lunvo commented Nov 9, 2018

测试用例TC-856-8

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{getobject_module}宏,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:0$2我的书目
856 $uuri:1$ydp2res$f微信图片.png$2微信图片

2)点菜单 功能/系统维护/系统管理窗,给library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{getobject_module}宏,例如:

<item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181109-lcy:dp2libraryxe、dp2library测试结果与上述结果一致。

【开发老师留言 2018/11/9 11:54:57】
给 dp2OPAC 配置的时候,也就是配置 webui.xml 的时候,和给 dp2library 配置的时候(也就是配置 library.xml),两种情况略有一些不同。{getobject_module} 这个宏一般在给 library.xml 配置的时候没用。原因很简单,因为用户单位可以安装 dp2library 而不安装 dp2OPAC,那么所谓 getobject.aspx 就无从存在了。

@lunvo
Copy link

lunvo commented Nov 9, 2018

测试用例TC-856-9

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{encoded_object_path}宏,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:0$2我的书目
856 $uuri:1$ydp2res$f微信图片.png$2微信图片

2)点菜单 功能/系统维护/系统管理窗,给library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{encoded_object_path}宏,例如:

<item type="default" template="http://localhost:8081/dp2OPAC/searchbiblio.aspx?uri={encoded_object_path}" _target="_blank" /> 

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181109-lcy:dp2libraryxe、dp2library测试结果如上。

【问题反馈】{encoded_object_path}宏并未起作用。

20181109-lcy: [dp2libraryxe] library service 版本: 3.8.6887.21217和[dp2library] dp2Installer 版本: 3.0.6887.21261验证通过,如下图:

@lunvo
Copy link

lunvo commented Nov 9, 2018

测试用例TC-856-10

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件maps_856u节点下配置item节点的时候使用{uri}宏,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:0$2我的书目
856 $uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,给library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{uri}}宏,例如:

 <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />    
<item type="default" template="http://localhost:8081/dp2OPAC/searchbiblio.aspx?uri={uri}" _target="_blank" /> 

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181109-lcy:dp2libraryxe、dp2library测试结果如上。

@lunvo
Copy link

lunvo commented Nov 9, 2018

测试用例TC-856-11

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件maps_856u节点下配置item节点的时候使用{encoded_uri}宏,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6885.27277
[dp2library] dp2Installer 版本: 3.0.6885.27412

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:0$2我的书目
856 $uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,给library.xml文件maps_856u节点下配置一个item节点,type为default,并使用{encoded_uri}宏,例如:

 <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={encoded_uri}" _target="_blank" />    
<item type="default" template="http://localhost:8081/dp2OPAC/searchbiblio.aspx?uri={encoded_uri}" _target="_blank" /> 

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181109-lcy:dp2libraryxe、dp2library测试结果如上。

【问题反馈】{encoded_uri}宏并未起作用。

20181109-lcy: [dp2libraryxe] library service 版本: 3.8.6887.21217和[dp2library] dp2Installer 版本: 3.0.6887.21261验证通过,如下图:
856 $uuri:1b971e84000001XXXX测试@cxstar$2畅想之星

@renyh
Copy link
Collaborator

renyh commented Nov 11, 2018

多个maps_856u时,系统挂起

2018/11/10 20:57:27 LibraryService 初始化过程发生严重错误 [library.xml 发现下列配置错误: 根元素下 
maps_856u 元素定义超过一个。请删除多余的,只保留一个即可],当前此服务处于残缺状态,请及时排
除故障后重新启动
2018/11/10 20:57:27 *** 当前系统已经被挂起 StartingError

@lunvo
Copy link

lunvo commented Nov 12, 2018

测试用例TC-856-12.1

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件根元素下配置多个maps_856u元素(type有重复),测试系统是否挂起。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6889.36273
[dp2library] dp2Installer 版本: 3.0.6889.36314

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:0$2我的书目
856 $uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,在library.xml文件根元素下配置两个maps_856u元素,type重复,例如:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />    
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 
</maps_856u>
<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book1/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />    
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 
</maps_856u>

3)重启dp2Library服务。

4)重启dp2内务,登录时系统提示:

5)检查log日志,例如:C:\dp2\test1\library_data\log

6)修改library.xml文件,去掉一个maps_856u元素。

7)再次登录dp2内务,登录成功。

四、测试结果

20181112-lcy:dp2libraryxe、dp2library测试结果如上。

@lunvo
Copy link

lunvo commented Nov 12, 2018

测试用例TC-856-12.2

一、测试目标

为书目的MARC记录配置856字段,在library.xml文件根元素下配置多个maps_856u元素(type不重复),测试系统是否挂起以及产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6889.36273
[dp2library] dp2Installer 版本: 3.0.6889.36314

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC 记录配置 856$u 子字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:12345@test$2我的test
856 $uuri:0$2我的书目
856 $uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,在library.xml文件根元素下配置两个maps_856u元素,type不重复,例如:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />    
</maps_856u>
<maps_856u>
    <item type="test" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" />  
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" /> 
</maps_856u>

3)重启dp2Library服务。

4)重启dp2内务,登录成功,系统没有被挂起。

5)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

由此可见,系统只识别第一个maps_856u元素配置的信息。

四、测试结果

20181112-lcy:dp2libraryxe、dp2library测试结果如上。

@lunvo
Copy link

lunvo commented Nov 13, 2018

测试用例TC-856-13

一、测试目标

给dp2libraryxe(或dp2library)配置maps856u序列号后,为书目的MARC记录配置多个856字段,在library.xml中配置多个锚点链接,测试产生的链接锚点数量和信息是否正确。

二、测试环境

[dp2libraryxe] library service 版本: 3.8.6889.36273
[dp2library] dp2Installer 版本: 3.0.6889.36314

三、测试步骤

1)登录dp2内务,书目查询窗,进行检索,双击某条书目到种册窗,MARC记录只配置多个856字段,例如:
856 $uuri:1b971e84000001XXXX@cxstar$2畅想之星
856 $uuri:12345@test$2我的test
856 $uuri:0$2我的书目
856 $uhttp://dp2003.com/img/test.jpg$2我的dp2003

2)点菜单 功能/系统维护/系统管理窗,修改library.xml文件,在root节点下配置maps_856u节点,配置多个item,保持type属性一致:

<maps_856u>
    <item type="cxstar" template="http://www.cxstar.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(cxstar内网)" />
    <item type="cxstar" template="http://10.10.2.195/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(cxstar外网)" />
    <item type="test" template="http://www.test.com/Book/Detail?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(内网)" />
    <item type="test" template="http://10.10.2/basedata/format/release/aspx/detail/EBookDetail.aspx?pinst=1cdb445a0000980bce&amp;ruid={uri}" _target="_blank" anchorText="{text}(外网)" />
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" anchorText="{text}(内网)" />
    <item type="default" template="{getobject_module}?uri={object_path}" _target="_blank" anchorText="{text}(外网)" />
  </maps_856u>

3)点菜单 帮助/实用工具/书目table格式,书目记录路径输入,style输入*,object_template,检查产生的链接锚点数量和信息:

四、测试结果

20181113-lcy:dp2libraryxe、dp2library测试结果与上述结果一致。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants