Domino 9 und frühere Versionen > Entwicklung

Hilfe bei script

<< < (2/4) > >>

Performance:
stell doch die abgespeckte db rein --- mit 2 doks - dann geht das schneller mit der Fehlersuche  ;D

bin noch ne halbe Stunde online


cu

piccolo:
datenbank ist die mailschablone r5, andere datenbank idem.  attachment irgendeines... sorry die db hat sich höllisch groß gemacht, da ich ein zu großes attachment reingehängt habe....

edit. ...

fehler kommt jetzt bei set item = SourceDoc.GetFirstItem("$File")  ???
variable item ist leer, habs mit dem debugger durchgespielt....

bitte um hilfe, ich verzweifle fast :-\

ata:
... dein Code ist etwas ducheinander. Ich möchte versuchen dir den Code besser zu strukturieren.

... als erstes - nur die Dimensionierungen - keie Zuweisungen...
... als zweites die Initialisierung der benötigten Objekte...
... und dann der Code, der das Ergebnis bringen soll.


--- Code: ---Sub Click(Source As Button)
   ' # 1. Dimensionierung der Objekte
   Dim session As New NotesSession  
   ' # nenn die Session nicht 's' - einzelne Buchstaben verwendet man gerne als Zählvariablen in Schleifen
   
   Dim SourceDB As NotesDatabase  ' # besser wäre dbSource - das Objekt leitet den Namen ein...
   Dim TargetDB As NotesDatabase
   'Dim dc As NotesDocumentcollection  
   Dim TargetDoc As NotesDocument  ' # besser wäre docTarget - das Objekt leitet den Namen ein...
   Dim SourceDoc As NotesDocument
   'Dim object As NotesEmbeddedObject
   'Dim ItemType As Integer
   
   ' # ... die Dimensionierung innerhalb einer Do-While-Schleife macht keinen Sinn - hier ist sie richtiger
   'Dim AttachmentName As String
   'Dim newObject As NotesEmbeddedObject
   Dim rtitem As NotesRichTextItem
   
   ' # Initialisierung der benötigten Objekte
   Set TargetDB = session.CurrentDatabase
   
   ' # ...Validierung der Quelldatenbank
   Set SourceDB = session.GetDatabase("" , "blablablabla.nsf")
   If Not SourceDB.IsOpen Then
      Msgbox "Abbruch - die Quelldatenbank konnte nicht geöffnet werden"
      Exit Sub ' # ... bzw. Exit Function, wenn in einer Funktion gearbeitet wird.
   End If
   
   ' # ... Validierung der benötigeten Ansicht
   Set view = SourceDB.GetView( "Memo" )
   If view Is Nothing Then
      Msgbox "Abbruch - die Ansicht 'Memo' konnte nicht in der Quelldatenbank gefunden / geöffnet werden."
      Exit Sub ' # ... bzw. Exit Function, wenn in einer Funktion gearbeitet wird.
   End If
   
   ' # ... das erste Dokument initialisieren - war in deinem Code auskommentiert - warum
   Set SourceDoc = view.GetFirstDocument()
   
   ' # Der eigentliche Code, der das Ergebnis herstellen soll
   Do While Not (SourceDoc Is Nothing)
      
          ' Copy fields from Source Doc to Target Doc
      Set TargetDoc = New NotesDocument( TargetDB )
      TargetDoc.Form = "New Document"
      TargetDoc.Category = SourceDoc.heading
      TargetDoc.SubCat = SourceDoc.Category
      TargetDoc.docTitle = SourceDoc.DocHeading
      
          ' # hier kommt der Code zur Übernahme des Attachments
      ' # ... ich würde das Feld mit dem Attachment in dein Zieldokument kopieren
      Set rtItem = SourceDoc.GetFirstItem("Body") ' # hier liegt das Attachment in der Regel  
      Call TargetDoc.CopyItem( rtItem, "Body" )      
      ' # ... Attachment übernommen.
      
      TargetDoc.Save True,True
      
      Set SourceDoc = view.GetNextDocument( SourceDoc )
      
   Loop
   
   ws.ViewRefresh  
End Sub
--- Ende Code ---

... ich konnte es nicht mehr testen, aber das müßte meiner Meinung nach funktionieren...

ata

piccolo:
@ata, großen dank für deine mühe,

aber ich habe noch ein problem bei :
   Set rtItem = SourceDoc.GetFirstItem("Body") ' # hier liegt das Attachment in der Regel  *** object variable not set :-\

hab mal ein debug fenster hinzugefügt...
danke im vorraus für die hilfe

Axel:
Hi,

der Fehler liegt meines Erachtens hier:

Do While (SourceDoc Is Nothing)

In ata's Script steht Do While Not..., bei dir fehlt das Not.


Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln