Как передать контекст документа в Xpages при вызове агента? - PullRequest
1 голос
/ 09 марта 2012

Как передать контекст документа в Xpages при вызове агента? В Xpage мне нужно вызвать java-агент с documentcontext из моей Xpage, а также мне нужно передать мой текущий документ в качестве параметра ...

В Lotuscript мы можем сделать это так же легко, не сохраняя текущий документ, но в Xpage я использую следующий код. Document1 - текущий документ.

var agent=database.getAgent("AgentName");
agent.runWithDocumentContext(currentDocument.getDocument());

Этот код Я не могу получить значения элементов моего текущего документа, но если я буду использовать следующий код,

var agent=database.getAgent("AgentName");
document1.save();
agent.runWithDocumentContext(currentDocument.getDocument());

Я могу получить значение элемента текущего документа ... Но я не хочу сохранять документ, без сохранения документа мне нужно получить значение элемента item.

Пожалуйста, дайте хорошее решение для этого ...

Ответы [ 2 ]

5 голосов
/ 10 марта 2012

agent.runWithDocumentContext (currentDocument.getDocument (истина)). Это поместит все новые значения в бэкэнд-документ, так что он работает так же, как и lotusscript. Кроме того, если вам нужно вычислить currentdocument с помощью формы заметок, установите для свойства «computewithnotesform» источника данных значение «onload» или «both».

2 голосов
/ 09 марта 2012

Поскольку на xPage может быть несколько источников документов, я использую ParameterDocID ...

var id = document1.getDocument().getNoteID();
var agent = database.getAgent("MyAgent");
agent.run(id)

и в агенте ...

Call GetDocument(agent.ParameterDocID)

...

Public Sub GetDocument(DocID As String)
On Error GoTo eh

Set Doc = Db.GetDocumentByID(DocID)

es:
Exit Sub
eh:
Resume es
End Sub
...