作成者フィールドを変更する

文書の作成者を変更するLotusScriptを紹介する。
NotesDBのACLが作成者になっていると、「作成者フィールド」に自分の名前が入っていないと、その文書を編集することができない。

ACLを変更できないけど文書を変更したい時や、ワークフローのように、状況に応じて文書の編集者を変更する場合に利用すると良い。


サンプルは、ビューで選択した文書のFromフィールドの内容を変更して、属性を"作成者"にするものである。


Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim docs As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim sakusei As NotesItem
    Dim namae As NotesName
    
    Dim i As Integer
    Dim res As String
    
    Set db = session.CurrentDatabase
    Set docs = db.UnprocessedDocuments
    
    For i = 1 To docs.Count
        Set doc = docs.GetNthDocument( i )
        Set sakusei = doc.GetFirstItem( "From" )
        res = Inputbox( "変更後の名前を入力してください。", "作成者の変更", "" )
        Set namae = New NotesName( res )
        Call doc.ReplaceItemValue( "From", namae.Canonical )
        sakusei.IsAuthors = True
        Call doc.Save( True, True )
    Next
End Sub





Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

コメント