Absendermail abgleichen

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #2900

    Hallo Pugler,

    ich möchte gerne bei Ankommen einer Freigabemail den Absender prüfen.
    Das heisst: MailFrom <> Mail-Adresse des Kontakt-Vorgesetzten.

    Der Vorgesetzte ist in einem virtuellen Feld hinterlegt(Virtual.Bereichsleiter).
    Dieses Feld ist angelegt mit einem Join auf die Customer table.

    In der Mail-Condition kann ich allerdings nur auf das Feld und nicht weiter auf die Mail herunter:
    [Case.Contact.Customer.Virtual.Bereichsleiter]

    Wahrscheinlich muss ich auch wieder auf PQL zurückgreifen … ein Tip?

    Zustätzlich würde ich gerne wissen, wo ich PQL-Code vernünftig testen kann, denn von Wendia haben wir dafür die Nutzung eines Mail-Templates empfohlen bekommen, dass aber leider lehr, Serverfehler und weitere mir Nichtssagende Meldungen ausspuckt – gibt es eine Alternative?

    #2901
    Stefan Reichelt
    Participant

    Moment, in welcher Tabelle beginnst du denn? In der Mail-Tabelle gibt es natürlich keine Spalte namens “Case”. Deshalb müsstest du dich über RootPK annähern, in etwa so (ich gehe davon aus, dass Virtual.Bereichsleiter auch eine Join-Spalte auf User ist):

    MailFrom Equal [x.Mail|User x|x.UserPK=[y.Contact.Customer.Virtual.Bereichsleiter.UserPK|Case y|y.CasePK=[RootPK]]

    Das haut vermutlich noch nicht hin, hilft aber hoffentlich etwas weiter.

    Ich teste übrigens auch gern in Mail Templates, weil es dort recht ungefährlich ist. Ansonsten nehme ich Validation Actions. Im Trigger-Logfile kann man dann schön sehen, wie das PQL aufgelöst wurde.

    #2902

    Kleines Stück weitergearbeitet:
    [c.Mail|Customer c|c.CustomerPK=[y.Contact.Customer.Virtual.Bereichsleiter|Case y|y.CasePK=[RootPK]]]
    (Join auf Customer und im Virtual.Bereichsleiter steht bereits der PK)

    Aber ich erhalte im Pobas die Fehlermeldung:
    Mail could not be processed. Reason: A recognition error occurred. near line 1, column 79.

    Kann mir das einer übersetzen?

    #2903
    Stefan Reichelt
    Participant

    Könnte daran liegen, dass bei Virtual.Bereichsleiter das PK-Feld fehlt. Was ist denn das genau für ein Feld? Führt es auf die Customer-Tabelle? Dann müsste noch .CustomerPK hinten dran. “Virtual.Bereichsleiter” ist maximal ein Objekt, aber noch kein Feld, über das man zuverlässig mappen könnte.

    #2904

    Wissen erleichtert die Arbeit! Kann

      ich

    aus der SQL-Datenbank nicht wirklich ablesen …

    Als letzten Schritt möchte ich noch den Absender in einem virtuellen Feld in dem Fall hinterlegen.
    Nach meinem Verständnis kann ich diesen Code nicht in einem MailTemplate testen und brauche daher nochmal PQL-Unterstützung.
    Mein erdachter Code lautet:
    [c.Contact.CustomerPK|Customer c|c.Mail=MailFrom]

    Aber der tut es nicht …

    #2905

    Im Mail Data-Trigger …

    #2908
    Stefan Reichelt
    Participant

    Welchen Typ hat das virtuelle Feld genau? Einen Fehler sehe ich auf jeden Fall sofort: “MailFrom” muss in [eckige Klammern], sonst klappt es nicht.

    #2919

    Das virtuelle Feld ‘Genehmiger durch Mail’ ist ein Join auf Customer!
    Ich habe angenommen, dass ich ihm die pk zuweisen muss, doch der Code [c.Contact.CustomerPK|Customer c|c.Mail=[MailFrom]] tut es noch nicht …

    #2920
    Stefan Reichelt
    Participant

    Wichtig: Bei String-Feldern in where-Klauseln niemals die ‘Apostrophe’ vergessen!

    [c.Contact.CustomerPK|Customer c|c.Mail='[MailFrom]']

    Wenn es dann immer noch nicht klappt, probier mal das hier:

    [c|Customer c|c.Mail='[MailFrom]']

    c steht für das Objekt selbst.

    PS: Es könnte übrigens zu Fehlern kommen, wenn es mehr als einen Kontakt mit der gleichen Mailadresse gibt. Wenn das PQL mehrere Ergebnisse auswirft, können diese nicht in ein einziges Feld geschrieben werden. Falls so etwas vorkommen kann, müssten wir einen Workaround mit max() basteln.

    #2922

    [c.Contact.CustomerPK|Customer c|c.Mail='[MailFrom]'] funktioniert. Hatte es eigenmächig schon auf verschiedene Felder gekürzt – die Anführungszeichen waren die Lösung.

    Besten Dank und einen sonnigen Tag und erledigt!

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.