Feldinhalt löschen per Debug OK, ohne Debug nicht ok

  • Hallo,


    ich glaube im Moment nicht so richtig was Notes anstellt.


    Ich möchte den Inhalt eines Feldes löschen. Dazu gibt es mehrere Möglichkeiten:


    Call senddoc.ReplaceItemValue("body","")


    oder


    senddoc.body = ""


    Das komische ist, wenn ich im Debugmodus das Schritt für Schritt mir anschaue, funktioniert das löschen.


    Wenn ich den Breakpoint hinter den Befehl setzte und das bis dahin automatisch laufen lasse, löscht er das nicht mehr!


    Ich weiß nicht was das soll. Mache ich da was falsch?


    Danke für eure Antworten.
    Gruß René

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat

  • Hier ist der Agent der auf einem Server laufen soll.


    Er läuft in einer Mailin DB, wo SMTP Mails ankommen. Der Agent löst den Anhang und erstellt eine neue Mail mit dem Anhang und leitet sie an den Faxserver weiter. Das ist wichtig, da kein Text im Anhang sein darf, weder Leerzeichen noch Sonderzeichen.


    Ich habe die Stelle, wo ich den Inhalt des Body´s lösche, rot gekennzeichnet (wenn es noch zu erkennen ist senddoc.body="")


    Ich bin kein Programmierer, alles learning by loosing, also zerreist mich nicht gleich, wenn ich irgendwas total umständlich programmiert habe :) :hammer:


    Set doc = dc.GetFirstDocument


    While Not (doc Is Nothing)
    If Not doc.bearbeitet(0)="1" Then
    Forall i In doc.Items


    'Mailtext auslesen
    If i.Name = "Body" Then
    BodyText = i.Text
    End If


    'Faxnummer auslesen
    If i.Name = "Subject" Then
    Faxnummer = i.Text
    'Messagebox Faxnummer
    End If


    'Mailsender auslesen
    If i.Name = "From" Then
    Mailsender = i.Text
    End If


    'Mailsender auslesen
    If i.Name = "$FILE" Then
    Anhang(0) = i.Values(0)
    End If
    End Forall


    'Hier wird die Mail erstellt
    Dim sendDoc As notesdocument


    'Überprüfen, ob es eine Mail mit Anhang ist
    If Anhang(0) ="" Then
    'Wenn Mail ohne Anhang
    senddoc.Subject="Servicebericht"
    senddoc.form="Memo"
    senddoc.from=Mailsender
    Else
    'Kopiert die Felder von der SMTP Mail in die neue Mail
    Set senddoc = New NotesDocument( db )


    Dim img_item As notesitem
    Set img_Item = doc.getfirstItem("$File")
    Dim object As NotesEmbeddedObject
    Set object = doc.GetAttachment( doc.getitemvalue("$File")(0) )
    Call object.ExtractFile( "c:\" & object.Source )
    Datei = "c:\" & object.Source


    Dim rtitem As NotesRichTextItem
    Dim objectnew As NotesEmbeddedObject
    Set rtitem = New NotesRichTextItem( senddoc, "Body" )
    Set object1 = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", Datei)
    Kill Datei


    'Bodytext löschen damit das Fax direkt ohne Mail gefaxt wird
    senddoc.body=""
    'Felder Zuweisen
    senddoc.from = Mailsender
    senddoc.form = "Memo"
    senddoc.PostedDate = Now()
    senddoc.ComposedDate = Now()
    senddoc.Principal = Mailsender
    senddoc.EncryptOnSend = False
    End If


    'Faxnummer in Empfänger eintragen
    senddoc.SendTo = Faxnummer + "@fax"
    senddoc.EnterSendTo = Faxnummer + "@fax"


    'Mail senden
    Call sendDoc.send(False)


    'eingegangene Mail als Bearbeitet markieren
    doc.Bearbeitet = "1"
    doc.Form= "Memo"
    Call doc.Save(yes, yes)
    End If
    'Sprung zum nächst möglichen Dokument
    Set doc = dc.GetNextDocument (doc)


    Wend


    End Sub

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat

  • Im Body Text darf nichts stehen.


    Im Moment steht der Dateiname drin, den ich löschen möchte.


    Wenn ich jetzt einen Breakpoint z.B. bei [senddoc.form = "Memo"] mache, dann steht der Dateiname immernoch im Body drin.


    Wenn ich jetzt den Breakpoint aber bei [Kill Datei] setze und Schrittweise weiter gehe, dann wird der Bodytext gelöscht.


    Was mache ich denn da falsch?

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat

  • Abgesehen mal davon, dass ein seltsamer Fax Server ist der nicht mal eine normal angehängte Datei verarbeiten kann, wenn der Dateiname noch mit drin ist, ist der Effekt schon etwas seltsam.


    Versuch doch mal die anderen Felder zu setzen bevor du die Datei anhängst.

  • Hallo taurec,


    habe jetzt die Felder vorher gefüllt und danach den Anhang angehängt.


    Danach funktionierte der Befehl [senddoc.body = ""] auch Schrittweise nicht mehr.


    Somit habe ich den Befehl [Call senddoc.ReplaceItemValue("body","") ] eingefügt.


    Er funktioniert schrittweise, aber nicht wenn es automatisch läuft.


    Der Faxserver ist von Farrari und er kann schon Mailsmit Anhang und Text verarbeiten. Nur dann schickt er die Mail als erstes Faxblatt weg und dann den Anhang hinterher. Er soll aber nur den Anhang faxen.


    Hast du noch eine Idee?

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat

  • Nein, dazu fällt mir dann auch nichts mehr ein.


    Wie geht das aber bitte dann wenn ein Benutzer eine Mail mit Anhang schickt ? Wird dann auch jedes Mal eine Faxseite mit dem Anhangsnamen verschickt ?

  • von einem Notesclient funktioniert das super.


    Wenn ich im Body nur ein Dok anhänge, kein Text im Betreff oder im Body schreibe, faxt der Server nur den Anhang weg. Ob .doc, .xls oder .pdf, alles wird erst geöffnet und dann direkt gefaxt.


    Somit ist nur ein Anschreiben notwendig und es spart Zeit, Geld und Papier :)

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat

  • Also, warum das passiert habe ich immernoch nicht rausgefunden.


    Allerdings habe ich jetzt eine Schleife einprogrammiert, mit der es funktioniert.


    If Not senddoc.body = "" Then
    Call senddoc.ReplaceItemValue("body","")
    End If


    Ich danke dir dennoch vielmals taurec.


    Gruß
    René

    nichts ist unmöglich, aber auch gar nichts wenn man genug Zeit und Geld hat