es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible pasar parámetros de una base de datos a otra utilizando un agente. LotusScript proporciona varios métodos para manejar tales escenarios. Puede crear un agente en la Base de Datos 1 y pasar los valores de los parámetros utilizando el método NotesAgent.RunOnServer(). En la Base de Datos 2, puede crear otro agente y recuperar los valores de los parámetros del entorno de tiempo de ejecución utilizando la clase AgentContext. Una vez que tenga los parámetros, puede proceder a ejecutar la lógica empresarial necesaria en la Base de Datos 2 en base a la entrada recibida.

    Para pasar los valores de los parámetros de la Base de Datos 1 a la Base de Datos 2, puede utilizar el contexto de documento NotesDocumentContext pasado como parámetro al método RunOnServer(). Aquí hay un ejemplo de código LotusScript que demuestra este enfoque:

    'Ejecute este agente desde la Base de Datos 1
    Sub Initialize
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim agent As NotesAgent
      Set db = session.CurrentDatabase
      Set agent = db.GetAgent("MiAgente")
    
      'Cree un nuevo documento y establezca valores para fieldA y fieldB
      Dim doc As NotesDocument
      Set doc = db.CreateDocument
      doc.Form = "MiForma"
      doc.fieldA = "valor1"
      doc.fieldB = "valor2"
    
      'Pase el documento al agente de destino en la Base de Datos 2
      Dim contexto As NotesAgentContext
      Set contexto = session.CreateAgentContext
      contexto.DocumentContext = doc
      Call agent.RunOnServer(context)
    End Sub
    

    En la Base de Datos 2, puede recuperar los valores de los parámetros utilizando la clase AgentContext. Aquí hay un código de ejemplo que recupera los valores de fieldA y fieldB del documento pasado por la Base de Datos 1:

    'Ejecute este agente desde la Base de Datos 2
    Sub Initialize
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim contexto As NotesAgentContext
      Set db = session.CurrentDatabase
      Set contexto = session.AgentContext
    
      'Recupere el contexto del documento pasado por la Base de Datos 1
      Dim doc As NotesDocument
      Set doc = contexto.DocumentContext
    
      'Recupere los valores de fieldA y fieldB
      Dim fieldA As String
      Dim fieldB As String
      fieldA = doc.GetItemValue("fieldA")(0)
      fieldB = doc.GetItemValue("fieldB")(0)
    
      'Haga algo con fieldA y fieldB
      '...
    End Sub
    

    Tenga en cuenta que debe asegurarse de que el agente de destino en la Base de Datos 2 esté configurado para ejecutarse en el mismo servidor que el agente fuente en la Base de Datos 1. Es posible que también deba autenticar al usuario que ejecuta los agentes si la autenticación entre servidores no está habilitada.

Comments are closed.