如何在 Notes (Lotus/IBM/HCL) 应用程序主模板上设置模板版本

How to set the template version on a Notes (Lotus/IBM/HCL) application master template

我正在对现有的 Notes 应用程序进行一些小的更改。当我在前段时间(>10 年)开发原始应用程序时,我最初构建了一个主模板并为主模板分配了一个版本。环境中的标准发布实践是在开发环境中构建,从开发中制作模板,然后用于刷新测试环境中的数据库,最终也用于刷新生产环境数据库。

我不记得我是如何在主模板上设置版本文本的,我也没有找到任何关于如何做到这一点的信息。我记得这个过程更多的是 'hack' 而不是作为标准开发人员功能可用的东西。

有人熟悉 set/update 主模板上的模板版本的过程吗?

您需要使用 $TemplateBuildDate 中的日期更新 $TemplateBuild 共享字段(同样,您可以在 $TemplateBuild 中设置名称)。

我有一个具有以下代码的代理来设置模板版本。我运行代理从模板手动刷新之前根据模板设计了一个数据库。

这最初不是我的代码。我多年前在互联网上的某个地方找到它,并且只做了一些小改动。

Dim session As New NotesSession
Dim db As NotesDatabase
Dim nc As NotesNoteCollection
Dim doc As NotesDocument
Dim iCount%,sNoteID$,tmp$

Const ITEM_BUILD = "$TemplateBuild"
Const ITEM_BUILD_NAME = "$TemplateBuildName"
Const ITEM_BUILD_DATE = "$TemplateBuildDate"

Set db = session.CurrentDatabase
Set nc = db.CreateNoteCollection(False)

If Not nc Is Nothing Then
    nc.SelectSharedFields = True
    Call nc.BuildCollection
    
    sNoteID = nc.GetFirstNoteId
    For iCount = 1 To nc.Count
        Set doc = db.GetDocumentByID(sNoteID)
        If Not doc Is Nothing Then
            If doc.HasItem(ITEM_BUILD) Then
                tmp=Inputbox("Enter the template name...", _
                "Template Name", doc.GetItemValue(ITEM_BUILD_NAME)(0))
                If tmp="" Then Exit Sub
                Call doc.ReplaceItemValue(ITEM_BUILD_NAME, tmp)
                
                tmp=Inputbox("Enter the version number...", _
                "Template Version", doc.GetItemValue(ITEM_BUILD)(0))
                If tmp="" Then Exit Sub
                Call doc.ReplaceItemValue(ITEM_BUILD, tmp)
                
                tmp=Inputbox("Enter the version date...", _
                "Template Date", doc.GetItemValue(ITEM_BUILD_DATE)(0))
                If tmp="" Then Exit Sub
                If Isdate(tmp) Then Call doc.ReplaceItemValue(ITEM_BUILD_DATE, Cdat(tmp))
                Call doc.Save(True, False)
                Exit For
            End If
        End If
        sNoteID = nc.GetNextNoteID(sNoteID)
    Next
End If