Postleitzahl aus einem Feld filtern

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Postleitzahl aus einem Feld filtern

Beitrag von vicki2202 (ForumUser / 3 / 0 / 0 ) »
Hallo,

wie kann ich am schnellsten aus einem 35 stelligen CHAR-Feld die Postleitzahl und bei ausländischen Kunden auch noch das Länderkürzel rausfiltern .

Leider wurde auf dem Altsystem in dem Ortsfeld die Daten wild und ohne Logik eingegeben.
Beispiel:
79312 Emmendingen
D-3500 KASSEL

CH-8600 Dübendorf 1
CH-8623 WETZIKON
14050 Caen,France

Ich muss nun aus dem einen Feld, drei Felder machen:
- Länderkürzel
- Postleitzahl
- Ortsname

Danke für die Tipps.

Grüße

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo vicki,

ich kann dir da leider keine Lösung anbieten, aber hier ein paar Befehle die dich vllt zum Ziel bringen:

- SPLIT
- SHIFT
- FIND

und schau dir mal reguläre Ausdrücke an

und zusätzlich noch die Klassen
- cl_abap_regex
- cl_abap_matcher
(kommt aber auf dein System an, ob diese vorhanden sind)

Gruß
Markus

Re: Postleitzahl aus einem Feld filtern

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
vicki2202 hat geschrieben:wie kann ich am schnellsten aus einem 35 stelligen CHAR-Feld die Postleitzahl und bei ausländischen Kunden auch noch das Länderkürzel rausfiltern .
Sowas hatte ich auch mal. Das ist umso schwieriger, je chaotischer die Daten vorliegen. Suche nach Regelmäßigkeiten, sowas wie:

* Vor einem Bindestrich steht das Land
* nach dem Strich die PLZ
* nach dem Leerzeichen der Ort

Irgend sowas halt. Und dann mit SPLIT und consorten trennen.

Das Ergebnis sollte man zumindest händisch begutachten lassen (kleiner Report, der die Zieldaten anzeigt und wo man falsche Sätze markieren kann; notfalls im Ausdruck).

Ohne manuelles Nachbearbeiten gehts nicht - zumindest nicht fehlerfrei.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von vicki2202 (ForumUser / 3 / 0 / 0 ) »
Hallo,
ich habe mir jetzt eine einigermaßen Lösung zusammengebaut. Naja, die Trefferquote liegt bei 80 %.

Es ist sicherlich nicht die schönste Lösung, wenn jemand noch etwas besseres hat, bitte gerne melden.

data: l_pstl(30),
l_ort(30),
l_zwisch(30),
l_land(30),
l_feld.

* In dem Feld it_daten-name steht der blöd aufgebaute Ort.

* Erste Stelle 0 prüfen -> und speichern, falls Postleitzahl oder Länderkürzel
kommt
clear: l_feld, l_pstl, l_ort, l_land, l_zwisch.
move it_daten-name(1) to l_feld.
if l_feld ca '0123456789'.
move l_feld to l_pstl(1).
else.
move l_feld to l_zwisch(1).
endif.

* Dann weiter an Stelle 1 bis 29
do 29 times.
l_feld = it_daten-name+sy-index(1) . "Ort in einzelne Buchstaben zerlegen

if l_feld ca '0123456789'. "Eine Zahl gefunden -> Postleitzahl
move l_feld to l_pstl+sy-index(1).
else.
* Ich gehe davon aus, dass nach der Postleitzahl der Ort kommt.
if l_pstl ne ' '. "Eine Postleitzahl gefunden
move l_feld to l_ort+sy-index(1).
endif.
endif.
* Ich gehe davon aus, dass vor einem Länderkürzel ein Bindestrich steht.
* und das das Länderkürzel am Anfang steht, maximal bis Stelle 4
if l_feld ca 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
move l_feld to l_zwisch+sy-index(1). "Die Buchstaben mal zwischenspeichern
endif.
if l_feld eq '-' and sy-index le 4. "Wirklich ein Länderkürzel gefunden
l_land = l_zwisch.
endif.
enddo.

condense: l_land, l_pstl, l_ort.

Viele Grüße

Seite 1 von 1

Vergleichbare Themen

2
Antw.
204
Views
SALV IDA Nach Namen in einem Feld filtern
von SnoopyDev » 28.10.2022 12:22 • Verfasst in ABAP® für Anfänger
2
Antw.
1812
Views
Filtern im ALV (OO)
von Betze » 18.05.2006 09:42 • Verfasst in ABAP Objects®
7
Antw.
2548
Views
Auslesen filtern
von cschmoel » 26.09.2012 12:06 • Verfasst in ABAP® für Anfänger
5
Antw.
2223
Views
Filtern von Tabelleninhalten
von thobi » 25.08.2011 17:01 • Verfasst in ABAP® für Anfänger
5
Antw.
2233
Views
filtern eines strings
von Spookykid » 04.05.2011 14:48 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.