Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Diehler am 18.02.03 - 09:43:14
-
Hi,
wie kann ich aus einer Datenbank "heraus" über z.B. einen Agenten den HTTP Task auf dem Server (auf dem die Datenbank liegt) starten???
danke...
-
Im Downloadbereich gibt das was Consolen Commandos über Lotus Script. Damit kannst Du sowas realisieren.
-
Kannst du mir vielleicht einen Link schicken...
Ich finde nichts....
-
Hi,
warum startest du den Task nicht automatisch ?
Axel
-
Ich habe selbst keinen Zugriff auf den Server. Das heißt ich kann nichts in die Console eingeben....
Nun möchte ich diesen http Task über einen Agenten oder so etwas aus der Datenbank raus starten.
Geht das?
Ich bin für jeden Vorschlag dankbar.
-
Sorry
Quelle: www.eknori.de
Die Klasse remoteConsole ermöglicht das Absenden von Konsolenkommandos über Lotus Script.
Als Beispiel hier der Befehl "sh user", der die momentan am Server angemeldeten Personen auflistet
Sub Click(Source As Button)
Dim exec As String
Dim dummy As Variant
' hier den eigenen Server eintragen
Dim remConsole As New RemoteConsole ( "IhrServer" )
' welche Konsolenkommando ??
exec = "sh user"
'kein Kommando angegeben, dann beenden
If exec = "" Then
Exit Sub
Else
' Kommando ausführen
dummy = remConsole.Execute(exec)
' Rückgabewert steht in dummy
Msgbox dummy
End If
End Sub
Den folgenden Code in den Deklarationsteil eines Buttons, Agenten oder einer Scriptbibliothek kopieren
Declare Function NSFRemoteConsole Lib "NNotes.dll" Alias "NSFRemoteConsole" (Byval Server As String, Byval cmd As String, ret As Long) As Long
Declare Function OSLockObject Lib "NNotes.dll" Alias "OSLockObject" (Byval Handle) As String
Declare Sub OSUnlockObject Lib "NNotes.dll" Alias "OSUnlockObject" (Byval Handle)
Declare Sub OSMemFree Lib "NNotes.dll" Alias "OSMemFree" (Byval Handle)
Class remoteConsole
Private IsError As Variant
Private rc As Integer
Private hBuffer As Long
Private Server As String
Private Command As String
Private Result As String
Sub New(inpServer As String)
Dim server As New NotesSession
If inpServer = "" Then
Me.IsError = True
Else
Me.server=inpServer
Me.IsError = False
End If
End Sub
Function Execute(inpCommand As String) As String
If Me.Server = "" Then
Exit Function
End If
If inpCommand = "" Then
Me.execute="You must specify a command"
Me.iserror = True
Exit Function
Else
Me.command = inpCommand
End If
Me.rc = NSFRemoteConsole(Me.server, Me.command, hBuffer)
If Me.rc <> 0 Then
Me.iserror = True
Me.result="Error returned " & _
" from console [" & Cstr(rc) & "]"
Else
Me.result = OSLockObject(hBuffer)
Call OSUnlockObject(hBuffer)
Call OSMemFree(hBuffer)
Me.Iserror = False
End If
Me.execute = Me.result
End Function
End Class
-
Den oberen Teil versteh ich....
Aber den unteren Teil mit der Deklaration.... kannst mir des bitte a weng erklären. Ich programmier noch nicht lang in notes... danke
-
zudem, dass ich den 2 teil net kapier bekomm ich eine fehlermeldung:
Error returned from console[18865]
was bedeutet das?
-
Hi,
ich vermute, du hast dir die Antwort weiter oben bereits selbst gegeben:
Ich habe selbst keinen Zugriff auf den Server. Das heißt ich kann nichts in die Console eingeben....
Wenn du keine Admin-Rechte für den Server hast, dann nutzt dir auch das Script nix.
Wenn dir der Admin keine Rechte einräumt, dann bitte ihn doch wenigstens den HTTP-Task zu starten und ihn so einzutragen, dass er automatisch mitgeladen wird.
Axel
Axel
-
Also bei mir funktioniert es. Hast Du den richtigen Server namen eingetragen?
-
... ich war schon am grübeln, wie das geht ohne Zugriffsrechte - allerdings wäre eine vernünftige Fehlermeldung von seiten Notes sicherlich angebracht...
ata ;D
-
es ist schon erstaunlich, welche Umwege manche Leute gehen.
Ein einfacher Telefonanruf mit der Bitte, den Task zu starten reicht doch vollkommen aus.
Da würdest du doch auch erfahren, WARUM der Task NICHT läuft.
Zum Anderen wäre dir eine Abmahnung gewiß, wenn du das in meinem System versuchen würdest.
Du hast keine Admin Rechte ( an der Console ); auch das wird seinen Grund haben.
Und wenn sich das nur auf die Console bezieht, solltest du als Admin eigentlich wissen, wie du an die Rechte drankommst.
eknori
-
Oh das mit den Adminrechten hatte ich überlesen :-X ohne kann es ja nicht funktionieren.
-
@Christopher
Ich habe den kompletten Notes Namen des Servers (DIGNST1801/DIG/DE) angegeben...
Nun habe ich einen kleinen Testserver aufgesetzt. Wo muss ich da im Serverdokument stehen um "Administrator-Rechte" auf die Console zu haben.
Ich will keine "Umwege" gehn. Natürlich könnte ich es eingeben oder einen Anruf tätigen. Ich möchte es aber so schaffen.
Bitte helft mir.
-
Im Serverdokument im Abschnitt Sicherheit dort sind mehrere Angaben nötig.
Serverzugriff:
Verwendung von Monitoren zulässig für:
Persönliche Agenten ausführen:
Beschränkte LotusScript/Java-Agenten ausführen:
Unbeschränkte LotusScript/Java-Agenten ausführen:
Und im Reiter Allgemein:
Administratoren:
Dort sollte die Admingruppe eingetragen werden.
-
danke. ich habs schon geschafft.