Domino 9 und frühere Versionen > Entwicklung

öffentliches Adressbuch definieren

(1/2) > >>

Lorenz:
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....

Axel:
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

Glombi:
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

Lorenz:
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

???

Axel:
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.


--- Zitat ---
Call b.Open( "AdminServer", "names.nsf" )
Set view = b.GetView("($VIMPeople)")


--- Ende Zitat ---

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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln