1

Тема: Проверка, при отправке, что открыт ответный докумнет

На кнопку отправки документа можно добавить проверку - что один из ответных документов открыт у пользователя.
Выдаст название документа и фио "заблокировавшего".

' Проверка открытого ответа
    Set strukdb = session.GetDatabase(server, "promdoc\policy.nsf" , False )
    Set view = strukdb.GetView("counteropen")
    Set dc = curdoc.Responses   
    
    Dim ftdoc2 As NotesDocument   ' в структуре ищем открытый док
    Set ftdoc = dc.GetFirstDocument ' ответ в докобороте
    While Not ftdoc Is Nothing    
        idopen=ftdoc.id(0)    ' unid ответного дока в докобороте
        Set ftdoc2=view.GetDocumentByKey(idopen)
        If Not(ftdoc2 Is Nothing) Then
            Msgbox {Ответный документ "} &    ftdoc.header(0) & {" открыт у } & ftdoc2.FIO(0)
            Exit Sub
        Else
            Print ftdoc.header(0) "ответ закрыт у юзера"
        End If
        Set nextftdoc = dc.GetNextDocument (ftdoc )
        Set ftdoc=nextftdoc
        Set nextftdoc=Nothing
    Wend    

Поделиться

2

Re: Проверка, при отправке, что открыт ответный докумнет

Агент:

Sub Initialize
    ' Очищает поле Unids в документах(открытые пользоватлем документы) по view counteropen
    Print "Старт clearUnids"
    On Error Goto ErrH
    Dim session As New NotesSession
    Dim item As notesitem, item2 As NotesItem
    Dim curdoc As NotesDocument, nextdoc As NotesDocument
    Dim     view As NotesView
    Set db = session.CurrentDatabase
    Set view = db.getview("Strukture")
    Set curdoc = view.getfirstdocument
    
    While Not (curdoc Is Nothing)
        Set item = curdoc.GetFirstItem("idopendoc")
        Set item2 = curdoc.GetFirstItem("empty")
        curdoc.idopendoc = "" 'curdoc.empty
        curdoc.empty = ""
        curdoc.save True, False
        Print "очишены unid у " curdoc.FIO(0)
        Set nextdoc = view.GetNextDocument(curdoc)
        Set curdoc=nextdoc
        Set nextdoc=Nothing
    Wend
    Print "Конец  clearUnids"
    Exit Sub
ErrH:
    Print "Ошибка  " & Error(Err) & " в строке " & Erl    
End Sub

Поделиться

3

Re: Проверка, при отправке, что открыт ответный докумнет

А вот сама отправка ответного дока, вариант с открытием в УИ интерфейсе:

Set dc = curdoc.Responses
    
    Set ftdoc = dc.GetFirstDocument    
    While Not ftdoc Is Nothing
        If ftdoc.IsValid=False Then 
            Print "Документ не валидный"
        Else
            Set ftuidoc = ws.EditDocument( False, ftdoc , True ,  , True, False )
                        ftdoc.who = curdoc.who
            ftdoc.whois = curdoc.whois
            ftdoc.addreaders = curdoc.addreaders
            ftdoc.addauthors = curdoc.addauthors
'        ftdoc.hierarchy = curdoc.hierarchy
            ftdoc.history=mes2+ftdoc.history(0)
            ftdoc.save True, False
                        If ftdoc.responce(0)="1"  Then Call ftuidoc.Close(True)
        End If
        Set nextftdoc = dc.GetNextDocument (ftdoc )
        Set ftdoc=nextftdoc
        Set nextftdoc=Nothing
        

    Wend

Поделиться