Como passar o contexto do Documento no Xpages ao chamar um Agente?
-
10-12-2019 - |
Pergunta
Como passar o contexto do Documento no Xpages ao chamar um Agente?No Xpage, preciso chamar um agente java com documentcontext do meu Xpage, e também preciso passar meu documento atual como parâmetro ...
No Lotusscript podemos fazer isso facilmente sem salvar o documento atual, mas no Xpage estou usando o seguinte código., document1 é um documento atual.
var agent=database.getAgent("AgentName");
agent.runWithDocumentContext(currentDocument.getDocument());
Este código não consigo obter os valores dos itens do meu documento atual, mas se for usar o código a seguir,
var agent=database.getAgent("AgentName");
document1.save();
agent.runWithDocumentContext(currentDocument.getDocument());
Posso obter o valor do item do documento atual...Mas não quero salvar o documento, sem salvar o documento preciso obter o valor do item do item.
Por favor, dê alguma solução legal para isso ...
Solução
agente.runWithDocumentContext(currentDocument.getDocument(true)).Isso colocará todos os novos valores dentro do documento de back-end, para que funcione da mesma maneira que o lotusscript.Além disso, se você precisar que o documento atual seja computado com o formulário de notas, defina a propriedade 'computewithnotesform' da fonte de dados como 'onload' ou 'both'.
Outras dicas
Desde quando pode haver mais de uma fonte de documento no xPage, eu uso ParameterDocID...
var id = document1.getDocument().getNoteID();
var agent = database.getAgent("MyAgent");
agent.run(id)
e no agente...
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