L
LuMee
Вопросы эти я уже поднимал, вроде все было ясно, но как дошло до практической реализации - заперся.
В общем, есть у меня Поручение, на которое юзер должен составить Отчет. При этом данные отчета должны быть занесены в Поручение, а сам Отчет - убит. Делаю это при помощи агента.
Итак, есть Отчет, у которого на Postsave лежит код:
Затем есть собственно агент:
На форме самого Поручения есть действие "Ввести отчет", которое просто создает документ по форме Отчет (она - ответ-на-ответ).
Думал, что по выполнении этой манипуляции в Поручение попадут нужные данные, ан нет - ничего не происходит. Более того, создается впечатление, что после строки theLog.LogAction "Hello" агент вообще не выполняется (в логе, во всяк, ничего нет). Что я здесь делаю не так, подскажите...
Отдельное спасибо тем, кто подскажет, как половчее грохнуть Отчет после сохранения и закрытия. Source.Document.Remove True в Postsave не прокатывает: нельзя убивать документы, открытые с помощью NotesUIDocument.
В общем, есть у меня Поручение, на которое юзер должен составить Отчет. При этом данные отчета должны быть занесены в Поручение, а сам Отчет - убит. Делаю это при помощи агента.
Итак, есть Отчет, у которого на Postsave лежит код:
Код:
Dim agent As NotesAgent
Dim doc As NotesDocument
Set doc = Source.Document
Set agent = doc.ParentDatabase.GetAgent("SaveReport")
agent.Run doc.NoteID
Source.Close
Код:
Sub Initialize
Dim session As New NotesSession
Dim report As NotesDocument, order As NotesDocument
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim theLog As NotesLog
Set theLog = New NotesLog("MyApp")
theLog.OpenAgentLog
theLog.LogAction "Hello"
theLog.LogAction "Параметровый док: " & agent.ParameterDocID
Set agent = session.CurrentAgent
Set db = session.CurrentDatabase
Set report = db.GetDocumentByID(agent.ParameterDocID)
Set order = db.GetDocumentByUNID(report.ParentDocumentUNID)
theLog.LogAction report.ReportText(0)
order.ReplaceItemValue "ReportText", report.GetItemValue("ReportText")
order.ReplaceItemValue "ReportDetails", report.GetItemValue("ReportDetails")
order.Save True, False
End Sub
Думал, что по выполнении этой манипуляции в Поручение попадут нужные данные, ан нет - ничего не происходит. Более того, создается впечатление, что после строки theLog.LogAction "Hello" агент вообще не выполняется (в логе, во всяк, ничего нет). Что я здесь делаю не так, подскажите...
Отдельное спасибо тем, кто подскажет, как половчее грохнуть Отчет после сохранения и закрытия. Source.Document.Remove True в Postsave не прокатывает: нельзя убивать документы, открытые с помощью NotesUIDocument.