Husk: 1) Hvis din database ligger lokalt virker RunOnServer lige som Run. 2) Dine brugere skal have rettigheder til at afvikle agenter på serveren. 3) Agenten skal være signet af serveren (dvs. serveren har rettighedere til agenten)
Du kan ikke bruge "call agent.RunonServer". Du skal sætte en variabel = med din agent, f.eks. Dim s As New NotesSession Dim db As NotesDatabase Dim agent As NotesAgent Set db = s.CurrentDatabase Set agent = db.GetAgent("DinAgent")
Du aktivere derefter agenten med f.eks. If agent.RunOnServer = 0 Then DoSomething End If
Hvis jeg benytter returværdien (status) fra agenten som f.eks.
If agent.RunOnServer <> 0 Then msgbox "Kørslen mislykkedes"
er det jo klart at notes låser indtil agenten er færdig da den jo skal bruge den returnerede værdi for at komme videre i scriptet.
Derfor benytter jeg istedet
call agent.RunOnServer()
hvor jeg så ikke er afhængig af returværdien. Det var jo så mit håb at agenten blev startet og scriptet kunne køre videre med det samme. Men scriptet venter stadig på at agenten kører færdig.
Njae..det er ikke helt sådan det hænger sammen. Når du anvender RunOnServer starter du en agent, som kører i sin egen "shell". Den kaldende agent venter IKKE på svar med mindre du beder den stå og vente/polle på et svar tilbage. Det kan du bl.a gøre ved at anvende ParameterDocId optionen. Har du testet mine "huskere"... ?
Jeg har lidt på fornemmelsen det slet ikke kan lade sig gøre. Men da agenten tager omkring en halv time at køre ville det være rart så brugeren kan arbejde i notes mens han venter.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.