Inhaltsverzeichnis

    Workflow: Doppelte Kunden prüfen

    Die Idee zu diesem Workflow kam von Andreas Petermann von unserem Servicepartner css-umsetzung.de. Der Workflow belegte im Rahmen unserer Show-Me-Your-Workflow-Aktion zur JTL-Connect 2016 den dritten Platz.

    Ihre Aufgabe/Ausgangslage

    In der Regel möchten Sie pro Kunde immer nur einen Kundendatensatz in JTL-Wawi haben. Leider kann es immer wieder passieren, dass Bestandskunden in Ihrem JTL-Shop ohne Anmeldung bestellen, über eBay oder Amazon Bestellungen tätigen oder auch bei der manuellen Eingabe übersehen werden. Für diesen Fall möchten Sie gerne einen Workflow einrichten, der bei Neuanlage eines Kunden prüft, ob dieser bei Ihnen bereits besteht.

    Workflow

    Sie richten nun einen Workflow ein, der bei Anlage eines Kunden überprüft, ob bereits ein Kunde vorhanden ist, der entweder 1. dieselbe E-Mail-Adresse hat, oder 2. dieselbe Telefonnummer hat oder 3. über die gleiche Anschrift und denselben Nachnamen verfügt. In allen drei Fällen soll ein Mitarbeiter eine E-Mail bekommen, in der sowohl der bestehende, als auch der neue Kundensatz steht.

    Einrichtung

    1. Öffnen Sie die Workflowverwaltung von JTL-Wawi über das Menü Admin > JTL-Workflows und wechseln Sie in den Bereich Kunden.

    Der Workflow soll greifen, wenn ein Kunde neu angelegt wurde.

    1. Markieren Sie das Ereignis Kunden > Angelegt und klicken Sie auf die Schaltfläche Workflow anlegen. Geben Sie dem neuen Workflow einen sinnvollen Namen, zum Beispiel „Prüfung_Doppelter_Kunde“.
    2. Wählen Sie im Dropdown-Menü unter Bedingung definieren die Schaltfläche Erweiterte Eigenschaften verwalten. Es öffnet sich das Dialogfenster Erweiterte-Eigenschaften bearbeiten.
    1. Legen Sie über die Schaltfläche Hinzufügen eine Eigenschaft an und geben Sie ihr einen sinnvollen Namen, zum Beispiel „Doppelter Kunde“.
    2. Hinterlegen Sie folgende Abfrage:
    {% capture query %}
    
    SELECT cKundenNr FROM Kunde.lvKundenDaten
    
    WHERE kKunde != {{ Vorgang.InterneKundennummer }}
    AND 
    (
        ( ISNULL(cMail,'') != '' AND  cMail = '{{ Vorgang.Adresse.EMail }}' )
        OR ( ISNULL(cTel,'') != '' AND cTel = '{{ Vorgang.Adresse.Telefon }}' )
        OR ( 
            (ISNULL(cName,'') != '' AND cName = '{{ Vorgang.Adresse.Nachname }}') 
            AND  (ISNULL(cOrt,'') != '' AND cOrt ='{{ Vorgang.Adresse.Ort }}')
            AND  (ISNULL(cPLZ,'') != '' AND cPLZ = '{{ Vorgang.Adresse.PLZ }}')
        )
    )
    
    {% endcapture -%}
    
    \
    {% assign result = query | DirectQueryScalar %}
    
    \
    {{ result }}
    Erklärung: Diese Abfrage überprüft, ob es einen bestehenden Kunden gibt, der dem neu angelegten Kunden entspricht. Dies wird anhand folgender Daten ermittelt: entweder ist die E-Mail-Adresse gleich oder die Telefonnummer oder Nachname, Postleitzahl und Ort. Ausgegeben wird von diesem Befehl dann die Kundennummer des bereits bestehenden Kunden. Andernfalls gibt der Befehl nichts aus. Natürlich können Sie auch die Anfrage beliebig anpassen oder erweitern.
    1. Schließen Sie das Dialogfenster und wählen Sie im Dropdown-Menü unter Bedingung definieren die soeben angelegte Eigenschaft. Wählen Sie anschließend über das zweite Dropdown-Menü Ist nicht leer.
    2. Wählen Sie nun unter Aktionen den Punkt E-Mail senden. Geben Sie dort die Firma, den Empfänger (der Mitarbeiter, der die Überprüfung durchführen soll) und einen Betreff an. Über das die Schaltfläche unter Text können Sie anschließend Ihren Mailtext genau definieren.

    Wählen Sie zum Beispiel folgenden Text:

    Hallo, 
    
    folgender Kunde wurde wahrscheinlich doppelt angelegt:
    
    Alter Kunde: {% capture query %}
    
    SELECT cKundenNr FROM Kunde.lvKundenDaten
    
    WHERE kKunde != {{ Vorgang.InterneKundennummer }}
    AND 
    (
        ( ISNULL(cMail,'') != '' AND  cMail = '{{ Vorgang.Adresse.EMail }}' )
        OR ( ISNULL(cTel,'') != '' AND cTel = '{{ Vorgang.Adresse.Telefon }}' )
        OR ( 
            (ISNULL(cName,'') != '' AND cName = '{{ Vorgang.Adresse.Nachname }}') 
            AND  (ISNULL(cOrt,'') != '' AND cOrt ='{{ Vorgang.Adresse.Ort }}')
            AND  (ISNULL(cPLZ,'') != '' AND cPLZ = '{{ Vorgang.Adresse.PLZ }}')
        )
    )
    {% endcapture -%}
    
    \
    {% assign result = query | DirectQueryScalar %}
    
    \
    {{ result }}
    Neuer Kunde: {{ Vorgang.Kundennummer }}
    
    Viele Grüße

    So werden dem Mitarbeiter automatisch die Kundennummer des bestehenden und des neuen Kunden mitgeteilt.

    1. Schließen Sie die Workflowverwaltung und testen Sie den Workflow, indem Sie einen Testkunden anlegen, bei dem beispielsweise die E-Mail-Adresse mit der eines bestehenden Kunden übereinstimmt.
    Kunden zusammenführen: Den doppelten Kundensatz können Sie nun über die Kundenverwaltung zusammenführen. Lesen Sie dazu das Thema: Kunden zusammenführen.