Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Dynamix am 30.06.04 - 20:00:08
-
Demnächst steht bei uns ein Serverumzug mit Vergabe einer neuen Server-Ip an.
Um den Nutzer möglichst einfach ein neues Verbindungsdokument einzurichten, würde ich gern 2 Schaltflächen in einer Mail installieren und über diese den alten Eintrag löschen und ein neues Verbindungsdokument erstellen.
Für letzteres habe ich bereits ein Script gefunden. Jetzt bereitet mir nur noch das Löschen des nicht mehr benötigten Verbindungsdokuments deutliche Probleme.
Wer hat eine solches Script bzw. kann mir da weiterhelfen. Leider habe ich von Scriptprogrammierung keinerlei Ahnung - Erklärungen somit bitte einfach halten. ;D ;D
Danke
-
... ohne Script-Kenntnisse lässt sich das wohl kaum einfach halten - was stört dich denn an den überflüssigen Verbindungsdokumenten?
ata
-
Dynamix, schick doch mal den Code, den Du verwendest, um das neue connection doc zu erzeugen. Vielleicht findest sich ja hier jemand, der den Code ergänzt um das Löschen des nun ungültigen location docs. Wenn ich Zeit habe, dann würd' ich die paar Zeilen ggf. auch anhängen.
By the way: Nickname = Dynamix - dann solltest Du auch dynamisch auf die Anforderungen des Jobs reagieren und LS lernen oder bei Zeitmangel für diesen Job jemand engagieren ;D Wobei gerade diese Aufgabe ein hervorragendes Beispiel ist, um mit LS zu starten: So schwer ist das entfernen unnötiger con docs nicht.
Bernhard
-
@ata
Da sich nur die IP ändert und der Servername gleich bleibt - hätte ich nach derzeitigem Stand 2 Verbindungsdokumente mit dem gleichen Namen. Wenn ich jetzt den Nutzer dazu auffordere den falschen Eintrag zu löschen, wird bei mind 50% der falsche - also weiterhin benötigte - Eintrag gelöscht.
@koehlerbv
LS lernen ist leider nicht so einfach. Da mein Arbeitgeber unter ständigem Geldmangel leidet, sieht es mit Lehrgängen nicht wirklich gut aus. Derzeit ist ein erster Lehrgang "Einweisung in LS" vorgesehen - Dauer 3 Tage :o :o.
Eigenstudium ohne jegliche Programmiervorkenntnisse fällt schwer und die exestierende Fachliteratur ist für einen Laien nur schwer verständlich. Einziger Hoffnungschimmer ist derzeit ein Buch von Walter Saumweber (LS Training & Programmierung) welches mit erste Schritte ermöglicht. Für jegliche Vorschläge an Literatur etc. bin ich dankbar - das geht dann aber am Thema vorbei.
Hier nun der bereits verfügbare Code:
Sub Click(Source As Button)
Set session = New NotesSession
Set dbCurrent = session.CurrentDatabase
Dim db As New NotesDatabase("" , "names.nsf")
Dim success As Variant
Dim connect As NotesDocument
Set connect = db.CreateDocument
connect.form = "local"
connect.type = "Connection"
connect.destination = "CN=xyz/OU=xxx/O=yyy/C=DE"
connect.lanportname = "TCPIP"
connect.connectiontype = "0"
connect.optionalnetworkaddress = "123.4.5.678"
connect.Source = "*"
success = connect.ComputeWithForm( False, False)
Call connect.Save(True,True)
Print "Verbindungsdokument wurde erstellt"
End Sub
-
Das geht auch einfacher die Nutzer gehen über Datei Datenbank öffnen und geben dort die IP ein und sagen dann öffnen anschließend wird ein Verbindungsdokument erstellt siehe Statuszeile
-
... du must in deiner Names.nsf über die Ansicht "Connenctions" nach dem Servernamen suchen...
Dim Session As New NotesSession
Dim dbNAB As NotesDatabase
Dim viewConnect As NotesView
Dim docConnect As NotesDocument
Set dbNAB = session.GetDatabase( "" , "names.nsf" )
Set viewConnect = dbNAB.GetView( "Connections" )
If not viewConnect Is Nothing Then
Set docConnect = viewConnect,GetDocumentByKy( "SERVERNAME" , True )
If not docConnect Is Nothing Then
Call docConnect.Remove( True )
End If
End If
... so auf die schnelle ungeprüft...
ata
-
Da der Servername bleibt, reicht es aus, mit Antons Hinweis das entspr. Verbindungs-Dokument zu suchen und zu instantiieren, dort die neue IP-Adresse einzutragen und das Dokument zu speichern.
Das mit dem Löschen wäre unter Deinen Bedingungen sowieso nicht so einfach möglich, da der Servername ja gleich bleibt. Es müsste also sowohl DIE Dokumente gesucht werden, dann in der Collection das Dokument mit der alten IP-Adresse ermittelt und DIESES gelöscht werden.
HTH,
Bernhard
-
@Bernhard
... da hast du natürlich Recht, es genügt das bestehende zu ändern...
:o
Toni
-
Erstmal vielen Danke für die bisherigen Vorschläge / Lösungsansätze!!!!
@ christopher
Funktionieren tut es allerdings ist der neue Eintrag dann immer nur für die aktuelle Arbeitsumgebung gültig und muß - da fast alle Nutzer mehrere Arbeitsumgebungen haben - nachträglich bearbeitet werden.
@ata
Habe mal dein Script probiert, leider komme ich da nicht richtig weiter. :(
Probleme bereitet mir die Zeile "Set docConnect = viewConnect,GetDocumentByKy( "SERVERNAME" , True )".
Nutze ich diese wie angegeben mit eingetragenem Servernamen, wird nachfolgende Scriptfehlermeldung ausgeworfen "Click: 10: Unexpected: ,; Expected: End-of-statment; Operator". Ändere ich das Komma zwischen viewConnect und GetDokument in einen Punkt wird als Fehlermeldung "Click: 10: Not a member: GetDokumentByKy" angezeigt.
Was mache ich da falsch bzw. habe ich übersehen?????
-
Probleme bereitet mir die Zeile "Set docConnect = viewConnect,GetDocumentByKy( "SERVERNAME" , True )".
Versuchs stattdessen mal mit dieser Zeile:
Set docConnect = viewConnect.GetDocumentByKey( "SERVERNAME" , True )
Viele Grüße
Andreas
-
... das buch von saumweber kann ich nur empfehlen. das war mal ein teacher von mir.
-
thx fritandr :D :D
Nach dem Einfügen deiner Zeile - was so ein fehlender Buchstabe alles anrichten kann - funktioniert alles hervorragend.
Nachfolgend noch mal für alle der ScriptCode:
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim dbNAB As NotesDatabase
Dim viewConnect As NotesView
Dim docConnect As NotesDocument
Set dbNAB = session.GetDatabase( "" , "names.nsf" )
Set viewConnect = dbNAB.GetView( "Connections" )
If Not viewConnect Is Nothing Then
Set docConnect = viewConnect.GetDocumentByKey( "Servername" , True )
If Not docConnect Is Nothing Then
Call docConnect.Remove( True )
End If
End If
Print "Verbindungsdokument wurde gelöscht"
End Sub