Lotus notes 如何为notes文档创建人类可读的密钥

Lotus notes 如何为notes文档创建人类可读的密钥,lotus-notes,lotus-domino,Lotus Notes,Lotus Domino,对于存储在数据库中的文档,我想创建一个人类可读的密钥来唯一地标识文档。e、 g.PO20090110-001。我该怎么做呢 这不简单 为唯一密钥和保存此密钥(或其他事件)创建字段,但必须保护此数字的唯一性 您可以创建代理,该代理检查domino服务器上的编号,若代理发现冲突,则通知应用程序管理员或其他责任人解决此问题 或者每个副本生成自己的编号,并在domino上复制后,代理以正确的格式分配编号。我们的帮助台中使用的一个解决方案是获取当前用户的首字母缩写,并将其添加到视图中最后一个文档中的a编号

对于存储在数据库中的文档,我想创建一个人类可读的密钥来唯一地标识文档。e、 g.PO20090110-001。我该怎么做呢

这不简单

为唯一密钥和保存此密钥(或其他事件)创建字段,但必须保护此数字的唯一性

您可以创建代理,该代理检查domino服务器上的编号,若代理发现冲突,则通知应用程序管理员或其他责任人解决此问题


或者每个副本生成自己的编号,并在domino上复制后,代理以正确的格式分配编号。

我们的帮助台中使用的一个解决方案是获取当前用户的首字母缩写,并将其添加到视图中最后一个文档中的a编号中。向数字中添加一个数字,并将其与ititals和新数字一起存储为密钥。

保存文档时,可以使用日期或任何您喜欢的技术(ej.“PO”&format(date,“yyyyymmdd”)&confDoc.getitemvalue(“doccounter”))将数字的第一部分放在一起

至于计数器,我喜欢将其存储在配置文档中,并在保存每个文档时进行更新。如果在一天中创建了大量文档,您可能会在配置文档上遇到代表冲突,如果是这种情况,您可以让服务器上的代理实际分配编号,其缺点是保存时无法立即获取编号

希望这能有所帮助。

只需使用@unique函数,不带任何参数,就可以在Domino中创建一个“几乎”唯一的键。这将根据当前用户的名字和姓氏以及当前时钟时间生成一个字符串键。您将得到一个类似“ESCR-12345678”的字符串

我说“几乎”是唯一的,因为它实际上不像SQL中的标识列,Domino不能保证它只发出一次特定的字符串。如果您在一个同时生成多个id的服务器端代理中使用@unique,例如,在循环中循环并使用@unique的代理,您可能会遇到@unique将返回一个副本的情况,因为您在同一秒内创建了两个文档,而且您的“用户名”始终是服务器的规范名称。但是,除此之外,@unique通常是安全的


如果需要按此ID打开或引用文档,只需创建一个按此ID排序的视图,就可以使用../myView/ID?readDocument格式的url。

只需一个注释;通过在获取下一个编号之前锁定配置文档,可以避免配置文档上的大多数复制冲突。如果您只在客户端可以从管理服务器获取计数器时才分配数字,那么您应该非常安全。这一点很好。我会小心的,虽然有了文档锁定功能,我已经永久地锁定了文档,并且发生了其他奇怪的事情。