使用xpages进行序列编号

时间:2013-06-24 22:27:59

标签: javascript forms xpages sequence counter

我正在使用xpages开展项目。 我想创建一个在创建新文档时递增的计数器。 我创建了一个包含初始化为1的字段引用的表单。如何恢复第一行的第一个值,因此为1并添加1以获取一系列数字。我尝试了getfirstitem()但它不起作用。 我也希望每一个新的一年,计数器都会重新开始。

2 个答案:

答案 0 :(得分:4)

一旦你想在多个服务器或离线上运行你的应用程序(只是等待它,它也会发生在你的应用程序中),序列编号是一个小挑战。话虽如此,多年来采取了多种方法:

  • 使用@Subset(@DbColumn(@DbName,“SomeViewSortedDecendingByNumber”,1),1)+1;问题:如果2个用户打开文档但尚未保存文档
  • 使用在保存之前递增的applicationScope变量(不要忘记该函数的synchronized关键字)。问题:值仅在保存时显示 - 或者如果用户不保存文档,则会出现“漏洞”。
  • 使用仅在一台服务器上运行的代理。这样可以排除多服务器和脱机使用。问题:数字显示的时间远远晚于文档创建
  • 使用提供下一个可用号码的Web服务(用Notes编写)。您遇到同样的问题:“何时提供”(打开或保存文档),“如果用户不保存,没有离线使用
  • 不存储号码,但使用视图的编号机制显示数字

您的用例究竟是什么?再说一点!

答案 1 :(得分:2)

顺序编号总是很有趣(/ s)以及Notes / Domino中经常出现的内容。

有一篇非常详细的Wiki文章解释了创建唯一数字背后的理论和用例。

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/sequential-numbering.htm

和本文解释了使用唯一编号时的文档锁定。

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Employ_document_locking_to_assure_number_uniqueness