Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Lorenz am 25.07.03 - 08:58:56
-
hallo
ich habe hier ein script von axel (thx) und mir gemischt ::). ziel ist es aus dem names, bzw. der view ($VIMPeople), neue dokumente heraus zu kopieren. der kopiervorgang funktioniert eigentlich gut, solange der agent im names ist. kopiere ich den agent aber in meine db. funktioniert gar nichts mehr. dh. es gibt aber auch keine fehlermeldung.
ich vermute der fehler ligt im oberen teil, bei der selektion des names / ($VI.. view. kann mir jemand helfen?
vielen dank für eure hilfe
das script:
Sub Initialize
Dim doc As NotesDocument
Dim doc1 As NotesDocument
Dim Session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim view As NotesView
Dim picklist As Variant
Dim namesdoc As NotesDocument
Dim item As NotesItem
Dim vTmp As Variant
Dim i As Integer
Dim books As Variant
Dim done As Integer
Dim iMaxValue As Integer
'Suchen des öffentlichen Adressbuches und Zugriff auf die entspr. Ansicht
done = False
books = session.AddressBooks
Forall b In books
If (b.IsPublicAddressBook) And (Not done) Then
Call b.Open( "", "" )
Set view = b.GetView("($VIMPeople)")
done = True
End If
End Forall
Msgbox "TEST"
If done Then
///hier beginnt der kopiervorgang
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
Set tmpdoc = view.GetNextDocument(doc)
Set doc1=db.createDocument
doc1.Form="Formname"
usw....
-
Hi,
ich kann auf den ersten Blick nicht erkennen, wo ein Fehler sein kann. Lass mal den Debugger drüber laufen und schau die die einzelnen Variablen an.
Läuft deine DB lokal oder auf dem Server? Lokal funktioniert das Ganze nicht richtig.
Axel
-
Hi,
hast Du denn die richtige Maske in Deiner Datenbank? Darfst Du in der Datenbank Dokument erstellen?
Wird die msgbox "TEST" angezeigt?
Besser wäre noch ein
if not view is nothing then
...
end if
Wenn man auf Objekte zugreift, IMMER vorher abfragen, ob die überhaupt da sind.
Und wie Axel bereits gesagt hat, bie Fehler zuerst mal den Debugger laufen lassen - Step by Step.
Andreas
-
Hallo
also die db ist auf einem server. von dort aus ist es auch möglich ein names zu finden.
der dubugger meint nicht viel. er bringt keine fehlermeldungen.
obwohl ich eigentlich kein freund von hardcoded script bin, könnte ich ja auch einfach die db mit namen fest programieren. müsste ich da in etwa folgendes script eingeben:
Call b.Open( "AdminServer", "names.nsf" )
Set view = b.GetView("($VIMPeople)")
wie müsste ich b definieren
mittels
dim b as string
b = session.AdressBooks
???
-
Hi,
b wird nicht definiert, das passiert automatisch. Schau dir dazu auch mal die Hilfe zur ForAll - Anweisung in der Designer-Hilfe an.
Ich habe auch nicht erwartet, dass der Debugger ein Fehlermeldung bringt. Ich bin eher an dem Verhalten der Variablen interessiert. Wann wird welche Variable gefüllt. nur so kann man den Fehler einkreisen.
Call b.Open( "AdminServer", "names.nsf" )
Set view = b.GetView("($VIMPeople)")
Wenn du das so machen willst, dann ist b vom Typ Notesdatabase
Dim b As NotesDatabase
Set b = New NotesDatabase("AdminServer", "names.nsf")
Set view = b.GetView("($VIMPeople)")
Würde ich dir aber nicht empfehlen.
Axel
-
da ich das ding heute produktiv schalten muss werde ich wohl die hc (hardcoded) variante wählen.
klar hat man da nur nachteile, bis auf dass ich schneller fertig bin.
ich werd mir aber für die ferien mal noch ein script buch kaufen. ich suche so was mit der stufe "wenig weiter als anfänger". kennst du da ein gutes?
-
Hi,
schau mal hier: http://www.cul.de/domino5.html (http://www.cul.de/domino5.html)
Axel
-
gekauft ;)
vielen dank.