Autor Thema: Feld "Importance" zur Ansicht in Mail-DB füllen  (Gelesen 1736 mal)

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Feld "Importance" zur Ansicht in Mail-DB füllen
« am: 09.11.07 - 11:57:05 »
Hier ist mal wieder der "Man without script"!

Ich möchte über eine eigene Mailmaske aus einer DB heraus Mails versenden lassen, bei denen die Zustelloption "Dringlichkeit: hoch" angekreuzt werden kann. Nach meinen Recherchen wird das im Feld "Importance" abgelegt. Wie kann ich das Feld optional durch den User füllen lassen? Ist das überhaupt ein Feld? Ich habe es schon mit SetField probiert, klappt aber nicht.
« Letzte Änderung: 09.11.07 - 12:21:23 von SaSaWu »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld "Importance" zur Ansicht in Mail-DB füllen
« Antwort #1 am: 09.11.07 - 15:04:39 »
Wie versendest Du denn die Mails? Wie sieht die aktuelle Versendeformel aus?

Importance kannst Du sehr wohl in Deiner Memo-Maske als Feld integrieren (mit Wert = "1"), nur muss dann die komplette (und vor allem vollständige) Maske mit dem Dokument versandt werden.

Bernhard

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Feld "Importance" zur Ansicht in Mail-DB füllen
« Antwort #2 am: 09.11.07 - 15:15:32 »
Das Versenden geschieht über eine Ansicht-Schaltfläche, die die Mailadresse aus dem aktuell ausgewählten Eintrag aus einer Ansicht zieht:

@If(@Prompt([YESNO]; "Eintrag ausgewählt ?";
                                                 "Haben Sie den Eintrag markiert, an dessen 1. Ansprechpartner Sie eine E-Mail senden möchten?");
    "";
@Return(""));
@Command([ToolsRunMacro];"(Mail erfassen")


Es kommen dabei folgende Agenten zum Einsatz:

Agent "Mail erfassen" mit Initialize:

%REM
A g e n t  \'(Mail erfassen'
*****************************

Aufruf in Schaltfläche [Mailing] in den Ansichten 'Notes Nutzer' und 'Kommunikationsdaten'
===========================================================================
%END REM

Sub Initialize
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim collection As NotesDocumentcollection
   Dim pr As NotesDocument
   Dim sendto As NotesItem
   Dim thema As NotesItem
   Dim body As NotesRichTextItem
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase     
   Set collection = db.UnprocessedDocuments
   Set pr = db.GetProfileDocument("Mail")
   
     'Prüfen, ob Profile 'Mail' vorhanden
   If pr Is Nothing Then
      Call ws.EditProfile("Mail")
      Exit Sub
   End If
   
     'Felder aus Profile holen
   Set sendto = pr.GetFirstItem("SendTo")
   
     'Feldinhalte löschen
   Set thema = pr.GetFirstItem("Thema")     
   pr.ReplaceItemValue "Thema", ""
   Set body = pr.GetFirstItem("Body")
   
     'Prüfen, ob Body-Feld vorhanden
   If Not body Is Nothing Then
      Call body.Remove
   End If
   
   Set body = New NotesRichTextItem(pr, "Body")
   
   If collection.Count = 0 Then Exit Sub
   
    'Zähler für Fehler (alle markierten Dok. ohne Mailadresse     
   j% = 0
   
   For i% = 1 To collection.Count
      Set doc = collection.GetNthDocument(i%)
      
          'keine Mailadresse vorhanden
      If doc.email(0) = "" Then
         j% = j% + 1
         Goto weiter
      End If
      
          'für ersten Eintrag bisheriges SendTo-Feld ersetzen, sonst anfügen
      If i% = 1 Then
         pr.ReplaceItemValue "SendTo", doc.email(0)
         Set sendto = pr.GetFirstItem("SendTo")
      Else
         Call sendto.Appendtotextlist(doc.email(0))
      End If
      
weiter:         
   Next
   
    'alle markierten Dok. ohne Mailadresse, dann kein Mail erfassen, sonst Profildok. öffnen
   If collection.Count = j% Then
      Messagebox "Es kann kein Mail versendet werden, da Sie nur Dokumente markiert haben, die keine Mailadresse beinhalten." ,MB_OK + MB_ICONINFORMATION,"H I N W E I S"
   Else
      Call ws.EditProfile("Mail")
   End If
   
End Sub


Agent "Mail senden" mit Formel:

REM;
REM " A g e n t  \'(Mail senden\'";
REM "******************************";
REM;
REM "Aufruf in Schaltfläche [Senden] der Maske \'Mail\'";
REM "========================================";

REM;
REM "Feldvalidierungen";
@If (Thema = "";
    @Do(@Prompt([OK]; "H I N W E I S"; "Das Feld \'Thema\' enthält keinen Eintrag." + @NewLine +
                                                                              "Bitte geben Sie das Thema des Mails ein !");
                 @Command([EditGotoField]; "Thema");
                 @Return(""));
"");

REM;
REM "Mail versenden, Kopie im Postkorb des angemeldeten Users ablegen";
@MailSend(SendTo; ""; @Name([Abbreviate]; @UserName); Thema ; "Anfrage über Notes-DB \'Ansprechpartner\':" + @NewLine; "Body");

@PostedCommand([FileCloseWindow]);

 @All


Agent "Mail speichern" mit Formel:

REM;
REM " A g e n t  \'(Mail speichern\'";
REM "********************************";
REM;
REM "Aufruf in Schaltfläche [Senden] der Maske \'Mail\'";
REM "========================================";

REM;
REM "Feldvalidierungen";
@If (Thema = "";
    @Do(@Prompt([OK]; "H I N W E I S"; "Das Feld \'Thema\' enthält keinen Eintrag." + @NewLine +
                                                                              "Bitte geben Sie das Thema des Mails ein !");
                 @Command([EditGotoField]; "Thema");
                 @Return(""));
"");

REM "Speichern und schließen";
@PostedCommand([FileSave]);

 @All


Ich habe schon probiert, mit Field und SetField in den Masken und Agenten zu hantieren, habe selbst in dem für mich fremden Script gehandwerkt (und artig wieder gelöscht, nachdem es nicht funktionierte), aber es klappt nicht.

In der Mailmaske werden die Felder "SendTo", "Body" und "Thema" mitgegeben, das Einfügen eines Feldes "Importance" mit Wert "1" führte leider auch nicht zum gewünschten Ergebnis.
« Letzte Änderung: 09.11.07 - 15:21:19 von SaSaWu »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld "Importance" zur Ansicht in Mail-DB füllen
« Antwort #3 am: 09.11.07 - 15:22:14 »
Diese Zeile ist der casus canctus:
@MailSend(SendTo; ""; @Name([Abbreviate]; @UserName); Thema ; "Anfrage über Notes-DB \'Ansprechpartner\':" + @NewLine; "Body");

Damit erstellst Du ein neues temporäres Dokument, was dann versandt wird. Diesem Dokument kannst Du ein Item "Importance" nicht mitgeben.
Du musst das komplette Dokument versenden, in dem @MailSend ohne Parameter verwendet wird. Das setzt aber voraus, dass das Dokument alle benötigten Parameter bereits enthält (Form = "Memo", SendTo etc. pp.).

Bernhard

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Feld "Importance" zur Ansicht in Mail-DB füllen
« Antwort #4 am: 09.11.07 - 15:42:13 »
OK, danke für Deine schnelle Antwort!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz