Neu Vorname und Name in Lieferadresse trennen

griffelspitz

Aktives Mitglied
6. April 2020
49
7
Hallo Forum,

ich habe viel gesucht, gelesen und ausprobiert, leider ohne Ergebnis.
Kann mir jemand sagen, wie man in der Lieferadresse den Vornamen und Namen, wenn beide zusammen im Feld "Name" stehen, beim Auftragsimport per Workflow trennen kann?

Feld "Name" --> Max Mustermann

wird zu

Feld "Vorname" --> Max
Feld "Name" --> Mustermann

Gruß
Norbert
 

griffelspitz

Aktives Mitglied
6. April 2020
49
7
Ähnliches wurde schon diskutiert: https://forum.jtl-software.de/threads/regex-befehl-um-vornamen-und-nachnamen-zu-trennen.201022/

Ist schwierig umzusetzen, da es viele verschiedene Namenskombinationen gibt.

Ja, den Post kenne ich bereits.
Allerdings ist bei uns die Übermittlung des Namens immer gleich (wie in meinem Beispiel), da es von einem anderen Portal kommt und per CSV eingespielt wird.
Insofern würde mir eine solche Lösung schon helfen.

Gruß
Norbert
 

kelvin.

Sehr aktives Mitglied
15. Februar 2023
168
65
Frankfurt
Das ist der SQL Befehl um "Max Mustermann" zu trennen:
Code:
DECLARE @name AS VARCHAR(100) = 'Max Mustermann';
DECLARE @position AS INT =
    (
    SELECT CHARINDEX(' ', @name)
    );

SELECT
    LEFT(@name, @position-1) AS Vorname,
    RIGHT(@name, LEN(@name)-@position) AS Name
 

griffelspitz

Aktives Mitglied
6. April 2020
49
7
Das ist der SQL Befehl um "Max Mustermann" zu trennen:
Code:
DECLARE @name AS VARCHAR(100) = 'Max Mustermann';
DECLARE @position AS INT =
    (
    SELECT CHARINDEX(' ', @name)
    );

SELECT
    LEFT(@name, @position-1) AS Vorname,
    RIGHT(@name, LEN(@name)-@position) AS Name

Danke, aber ich glaube, das funktioniert so nicht.

Der komplette Name steht vor der Änderung im Feld "Nachname".
Ich muss einen Workflow erstellen, der per Dotliquid den Teil vor dem Leerzeichen ins Feld "Vorname" verschiebt und nur den Teil nach dem Leerzeichen im Feld "Nachname" belässt.
Hoffe, das geht.

Gruß
Norbert
 

griffelspitz

Aktives Mitglied
6. April 2020
49
7
Hab es jetzt mit RegEx gelöst.

Workflow Aktion "Werte setzen":

Aktion für Variable "Vorname":
{{ Vorgang.Lieferung.Lieferadresse.Name | Replace: '^([\w.\-]+) ' }}

Aktion für Variable "Nachname":
{{ Vorgang.Lieferung.Lieferadresse.Name | TruncateWords: 1, '' }}

Gruß
Norbert
 

griffelspitz

Aktives Mitglied
6. April 2020
49
7
Und wir werden die Sonderfälle behandelt?

Ich lasse per erweiterter Eigenschaft im Workflow prüfen, ob der Name mehr als zwei Wörter hat.
Wenn ja, wird eine Meldung ausgegeben und die Adresse muss manuell geprüft werden.

Erweiterte Eigenschaft:
{% assign words = Vorgang.Lieferung.Lieferadresse.Name | Split: ' ' -%}
{{ words.size }}

Workflow-Bedingung:
"Erweiterte Eigenschaft" größer als 2

Gruß
Norbert
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.775
831
Ja schön, was passiert denn dann? Siehe anderen Thread?

Dr. Max Mustermann
Dipl. Max Mustermann
Ing. Max Mustermann
Prof. Max Mustermann
Max Mustermann Jun.
Mustermann Max Jun.
 

griffelspitz

Aktives Mitglied
6. April 2020
49
7

Ähnliche Themen