当ブログに掲載しているサンプルは、すべて利用者の自己責任とします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。
xxのようなサンプルを作って欲しいとかxxxの作り方を教えて欲しいというお問い合わせには応じていません。
このようなお問い合わせは、株式会社エフまでご一報ください。

2008年9月5日金曜日

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

文書の作成者を変更する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 カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: