Página de Inicio

LotusScript
Posibilidad De Ejecutar Agentes Del Servidor Desde Un Cliente, Pasándole Un Parámetro

  • El cliente Notes utiliza un agente del servidor.
  • Si necesitamos hacer una conexión ODBC (por ejemplo) sólo son necesarios los Drivers en el servidor.
  • Los métodos Agent.RunOnServer y Agent.Run aceptan el parámetro del NoteID
  • El agente invocado desde el cliente Notes, se ejecuta bajo la seguridad del que firmó el agente en el servidor.
  • El agente invocado desde navegador web, se ejecuta bajo la seguridad de la persona que inició dicho agente desde Web.

Ejemplo

Agente del Cliente

Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim doc As NotesDocument
Dim item As NotesItem
Dim ParamDocID As String
Dim datasource, uid, pw, status As String

Set db = sess.CurrentDatabase
Set agent = db.GetAgent("db2conn")
Set doc = db.CreateDocument
Set item = doc.AppendItemValue("datasource", "SAMPLE")
Set item = doc.AppendItemValue("userid", "bmeaney")
Set item = doc.AppendItemValue("passwd", "ping")
Call doc.save(True, False)
ParamDocID = doc.Noteid
Call agent.RunOnServer(ParamDocID)
Set item = doc.GetItemValue("Status")
status = item.text
Call doc.remove(True)

End Sub


Agente del Servidor

Set db = sess.CurrentDatabase
Set agent = sess.CurrentAgent

NoteId = agent.ParameterDocID
Set doc = db.GetDocumentById(NoteId)
Set item = doc.GetFirstItem("datasource")
sdatasource = item.Text
Set item = doc.GetFirstItem("userid")
suserid = item.Text
Set item = doc.GetFirstItem("passwd")
spasswd = item.Text
If Not con.ConnectTo( sdatasource, suserid, spasswd) Then
nErrNum = con.GetError
strErrMsg = con.GetExtendedErrorMessage(nErrNum)
Messagebox nErrNum & " - " & strErrMsg
Set item = doc.AppendItemValue("Status", "Connect Failed")
Goto Terminate
Else
Messagebox "Connect was successful"
Print "Connect was successful"
Set item = doc.AppendItemValue("Status", "Connect Succeeded")
End If
con.disconnect


Otros Ejemplos

1. This agent runs the agent named "Agent to be run LotusScript."

Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("Agent to be run LotusScript")
If agent.RunOnServer = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub

This is "Agent to be run LotusScript."

Sub Initialize
Dim s As New NotesSession
Dim agent As NotesAgent
Set agent = s.CurrentAgent
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim memo As New NotesDocument(db)
memo.Form = "Memo"
memo.SendTo = s.UserName
memo.Subject = "Message from LotusScript agent"
memo.Body = "The agent is running as " & s.UserName
Call memo.Send(False)
End Sub

2. This agent runs the agent named "Agent to be run parameter LotusScript," passing it the NoteID of a newly created document.

Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim agent As NotesAgent
Set db = s.CurrentDatabase
REM Create document containing data to be passed
Set doc = New NotesDocument(db)
doc.TriggerUserName = s.UserName
Call doc.Save(True, False)
REM Start agent and pass NoteID of document
Set agent = db.GetAgent("Agent to be run parameter LotusScript")
If agent.RunOnServer(doc.NoteID) = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub

This is "Agent to be run parameter LotusScript." It accesses the passed NoteID through ParameterDocID, accesses the referenced document, and removes it.

Sub Initialize
Dim s As New NotesSession
Dim agent As NotesAgent
Set agent = s.CurrentAgent
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = s.CurrentDatabase
REM Get document used for passing data
Set doc = db.GetDocumentByID(agent.ParameterDocID)
REM Send mail containing passed data
Dim memo As New NotesDocument(db)
memo.Form = "Memo"
memo.SendTo = s.UserName
memo.Subject = "Message from LotusScript agent"
memo.Body = "The agent was started by " & doc.TriggerUserName(0)
Call memo.Send(False)
REM Delete document used for passing data
Call doc.Remove(True)
End Sub


Otros documentos de LotusScript

Extraer Anexos Y Guardar La Última Ruta (Environment)...(08/09/2008 17:35:41)

Tabla De Colores De Letras Cuando Exportamos A Ms Word...(08/09/2008 17:19:13)

Tabla De Colores De Texto Cuando Exportamos A Ms Excell...(08/09/2008 17:18:03)

Nuevo Tipo De Ejecución De Agentes En Lotus Domino R8...(05/09/2008 18:14:26)

Extraer Los Anexos De Cualquier Campo De Un Documento...(04/09/2008 13:39:53)

Exportar A Word 2 Foros(18/02/2008 16:28:50)

Combo Que Se Puede Desplegar (Nsf)(18/02/2008 16:28:50)

Sql Server 2000 Jdbc(18/02/2008 16:28:50)

Cuando El Usuario Entre A Su Buzon De Correo, Se Ejecute Un Proceso...(18/02/2008 16:28:50)

Busqueda De Todas Las Bbdd´S Que Hay En El Servidor. ...(18/02/2008 16:28:50)

Agente Buscar Repetidos(18/02/2008 16:28:50)

Unidades De Red (Fichero Lss)(18/02/2008 16:28:50)

Notes A Access Por Odbc(18/02/2008 16:28:50)

Extraer Informacion De Una Vista (Bd1) A Una Bd Diferentre (Bd2) Y Lle...(18/02/2008 16:28:50)

Envia Un Mail Con Un Fichero Anexado, Que Lo Va A Buscar A Donde Nosot...(18/02/2008 16:28:50)

Modificar Un Campo Comun En Un Conjunto De Formularios...(18/02/2008 16:28:50)

Envio Correo Anónimo(18/02/2008 16:28:50)

Crear Informes En Excel(18/02/2008 16:28:50)

Script De Seguridad (Fichero Lss)(18/02/2008 16:28:50)

Evitar Que Borren Documentos(18/02/2008 16:28:50)

Eliminar Documentos Respuesta Y Respuesta De Respuesta...(18/02/2008 16:28:50)

Como Ordenar Los Resultados De Una Búsqueda(18/02/2008 16:28:50)

Posibilidad De Que El Usuario Realice Una Búsqueda Con Diferentes Pará...(18/02/2008 16:28:50)

Ordenar Listas De Texto Y Numéricas En Lotusscript...(18/02/2008 16:28:50)

Otro Agente Que Puede Ser Interesante.(18/02/2008 16:28:50)

Enviar Un Correo Con Estilo De Párrafo(18/02/2008 16:28:50)

Numeración Automática De Documentos (Queryclose)(18/02/2008 16:28:50)

Exportar A Word Foros(18/02/2008 16:28:50)

Evitar Que Peguen Documentos (Ls)(18/02/2008 16:28:50)

Esto Es Un Codigo Para Acceder (Solamente) A Documentos Personales...(18/02/2008 16:28:49)

Mensaje,Progressbar Y Tokens (3 Ficheros Lss)(18/02/2008 16:28:49)

Exportación De Los Datos De Los Documentos De Una Vista A Un Fichero D...(18/02/2008 16:28:49)

Contestar A Tus Mails Sin Necesidad De Abrir El Propio Mensaje...(18/02/2008 16:28:49)

Abrir Diálogo De Selección De Carpeta Desde Lotusscript...(18/02/2008 16:28:49)

@Replacesubstring Con Lotus Script(18/02/2008 16:28:49)

Exportación A Word(18/02/2008 16:28:49)

Extraer Los Id Del Names Y Eliminarlos(18/02/2008 16:28:49)

Añadir Una Entrada Hijo A Una Entrada De Un Esquema (Outline) Existent...(18/02/2008 16:28:49)

Extraer Anexos Introducidos Desde Web En Un Agente...(18/02/2008 16:28:49)

Exportar Todos Los Anexos De Los Documentos Señalados En Una Vista (Pe...(18/02/2008 16:28:49)

Chequea Todas Las Bases De Datos Locales Y Compacta Aquellas Que Estan...(18/02/2008 16:28:49)

Ubicación Del Directorio Temporal Del Sistema Y Obtención De Un Nombre...(18/02/2008 16:28:49)

Código Para Pasar La Acl De Una Bbdd A Otra(18/02/2008 16:28:49)

Ejemplo Odbc, Conexion A Access(18/02/2008 16:28:49)

Cálculo Del Nif (Corto)(18/02/2008 16:28:49)

Exportar Datos Desde Una Vista A Un Fichero De Excel...(18/02/2008 16:28:49)

Coger Datos De Una Coleccion, Crear Un Documento Y Abrirlo (Charlee)...(18/02/2008 16:28:49)

Posibilidad De Ejecutar Agentes Del Servidor Desde Un Cliente, Pasándo...(18/02/2008 16:28:49)

Cálculo Nif (Largo)(18/02/2008 16:28:49)

Eliminar Una Entrada De Un Esquema (Outline) Existente....(18/02/2008 16:28:49)

Codigo Editar Y Guardar Todos Los Documentos De Una Bbdd...(18/02/2008 16:28:49)

Calculo Del Iva(18/02/2008 16:28:49)

Renombrar Una Vista. (18/02/2008 16:28:49)



Web Desarrollada por Juan Carlos Trigo Díaz
Optimizado para: 1024 x 768 pixels - Explorer > 6 Copyright © 2008