Ejecutar un script de una biblioteca de otra BD

Tengo una BD de Faxes que tiene unas librerías de scripts.
Tengo otra BD que en la que quiero crear un documento de fax (esto ya lo he echo) y ejecutar el código que lo pone en la cola de faxes a enviar.
Mi pregunta es si se puede hacer esto, es decir, ejecutar código de una biblioteca de scripts de la BD de Faxes. Y si se puede hacer, ¿me podrías poner un ejemplo?
2

2 respuestas

Respuesta
1
Depende de como lo quieras hacer, puedes crear una acción desde la BD inicial que llame a un agente de la BD destino. La cadena a llamar por web seria: http://host/Database/AgentName?OpenAgent
El Agente haría una llamada a la rutina init de la librería destino y ya está.
Ejemplos de códigos de agentes:
Forma de ejecutar agentes en acciones: @Command([ToolsRunMacro]; "ELIMINARTOT")
Por ejemplo
Agentes en Lotusscript que carguen una librería:
Option Public
Option Declare
Use "Libreria9a2_2"
Y despues en initialize() llamen a un procedimiento de la libreria
Sub Initialize
Dim session As New notesSession
Dim url$
Dim tempV As Variant
Dim ssrweb As notesdocument
'ssrweb conté tot el document del HORARI
Set ssrweb = session.documentContext
'La URL conté tota la capçalera de la crida
url = ssrweb.Query_String_Decoded(0)
' comprovar si tinc parametres passats per URL per comprovar si he de fer càlculs
tempV = Evaluate(| @contains( "| +url+ |"; "Param1=" ) |)
If tempV(0) Then
' si es cert vol dir que es reben els paràmetres i que cal emplenar el formulari
' Netejem tots els camps
ssrweb.Descripcions = ""
ssrweb.linia_1 = ""
ssrweb.linia_2 = ""
ssrweb.linia_3 = ""
ssrweb.linia_4 = ""
ssrweb.linia_5 = ""
ssrweb.Espais = ""
ssrweb.Zones = ""
ssrweb.Dates = ""
ssrweb.DiaSetmana2 = ""
' CRIDEM A LA FUNCIÓ D'EMPLENAR AMB EL FORMULARI!!!!!!!!!!
Call situacio ( ssrweb)
Else
' si es fals vol dir que només cal obrir el formulari buit = no fer res
ssrweb.Query_String = "No ens has passat paràmetres"
End If
Exit Sub
End Sub
Hola,
gràcies per contestar tan ràpid. En realitat crec que no m'he acabat d'esplicar del tot. En l'exemple que m'has passat crides a una llibreria que tens a la teva base de dades.
Suposem que, en realitat, el que vull és executar una funció d'una llibreria d'una altra base de dades.
Aclaració: Jo no treballo via web. Treballo directament sobre la plataforma de lotus notes.
Em pots ajudar?
PD: T'escric en català per que he vist que ets de per aquí...
Per el que jo se, depenent de la llibreria, si es una DLL en llenguatge C pots fer un UseLSX lsxLibraryName.
En canvi, per llibreries d'un mateix mòdul ( una mateixa base de dades) usa Use.
Si tens una llibreria compartida LotusScript ( Arxius .Iss ) usa %Include fileName.
Per exemple %Include "c:\llibreria.txt"
En el teu cas, hauries de fer un arxiu de text compartit per exemple amb el codi de la llibreria i linkarlo amb Include. Però jo et recomano que copiis tota la llibreria a la teva base de dades.
L'exemple que et vaig proposar de fer una acció que crides a un agent d'una base de dades diferent a la seva es la millor solució.
Però hi han altres maneres, amb codi LotusScript, per exemple:
Dim db As New NotesDatabase( "", "" )
If db.Open( "Asuncion", "salesdocs.nsf" ) Then
Call db.GrantAccess( "Supervisors", ACLLEVEL_EDITOR )
End If
Aquesta minirutina obre una base de dades salesdocs.nsf i despres opera sobre ella,
Ara amb aquest altre exemple et servirà per poder executar agents d'altre base de dades:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim theAgent As NotesAgent
Dim agentString As String
Set db = session.CurrentDatabase
Forall agent In db.Agents
agentString = agentString & Chr(10) & agent.Name
End Forall
Messagebox agentString,, "Agents"
Set theAgent = db.GetAgent(Inputbox( _
"Which agent do you want to run?"))
If Not(theAgent Is Nothing) Then
Call theAgent.Run
Else
Messagebox "No existing agent selected"
End If
Amb això segur que no tens cap problema. Ho sento si no m'havia explicat bé però tinc pressa
Digue'm si t'ha funcionat
Moltes gràcies,
és just el que volia. La opció de l'Agent és la que més s'adapta al meu problema. Espero tenir el teu nivell algun dia...
Respuesta
1
No, no se puede ejecutar una biblioteca de script de otra base de datos. Tendrás que copiar la biblioteca a la otra BD.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas