Domino 9 und frühere Versionen > Entwicklung
Hilfe bei script
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