Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Dynamix am 30.06.04 - 20:00:08

Titel: Verbindungsdokument
Beitrag 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
Titel: Re:Verbindungsdokument
Beitrag von: ata am 30.06.04 - 23:48:00
... ohne Script-Kenntnisse lässt sich das wohl kaum einfach halten - was stört dich denn an den überflüssigen Verbindungsdokumenten?

ata
Titel: Re:Verbindungsdokument
Beitrag von: koehlerbv am 01.07.04 - 00:46:46
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
Titel: Re:Verbindungsdokument
Beitrag von: Dynamix am 01.07.04 - 11:31:19
@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
Titel: Re:Verbindungsdokument
Beitrag von: Christopher am 01.07.04 - 11:39:51
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
Titel: Re:Verbindungsdokument
Beitrag von: ata am 01.07.04 - 11:44:44
... 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
Titel: Re:Verbindungsdokument
Beitrag von: koehlerbv am 01.07.04 - 11:55:32
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
Titel: Re:Verbindungsdokument
Beitrag von: ata am 01.07.04 - 12:52:48
@Bernhard
... da hast du natürlich Recht, es genügt das bestehende zu ändern...

 :o

Toni
Titel: Re:Verbindungsdokument
Beitrag von: Dynamix am 05.07.04 - 10:57:42
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?????

Titel: Re:Verbindungsdokument
Beitrag von: fritandr am 05.07.04 - 11:24:13
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
Titel: Re:Verbindungsdokument
Beitrag von: klaussal am 05.07.04 - 11:39:00
... das buch von saumweber kann ich nur empfehlen. das war mal ein teacher von mir.
Titel: Re:Verbindungsdokument
Beitrag von: Dynamix am 05.07.04 - 11:52:18
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